/* BridgeMD shared search loader. Flat, one blue, no gradients.
   While a search runs the page behind zooms back a little and dims, and a white card
   with the logo mark and a ring spinner sits in the middle. The overlay is built ahead
   of time and shows with no fade, so it is on screen in the first frame after submit. */
html.bmd-sl-lock, html.bmd-sl-lock body { overflow: hidden; }
html.bmd-sl-lock.bmd-sl-gutter { scrollbar-gutter: stable; }
.bmd-sl-zoom { transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
html.bmd-sl-on .bmd-sl-zoom { transform: scale(1.035); }
.bmd-sl { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box;
  background: rgba(10, 20, 40, .3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  overscroll-behavior: contain; touch-action: none;
  opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .15s ease-out, visibility 0s linear .15s; }
.bmd-sl.is-on { opacity: 1; visibility: visible; pointer-events: auto; transition: none; }
.bmd-sl-card { box-sizing: border-box; width: 440px; max-width: 100%; padding: 48px 32px 40px; border-radius: 28px; background: #fff; text-align: center;
  box-shadow: 0 1px 2px rgba(10, 20, 40, .06), 0 24px 60px -12px rgba(10, 20, 40, .35);
  transform: translateY(6px) scale(.98); }
.bmd-sl.is-on .bmd-sl-card { transform: none; transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.bmd-sl-spin { position: relative; width: 136px; height: 136px; margin: 0 auto; }
.bmd-sl-logo { position: absolute; left: 26px; top: 26px; width: 84px; height: 84px; display: block; border-radius: 22px; box-shadow: 0 8px 20px -6px rgba(18, 87, 176, .55); }
.bmd-sl-ring { position: absolute; inset: 0; width: 136px; height: 136px; transform-origin: 50% 50%; animation: bmd-sl-spin 1s linear infinite; }
.bmd-sl-ring circle { fill: none; stroke-width: 3.4; stroke-linecap: round; }
.bmd-sl-ring .bmd-sl-track { stroke: #dfe9f7; }
.bmd-sl-ring .bmd-sl-arc { stroke: #1257b0; stroke-dasharray: 78 214; }
html .bmd-sl p.bmd-sl-text { margin: 30px 0 0; font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 23px; line-height: 1.35; font-weight: 600; color: #0a1428; letter-spacing: -.01em; overflow-wrap: anywhere; }
html .bmd-sl p.bmd-sl-sub { margin: 10px 0 0; font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.4; color: #56647c; }
html .bmd-sl button.bmd-sl-cancel { margin: 14px 0 0; padding: 6px 12px; border: 0; border-radius: 8px; background: none; font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 14.5px; font-weight: 600; color: #1257b0; cursor: pointer; }
html .bmd-sl button.bmd-sl-cancel[hidden] { display: none; }
html .bmd-sl button.bmd-sl-cancel:hover { background: #eef4fd; color: #0e4590; }
html .bmd-sl button.bmd-sl-cancel:focus-visible { outline: 2px solid #1257b0; outline-offset: 2px; }
.bmd-sl-live { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* The mark assembles on its tile: the two halves slide in from opposite sides, lock together, hold, fade and start again.
   The animation starts when the card appears, so it always begins with the halves apart. */
.bmd-sl.is-on .bmd-sl-logo { animation: bmd-sl-tile 2.2s ease-in-out infinite; }
.bmd-sl.is-on .bmd-sl-a { animation: bmd-sl-mark-a 2.2s cubic-bezier(.2, .8, .2, 1) infinite; }
.bmd-sl.is-on .bmd-sl-b { animation: bmd-sl-mark-b 2.2s cubic-bezier(.2, .8, .2, 1) infinite; }
@keyframes bmd-sl-mark-a { 0% { transform: translateX(-190px); opacity: 0; } 30%, 74% { transform: none; opacity: 1; } 90%, 100% { transform: none; opacity: 0; } }
@keyframes bmd-sl-mark-b { 0% { transform: translateX(190px); opacity: 0; } 30%, 74% { transform: none; opacity: 1; } 90%, 100% { transform: none; opacity: 0; } }
@keyframes bmd-sl-tile { 0%, 28%, 100% { transform: scale(1); } 34% { transform: scale(1.05); } 42% { transform: scale(1); } }
@keyframes bmd-sl-spin { to { transform: rotate(360deg); } }
@keyframes bmd-sl-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) {
  .bmd-sl-zoom { transition: none; }
  html.bmd-sl-on .bmd-sl-zoom { transform: none; }
  .bmd-sl, .bmd-sl-card, .bmd-sl.is-on .bmd-sl-card { transition: none; transform: none; }
  .bmd-sl-ring { animation: bmd-sl-pulse 1.6s ease-in-out infinite; }
  .bmd-sl.is-on .bmd-sl-logo, .bmd-sl.is-on .bmd-sl-a, .bmd-sl.is-on .bmd-sl-b { animation: none; }
  .bmd-sl-ring .bmd-sl-arc { stroke-dasharray: none; }
}

@media (max-width: 480px) { .bmd-sl-card { padding: 40px 22px 34px; } html .bmd-sl p.bmd-sl-text { font-size: 20px; } }
