/* VGO 通用样式 v1.0 */
/* 骨架屏 */
.vgo-skeleton { background: linear-gradient(90deg, #F1F5F9 25%, #E2E8F0 50%, #F1F5F9 75%); background-size: 200% 100%; animation: vgo-skel 1.4s ease-in-out infinite; border-radius: 8px; }
@keyframes vgo-skel { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.vgo-skel-card { background:#fff; border-radius:14px; border:1px solid rgba(15,23,42,.08); padding:14px; display:flex; flex-direction:column; gap:10px; }
.vgo-skel-line { height:14px; }
.vgo-skel-line.short { width: 60%; }
.vgo-skel-line.mid { width: 80%; }
.vgo-skel-img { height: 120px; }

/* 统一底部导航 */
.vgo-dock { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px;
  background:rgba(255,255,255,.97); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-top:1px solid rgba(15,23,42,.08); padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));
  display:grid; grid-template-columns:repeat(5,1fr); align-items:center; z-index:200;
  box-shadow:0 -4px 16px rgba(0,0,0,.05); }
.vgo-dock-btn { display:flex; flex-direction:column; align-items:center; gap:2px; background:transparent;
  border:none; color:#94A3B8; cursor:pointer; min-height:48px; justify-content:center; font-family:inherit; font-size:10px; font-weight:600; text-decoration:none; }
.vgo-dock-btn.active { color:#2563EB; }
.vgo-dock-btn .ico { font-size:19px; line-height:1; }
.vgo-dock-btn .badge { position:absolute; top:2px; right:calc(50% - 18px); background:#DC2626; color:#fff;
  font-size:9px; font-weight:800; padding:1px 5px; border-radius:9999px; }

/* 全局 toast */
.vgo-toast { position:fixed; top:calc(env(safe-area-inset-top,0px) + 20px); left:50%;
  transform:translateX(-50%) translateY(-12px); background:rgba(15,23,42,.94); color:#fff;
  padding:11px 20px; border-radius:9999px; font-size:13px; font-weight:600;
  opacity:0; pointer-events:none; transition:.22s; z-index:9999; max-width:90%; text-align:center; }
.vgo-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
.vgo-toast.ok { background:#059669; }
.vgo-toast.err { background:#DC2626; }

/* 页面底部留出 dock 空间 */
.vgo-with-dock { padding-bottom: 80px !important; }
