/* =====================================================================
   SkyBox · 设计系统 (theme.css)
   顶级 UI · 支持系统深浅色 + 手动切换 · 动态极光 · 移动端适配
   ===================================================================== */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; background:var(--bg); transition:background-color .5s ease; }
body {
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  color:var(--text); background:transparent; min-height:100vh; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
  transition:background-color .5s ease, color .5s ease;
}
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font-family:inherit; font-size:inherit; color:inherit; }
img { max-width:100%; display:block; }
::selection { background:var(--c-primary); color:#fff; }

/* ---------- 主题令牌 ---------- */
:root {
  --c-primary: #8b5cf6;
  --c-primary-2: #c026d3;
  --c-fuchsia: #d946ef;
  --c-rose: #f43f5e;
  --c-gold: #f59e0b;
  --c-gold-2: #fbbf24;
  --c-success: #10b981;
  --c-warning: #f59e0b;
  --c-danger: #ef4444;
  --c-info: #38bdf8;

  --grad-brand: linear-gradient(135deg, #8b5cf6 0%, #c026d3 45%, #f43f5e 100%);
  --grad-brand-soft: linear-gradient(135deg, rgba(139,92,246,.16), rgba(192,38,211,.12), rgba(244,63,94,.14));
  --grad-gold: linear-gradient(135deg, #f59e0b 0%, #f43f5e 100%);
  --grad-aurora: linear-gradient(120deg, #8b5cf6, #d946ef, #f43f5e, #f59e0b);

  color-scheme: light;
  --bg: #f4f3fa;
  --bg-glow-1: rgba(139,92,246,.18);
  --bg-glow-2: rgba(217,70,239,.14);
  --bg-glow-3: rgba(244,63,94,.12);
  --surface: #ffffff;
  --surface-glass: rgba(255,255,255,.72);
  --surface-2: #f7f6fc;
  --surface-hover: #f1eefc;
  --border: rgba(28,20,66,.08);
  --border-strong: rgba(28,20,66,.16);
  --text: #211d33;
  --text-soft: #514c66;
  --text-muted: #8b86a0;
  --nav-bg: rgba(255,255,255,.78);
  --input-bg: #ffffff;
  --code-bg: rgba(139,92,246,.08);
  --shadow-xs: 0 1px 2px rgba(30,22,70,.05);
  --shadow-sm: 0 4px 14px rgba(30,22,70,.07);
  --shadow-md: 0 12px 34px rgba(30,22,70,.10);
  --shadow-lg: 0 24px 64px rgba(30,22,70,.14);
  --shadow-brand: 0 12px 34px rgba(139,92,246,.28);
  --spot-c: rgba(139,92,246,.13);
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0a0a12;
  --bg-glow-1: rgba(139,92,246,.34);
  --bg-glow-2: rgba(217,70,239,.22);
  --bg-glow-3: rgba(244,63,94,.18);
  --surface: rgba(255,255,255,.045);
  --surface-glass: rgba(22,20,38,.62);
  --surface-2: rgba(255,255,255,.055);
  --surface-hover: rgba(255,255,255,.09);
  --border: rgba(255,255,255,.09);
  --border-strong: rgba(255,255,255,.18);
  --text: #f4f2fb;
  --text-soft: #c3bfd6;
  --text-muted: #837f9c;
  --nav-bg: rgba(12,11,20,.72);
  --input-bg: rgba(255,255,255,.05);
  --code-bg: rgba(139,92,246,.18);
  --shadow-xs: 0 1px 2px rgba(0,0,0,.4);
  --shadow-sm: 0 4px 16px rgba(0,0,0,.35);
  --shadow-md: 0 14px 40px rgba(0,0,0,.5);
  --shadow-lg: 0 28px 80px rgba(0,0,0,.6);
  --shadow-brand: 0 12px 40px rgba(139,92,246,.38);
  --spot-c: rgba(139,92,246,.20);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #0a0a12;
    --bg-glow-1: rgba(139,92,246,.34);
    --bg-glow-2: rgba(217,70,239,.22);
    --bg-glow-3: rgba(244,63,94,.18);
    --surface: rgba(255,255,255,.045);
    --surface-glass: rgba(22,20,38,.62);
    --surface-2: rgba(255,255,255,.055);
    --surface-hover: rgba(255,255,255,.09);
    --border: rgba(255,255,255,.09);
    --border-strong: rgba(255,255,255,.18);
    --text: #f4f2fb;
    --text-soft: #c3bfd6;
    --text-muted: #837f9c;
    --nav-bg: rgba(12,11,20,.72);
    --input-bg: rgba(255,255,255,.05);
    --code-bg: rgba(139,92,246,.18);
    --shadow-xs: 0 1px 2px rgba(0,0,0,.4);
    --shadow-sm: 0 4px 16px rgba(0,0,0,.35);
    --shadow-md: 0 14px 40px rgba(0,0,0,.5);
    --shadow-lg: 0 28px 80px rgba(0,0,0,.6);
    --shadow-brand: 0 12px 40px rgba(139,92,246,.38);
    --spot-c: rgba(139,92,246,.20);
  }
}

/* ---------- 动态极光背景 ---------- */
.bg-aurora {
  position:fixed; inset:0; z-index:-2; overflow:hidden; pointer-events:none;
  background:radial-gradient(ellipse 80% 50% at 50% -10%, rgba(139,92,246,.10), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg));
}
.bg-aurora::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:56px 56px; opacity:.35;
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%, #000 20%, transparent 75%);
  mask-image:radial-gradient(ellipse 90% 70% at 50% 0%, #000 20%, transparent 75%);
}
.bg-aurora .blob { position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; will-change:transform; }
.bg-aurora .blob.b1 { width:42vw; height:42vw; left:-8vw; top:-12vw; background:radial-gradient(circle, var(--bg-glow-1), transparent 70%); animation:blobFloat 22s ease-in-out infinite; }
.bg-aurora .blob.b2 { width:36vw; height:36vw; right:-6vw; top:8vh; background:radial-gradient(circle, var(--bg-glow-2), transparent 70%); animation:blobFloat 26s ease-in-out infinite reverse; }
.bg-aurora .blob.b3 { width:34vw; height:34vw; left:24vw; bottom:-16vw; background:radial-gradient(circle, var(--bg-glow-3), transparent 70%); animation:blobFloat 30s ease-in-out infinite; }
@keyframes blobFloat {
  0%,100% { transform:translate(0,0) scale(1); }
  33% { transform:translate(6vw,-4vh) scale(1.12); }
  66% { transform:translate(-4vw,5vh) scale(.92); }
}

body::after {
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}

/* ---------- 主题切换按钮 ---------- */
.theme-toggle {
  position:relative; width:40px; height:40px; flex-shrink:0; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:12px; cursor:pointer; border:1px solid var(--border);
  background:var(--surface-glass); color:var(--text-soft);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), background .3s, color .3s, border-color .3s, box-shadow .3s;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.theme-toggle:hover { color:var(--text); border-color:var(--border-strong); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.theme-toggle:active { transform:scale(.92); }
.theme-toggle svg { width:20px; height:20px; }
.theme-toggle .ico { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; transition:opacity .35s, transform .45s; }
.theme-toggle .ico[data-mode="light"] { transform:scale(0) rotate(-120deg); opacity:0; }
.theme-toggle .ico[data-mode="dark"] { transform:scale(0) rotate(120deg); opacity:0; }
.theme-toggle .ico[data-mode="auto"] { transform:scale(0) rotate(-120deg); opacity:0; }
.theme-toggle[data-mode="light"] .ico[data-mode="light"],
.theme-toggle[data-mode="dark"] .ico[data-mode="dark"],
.theme-toggle[data-mode="auto"] .ico[data-mode="auto"] { transform:scale(1) rotate(0); opacity:1; }

.glass { background:var(--surface-glass); border:1px solid var(--border); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); }

/* ---------- 按钮 ---------- */
.btn, .btn-primary {
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 26px; border:none; border-radius:13px; cursor:pointer;
  background:var(--grad-brand); color:#fff; font-weight:600; font-size:15px;
  overflow:hidden; text-decoration:none; transition:transform .3s, box-shadow .3s, filter .3s;
  box-shadow:var(--shadow-brand);
}
.btn::after, .btn-primary::after {
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform:skewX(-20deg); transition:left .6s ease;
}
.btn:hover::after, .btn-primary:hover::after { left:140%; }
.btn:hover, .btn-primary:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); filter:brightness(1.05); }
.btn:active, .btn-primary:active { transform:translateY(0) scale(.98); }
.btn:disabled, .btn-primary:disabled { opacity:.55; cursor:not-allowed; transform:none; }

