/* ===== 用户端面板样式 ===== */
/* 默认暗色主题变量（原服务端 rootVars 注入） */
:root{--primary: #6366f1; --primary-light: #818cf8; --primary-glow: rgba(99, 102, 241, 0.45); --accent: #22d3ee; --bg-dark: #0c1222; --glass: linear-gradient(165deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.015) 100%); --glass-highlight: rgba(255, 255, 255, 0.08); --glass-border: rgba(255, 255, 255, 0.09); --text: #f1f5f9; --text-dim: #94a3b8; --success: #10b981; --red: #ef4444; --gold: #fbbf24;}
.light-mode{--primary: #4f46e5; --primary-light: #6366f1; --primary-glow: rgba(79, 70, 229, 0.3); --accent: #0891b2; --bg-dark: #eef2f7; --glass: linear-gradient(165deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.5) 100%); --glass-highlight: rgba(255, 255, 255, 0.5); --glass-border: rgba(0, 0, 0, 0.05); --text: #1e293b; --text-dim: #64748b; --success: #059669; --red: #dc2626; --gold: #d97706;}
*{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;background:var(--bg-dark);font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);display:flex;flex-direction:column;align-items:center;padding:12px;position:relative;overflow-x:hidden}
.container{width:100%;max-width:400px;position:relative;z-index:10;margin:auto 0;padding:12px 0}
.dashboard-card{background:var(--glass);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid var(--glass-border);border-top:1px solid var(--glass-highlight);border-radius:16px;padding:16px 14px;box-shadow:0 15px 30px -10px rgba(0,0,0,0.4);position:relative;overflow:hidden;transition:transform 0.3s ease}
.input-field{width:100%;padding:10px 12px;background:rgba(0,0,0,0.2);border:1px solid var(--glass-border);border-radius:10px;color:var(--text);margin-bottom:10px;font-size:0.85rem;transition:0.3s}
.btn-main{width:100%;padding:10px;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:white;border:none;border-radius:10px;font-size:0.95rem;font-weight:700;cursor:pointer;transition:all 0.3s;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 12px var(--primary-glow)}
.bg-gradient{position:fixed;top:0;left:0;right:0;bottom:0;background: radial-gradient(circle at 50% -20%, #1e1b4b 0%, #0f172a 100%);z-index:-2}
.particles{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;pointer-events:none}.particle { width: 3px; height: 3px; background: rgba(99, 102, 241, 0.5); border-radius: 50%; }
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.particle{position:absolute;animation:float 10s infinite ease-in-out}
.container{width:100%;max-width:420px;position:relative;z-index:10}
.brand-area{text-align:center;margin-top:10px;margin-bottom:30px}
.brand-title{font-size:1.8rem;font-weight:800;letter-spacing:-0.5px;background:linear-gradient(135deg,#22d3ee 0%,#818cf8 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 12px rgba(99,102,241,0.3));margin-bottom:6px}
.brand-subtitle{font-size:0.8rem;color:var(--text-dim);opacity:0.8;font-weight:500;letter-spacing:1px;text-transform:uppercase;background:rgba(0,0,0,0.2);padding:4px 10px;border-radius:12px;display:inline-block}
.dashboard-card{background:var(--glass);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid var(--glass-border);border-top:1px solid var(--glass-highlight);border-radius:24px;padding:24px 20px;box-shadow:0 20px 40px -10px rgba(0,0,0,0.4);position:relative;overflow:hidden;transition:transform 0.3s ease}
.module-box{background:transparent;padding:0;border:none;margin:0;box-shadow:none}
.module-title{font-size:0.9rem;color:var(--text);font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px;opacity:0.95}
.notice-bar{margin-bottom:16px;background:rgba(0,0,0,0.18);border-radius:16px;padding:14px 16px;border:1px solid var(--glass-border);animation:slideDown 0.5s ease}
.notice-title{font-weight:700;font-size:0.9rem;color:var(--accent);display:flex;align-items:center;gap:8px;margin-bottom:6px}
.notice-text{font-size:0.85rem;color:var(--text);line-height:1.5;opacity:0.9}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.user-header{display:flex;justify-content:space-between;align-items:center}
.user-profile{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.avatar-box{width:50px;height:50px;border-radius:14px;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px var(--primary-glow);flex-shrink:0;position:relative;border:1px solid rgba(255,255,255,0.2);overflow:hidden}.avatar-box img{width:85%;height:85%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))}
.user-details{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.greeting{font-size:0.75rem;color:var(--text-dim);margin-bottom:2px}
.username{font-weight:800;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.status-pill{padding:5px 10px;border-radius:20px;background:rgba(0,0,0,0.3);border:1px solid var(--glass-border);font-size:0.75rem;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}
.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-dim)}
.status-pill.active .status-dot{background:var(--success);box-shadow:0 0 8px var(--success)}
.status-pill.expired .status-dot{background:var(--red);box-shadow:0 0 8px var(--red)}
.toolbar-container{display:flex;justify-content:space-between;gap:8px}
.tool-btn{flex:1;height:36px;border-radius:30px;border:none;background:rgba(255,255,255,0.03);color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s;position:relative}
.tool-btn:hover{background:rgba(255,255,255,0.1);color:var(--text);transform:translateY(-2px)}
.tool-btn svg{width:20px;height:20px}
.sub-dashboard{display:flex;align-items:center;background:rgba(255,255,255,0.03);border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid rgba(255,255,255,0.05)}
.stat-item{flex:1;text-align:center;display:flex;flex-direction:column;gap:6px}
.stat-divider{width:1px;height:36px;background:var(--glass-border);margin:0 15px;opacity:0.6}
.stat-label{font-size:0.75rem;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:0.5px}
.stat-value{font-size:1.4rem;font-weight:800;color:var(--success);font-variant-numeric: tabular-nums}
.stat-value.highlight{color:var(--success)}

/* --- 自适应分流选择器 UI (悬浮挖洞融合版) --- */
.isp-grid-wrapper{position:relative;margin-top:16px;}
.isp-segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:12px;transition:-webkit-mask-image 0.4s ease,mask-image 0.4s ease;}
.isp-segmented-control.with-cutout{-webkit-mask-image:radial-gradient(circle at center,transparent 54px,black 56px);mask-image:radial-gradient(circle at center,transparent 54px,black 56px);}
.isp-btn{padding:14px 0;border:1px solid rgba(255,255,255,0.05);background:rgba(255,255,255,0.03);color:var(--text);font-size:0.95rem;font-weight:700;cursor:pointer;border-radius:12px;transition:0.2s;display:flex;align-items:center;justify-content:center;gap:6px;}
.isp-btn:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.1)}
.isp-btn:active{transform:scale(0.96)}
.isp-btn-vip{grid-column:1 / -1;background:linear-gradient(135deg,rgba(251,191,36,0.18) 0%,rgba(245,158,11,0.10) 100%);border:1px solid rgba(251,191,36,0.35);color:#fbbf24;font-weight:800;letter-spacing:0.5px;box-shadow:0 4px 14px rgba(251,191,36,0.10);}
.isp-btn-vip:hover{background:linear-gradient(135deg,rgba(251,191,36,0.28) 0%,rgba(245,158,11,0.18) 100%);border-color:rgba(251,191,36,0.55);box-shadow:0 6px 18px rgba(251,191,36,0.20);}
.light-mode .isp-btn-vip{background:linear-gradient(135deg,rgba(251,191,36,0.22) 0%,rgba(245,158,11,0.12) 100%);border-color:rgba(245,158,11,0.4);}
.center-circle-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.5);width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.05);color:var(--text);font-weight:800;font-size:0.95rem;box-shadow:0 8px 25px rgba(0,0,0,0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.center-circle-btn.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
.center-circle-btn.show:hover{transform:translate(-50%,-50%) scale(1.05);background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.1);color:var(--accent);box-shadow:0 10px 30px rgba(0,0,0,0.7),0 0 15px var(--primary-glow);}
.center-circle-btn.show:active{transform:translate(-50%,-50%) scale(0.95);}
.light-mode .center-circle-btn{background:linear-gradient(145deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.65) 50%, rgba(0,0,0,0.015) 100%);border-top-color:rgba(255,255,255,1);border-left-color:rgba(255,255,255,0.8);border-bottom-color:rgba(0,0,0,0.08);border-right-color:rgba(0,0,0,0.05);box-shadow:0 8px 20px rgba(0,0,0,0.08);color:var(--text);}
.light-mode .center-circle-btn.show:hover{background:linear-gradient(145deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.8) 100%);box-shadow:0 10px 25px rgba(0,0,0,0.12);}

