/* ACCT 311 shared accessibility layer v2.0 */
:root{--acct311-a11y-scale:1}

.acct311-skip-link{
  position:fixed!important;left:12px!important;top:10px!important;z-index:2147483647!important;
  transform:translateY(-180%);background:#111827;color:#fff!important;padding:10px 14px!important;
  border-radius:8px;font:800 14px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;text-decoration:none!important;
  box-shadow:0 8px 24px rgba(15,23,42,.24)
}
.acct311-skip-link:focus{transform:none!important;outline:3px solid #f59e0b!important;outline-offset:3px!important}

body.acct311-a11y-focus *:focus-visible{
  outline:3px solid #b45309!important;outline-offset:3px!important
}
body.acct311-a11y-focus button:focus-visible,
body.acct311-a11y-focus input:focus-visible,
body.acct311-a11y-focus select:focus-visible,
body.acct311-a11y-focus textarea:focus-visible,
body.acct311-a11y-focus summary:focus-visible,
body.acct311-a11y-focus a:focus-visible{
  box-shadow:0 0 0 5px rgba(180,83,9,.18)!important
}

body.acct311-a11y-reading-spacing [data-acct311-a11y-text="true"],
body.acct311-a11y-reading-spacing p,
body.acct311-a11y-reading-spacing li,
body.acct311-a11y-reading-spacing label,
body.acct311-a11y-reading-spacing .question,
body.acct311-a11y-reading-spacing .choice,
body.acct311-a11y-reading-spacing [class*="instruction"]{
  line-height:1.85!important;letter-spacing:.015em!important;word-spacing:.08em!important
}

body.acct311-a11y-reduced-motion *,
body.acct311-a11y-reduced-motion *::before,
body.acct311-a11y-reduced-motion *::after{
  animation-duration:.001ms!important;animation-iteration-count:1!important;
  transition-duration:.001ms!important;scroll-behavior:auto!important
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

body.acct311-a11y-high-contrast{background:#fff!important;color:#000!important}
body.acct311-a11y-high-contrast :where(main,section,article,aside,header,footer,nav,div){border-color:#444}
body.acct311-a11y-high-contrast :where(.bg-white,.bg-slate-50,.bg-gray-50,.card,.panel){background:#fff!important}
body.acct311-a11y-high-contrast :where(.text-gray-400,.text-gray-500,.text-gray-600,.text-slate-400,.text-slate-500,.text-slate-600){color:#222!important}
body.acct311-a11y-high-contrast :where(button,input,select,textarea){border-color:#222!important}
body.acct311-a11y-high-contrast a:not(.acct311-skip-link){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:2px!important}

.acct311-a11y-launcher{
  position:fixed;right:18px;bottom:18px;z-index:2147483000;display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:9px 12px;border:2px solid #17324d;border-radius:999px;background:#fff;color:#17324d;
  box-shadow:0 8px 24px rgba(15,23,42,.18);font:800 13px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer
}
.acct311-a11y-launcher:hover{background:#f1f5f9}
.acct311-a11y-launcher .acct311-a11y-aa{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-weight:900}

.acct311-a11y-backdrop{
  position:fixed;inset:0;z-index:2147483646;background:rgba(15,23,42,.58);display:grid;place-items:center;padding:16px
}
.acct311-a11y-dialog{
  width:min(540px,100%);max-height:90vh;overflow:auto;background:#fff;color:#17202a;border:2px solid #17324d;
  border-radius:14px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.28);font-family:system-ui,-apple-system,"Segoe UI",sans-serif
}
.acct311-a11y-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.acct311-a11y-head h2{font-size:22px!important;line-height:1.2!important;margin:0!important;color:#17202a!important;font-weight:850!important}
.acct311-a11y-head p{margin:6px 0 0!important;color:#526579!important;font-size:14px!important;line-height:1.5!important}
.acct311-a11y-close,.acct311-a11y-reset,.acct311-a11y-done{
  min-height:42px;border:1px solid #94a3b8;border-radius:8px;background:#fff;color:#17324d;padding:8px 12px;font-weight:800;cursor:pointer
}
.acct311-a11y-close:hover,.acct311-a11y-reset:hover{background:#f1f5f9}
.acct311-a11y-done{background:#17324d;color:#fff;border-color:#17324d}
.acct311-a11y-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e2e8f0}
.acct311-a11y-option:last-of-type{border-bottom:0}
.acct311-a11y-option strong{display:block;color:#17202a;font-size:14px}
.acct311-a11y-option small{display:block;margin-top:3px;color:#526579;font-size:12px;line-height:1.4}
.acct311-a11y-option input[type="checkbox"]{width:22px;height:22px;flex:0 0 auto}
.acct311-a11y-scale{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.acct311-a11y-scale button{min-width:58px;min-height:40px;border:1px solid #94a3b8;border-radius:7px;background:#fff;color:#17324d;font-weight:800;cursor:pointer}
.acct311-a11y-scale button[aria-pressed="true"]{background:#17324d;color:#fff;border-color:#17324d}
.acct311-a11y-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.acct311-a11y-help{margin:12px 0 0!important;color:#526579!important;font-size:12px!important;line-height:1.5!important}

body.acct311-a11y-high-contrast .acct311-a11y-dialog{border:4px solid #000;box-shadow:none}
body.acct311-a11y-high-contrast .acct311-a11y-dialog *{color:#000}
body.acct311-a11y-high-contrast .acct311-a11y-done{background:#000!important;color:#fff!important}

@media(max-width:640px){
  .acct311-a11y-launcher{right:10px;bottom:10px;padding:8px 10px}
  .acct311-a11y-launcher .acct311-a11y-label{display:none}
  .acct311-a11y-dialog{padding:16px}
  .acct311-a11y-option{align-items:flex-start;flex-direction:column}
  .acct311-a11y-scale{justify-content:flex-start}
}
