/* Shared WCAG remediation. Keep text sources and user preferences intact. */
[hidden] { display:none !important; }
.time-warning { position:fixed; inset:0; z-index:100000; background:#070038bb; display:flex; align-items:center; justify-content:center; padding:16px; overflow:auto; }
.time-warning-card { color:#070038; background:#fff; border:2px solid #59636e; border-radius:12px; padding:24px; width:100%; max-width:520px; max-height:calc(100dvh - 32px); overflow:auto; }
.time-warning h2 { font-size:1.5rem; margin-bottom:12px; }
.time-warning p { line-height:1.6; margin-bottom:16px; }
.time-warning button { margin-block:4px; white-space:normal; }
html { scroll-padding-top: 8rem; }
:where(a,button,input,select,textarea,[tabindex]) { scroll-margin-block:8rem 2rem; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:3px solid #070038 !important; outline-offset:3px !important;
  box-shadow:0 0 0 6px #fff !important;
}
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:8px; z-index:10001; transform:translateY(-200%); background:#fff; color:#070038; padding:12px 18px; font-weight:700; }
.skip-link:focus { transform:none; }
main p a:not(.btn),main li a:not(.btn),.page-content a { text-decoration:underline; text-underline-offset:.18em; }
button,.btn,summary { min-height:24px; min-width:24px; }
button,select,input,textarea { font:inherit; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea { max-width:100%; }
.form-input,.form-select,.form-textarea { border-color:#6b7280 !important; color:#343a40; background-color:#fff; }
::placeholder { color:#59636e; opacity:1; }
#surah-filter::placeholder,.newsletter-form input::placeholder { color:#d1d5db; }
input[type=checkbox],input[type=radio] { width:20px; height:20px; accent-color:#070038; flex-shrink:0; }
.footer p,.footer-bottom p { color:#d1d5db; }
.footer h2 { color:#fff; font-size:1.1rem; margin-bottom:16px; }
.section-header>p { color:#59636e; }
.field-error,[aria-invalid=true] { color:#991b1b; }
[aria-invalid=true] { border-color:#991b1b !important; }
.alert-error,.alert-danger { color:#991b1b; background:#fef2f2; }
.alert-success { color:#14532d; background:#f0fdf4; }
.alert { overflow-wrap:break-word; }
.quran-tabs-bar { top:var(--nav-height,72px); }
.ayah-row-actions { flex-wrap:wrap; max-width:108px; }
.reading-action { padding:4px 6px; font-size:.8rem; border-radius:6px; }
.reading-action[aria-pressed=true] { background:#070038; color:#fff; }
.welcome-stat-value { font-size:1.25rem; font-weight:700; color:#070038; }
.reading-note-editor { flex-basis:100%; padding:16px; background:#f8f9fc; }
.saved-reading-item { padding:16px 0; border-bottom:1px solid #d1d5db; }
.reading-path { list-style:decimal; padding-inline-start:24px; }
.reading-path li { margin-block:16px; }

.ayah-action-btn { min-width:32px; min-height:32px; }
#audioProgressBar { height:24px !important; display:flex; align-items:center; background:#d1d5db; }
#audioProgressFill { height:6px !important; }
.mega-menu-trigger.dropdown-open .mega-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); transition:none; }
.mega-menu-trigger.dropdown-open .mega-menu * { transition:none !important; visibility:visible; }
.mega-menu-trigger.dropdown-dismissed .mega-menu * { visibility:hidden !important; }
.mega-menu-trigger.dropdown-dismissed .mega-menu,.mega-menu-trigger.dropdown-dismissed .lang-dropdown,.mega-menu-trigger.dropdown-dismissed .prayer-dropdown { visibility:hidden !important; pointer-events:none !important; }
.mega-menu-trigger.dropdown-open .lang-dropdown,.mega-menu-trigger.dropdown-open .prayer-dropdown { display:block !important; }
.mobile-menu:not(.open) { visibility:hidden; }
.mobile-menu.open { visibility:visible; }
.toast,.toast-msg { max-width:calc(100vw - 32px); height:auto; white-space:normal; }
.masonry-item:focus-within .masonry-overlay { opacity:1; }
.masonry-item:focus-within { outline:3px solid #070038; outline-offset:3px; }
.masonry-item>button { display:block; width:100%; padding:0; }
.lightbox-info { white-space:normal !important; overflow:visible !important; }
.admin-body { font-size:16px; }
.admin-table { min-width:600px; }
.admin-table-wrap { overflow-x:auto; }
.admin-topbar { flex-wrap:wrap; min-height:56px; height:auto; }
.admin-topbar .topbar-right,.admin-topbar .topbar-user { flex-wrap:wrap; gap:8px; }
.sidebar-divider { color:#d1d5db; }
.sidebar-close { display:none; }
.admin-sidebar .sidebar-close { color:#fff; background:#070038; }
.admin-content { min-width:0; }
.table-region { max-width:100%; overflow-x:auto; }
.badge-draft { color:#4b5563; }
main h2.card-heading { font-size:1.5rem; }
main p,main li,main dd,.admin-content p,.admin-content code { overflow-wrap:anywhere; }
main h1,main h2,main h3,main h4,main code { overflow-wrap:anywhere; }
@media(max-width:600px) {
  .grid-2,.grid-3,.grid-4,.contact-grid,.form-row { grid-template-columns:minmax(0,1fr) !important; }
  .container { padding-inline:16px; }
  .hero .container>div,.section .container>div { min-width:0; }
  .surah-meta-badges { flex-wrap:wrap; }
  .ayah-row { flex-wrap:wrap; }
  .ayah-row-content { flex-basis:calc(100% - 48px); }
  .ayah-row-actions { max-width:calc(100% - 44px); width:calc(100% - 44px); flex-basis:calc(100% - 44px); min-width:0; margin-inline-start:44px; }
  .quran-tabs-scroll { flex-wrap:wrap; }
  .admin-topbar { position:sticky; top:0; padding:8px; }
  .admin-layout { padding-top:0; }
  .admin-content { padding:16px 10px; }
}
@media(max-width:768px) {
  .sidebar-close { display:block; }
  .admin-sidebar.mobile-open { transform:translateX(0); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}
@media(forced-colors:active) {
  *,*::before,*::after { color:CanvasText !important; background-color:Canvas !important; background-image:none !important; border-color:CanvasText !important; }
  a { color:LinkText !important; }
  button,.btn { color:ButtonText !important; background:ButtonFace !important; }
  :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid CanvasText !important; box-shadow:none !important; }
  button,.btn,input,select,textarea { border:1px solid ButtonText !important; }
  .text-gradient { background:none; -webkit-text-fill-color:CanvasText; color:CanvasText; }
}
