#myfd-loader {
    --myfd-background: #ffffff;
      --myfd-text: #0b2944;
      --myfd-accent: #196b83;
      --myfd-ring-track: #dce8ee;
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    place-items: center;
    padding: 16px;
    overflow: auto;
    background: var(--myfd-background);
    color: var(--myfd-text);
    color-scheme: light;
    font-family: Arial, Helvetica, sans-serif;
    -webkit-font-smoothing: antialiased;
    isolation: isolate;
  }
  #myfd-loader, #myfd-loader * { box-sizing: border-box; }
  #myfd-loader[hidden] { display: none !important; }
  :root[data-theme="dark"] #myfd-loader,
#myfd-loader[data-theme="dark"] {
    --myfd-background: #12181f;
    --myfd-text: #f4f8fa;
    --myfd-accent: #80c5d7;
    --myfd-ring-track: #2b4a63;
    color-scheme: dark;
  }
    #myfd-loader .myfd-content {
      width: min(88vw, 360px);
      margin: 32px 0;
      text-align: center;
    }

    #myfd-loader .myfd-brand-lockup {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
    }

    #myfd-loader .myfd-logo-stage {
      position: relative;
      display: grid;
      place-items: center;
      width: 82px;
      height: 82px;
      flex: 0 0 82px;
      perspective: 500px;
    }

    #myfd-loader .myfd-loading-ring {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      overflow: visible;
      animation: myfd-ring-turn 1.6s linear infinite;
    }

    #myfd-loader .myfd-ring-track { fill: none; stroke: var(--myfd-ring-track); stroke-width: 2; }
    #myfd-loader .myfd-ring-arc { fill: none; stroke: var(--myfd-accent); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 64 188; transform: rotate(-90deg); transform-origin: center; }

    #myfd-loader .myfd-brand-emblem {
      display: grid;
      place-items: center;
      width: 62px;
      height: 62px;
      border-radius: 50%;
      background: #ffffff;
      animation: myfd-shield-turn 4.8s ease-in-out infinite;
    }

    #myfd-loader .myfd-brand-emblem img { display: block; width: 37px; height: auto; }

    #myfd-loader .myfd-brand-wordmark { text-align: left; }
    #myfd-loader .myfd-brand-name { display: block; font-size: 39px; line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; }
    #myfd-loader .myfd-brand-descriptor { display: block; margin-top: 5px; font-size: 9px; line-height: 1.4; font-weight: 700; letter-spacing: 0.18em; }

    @keyframes myfd-ring-turn { to { transform: rotate(360deg); } }

    @keyframes myfd-shield-turn {
      0%, 32% { transform: rotateY(0deg); }
      75%, 100% { transform: rotateY(360deg); }
    }

    @media (max-width: 480px) {
      #myfd-loader .myfd-brand-lockup { gap: 13px; }
      #myfd-loader .myfd-logo-stage { width: 72px; height: 72px; flex-basis: 72px; }
      #myfd-loader .myfd-brand-emblem { width: 54px; height: 54px; }
      #myfd-loader .myfd-brand-emblem img { width: 32px; }
      #myfd-loader .myfd-brand-name { font-size: 34px; }
      #myfd-loader .myfd-brand-descriptor { font-size: 8px; }
    }

    @media (prefers-reduced-motion: reduce) {
      #myfd-loader .myfd-loading-ring, #myfd-loader .myfd-brand-emblem { animation: none; }
    }

/* A real startup failure exposes a reload action outside the inert React tree. */
#myfd-startup-error { display: none; }
html[data-myfd-startup-error] #myfd-loader,
html[data-myfd-startup-error] #myfd-app-root { display: none !important; }
html[data-myfd-startup-error] #myfd-startup-error { display: block; }
.myfd-startup-message {
  max-width: 640px;
  margin: 0 auto;
  padding: 80px 24px;
  color: var(--ui-text, #192c3a);
  background: var(--ui-bg, #fff);
  font-family: Arial, Helvetica, sans-serif;
}
.myfd-startup-message h1 { font-size: 28px; line-height: 1.2; }
.myfd-startup-message p { margin: 20px 0; line-height: 1.6; }
.myfd-startup-message a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--ui-border-strong, #839bac);
  border-radius: 5px;
  color: var(--ui-link, #155f7d);
}
.myfd-startup-message a:focus-visible { outline: 3px solid var(--ui-focus, #bb7511); outline-offset: 3px; }
