/* Yino PWA UI enhancements (non-invasive). Safe defaults if page variables don't exist. */
:root{
  --pwa-accent: var(--primary, #3b82f6);
  --pwa-ring: var(--ring, rgba(59,130,246,.35));
  --pwa-bg: var(--bg, #0f172a);
  --pwa-card: var(--card, #0b1220);
  --pwa-card2: var(--card-2, #0d1526);
  --pwa-text: var(--text, #e5e7eb);
  --pwa-muted: var(--muted, #94a3b8);
  --pwa-shadow: var(--shadow, 0 10px 30px rgba(2,8,23,.45));
  --pwa-radius: var(--radius, 14px);
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* Smooth page transitions (works even for server-rendered pages) */
html.pwa-enter body{
  opacity:0;
  transform:translateY(6px);
}
html.pwa-ready body{
  opacity:1;
  transform:none;
  transition:opacity .22s ease, transform .22s ease;
}
html.pwa-leave body{
  opacity:0;
  transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease;
}

/* Top progress bar */
#pwaProgress{position:fixed;left:0;right:0;top:0;height:3px;z-index:10050;pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .15s ease, transform .15s ease;}
#pwaProgress.show{opacity:1;transform:translateY(0)}
#pwaProgress .bar{height:100%;width:0%;background:linear-gradient(90deg, rgba(255,255,255,.25), var(--pwa-accent)); box-shadow:0 0 0 6px var(--pwa-ring);}

/* Loading overlay */
#pwaLoadingOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:10040;background:rgba(2,6,23,.55);backdrop-filter:blur(2px)}
#pwaLoadingOverlay.show{display:flex;}
#pwaLoadingOverlay .spinner{width:56px;height:56px;border-radius:50%;border:6px solid rgba(255,255,255,.25);border-top-color:var(--pwa-accent);animation:pwa-spin 1s linear infinite;box-shadow:0 4px 22px rgba(59,130,246,.5), inset 0 0 12px rgba(255,255,255,.25);background:radial-gradient(20px 20px at 60% 40%, rgba(255,255,255,.25), transparent 60%)}
@keyframes pwa-spin{to{transform:rotate(360deg)}}

/* Install banner (created by JS if missing) */
#pwaBanner{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:10030;background:linear-gradient(180deg,var(--pwa-card),var(--pwa-card2));border:1px solid rgba(148,163,184,.25);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);padding:12px 14px;gap:10px;align-items:center;}
#pwaBanner.show{display:flex;}
#pwaBanner .icon{width:36px;height:36px;border-radius:10px;background:radial-gradient(80% 80% at 20% 20%, rgba(59,130,246,.9), rgba(59,130,246,.55));}
#pwaBanner .txt{flex:1;color:var(--pwa-muted);font-size:13px;line-height:1.25}
#pwaBanner .cta{white-space:nowrap;display:flex;gap:8px}
#pwaBanner button{margin:0;width:auto;padding:10px 12px;border-radius:10px;font-weight:800;border:none;cursor:pointer}
#pwaBanner .install{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff}
#pwaBanner .dismiss{background:transparent;color:var(--pwa-text);border:1px solid rgba(148,163,184,.22)}

/* Gentle "lift" animation for cards (opt-in: add class pwa-anim-card) */
.pwa-anim-card{transform:translateY(2px);opacity:.98;transition:transform .18s ease, filter .18s ease, opacity .18s ease}
.pwa-anim-card:hover{transform:translateY(-2px);filter:brightness(1.02);opacity:1}
