/* Phase 3 accessibility and responsive UX safeguards. This file is intentionally presentation-only. */
:root{--cmep-tap-target:44px;--cmep-focus-ring:3px solid #f59e0b}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}*,*::before,*::after{box-sizing:border-box}body{overflow-x:hidden}img,canvas,video,iframe{max-width:100%}iframe{border:0}.skip-link{position:absolute;left:1rem;top:1rem;z-index:100000;transform:translateY(-150%);transition:transform .15s ease;background:#111827;color:#fff;padding:.75rem 1rem;border-radius:.75rem;font-weight:800;text-decoration:none;box-shadow:0 10px 24px rgba(0,0,0,.22)}.skip-link:focus{transform:translateY(0);outline:var(--cmep-focus-ring);outline-offset:3px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:where(a,button,input,select,textarea,summary,[role="button"],[tabindex]):focus-visible{outline:var(--cmep-focus-ring);outline-offset:3px}:where(button,.btn,.button,[role="button"],input[type="button"],input[type="submit"],input[type="reset"]){min-height:var(--cmep-tap-target);min-width:var(--cmep-tap-target)}:where(input,select,textarea){min-height:2.75rem;max-width:100%}:where(table){width:100%}:where(table,.table,.results-table,.race-table,.ratings-table,.forecast-table){overflow-wrap:anywhere}:where(pre,code){white-space:pre-wrap;overflow-wrap:anywhere}:where(.card,.race-card,.contest-card,.result-card,.state-card,.district-card,.projection-card,.featured-card,.method-card){overflow-wrap:anywhere}:where(.pill,.badge,.tag,.party-pill){white-space:nowrap}@media(max-width:900px){:where(main,.container,.page,.page-shell,.shell,.content,.dashboard,.wrap,.wrapper){max-width:100%}:where(.grid,.cards,.race-grid,.state-grid,.district-grid,.forecast-grid,.results-grid,.dashboard-grid){grid-template-columns:1fr!important}:where(.toolbar,.filters,.controls,.button-row,.tabs,.nav-tabs,.race-actions,.admin-actions){flex-wrap:wrap;gap:.625rem}:where(.toolbar,.filters,.controls)>*{max-width:100%}:where(.table-wrap,.table-wrapper,.overflow-x,.race-table-wrap,.ratings-table-wrap,.results-table-wrap){overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:640px){body{line-height:1.5}:where(h1){font-size:clamp(1.8rem,8vw,2.75rem);line-height:1.05}:where(h2){font-size:clamp(1.35rem,6vw,2rem);line-height:1.15}:where(.hero,.page-hero,.masthead,.section,section,main){padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}:where(button,.btn,.button,a.button,[role="button"]){touch-action:manipulation}:where(input[type="search"],input[type="text"],select){width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Regression guardrails: do not resize third-party map controls or inline SVG seat maps. */
:where(.maplibregl-ctrl button,.mapboxgl-ctrl button){min-width:29px!important;min-height:29px!important;width:29px!important;height:29px!important;padding:0!important;touch-action:manipulation}
:where(svg .seat,svg [data-dist],svg [data-state]){pointer-events:auto}