.btn-link{font-size:0.85rem;color:var(--text-dim);text-decoration:underline;text-underline-offset:4px;cursor:pointer;font-weight:600;transition:0.2s}
.btn-link:hover{color:var(--text)}
.input-field{width:100%;padding:14px;background:rgba(0,0,0,0.2);border:1px solid var(--glass-border);border-radius:12px;color:var(--text);margin-bottom:12px;transition:0.3s}
.input-field:focus{border-color:var(--primary);background:rgba(0,0,0,0.3);outline:none}
.btn-main{width:100%;padding:14px;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:white;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;transition:all 0.3s;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 16px var(--primary-glow)}
.btn-main:hover{transform:translateY(-2px)}
.btn-main:active{transform:scale(0.96)}
.tab-group{display:flex;background:rgba(0,0,0,0.2);padding:4px;border-radius:14px;margin-bottom:20px}
.tab-btn{flex:1;padding:10px;border:none;background:transparent;color:var(--text-dim);border-radius:10px;cursor:pointer;font-size:0.85rem;transition:0.3s;font-weight:500}
.tab-btn.active{background:var(--glass-highlight);color:var(--text);font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,0.1)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:0.3s}
.modal.show{opacity:1;pointer-events:auto}
.modal-box{width:90%;max-width:380px;background:#1e293b;border:1px solid var(--glass-border);border-radius:20px;padding:24px;transform:scale(0.95);transition:0.3s;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5)}
.light-mode .modal-box{background:#fff}
.modal.show .modal-box{transform:scale(1)}
.lantern-box{position:absolute;top:-10px;width:100%;display:flex;justify-content:space-between;pointer-events:none;z-index:20}
.lantern{width:50px;height:65px;background:linear-gradient(to bottom, #d92828, #b91c1c);border-radius:12px;position:relative;box-shadow:0 5px 25px rgba(217,40,40,0.6);display:flex;align-items:center;justify-content:center;color:#ffd700;font-size:1.4rem;font-weight:bold;animation:swing 3s infinite ease-in-out;border-top: 4px solid #333;border-bottom: 4px solid #ffd700}
.lantern::before{content:'';position:absolute;top:-10px;width:2px;height:10px;background:#ffd700;left:50%;transform:translateX(-50%)}
.lantern.left{transform-origin:top center;margin-left:15px}
.lantern.right{transform-origin:top center;margin-right:15px;animation-delay:1.5s}
@keyframes swing{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.hidden{display:none!important}
.mode-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(150,150,150,0.5);margin-right:6px;transition:0.3s;vertical-align:middle;}
.mode-dot.active{background:var(--success);box-shadow:0 0 6px var(--success);}
.turnstile-container { display: flex; justify-content: center; width: 100%; }
#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg-dark);padding:10px 24px;border-radius:30px;font-weight:600;font-size:0.9rem;opacity:0;pointer-events:none;transition:0.3s;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,0.2)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.tool-btn svg{transition:all 0.3s ease}
#themeIcon{stroke:#fbbf24!important;fill:rgba(251,191,36,0.3);filter:drop-shadow(0 0 6px rgba(251,191,36,0.8))}
.light-mode #themeIcon{stroke:#64748b!important;fill:rgba(100,116,139,0.3);filter:drop-shadow(0 0 6px rgba(100,116,139,0.5))}
.icon-book{stroke:#f59e0b!important;fill:rgba(245,158,11,0.2);filter:drop-shadow(0 0 6px rgba(245,158,11,0.7))}
.icon-tg{fill:#10b981!important;filter:drop-shadow(0 0 6px rgba(16,185,129,0.7))}
.icon-settings{stroke:#8b5cf6!important;fill:rgba(139,92,246,0.3);filter:drop-shadow(0 0 6px rgba(139,92,246,0.7))}
.icon-github{fill:#e2e8f0!important;filter:drop-shadow(0 0 6px rgba(226,232,240,0.5))}
.tool-btn:hover{background:rgba(255,255,255,0.08);transform:translateY(-3px)}
.tool-btn:hover svg{filter:brightness(1.3) drop-shadow(0 0 10px currentColor)}
@keyframes scrollNotice { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes rabbitRun { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-15deg); } }
.rabbit-run { display: inline-block; animation: rabbitRun 0.3s infinite ease-in-out; }

/* ================= 💎 旗舰版·立体透明磨砂 UI ================= */
.dashboard-card {
  background: linear-gradient(165deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.015) 100%);
  backdrop-filter: blur(2px) saturate(1.2);
  -webkit-backdrop-filter: blur(2px) saturate(1.2);
  box-shadow:
    0 4px 6px rgba(0,0,0,0.1),
    0 12px 28px rgba(0,0,0,0.18),
    0 28px 56px rgba(0,0,0,0.22),
    inset 0 1px 2px rgba(255,255,255,0.15),
    inset 0 -1px 2px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.09);
  border-top-color: rgba(255,255,255,0.16);
  border-left-color: rgba(255,255,255,0.06);
  border-bottom-color: rgba(0,0,0,0.2);
  border-right-color: rgba(0,0,0,0.12);
  border-radius: 24px;
  position: relative;
  overflow: hidden;
}
.dashboard-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 55%;
  background: linear-gradient(180deg, rgba(255,255,255,0.07) 0%, transparent 100%);
  pointer-events: none;
  border-radius: 24px 24px 0 0;
}
.light-mode .dashboard-card {
  background: linear-gradient(165deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.5) 100%);
  backdrop-filter: blur(40px) saturate(1.2);
  -webkit-backdrop-filter: blur(40px) saturate(1.2);
  box-shadow:
    0 4px 6px rgba(0,0,0,0.03),
    0 12px 28px rgba(0,0,0,0.05),
    0 28px 56px rgba(0,0,0,0.06),
    inset 0 1px 2px rgba(255,255,255,0.8),
    inset 0 -1px 2px rgba(0,0,0,0.03);
  border-top-color: rgba(255,255,255,0.95);
  border-left-color: rgba(255,255,255,0.5);
  border-bottom-color: rgba(0,0,0,0.06);
  border-right-color: rgba(0,0,0,0.04);
}

/* ---- 工具按钮 ---- */
.tool-btn {
  background: linear-gradient(145deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.015) 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid rgba(255,255,255,0.1);
  border-top-color: rgba(255,255,255,0.16);
  border-left-color: rgba(255,255,255,0.08);
  border-bottom-color: rgba(0,0,0,0.16);
  border-right-color: rgba(0,0,0,0.1);
  border-radius: 30px;
  box-shadow:
    0 2px 4px rgba(0,0,0,0.1),
    0 8px 16px rgba(0,0,0,0.08),
    inset 0 1px 1px rgba(255,255,255,0.08);
  transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
}
.tool-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
  pointer-events: none;
  border-radius: 30px 30px 0 0;
}
.tool-btn:hover {
  transform: translateY(-3px) scale(1.04);
  background: linear-gradient(145deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.04) 100%);
  box-shadow:
    0 8px 16px rgba(0,0,0,0.15),
    0 20px 40px var(--primary-glow),
    inset 0 1px 1px rgba(255,255,255,0.18);
  border-color: var(--accent);
}
.tool-btn:active {
  transform: translateY(0px) scale(0.97);
  background: linear-gradient(145deg, rgba(255,255,255,0.03) 0%, rgba(0,0,0,0.05) 100%);
  box-shadow:
    0 1px 3px rgba(0,0,0,0.15),
    inset 0 2px 6px rgba(0,0,0,0.15);
}
.light-mode .tool-btn {
  background: linear-gradient(145deg, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.6) 100%);
  border-top-color: rgba(255,255,255,1);
  border-left-color: rgba(255,255,255,0.7);
  border-bottom-color: rgba(0,0,0,0.06);
  border-right-color: rgba(0,0,0,0.04);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.03),
    0 8px 16px rgba(0,0,0,0.03),
    inset 0 1px 1px rgba(255,255,255,0.9);
}
.light-mode .tool-btn:hover {
  background: linear-gradient(145deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.75) 100%);
}

