/* 全站共享基础样式 + 响应式 + 骨架占位 */
:root{
  --bg:#f6f7fb; --card:#ffffff; --text:#0f172a; --muted:#64748b; --brand:#695CFF;
  --border:#e7e9f2; --ok:#16a34a; --fail:#ef4444; --shadow: 0 10px 26px rgba(17,23,41,.08);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:var(--bg); color:var(--text); font:14px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Arial,"Microsoft YaHei",sans-serif;}
a{color:var(--muted); text-decoration:none}
.container{max-width:980px;margin:0 auto;padding:24px}
.nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:12px 4px;border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#9aa6ff 0%,#695CFF 100%);box-shadow:0 2px 10px rgba(105,92,255,.35)}
.brand b{font-weight:700}
.nav-links{display:flex;gap:18px}
.card{background:var(--card); border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:16px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.btn{cursor:pointer;border:1px solid transparent;border-radius:9px;padding:10px 14px;font-weight:600;color:#fff;background:var(--brand);box-shadow:0 8px 20px rgba(105,92,255,.25)}
.btn.light{background:#f3f4ff;color:#4f5dff}
.btn.gray{background:#f3f4f6;color:#334155}
.btn.danger{background:#ef4444}
.stack{display:flex;gap:10px;flex-wrap:wrap}
.status{min-height:18px;color:var(--muted);margin-top:6px}
.muted{color:var(--muted)}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#edf2ff;color:#4f5dff;font-size:12px}
/* skeleton */
.skeleton{display:inline-block;height:1em;background:linear-gradient(90deg,#f3f4f6,#eef1f6,#f3f4f6);background-size:200% 100%;animation:sh 1s linear infinite;border-radius:6px}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* 顶部昵称菜单：仅在登录后由 JS 控制显隐，避免误触 */
#nav-user-wrap{ position:relative; }
#nav-user-wrap #nav-user-menu{ display:none; position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-shadow:0 8px 20px rgba(17,23,41,.08);font-size:13px;white-space:nowrap; }
#nav-user-wrap.open #nav-user-menu{ display:block; }
/* 响应式 */
@media (max-width: 960px){
  .container{padding:18px}
}
@media (max-width: 640px){
  .container{padding:16px}
  .card{padding:14px}
  .btn{padding:10px 14px}
  .nav{padding:10px 0}
}

