/* Patch 0.1.11.0.0 - final mobile overlay and accessibility mini-panel contrast hotfix.
   This file is intentionally loaded last so it can correct earlier global button/nav styles. */

/* Accessibility panel buttons: never inherit white/light backgrounds from global button themes. */
.accessibility-panel .btn,
.accessibility-panel button,
.accessibility-panel button.btn,
.accessibility-panel .accessibility-open,
.accessibility-panel .accessibility-close,
.accessibility-panel [data-a11y-read],
.accessibility-panel [data-a11y-stop],
html[data-theme="light"] .accessibility-panel .btn,
html[data-theme="light"] .accessibility-panel button,
html[data-theme="light"] .accessibility-panel button.btn,
html[data-theme="light"] .accessibility-panel .accessibility-open,
html[data-theme="light"] .accessibility-panel .accessibility-close,
html[data-theme="light"] .accessibility-panel [data-a11y-read],
html[data-theme="light"] .accessibility-panel [data-a11y-stop]{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.72) !important;
  border:1px solid rgba(150,175,255,.42) !important;
  background:
    radial-gradient(90% 100% at 50% -42%,rgba(255,255,255,.38),rgba(255,255,255,.08) 35%,transparent 58%),
    linear-gradient(180deg,#242b34 0%,#111720 48%,#05070b 100%) !important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.32),
    inset 0 -3px 8px rgba(0,0,0,.78),
    0 12px 28px rgba(0,0,0,.34) !important;
  filter:none !important;
}
.accessibility-panel .btn.primary,
.accessibility-panel [data-a11y-read],
html[data-theme="light"] .accessibility-panel .btn.primary,
html[data-theme="light"] .accessibility-panel [data-a11y-read]{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:
    radial-gradient(90% 100% at 50% -42%,rgba(255,255,255,.34),rgba(255,255,255,.10) 35%,transparent 58%),
    linear-gradient(180deg,rgba(62,78,190,.96) 0%,rgba(28,34,92,.96) 48%,rgba(8,10,28,.98) 100%) !important;
  border-color:rgba(170,190,255,.58) !important;
}
.accessibility-panel .btn:hover,
.accessibility-panel button:hover{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  filter:brightness(1.12) saturate(1.04) !important;
}
.accessibility-panel .btn::before,
.accessibility-panel button::before,
.accessibility-panel .btn::after,
.accessibility-panel button::after{
  pointer-events:none !important;
}