/* ---- SVG图标 ---- */
.tool-btn svg {
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.35)) !important;
  stroke: var(--text) !important;
  fill: none !important;
  opacity: 0.75;
  transition: all 0.35s ease;
}
.tool-btn:hover svg {
  opacity: 1;
  stroke: var(--accent) !important;
  filter: drop-shadow(0 0 10px var(--primary-glow)) !important;
}
.icon-tg, .icon-github {
  fill: var(--text) !important;
  stroke: none !important;
}
.tool-btn:hover .icon-tg,
.tool-btn:hover .icon-github {
  fill: var(--accent) !important;
  filter: drop-shadow(0 0 10px var(--primary-glow)) !important;
}

/* ---- 统计面板 ---- */
.sub-dashboard {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.045) 0%, rgba(255,255,255,0.01) 50%, rgba(0,0,0,0.025) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-top-color: rgba(255,255,255,0.14);
  border-bottom-color: rgba(0,0,0,0.12);
  border-radius: 16px;
  box-shadow:
    0 4px 10px rgba(0,0,0,0.08),
    inset 0 2px 10px rgba(0,0,0,0.04),
    inset 0 -1px 2px rgba(255,255,255,0.04);
  padding: 14px 16px;
}
.light-mode .sub-dashboard {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0.4) 50%, rgba(0,0,0,0.015) 100%);
  border-top-color: rgba(255,255,255,0.9);
  border-bottom-color: rgba(0,0,0,0.04);
  box-shadow:
    0 2px 8px rgba(0,0,0,0.03),
    inset 0 1px 5px rgba(255,255,255,0.7);
}

