/*
  PE-510: the page's own styles live in this file, not in inline <style>
  blocks in index.html. style-src in _headers still carries 'unsafe-inline'
  only because the Flutter engine injects two <style> tags at startup
  (blocked on both the wasm and the JS build when it was removed —
  text-field selection/caret, autofill and focus-outline rules). Keep our
  own CSS here so a nonce/hash CSP later only has the engine to cover.
*/

/* Print support: keep background colours in the PDF / print preview. */
@media print {
  body {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}

/*
  PE-34 loading splash: logo + spinner shown from the first paint until
  Flutter's `flutter-first-frame` event removes it (see index.html).
*/
html, body { margin: 0; height: 100%; background: #ffffff; }
html.pe-dark, html.pe-dark body { background: #000000; }
#pe-loading {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 28px; background: inherit;
  transition: opacity 200ms ease-out;
}
#pe-loading.pe-done { opacity: 0; pointer-events: none; }
#pe-loading img { width: 96px; height: 96px; border-radius: 22px; }
#pe-loading .pe-spinner {
  width: 32px; height: 32px; box-sizing: border-box; border-radius: 50%;
  border: 3px solid rgba(241, 90, 40, 0.2); border-top-color: #F15A28;
  animation: pe-spin 0.8s linear infinite;
}
@keyframes pe-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #pe-loading .pe-spinner { animation-duration: 2.4s; }
}