.btn-small {
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:5px; overflow:hidden;
  padding:8px 16px; border:none; border-radius:10px; cursor:pointer;
  background:var(--grad-brand-soft); color:var(--c-primary); font-size:13px; font-weight:600;
  text-decoration:none; transition:transform .25s, box-shadow .25s, background .25s, color .25s;
}
.btn-small:hover { transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.btn-danger { background:rgba(239,68,68,.13); color:var(--c-danger); }
.btn-danger:hover { background:rgba(239,68,68,.22); }
.btn-green { background:rgba(16,185,129,.13); color:var(--c-success); }
.btn-green:hover { background:rgba(16,185,129,.22); }
.btn-gold { background:linear-gradient(135deg, rgba(245,158,11,.16), rgba(244,63,94,.14)); color:var(--c-gold); }

.ripple-ink { position:absolute; border-radius:50%; transform:scale(0); background:rgba(255,255,255,.5); pointer-events:none; animation:ripple .6s ease-out; }
@keyframes ripple { to { transform:scale(4); opacity:0; } }

/* ---------- 表单 ---------- */
.form-group { margin-bottom:18px; }
.form-group label { display:block; color:var(--text-soft); margin-bottom:8px; font-size:13px; font-weight:600; letter-spacing:.2px; }
.form-group input, .form-group textarea, .form-group select,
input[type="text"], input[type="password"], input[type="number"], input[type="url"], input[type="email"],
textarea, select {
  width:100%; padding:12px 15px; border-radius:12px; color:var(--text);
  border:1px solid var(--border-strong); background:var(--input-bg);
  font-size:15px; outline:none; transition:border-color .3s, box-shadow .3s, background .3s;
}
.form-group input::placeholder, textarea::placeholder, input::placeholder { color:var(--text-muted); }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus,
input:focus, textarea:focus, select:focus {
  border-color:var(--c-primary); box-shadow:0 0 0 4px rgba(139,92,246,.14), 0 0 20px rgba(139,92,246,.10);
}
.form-group textarea { font-family:inherit; resize:vertical; min-height:88px; line-height:1.6; }
select { appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size:6px 6px; background-repeat:no-repeat; padding-right:38px; }
select option { background:var(--surface); color:var(--text); }

/* ---------- 提示消息 ---------- */
.success-msg, .error-msg, .success, .error {
  display:block; padding:13px 16px; border-radius:12px;
  margin-bottom:18px; font-size:14px; line-height:1.6; animation:fadeUp .4s ease;
}
.success-msg, .success { background:rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.28); color:var(--c-success); }
.error-msg, .error { background:rgba(239,68,68,.12); border:1px solid rgba(239,68,68,.28); color:var(--c-danger); }