/* ---- 统计数字 ---- */
.stat-value {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.5px;
  line-height: 1.2;
  /* 🛡️ 兼容性修复：渐变文字 + 降级方案 */
  background: linear-gradient(145deg, var(--accent) 0%, var(--primary-light) 60%, var(--primary) 100%);
  -webkit-background-clip: text;
  background-clip: text;                              /* ← 新增：标准属性 */
  -webkit-text-fill-color: transparent;
  color: var(--success);                              /* ← 新增：降级兜底色 */
  filter: drop-shadow(0 3px 6px var(--primary-glow));
}

/* 🛡️ 检测不支持 background-clip: text 的浏览器，回退为纯色 */
@supports not (background-clip: text) {
  .stat-value {
    -webkit-text-fill-color: var(--success);  /* 恢复可见颜色 */
    background: none;                          /* 清除渐变背景 */
  }
}

/* ---- 分隔线 ---- */
.stat-divider {
  background: linear-gradient(to bottom, transparent 0%, rgba(255,255,255,0.1) 30%, rgba(255,255,255,0.1) 70%, transparent 100%);
  width: 1px;
  height: 32px;
  box-shadow: 0 0 8px rgba(255,255,255,0.03);
}

/* ---- ISP 运营商按钮 ---- */
.isp-segmented-control { gap: 12px; margin-top: 20px; }
.isp-btn {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0.015) 50%, rgba(0,0,0,0.03) 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid rgba(255,255,255,0.08);
  border-top-color: rgba(255,255,255,0.15);
  border-left-color: rgba(255,255,255,0.08);
  border-bottom-color: rgba(0,0,0,0.15);
  border-right-color: rgba(0,0,0,0.08);
  border-radius: 16px;
  box-shadow:
    0 3px 6px rgba(0,0,0,0.08),
    0 10px 20px rgba(0,0,0,0.06),
    inset 0 1px 1px rgba(255,255,255,0.08),
    inset 0 -1px 1px rgba(0,0,0,0.06);
  color: var(--text) !important;
  padding: 16px 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
}
.isp-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.09) 0%, transparent 100%);
  pointer-events: none;
  border-radius: 16px 16px 0 0;
}
.isp-btn::after {
  content: '';
  position: absolute;
  top: -100%; left: -50%;
  width: 40%; height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.07), transparent);
  transition: 0.6s;
  pointer-events: none;
}
.isp-btn:hover {
  transform: translateY(-4px) scale(1.02);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.04) 50%, rgba(0,0,0,0.02) 100%);
  border-color: var(--accent);
  box-shadow:
    0 10px 20px rgba(0,0,0,0.12),
    0 24px 48px var(--primary-glow),
    inset 0 1px 1px rgba(255,255,255,0.18);
  color: var(--accent) !important;
}
.isp-btn:hover::after { left: 120%; }
.isp-btn:active {
  transform: translateY(0px) scale(0.96);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.02) 0%, rgba(0,0,0,0.04) 50%, rgba(0,0,0,0.06) 100%);
  box-shadow:
    0 1px 3px rgba(0,0,0,0.15),
    inset 0 3px 8px rgba(0,0,0,0.18);
}
.light-mode .isp-btn {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.65) 50%, rgba(0,0,0,0.015) 100%);
  border-top-color: rgba(255,255,255,1);
  border-left-color: rgba(255,255,255,0.8);
  border-bottom-color: rgba(0,0,0,0.08);
  border-right-color: rgba(0,0,0,0.05);
  box-shadow:
    0 3px 6px rgba(0,0,0,0.03),
    0 10px 20px rgba(0,0,0,0.025),
    inset 0 1px 1px rgba(255,255,255,1);
}