@media(max-width:920px){
  .site-header{
    min-height:60px !important;
    padding:10px 14px !important;
    justify-content:center !important;
  }
  .site-header .brand{
    max-width:calc(100vw - 28px) !important;
    justify-content:center !important;
  }

  /* Bottom-left floating mobile menu button. Icon is centered by construction. */
  .nav-toggle{
    position:fixed !important;
    left:12px !important;
    bottom:12px !important;
    top:auto !important;
    right:auto !important;
    z-index:2002 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    max-width:52px !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border-radius:999px !important;
    font-size:0 !important;
    line-height:0 !important;
    text-indent:-9999px !important;
    white-space:nowrap !important;
    color:transparent !important;
    background:
      radial-gradient(90% 100% at 50% -40%,rgba(255,255,255,.46),rgba(255,255,255,.12) 32%,transparent 56%),
      linear-gradient(180deg,#262d34 0%,#11171e 48%,#05070b 100%) !important;
    border:1px solid rgba(236,244,255,.52) !important;
    box-shadow:
      inset 0 2px 2px rgba(255,255,255,.38),
      inset 0 -3px 8px rgba(0,0,0,.82),
      0 18px 42px rgba(0,0,0,.48),
      0 0 0 1px rgba(255,255,255,.08) !important;
  }
  .nav-toggle::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:22px !important;
    height:16px !important;
    display:block !important;
    transform:translate(-50%,-50%) !important;
    border-radius:0 !important;
    opacity:1 !important;
    background:
      linear-gradient(#ffffff,#ffffff) 0 0/100% 2px no-repeat,
      linear-gradient(#ffffff,#ffffff) 0 7px/100% 2px no-repeat,
      linear-gradient(#ffffff,#ffffff) 0 14px/100% 2px no-repeat !important;
    box-shadow:none !important;
    z-index:2 !important;
  }
  .nav-toggle[aria-expanded="true"]::before{
    width:22px !important;
    height:22px !important;
    background:
      linear-gradient(45deg,transparent 45%,#ffffff 47%,#ffffff 53%,transparent 55%),
      linear-gradient(-45deg,transparent 45%,#ffffff 47%,#ffffff 53%,transparent 55%) !important;
  }
  .nav-toggle::after{
    content:"" !important;
    position:absolute !important;
    top:0 !important;
    left:-145% !important;
    width:70% !important;
    height:100% !important;
    transform:skewX(-24deg) !important;
    background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.38) 50%,transparent 80%) !important;
    opacity:.75 !important;
    transition:left .8s ease !important;
    z-index:1 !important;
  }
  .nav-toggle:hover::after{left:160% !important;}

  /* Real overlay behavior: backdrop behind, menu panel visibly above it. */
  .nav-backdrop{
    display:block !important;
    position:fixed !important;
    inset:0 !important;
    z-index:1980 !important;
    opacity:0 !important;
    pointer-events:none !important;
    background:rgba(2,4,10,.56) !important;
    backdrop-filter:blur(10px) !important;
    -webkit-backdrop-filter:blur(10px) !important;
    transition:opacity .28s ease !important;
  }
  body.nav-open .nav-backdrop{
    opacity:1 !important;
    pointer-events:auto !important;
  }
  .site-nav{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    bottom:78px !important;
    top:auto !important;
    z-index:1995 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:9px !important;
    width:auto !important;
    max-width:none !important;
    max-height:min(72vh,620px) !important;
    overflow:auto !important;
    padding:14px !important;
    border-radius:24px !important;
    border:1px solid rgba(145,175,255,.32) !important;
    background:
      radial-gradient(90% 70% at 18% 0%,rgba(93,137,255,.22),transparent 48%),
      linear-gradient(180deg,rgba(15,18,32,.985),rgba(4,6,12,.992)) !important;
    box-shadow:0 32px 95px rgba(0,0,0,.72),inset 0 1px 1px rgba(255,255,255,.13) !important;
    transform:translate(-12px,20px) scale(.96) !important;
    transform-origin:left bottom !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:
      transform .36s cubic-bezier(.18,.9,.18,1),
      opacity .28s ease,
      visibility 0s linear .36s !important;
  }
  .site-nav.open,
  body.nav-open .site-nav{
    transform:translate(0,0) scale(1) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transition:
      transform .36s cubic-bezier(.18,.9,.18,1),
      opacity .28s ease,
      visibility 0s linear 0s !important;
  }
  html[data-theme="light"] .site-nav{
    background:
      radial-gradient(90% 70% at 18% 0%,rgba(93,137,255,.16),transparent 48%),
      linear-gradient(180deg,rgba(255,255,255,.99),rgba(231,237,248,.99)) !important;
    box-shadow:0 30px 74px rgba(30,41,59,.30),inset 0 1px 1px rgba(255,255,255,.92) !important;
  }
  .site-nav a{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    min-height:50px !important;
    padding:13px 16px !important;
    border-radius:16px !important;
    text-decoration:none !important;
    color:#f8fafc !important;
    background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.028)) !important;
    border:1px solid rgba(140,170,255,.16) !important;
    box-shadow:inset 0 1px 1px rgba(255,255,255,.09),0 8px 20px rgba(0,0,0,.12) !important;
    transform:translateY(8px) !important;
    opacity:0 !important;
    transition:transform .28s ease,opacity .28s ease,border-color .22s ease,background .22s ease !important;
  }
  .site-nav.open a,
  body.nav-open .site-nav a{
    transform:translateY(0) !important;
    opacity:1 !important;
  }
  html[data-theme="light"] .site-nav a{
    color:#111827 !important;
    background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(241,245,249,.78)) !important;
    border-color:rgba(15,23,42,.12) !important;
  }
  .site-nav a::after{
    content:"›" !important;
    color:#8fb0ff !important;
    font-size:1.35rem !important;
    line-height:1 !important;
    opacity:.8 !important;
  }
  .site-nav a:hover{
    border-color:rgba(93,137,255,.42) !important;
    background:linear-gradient(180deg,rgba(93,137,255,.18),rgba(255,255,255,.045)) !important;
  }
  html[data-theme="light"] .site-nav a:hover{
    background:linear-gradient(180deg,rgba(224,234,255,.98),rgba(248,250,252,.88)) !important;
  }
  .site-nav.open a:nth-child(1),body.nav-open .site-nav a:nth-child(1){transition-delay:.03s!important}
  .site-nav.open a:nth-child(2),body.nav-open .site-nav a:nth-child(2){transition-delay:.055s!important}
  .site-nav.open a:nth-child(3),body.nav-open .site-nav a:nth-child(3){transition-delay:.08s!important}
  .site-nav.open a:nth-child(4),body.nav-open .site-nav a:nth-child(4){transition-delay:.105s!important}
  .site-nav.open a:nth-child(5),body.nav-open .site-nav a:nth-child(5){transition-delay:.13s!important}
  .site-nav.open a:nth-child(6),body.nav-open .site-nav a:nth-child(6){transition-delay:.155s!important}
  .site-nav.open a:nth-child(7),body.nav-open .site-nav a:nth-child(7){transition-delay:.18s!important}
  .site-nav.open a:nth-child(8),body.nav-open .site-nav a:nth-child(8){transition-delay:.205s!important}
  .site-nav.open a:nth-child(9),body.nav-open .site-nav a:nth-child(9){transition-delay:.23s!important}
  .site-nav.open a:nth-child(10),body.nav-open .site-nav a:nth-child(10){transition-delay:.255s!important}
}

@media(min-width:921px){
  .nav-toggle{display:none !important;}
  .nav-backdrop{display:none !important;}
  .site-nav{visibility:visible !important;opacity:1 !important;pointer-events:auto !important;transform:none !important;}
}
