.high-contrast{--background:#000000;--foreground:#ffffff;--card:#111111;--card-foreground:#ffffff;--popover:#111111;--popover-foreground:#ffffff;--primary:#ffffff;--primary-foreground:#000000;--secondary:#333333;--secondary-foreground:#ffffff;--muted:#222222;--muted-foreground:#cccccc;--accent:#444444;--accent-foreground:#ffffff;--destructive:#ff0000;--destructive-foreground:#ffffff;--border:#444444;--input:#333333;--ring:#ffffff}.high-contrast *{border-color:#444444!important}.high-contrast img{filter:contrast(1.2) brightness(1.1)}.large-text{font-size:120%!important}.large-text *{font-size:inherit!important}.large-text .text-xs{font-size:.875rem!important}.large-text .text-sm{font-size:1rem!important}.large-text .text-base{font-size:1.125rem!important}.large-text .text-lg{font-size:1.25rem!important}.large-text .text-xl{font-size:1.5rem!important}.large-text .text-2xl{font-size:1.875rem!important}.large-text .text-3xl{font-size:2.25rem!important}.large-text .text-4xl{font-size:3rem!important}.reduce-motion *,.reduce-motion :after,.reduce-motion :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reduce-motion .animate-bounce,.reduce-motion .animate-pulse,.reduce-motion .animate-spin{animation:none!important}.keyboard-navigation :focus{outline:2px solid #2563eb!important;outline-offset:2px!important}.keyboard-navigation a:focus,.keyboard-navigation button:focus,.keyboard-navigation input:focus,.keyboard-navigation select:focus,.keyboard-navigation textarea:focus{box-shadow:0 0 0 2px #2563eb!important}.skip-link{position:absolute;top:-40px;left:6px;background:#2563eb;color:white;padding:8px;text-decoration:none;border-radius:4px;z-index:1000}.skip-link:focus{top:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.high-contrast :focus-visible{outline:3px solid #ffffff;outline-offset:2px}.text-accessible-green{color:#166534}.text-accessible-red{color:#dc2626}.text-accessible-blue{color:#1d4ed8}.bg-accessible-green{background-color:#166534;color:#ffffff}.bg-accessible-red{background-color:#dc2626;color:#ffffff}.bg-accessible-blue{background-color:#1d4ed8;color:#ffffff}input:invalid{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}input:invalid:focus{outline-color:#dc2626}table{border-collapse:collapse}th{text-align:left;font-weight:600}td,th{border:1px solid #d1d5db;padding:8px 12px}a{text-decoration:underline;text-underline-offset:2px}a:hover{text-decoration-thickness:2px}button:disabled{opacity:.6;cursor:not-allowed}@media print{.no-print{display:none!important}*{background:transparent!important;color:black!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}@media (max-width:640px){.large-text{font-size:110%!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast:high){*{border-color:currentColor}button,input,select,textarea{border:2px solid}}@media (prefers-color-scheme:dark){.high-contrast{--background:#000000;--foreground:#ffffff}}.focus-trap{position:relative}.focus-trap:after,.focus-trap:before{content:"";position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}@keyframes accessible-fade-in{0%{opacity:0}to{opacity:1}}@keyframes accessible-slide-in{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.accessible-fade-in{animation:accessible-fade-in .2s ease-out}.accessible-slide-in{animation:accessible-slide-in .3s ease-out}@media (prefers-reduced-motion:reduce){.accessible-fade-in,.accessible-slide-in{animation:none}}