:root { --fw-earth: url('/static/pic/earth-v1.webp'); }
/* One brand layer for both full page loads and persistent-shell navigation. */
.fw-user-body .fw-brand-logo img { width: 44px; height: 44px; max-width: none; filter: drop-shadow(0 0 5px #ff842a50) drop-shadow(0 0 13px #ff690025); }
.auth-body .auth-brand-emblem img { width: 160px; height: 160px; object-fit: contain; filter: drop-shadow(0 0 9px #ff782a55); }
.auth-body .auth-brand-emblem { width: 160px; height: 160px; }
.fw-admin-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; text-decoration: none; color: #f5f0e9; }
.fw-admin-brand > img { width: 44px; height: 44px; object-fit: contain; filter: drop-shadow(0 0 8px #ff842a55); }
.fw-admin-brand > span { font: 600 18px/1.2 'IBM Plex Sans', sans-serif; letter-spacing: -.04em; }
.fw-admin-brand small { display: block; margin-top: 4px; font: 400 8px/1.4 'IBM Plex Mono', monospace; color: #ca976b; letter-spacing: .13em; text-transform: uppercase; }
.pwa-launch[hidden], .pwa-install-action[hidden] { display: none !important; }
.pwa-launch { position: fixed; z-index: 125; right: max(16px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; min-height: 0; padding: 0; border: 0; border-radius: 12px; background: transparent; box-shadow: none; cursor: pointer; }
.pwa-launch img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 5px #ff842a80) drop-shadow(0 0 16px #ff690035); }
.pwa-launch:hover img { filter: drop-shadow(0 0 6px #ffa457a0) drop-shadow(0 0 22px #ff6a0055); }
.pwa-launch:focus-visible, .pwa-dialog button:focus-visible, .fw-admin-brand:focus-visible { outline: 2px solid #ffb577; outline-offset: 3px; }
.pwa-dialog { position: fixed; inset: 0; margin: auto; width: min(420px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 32px; border: 1px solid #ff9a4840; border-radius: 24px; background: radial-gradient(ellipse at 50% 0, #70341425, transparent 55%), #0b0c0f; color: #eee9e3; box-shadow: 0 0 80px #f66c1014; text-align: center; }
.pwa-dialog::backdrop { background: #000b; backdrop-filter: blur(6px); }
.pwa-close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; border: 0; border-radius: 12px; background: transparent; color: #acaaa9; font-size: 26px; cursor: pointer; }
.pwa-dialog .pwa-app-icon { display: block; margin: 0 auto 18px; border-radius: 12px; box-shadow: 0 0 35px #ff710025; filter: none; }
.pwa-eyebrow { color: #d8996c; font: 400 9px/1.5 'IBM Plex Mono', monospace; letter-spacing: .13em; text-transform: uppercase; }
.pwa-dialog h2 { margin: 10px 0; font: 600 23px/1.25 'IBM Plex Sans', sans-serif; letter-spacing: -.035em; }
.pwa-dialog p { color: #aaa8ac; font: 400 13px/1.6 'IBM Plex Sans', sans-serif; margin: 0 0 18px; }
.pwa-dialog .pwa-guidance { text-align: left; padding: 14px; margin-top: 20px; border: 1px solid #ffffff0d; border-radius: 12px; color: #d8d5d2; }
.pwa-install-action { width: 100%; min-height: 44px; margin-bottom: 18px; border: 1px solid #ff933f; border-radius: 12px; background: linear-gradient(110deg, #fa790c, #e95300); color: #fff; font: 600 14px 'IBM Plex Sans', sans-serif; cursor: pointer; }
.pwa-install-action:disabled { opacity: .6; cursor: wait; }
.pwa-privacy { display: flex; align-items: flex-start; gap: 8px; text-align: left; border-top: 1px solid #ffffff10; padding-top: 16px; color: #85878b; font: 400 11px/1.5 'IBM Plex Sans', sans-serif; }
.pwa-privacy img { flex: 0 0 auto; margin-top: 2px; filter: invert(1); opacity: .5; }
@media (max-width: 860px) {
  .fw-admin-brand { margin: 0; }
  .fw-admin-brand > img { width: 36px; height: 36px; }
  .fw-admin-brand small { display: none; }
}
@media (max-width: 640px) {
  :root { --fw-earth: url('/static/pic/earth-mobile-v1.webp'); }
  .fw-user-body .fw-brand-logo img { width: 35px; height: 35px; }
  .pwa-launch { right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); width: 48px; height: 48px; }
  .pwa-dialog { padding: 28px 20px 22px; }
}
@media (display-mode: standalone) { .pwa-launch { display: none; } }