/* ---- 头像框 ---- */
.avatar-box {
  box-shadow:
    0 4px 8px rgba(0,0,0,0.12),
    0 14px 28px var(--primary-glow),
    inset 0 1px 2px rgba(255,255,255,0.15);
  border: 2px solid rgba(255,255,255,0.12);
  border-top-color: rgba(255,255,255,0.22);
  border-bottom-color: rgba(0,0,0,0.18);
}

/* ---- 状态胶囊 ---- */
.status-pill {
  background: linear-gradient(145deg, rgba(255,255,255,0.08) 0%, rgba(0,0,0,0.12) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.1);
  border-top-color: rgba(255,255,255,0.16);
  border-bottom-color: rgba(0,0,0,0.12);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.08),
    inset 0 1px 1px rgba(255,255,255,0.06);
  font-weight: 700;
  letter-spacing: 0.5px;
}
.status-pill.active {
  color: var(--accent);
  border-color: rgba(6,182,212,0.25);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.08),
    0 0 14px rgba(6,182,212,0.12),
    inset 0 1px 1px rgba(255,255,255,0.08);
}
.status-pill.active .status-dot {
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent), 0 0 20px rgba(6,182,212,0.25);
}

/* ---- 公告卡片 ---- */
#noticeCard {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.035) 0%, rgba(255,255,255,0.008) 100%);
  border-radius: 12px;
  border-left: 3px solid var(--accent);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(0,0,0,0.08);
  box-shadow:
    0 2px 8px rgba(0,0,0,0.06),
    inset 0 1px 3px rgba(0,0,0,0.03);
  padding: 12px 14px;
}

