/* First paint and page changes share the matchday palette, before React loads. */
:root { color-scheme: dark; background: #071a13; }
html, html body { margin: 0; min-width: 0; background: #071a13; }
html { color: #f2f6ed; }
#root:empty, .page-loading {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 100svh;
  padding: 28px;
  background: #071a13;
  color: #f2f6ed;
  text-align: center;
  font: 500 16px/1.5 'DM Sans', system-ui, sans-serif;
}
#root:empty::before, .page-loading-mark {
  content: '';
  display: block;
  width: 42px;
  height: 42px;
  background: #d4f65a;
  mask: url('/media/brand/goalrook-mark.svg') center / contain no-repeat;
}
#root:empty::after { content: 'GoalRook'; letter-spacing: -.03em; font-size: 22px; }
.page-loading { min-height: 240px; background: #10271e; border: 1px solid #355244; border-radius: 12px; }
.page-loading-initial { min-height: 100svh; border: 0; border-radius: 0; background: #071a13; }
.page-loading p { max-width: 34rem; margin: 0; color: #bed0c2; }
.page-loading-track { width: 112px; height: 3px; overflow: hidden; border-radius: 4px; background: #355244; }
.page-loading-track::after, html[data-navigating]::after {
  content: '';
  display: block;
  width: 40%;
  height: 100%;
  background: #d4f65a;
  animation: gr-loading 1.2s ease-in-out infinite alternate;
}
html[data-navigating]::after { position: fixed; inset: 0 auto auto 0; height: 3px; z-index: 2147483647; pointer-events: none; }
.gr-navigation-status {
  position: fixed;
  inset: auto 16px max(20px, env(safe-area-inset-bottom)) auto;
  z-index: 2147483646;
  max-width: calc(100vw - 64px);
  padding: 12px 18px;
  border: 1px solid #506e58;
  border-radius: 10px;
  background: #10271e;
  color: #f2f6ed;
  box-shadow: 0 8px 32px #0006;
  font: 500 14px/1.4 'DM Sans', system-ui, sans-serif;
  pointer-events: none;
}
.page-load-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.page-load-actions button, .page-load-actions a { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid #637d6b; border-radius: 8px; background: #173429; color: #f2f6ed; font: inherit; text-decoration: none; cursor: pointer; }
.page-load-actions button { background: #d4f65a; border-color: #d4f65a; color: #071a13; }
.page-load-actions :focus-visible { outline: 2px solid #d4f65a; outline-offset: 4px; }
@keyframes gr-loading { to { transform: translateX(150%); } }
@keyframes gr-page-in { from { opacity: .5; } to { opacity: 1; } }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation-duration: 140ms; }
::view-transition-new(root) { animation: gr-page-in 160ms ease-out both; }
::view-transition-group(root) { animation-duration: 160ms; }
html[data-page-hidden]::after, html[data-page-hidden] .page-loading-track::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  html[data-navigating]::after, .page-loading-track::after { animation: none; width: 100%; }
}