/* ---------- 徽章 ---------- */
.badge, .nav-level, .sale-status {
  display:inline-flex; align-items:center; gap:4px; padding:4px 12px; border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.2px; white-space:nowrap;
}
.badge-green, .sale-status.已完成 { background:rgba(16,185,129,.14); color:var(--c-success); }
.badge-red { background:rgba(239,68,68,.14); color:var(--c-danger); }
.badge-gray { background:var(--surface-hover); color:var(--text-muted); }
.level-天卡 { background:rgba(34,211,238,.14); color:#22d3ee; }
.level-周卡 { background:var(--surface-hover); color:var(--text-muted); }
.level-月卡 { background:rgba(139,92,246,.16); color:var(--c-primary); }
.level-年卡 { background:linear-gradient(135deg, rgba(245,158,11,.2), rgba(244,63,94,.18)); color:var(--c-gold); box-shadow:0 0 18px rgba(245,158,11,.28); }
.level-永久 { background:linear-gradient(135deg, rgba(16,185,129,.2), rgba(59,130,246,.2)); color:var(--c-success); box-shadow:0 0 18px rgba(16,185,129,.3); }
.badge-status, .sale-status { padding:5px 13px; font-weight:700; }
.badge-status.审核中, .sale-status.审核中 { background:rgba(245,158,11,.16); color:var(--c-warning); }
.badge-status.审核通过 { background:rgba(139,92,246,.16); color:var(--c-primary); }
.badge-status.退款中, .sale-status.退款中 { background:rgba(217,70,239,.16); color:var(--c-fuchsia); }
.badge-status.已完成 { background:rgba(16,185,129,.14); color:var(--c-success); }

/* ---------- 表格 ---------- */
.table-wrap { overflow-x:auto; border-radius:14px; border:1px solid var(--border); }
.admin-table { width:100%; border-collapse:collapse; font-size:14px; min-width:640px; }
.admin-table th {
  text-align:left; padding:13px 16px; color:var(--text-muted); font-weight:600; font-size:12px;
  text-transform:uppercase; letter-spacing:.6px; border-bottom:1px solid var(--border);
  background:var(--surface-2); position:sticky; top:0; z-index:2;
}
.admin-table td { padding:14px 16px; border-bottom:1px solid var(--border); color:var(--text-soft); }
.admin-table tbody tr { transition:background .2s; }
.admin-table tbody tr:hover td { background:var(--surface-hover); }
.admin-table tbody tr:last-child td { border-bottom:none; }
.admin-table code { background:var(--code-bg); color:var(--c-primary); padding:3px 9px; border-radius:7px; font-size:12.5px; font-family:"SFMono-Regular", Consolas, "Liberation Mono", monospace; word-break:break-all; }

/* ---------- 分页 ---------- */
.pagination { margin-top:20px; display:flex; gap:8px; flex-wrap:wrap; }
.page-link { position:relative; overflow:hidden; min-width:36px; height:36px; padding:0 10px; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:14px; font-weight:500; background:var(--surface); color:var(--text-soft); border:1px solid var(--border); transition:.25s; }
.page-link:hover { background:var(--surface-hover); color:var(--text); border-color:var(--border-strong); transform:translateY(-1px); }
.page-link.active { background:var(--grad-brand); color:#fff; border-color:transparent; box-shadow:var(--shadow-brand); }

.grad-text { background:var(--grad-aurora); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }

::-webkit-scrollbar { width:9px; height:9px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:99px; border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-thumb:hover { background:var(--text-muted); background-clip:content-box; }

@keyframes fadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes popIn { 0% { opacity:0; transform:scale(.92); } 100% { opacity:1; transform:scale(1); } }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes pulseGlow { 0%,100% { box-shadow:0 0 0 0 rgba(139,92,246,.35); } 50% { box-shadow:0 0 0 12px rgba(139,92,246,0); } }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal { opacity:1; transform:none; }
}
@media (max-width:768px) { .btn, .btn-primary { width:100%; } }

/* ---------- 认证 / 登录 ---------- */
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; position:relative; }
.auth-card {
  width:100%; max-width:420px; border-radius:24px; padding:42px 38px 32px;
  background:var(--surface-glass); border:1px solid var(--border);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  box-shadow:var(--shadow-lg); animation:popIn .5s cubic-bezier(.16,1,.3,1); position:relative; overflow:hidden;
}
.auth-card::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad-brand); }
.brand-mark {
  width:66px; height:66px; border-radius:19px; display:flex; align-items:center; justify-content:center;
  background:var(--grad-brand); color:#fff; font-size:30px; font-weight:900; margin:0 auto 18px;
  box-shadow:var(--shadow-brand); position:relative; overflow:hidden;
}
.brand-mark::after { content:""; position:absolute; inset:0; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.55), transparent 70%); transform:translateX(-100%); animation:brandShine 3.2s ease infinite; }
@keyframes brandShine { 60%,100% { transform:translateX(100%); } }
.auth-title { text-align:center; font-size:24px; font-weight:800; margin-bottom:6px; letter-spacing:-.3px; }
.auth-subtitle { text-align:center; color:var(--text-muted); font-size:13px; margin-bottom:26px; }
.auth-tabs { display:flex; gap:4px; background:var(--surface-2); border:1px solid var(--border); border-radius:14px; padding:4px; margin-bottom:24px; }
.auth-tab { flex:1; padding:10px; text-align:center; border-radius:10px; cursor:pointer; color:var(--text-muted); font-size:14px; font-weight:600; transition:.25s; border:none; background:transparent; }
.auth-tab.active { background:var(--grad-brand); color:#fff; box-shadow:var(--shadow-brand); }
.auth-panel { display:none; }
.auth-panel.active { display:block; animation:fadeUp .4s ease; }
.auth-foot { text-align:center; color:var(--text-muted); font-size:12px; margin-top:18px; line-height:1.7; }
.auth-foot strong { color:var(--c-primary); }

/* ---------- 鼠标跟随聚光（卡片） ---------- */
.spot { position:relative; }
.spot::before {
  content:""; position:absolute; inset:0; border-radius:inherit; opacity:0;
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,50%), var(--spot-c), transparent 45%);
  transition:opacity .35s ease; pointer-events:none; z-index:0;
}
.spot:hover::before { opacity:1; }
.theme-toggle--fixed { position:fixed; top:16px; right:16px; z-index:9999; }