/* ================= 补丁结束 ================= */

@supports not (backdrop-filter: blur(1px)) {
  .dashboard-card { background: rgba(30, 41, 59, 0.88) !important; }
  .light-mode .dashboard-card { background: rgba(255, 255, 255, 0.95) !important; }
  .colorful-mode .dashboard-card { background: rgba(15, 23, 42, 0.88) !important; }
  .tool-btn, .isp-btn, .status-pill { background: rgba(255,255,255,0.08) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .light-mode .tool-btn, .light-mode .isp-btn { background: rgba(255,255,255,0.9) !important; }
  .light-mode .status-pill { background: rgba(0,0,0,0.06) !important; }
  .sub-dashboard { background: rgba(255,255,255,0.05) !important; }
  .light-mode .sub-dashboard { background: rgba(255,255,255,0.8) !important; }
}

/* 💎 极光彩色高级主题 (Aurora Premium) */
.colorful-mode {
  --primary: #d946ef;
  --primary-light: #c026d3;
  --primary-glow: rgba(217, 70, 239, 0.5);
  --accent: #0ea5e9;
  --bg-dark: #020617;
  --glass: linear-gradient(165deg, rgba(217, 70, 239, 0.06) 0%, rgba(14, 165, 233, 0.03) 50%, rgba(255,255,255,0.01) 100%);
  --glass-highlight: rgba(255, 255, 255, 0.15);
  --glass-border: rgba(255, 255, 255, 0.18);
  --text: #f8fafc;
  --text-dim: #94a3b8;
  --success: #10b981;
  --red: #f43f5e;
  --gold: #f59e0b;
}
.colorful-mode .bg-gradient {
  background:
    radial-gradient(ellipse at 15% 0%, rgba(217, 70, 239, 0.28) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 10%, rgba(14, 165, 233, 0.22) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 100%, rgba(16, 185, 129, 0.18) 0%, transparent 50%),
    #020617 !important;
  animation: pulseBg 12s ease-in-out infinite alternate;
}
@keyframes pulseBg {
  0% { transform: scale(1); }
  100% { transform: scale(1.06); }
}
.colorful-mode .brand-title {
  background: linear-gradient(135deg, #0ea5e9 0%, #d946ef 40%, #f59e0b 70%, #10b981 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 300% auto;
  animation: shineTitle 4s linear infinite;
  filter: drop-shadow(0 4px 16px rgba(217, 70, 239, 0.35));
}
@keyframes shineTitle { to { background-position: 300% center; } }
.colorful-mode .dashboard-card {
  background: linear-gradient(165deg, rgba(217, 70, 239, 0.06) 0%, rgba(14, 165, 233, 0.025) 100%);
  backdrop-filter: blur(2px) saturate(1.1);
  -webkit-backdrop-filter: blur(2px) saturate(1.1);
  box-shadow:
    0 4px 8px rgba(0,0,0,0.15),
    0 16px 32px rgba(0,0,0,0.25),
    0 36px 72px rgba(217, 70, 239, 0.1),
    inset 0 1px 2px rgba(255,255,255,0.2),
    inset 0 -1px 2px rgba(0,0,0,0.15);
  border: 1px solid rgba(217, 70, 239, 0.2);
  border-top-color: rgba(255,255,255,0.22);
}
.colorful-mode .tool-btn {
  background: linear-gradient(145deg, rgba(217, 70, 239, 0.08) 0%, rgba(14, 165, 233, 0.03) 100%);
  border-color: rgba(217, 70, 239, 0.15);
  border-top-color: rgba(255,255,255,0.15);
  border-bottom-color: rgba(0,0,0,0.15);
}
.colorful-mode .tool-btn:hover {
  background: linear-gradient(145deg, rgba(217, 70, 239, 0.15) 0%, rgba(14, 165, 233, 0.08) 100%);
  box-shadow:
    0 8px 16px rgba(0,0,0,0.12),
    0 24px 48px rgba(217, 70, 239, 0.2),
    inset 0 1px 1px rgba(255,255,255,0.15);
}
.colorful-mode .isp-btn {
  background: linear-gradient(145deg, rgba(217, 70, 239, 0.07) 0%, rgba(14, 165, 233, 0.025) 50%, rgba(0,0,0,0.02) 100%);
  border-color: rgba(217, 70, 239, 0.12);
  border-top-color: rgba(255,255,255,0.14);
  border-bottom-color: rgba(0,0,0,0.12);
}
.colorful-mode .isp-btn:hover {
  background: linear-gradient(145deg, rgba(217, 70, 239, 0.15) 0%, rgba(14, 165, 233, 0.08) 100%);
  box-shadow:
    0 10px 20px rgba(0,0,0,0.1),
    0 28px 56px rgba(217, 70, 239, 0.2),
    inset 0 1px 1px rgba(255,255,255,0.15);
}
.colorful-mode .stat-value {
  background: linear-gradient(145deg, #0ea5e9 0%, #d946ef 50%, #f59e0b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--accent);
  background-size: 200% auto;
  animation: shineTitle 3s linear infinite;
}

@supports not (background-clip: text) {
  .colorful-mode .stat-value {
    -webkit-text-fill-color: var(--accent);
    background: none;
  }
}
.colorful-mode .status-pill {
  background: linear-gradient(145deg, rgba(217, 70, 239, 0.1) 0%, rgba(14, 165, 233, 0.05) 100%);
  border-color: rgba(217, 70, 239, 0.18);
}
.colorful-mode .sub-dashboard {
  background: linear-gradient(180deg, rgba(217, 70, 239, 0.04) 0%, rgba(14, 165, 233, 0.02) 50%, rgba(0,0,0,0.02) 100%);
  border-color: rgba(217, 70, 239, 0.12);
  border-top-color: rgba(255,255,255,0.12);
}
/* ---- 欢迎全屏页 ---- */
.welcome-page{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity 0.4s ease;-webkit-overflow-scrolling:touch;background:var(--bg-dark)}
.welcome-page.show{opacity:1;pointer-events:auto}
.welcome-page-bg{position:fixed;inset:0;z-index:-1}
.welcome-page-inner{width:92%;max-width:420px;padding:20px 0;position:relative;z-index:1}
.wp-hero{text-align:center;margin-bottom:32px}
.wp-hero-title{font-size:2.2rem;font-weight:900;line-height:1.2;margin-bottom:10px;background:linear-gradient(135deg,#22d3ee,#818cf8,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.wp-hero-desc{font-size:0.92rem;color:var(--accent);line-height:1.6;font-weight:600}
.wp-hero-desc b{color:var(--accent);font-weight:700}
.wp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:28px}
.wp-card{padding:16px 14px;border-radius:16px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);text-align:center;transition:transform 0.2s}
.wp-card:hover{transform:translateY(-2px)}
.wp-card-icon{font-size:1.6rem;margin-bottom:8px;display:block}
.wp-card-name{font-size:0.82rem;font-weight:700;color:var(--text);margin-bottom:4px}
.wp-card-desc{font-size:0.7rem;color:var(--text-dim);line-height:1.4}
.wp-card.wide{grid-column:1/-1;display:flex;align-items:center;gap:14px;text-align:left}
.wp-card.wide .wp-card-icon{font-size:1.4rem;margin-bottom:0;flex-shrink:0}
.wp-card.wide .wp-card-text{flex:1}
.wp-highlight{margin-bottom:28px;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,rgba(99,102,241,0.12),rgba(34,211,238,0.08));border:1px solid rgba(99,102,241,0.2);text-align:center}
.wp-highlight-text{font-size:0.85rem;color:var(--text);line-height:1.6;font-weight:500}
.wp-highlight-text b{color:var(--accent);font-weight:700}
.wp-btn{width:100%;padding:16px;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 8px 24px var(--primary-glow);transition:transform 0.2s}
.wp-btn:hover{transform:translateY(-2px)}
.wp-btn:active{transform:scale(0.97)}
.light-mode .wp-card{background:linear-gradient(165deg,rgba(255,255,255,0.75),rgba(255,255,255,0.5));border-color:rgba(0,0,0,0.06)}
.light-mode .wp-highlight{background:linear-gradient(135deg,rgba(99,102,241,0.08),rgba(34,211,238,0.05));border-color:rgba(99,102,241,0.15)}