/* ---------- 页面加载动画 ---------- */
.page-loader {
  position:fixed; inset:0; z-index:99990; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:18px; background:var(--bg);
  transition:opacity .5s ease, visibility .5s ease;
}
.page-loader.done { opacity:0; visibility:hidden; pointer-events:none; }
.loader-logo {
  width:62px; height:62px; border-radius:18px; display:flex; align-items:center; justify-content:center;
  background:var(--grad-brand); color:#fff; font-size:27px; font-weight:900; box-shadow:var(--shadow-brand);
  animation:loaderPulse 1.6s ease-in-out infinite;
}
@keyframes loaderPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.09)} }
.loader-ring {
  width:44px; height:44px; border-radius:50%; border:3px solid var(--border-strong);
  border-top-color:var(--c-primary); border-right-color:var(--c-fuchsia); animation:spin .8s linear infinite;
}
.page-loader .loader-brand { font-size:13px; font-weight:700; letter-spacing:3px; color:var(--text-muted); }

/* ---------- 顶部滚动进度条 ---------- */
.scroll-progress { position:fixed; top:0; left:0; height:3px; width:0; background:var(--grad-brand); z-index:99980; box-shadow:0 0 8px rgba(139,92,246,.5); }

/* ---------- 通用旋转加载 ---------- */
.spinner { width:16px; height:16px; border-radius:50%; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; animation:spin .6s linear infinite; display:inline-block; vertical-align:-3px; }

/* ---------- 骨架屏微光 ---------- */
.skeleton { position:relative; overflow:hidden; background:var(--surface-2); border-radius:10px; }
.skeleton::after {
  content:""; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, var(--surface-hover), transparent); animation:shimmer 1.4s infinite;
}
@keyframes shimmer { 100% { transform:translateX(100%); } }

/* ---------- 未读消息弹窗 ---------- */
.unread-modal-overlay {
  position:fixed; inset:0; z-index:99995; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); padding:20px;
  opacity:0; transition:opacity .3s ease;
}
.unread-modal-overlay.show { opacity:1; }
.unread-modal {
  width:100%; max-width:380px; border-radius:22px; padding:30px 26px 24px; text-align:center;
  background:var(--surface-glass); border:1px solid var(--border-strong); box-shadow:var(--shadow-lg);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  transform:translateY(14px) scale(.95); transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.unread-modal-overlay.show .unread-modal { transform:translateY(0) scale(1); }
.unread-modal .um-ico {
  width:64px; height:64px; margin:0 auto 14px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:30px; background:var(--grad-brand); box-shadow:var(--shadow-brand); animation:loaderPulse 1.5s ease-in-out infinite;
}
.unread-modal h3 { font-size:19px; font-weight:800; margin-bottom:8px; letter-spacing:-.2px; }
.unread-modal p { color:var(--text-muted); font-size:14px; margin-bottom:22px; line-height:1.6; }
.unread-modal .um-actions { display:flex; gap:10px; }
.unread-modal .um-actions .btn, .unread-modal .um-actions .btn-small { flex:1; }

/* ---------- 消息高亮闪烁 ---------- */
.msg-highlight { border-radius:14px; animation:msgFlash 2.2s ease; }
@keyframes msgFlash { 0%{background:rgba(139,92,246,.30); box-shadow:0 0 0 3px rgba(139,92,246,.35);} 100%{background:transparent; box-shadow:0 0 0 0 rgba(139,92,246,0);} }
