/* ============================================================
   丽人梦想秀 · 九紫离火运 · 东方美学 v2.0
   Beauty Dream Show OS — Ultimate Purple Fire Era
   Designed for Her · Global Top-Tier Aesthetic
   ============================================================ */

:root {
  --fire-deep:    #3D0F3E;   /* 玄紫墨 */
  --fire-purple:  #6B1D6E;   /* 离火紫 */
  --fire-amethyst:#8B3A8E;   /* 紫水晶 */
  --fire-lavender:#B88AC0;   /* 淡紫烟 */
  --flame-ember:  #C67B5C;   /* 余烬橙 */
  --flame-amber:  #D4A373;   /* 琥珀金 */
  --flame-rose:   #C4958A;   /* 玫瑰金 */
  --flame-blush:  #E8D0CC;   /* 胭脂粉 */
  --jade-ivory:   #FDF8F3;   /* 象牙白 */
  --jade-cream:   #FBF3EB;   /* 奶油米 */
  --jade-silk:    #F7EDE4;   /* 丝绸色 */
  --jade-warm:    #F0E2D4;   /* 暖玉色 */
  --ink-deep:     #1A1A2E;   /* 深墨蓝 */
  --ink-rich:     #2D2D44;   /* 浓墨 */
  --ink-gray:     #4A4A5A;   /* 石墨 */
  --ink-light:    #7A7A8A;   /* 淡墨 */
  --gold-accent:  #C9A25B;   /* 鎏金 */
  --gold-light:   #E8D5A3;   /* 浅金 */
  --rose-accent:  #C4786B;   /* 蔷薇红 */
  --success:      #7B9B6A;   /* 玉绿 */
  --warning:      #D4A373;   /* 琥珀 */
  --danger:       #C46B6B;   /* 朱砂红 */
  --shadow-sm:    0 2px 12px rgba(61,15,62,0.06);
  --shadow-md:    0 4px 20px rgba(61,15,62,0.10);
  --shadow-lg:    0 8px 40px rgba(61,15,62,0.15);
  --shadow-glow:  0 0 30px rgba(107,29,110,0.20);
  --shadow-gold:  0 0 20px rgba(201,162,91,0.25);
  --radius-sm:    10px;
  --radius-md:    16px;
  --radius-lg:    24px;
  --radius-xl:    32px;
  --ease-out:     cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-spring:  cubic-bezier(0.68, -0.25, 0.265, 1.25);
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Serif SC', 'Segoe UI', serif;
  background: linear-gradient(150deg, var(--jade-ivory) 0%, var(--jade-cream) 25%, #FDF2F0 50%, var(--flame-blush) 75%, var(--jade-silk) 100%);
  background-attachment: fixed;
  color: var(--ink-rich);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse at 15% 40%, rgba(107,29,110,0.03) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 25%, rgba(196,123,92,0.03) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 85%, rgba(201,162,91,0.025) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 70%, rgba(196,149,138,0.02) 0%, transparent 55%);
}

/* ── 侧边栏 ── */
.sidebar {
  position:fixed; left:0; top:0; bottom:0; z-index:100; width:250px;
  background:linear-gradient(175deg, var(--ink-deep) 0%, var(--fire-deep) 35%, var(--fire-purple) 70%, var(--fire-amethyst) 100%);
  box-shadow:6px 0 40px rgba(61,15,62,0.25);
  display:flex; flex-direction:column;
}
.sidebar::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 40% 25%, rgba(201,162,91,0.08) 0%, transparent 55%),
            radial-gradient(circle at 75% 65%, rgba(196,123,92,0.05) 0%, transparent 45%);
}
.sidebar .logo { padding:30px 24px 22px; border-bottom:1px solid rgba(255,255,255,0.07); position:relative; z-index:1; }
.sidebar .logo h2 { color:var(--gold-accent); font-size:19px; font-weight:700; letter-spacing:0.5px; font-family:'Noto Serif SC','PingFang SC',serif; }
.sidebar .logo small { color:rgba(255,255,255,0.4); font-size:11px; letter-spacing:2.5px; text-transform:uppercase; margin-top:4px; display:block; }
.sidebar .belief-strip { margin:14px 18px; padding:14px 16px; background:rgba(255,255,255,0.03); border-left:2px solid var(--gold-accent); border-radius:0 var(--radius-sm) var(--radius-sm) 0; position:relative; z-index:1; }
.sidebar .belief-strip p { color:rgba(255,255,255,0.55); font-size:11px; line-height:1.7; font-family:'Noto Serif SC',serif; }
.sidebar .nav { flex:1; overflow-y:auto; padding:6px 0; position:relative; z-index:1; }
.sidebar .nav-link { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,0.5); padding:10px 22px; margin:1px 10px; border-radius:var(--radius-sm); text-decoration:none; font-size:13px; transition:all 0.25s var(--ease-out); position:relative; }
.sidebar .nav-link:hover { color:#fff; background:rgba(255,255,255,0.05); }
.sidebar .nav-link.active { color:#fff; background:linear-gradient(90deg, rgba(107,29,110,0.55) 0%, rgba(107,29,110,0.2) 100%); border-left:3px solid var(--gold-accent); font-weight:600; }
.sidebar .nav-link i { font-size:15px; width:20px; text-align:center; }
.sidebar .nav-link.nav-sub { padding-left:44px; font-size:12px; color:rgba(255,255,255,0.35); border-left:2px solid transparent; }
.sidebar .nav-link.nav-sub:hover { color:rgba(255,255,255,0.7); background:rgba(255,255,255,0.03); border-left-color:rgba(255,215,0,0.25); }
.sidebar .nav-link.nav-sub.active { color:#fff; background:linear-gradient(90deg, rgba(107,29,110,0.3) 0%, transparent 100%); border-left:2px solid rgba(201,162,91,0.5); font-weight:500; }
.sidebar .nav-link.nav-sub i { font-size:12px; width:16px; }
.sidebar .nav-section { color:rgba(255,255,255,0.28); font-size:10px; letter-spacing:2.5px; padding:18px 24px 6px; text-transform:uppercase; position:relative; z-index:1; }

/* ── 主内容 ── */
.main-content { margin-left:250px; padding:32px 40px; padding-bottom:80px; position:relative; z-index:1; min-height:100vh; }

/* ── 卡片 ── */
.card-stat {
  background:rgba(255,255,255,0.68); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,0.55); border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm); overflow:hidden; position:relative;
  transition:all 0.4s var(--ease-out);
}
.card-stat::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold-accent),transparent); opacity:0; transition:opacity 0.4s; }
.card-stat:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg),var(--shadow-glow); border-color:rgba(201,162,91,0.3); }
.card-stat:hover::before { opacity:1; }
.card-stat .icon { font-size:34px; }
.card-stat .value { font-size:30px; font-weight:700; color:var(--fire-purple); }
.card-stat .label { color:var(--ink-light); font-size:13px; }
.card-stat .trend { font-size:11px; color:var(--success); font-weight:600; }
.card-gold { border:1px solid rgba(201,162,91,0.25); background:linear-gradient(135deg, rgba(255,255,255,0.75) 0%, rgba(253,248,243,0.85) 100%); }

/* ── 登录 ── */
.login-card {
  width:420px; padding:52px 44px; background:rgba(255,255,255,0.72); backdrop-filter:blur(20px);
  border-radius:var(--radius-xl); border:1px solid rgba(201,162,91,0.18);
  box-shadow:var(--shadow-lg),0 0 80px rgba(107,29,110,0.08); text-align:center;
  position:relative; overflow:hidden;
}
.login-card::before { content:''; position:absolute; top:-40%; left:-40%; width:180%; height:180%; background:radial-gradient(circle at 25% 20%, rgba(107,29,110,0.04) 0%, transparent 45%), radial-gradient(circle at 65% 75%, rgba(196,123,92,0.03) 0%, transparent 45%); animation:flamePulse 8s ease-in-out infinite; }
.login-card h3 { font-family:'Noto Serif SC',serif; color:var(--fire-deep); font-size:26px; margin-bottom:6px; position:relative; z-index:1; }
.login-card input, .login-card select, .form-control { width:100%; padding:14px 18px; margin-bottom:14px; border:1px solid rgba(107,29,110,0.12); border-radius:var(--radius-sm); background:rgba(253,248,243,0.55); font-size:14px; color:var(--ink-rich); position:relative; z-index:1; transition:all 0.25s; }
.login-card input:focus, .form-control:focus { outline:none; border-color:var(--fire-purple); box-shadow:0 0 0 3px rgba(107,29,110,0.07); background:#fff; }
.btn-login { width:100%; padding:14px; background:linear-gradient(135deg, var(--fire-purple) 0%, var(--fire-deep) 100%); color:#fff; border:none; border-radius:var(--radius-sm); font-size:15px; font-weight:600; cursor:pointer; position:relative; z-index:1; transition:all 0.3s var(--ease-out); box-shadow:0 4px 20px rgba(107,29,110,0.25); }
.btn-login:hover { transform:translateY(-2px); box-shadow:0 6px 28px rgba(107,29,110,0.35); background:linear-gradient(135deg, var(--fire-amethyst) 0%, var(--fire-purple) 100%); }

/* ── 标题 ── */
.page-title { font-family:'Noto Serif SC',serif; font-size:26px; font-weight:700; color:var(--fire-deep); margin-bottom:6px; display:inline-block; position:relative; }
.page-title::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--gold-accent), transparent); }
.page-subtitle { color:var(--ink-light); font-size:13px; margin-bottom:24px; }

/* ── 表格 ── */
.table { width:100%; border-collapse:collapse; background:rgba(255,255,255,0.5); backdrop-filter:blur(10px); border-radius:var(--radius-md); overflow:hidden; font-size:13px; }
.table th { background:linear-gradient(180deg, rgba(107,29,110,0.05) 0%, transparent 100%); padding:12px 16px; text-align:left; font-weight:600; color:var(--fire-purple); font-size:12px; letter-spacing:0.5px; border-bottom:1px solid rgba(107,29,110,0.08); }
.table td { padding:11px 16px; border-bottom:1px solid rgba(0,0,0,0.03); }
.table tbody tr:hover { background:rgba(107,29,110,0.025); }

/* ── 按钮 ── */
.btn { display:inline-flex; align-items:center; gap:6px; padding:10px 22px; border-radius:var(--radius-sm); font-size:13px; font-weight:600; cursor:pointer; border:none; transition:all 0.25s var(--ease-out); text-decoration:none; }
.btn-primary { background:linear-gradient(135deg, var(--fire-purple), var(--fire-amethyst)); color:#fff; box-shadow:0 2px 10px rgba(107,29,110,0.2); }
.btn-primary:hover { box-shadow:0 4px 20px rgba(107,29,110,0.3); transform:translateY(-1px); }
.btn-outline { background:transparent; border:1px solid var(--fire-purple); color:var(--fire-purple); }
.btn-outline:hover { background:rgba(107,29,110,0.05); }
.btn-gold { background:linear-gradient(135deg, var(--gold-accent), var(--gold-light)); color:#fff; box-shadow:0 2px 10px rgba(201,162,91,0.25); }
.btn-sm { padding:6px 14px; font-size:12px; }

/* ── 徽章 ── */
.badge-role { font-size:10px; padding:4px 12px; border-radius:20px; font-weight:500; letter-spacing:0.3px; }
.badge-dreamer { background:linear-gradient(135deg,#FCE4EC,#F8BBD0); color:#C2185B; }
.badge-queen { background:linear-gradient(135deg,#F3E5F5,#E1BEE7); color:#6A1B9A; }
.badge-partner { background:linear-gradient(135deg,#E0F2F1,#B2DFDB); color:#00695C; }
.badge-sponsor { background:linear-gradient(135deg,#FFF3E0,#FFE0B2); color:#E65100; }
.badge-mentor { background:linear-gradient(135deg,#E3F2FD,#BBDEFB); color:#0D47A1; }
.badge-gold { background:linear-gradient(135deg,rgba(201,162,91,0.2),rgba(201,162,91,0.1)); color:#8B6914; border:1px solid rgba(201,162,91,0.3); }

/* ── 进度条 ── */
.progress { background:rgba(107,29,110,0.06); border-radius:20px; overflow:hidden; }
.progress-bar { background:linear-gradient(90deg, var(--fire-purple), var(--fire-amethyst)); border-radius:20px; transition:width 0.6s var(--ease-out); }

/* ── 会员头 ── */
.membership-header { background:linear-gradient(135deg, var(--fire-deep) 0%, var(--fire-purple) 45%, var(--fire-amethyst) 100%); color:#fff; border-radius:var(--radius-lg); padding:36px; position:relative; overflow:hidden; }
.membership-header::after { content:''; position:absolute; top:-20%; right:-5%; width:280px; height:280px; background:radial-gradient(circle, rgba(201,162,91,0.15) 0%, transparent 65%); border-radius:50%; }

/* ── 动画 ── */
@keyframes flamePulse { 0%,100%{opacity:0.5;transform:scale(1)} 50%{opacity:0.8;transform:scale(1.04)} }
@keyframes fadeInUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes goldShimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.4);opacity:0.6} }
@keyframes sparkle { 0%,100%{opacity:0;transform:scale(0) translateY(0)} 50%{opacity:0.5;transform:scale(1) translateY(-6px)} }
.main-content>* { animation:fadeInUp 0.5s var(--ease-out) both; }
.main-content>*:nth-child(1){animation-delay:0.04s} .main-content>*:nth-child(2){animation-delay:0.08s} .main-content>*:nth-child(3){animation-delay:0.12s} .main-content>*:nth-child(4){animation-delay:0.16s}
.card-gold::after { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-accent),transparent); background-size:200% 100%; animation:goldShimmer 3s ease-in-out infinite; }
.sparkle { position:fixed; pointer-events:none; z-index:0; width:3px; height:3px; border-radius:50%; background:var(--gold-accent); animation:sparkle 4s ease-in-out infinite; }
.table tbody tr { transition:all 0.2s var(--ease-out); border-left:2px solid transparent; }
.table tbody tr:hover { border-left-color:var(--gold-accent); }
.btn-primary::after, .btn-gold::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at center, rgba(255,255,255,0.3) 0%, transparent 70%); opacity:0; transition:opacity 0.3s; }
.btn-primary:hover::after, .btn-gold:hover::after { opacity:1; }

/* ── 滚动条 ── */
::-webkit-scrollbar { width:6px; } ::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(107,29,110,0.18); border-radius:20px; }
::-webkit-scrollbar-thumb:hover { background:rgba(107,29,110,0.35); }

/* ── Toast ── */
.toast-container { position:fixed; top:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast { padding:14px 22px; border-radius:var(--radius-md); font-size:13px; font-weight:500; animation:fadeInUp 0.3s var(--ease-out); box-shadow:var(--shadow-lg); min-width:260px; max-width:380px; display:flex; align-items:center; gap:10px; backdrop-filter:blur(12px); }
.toast-success { background:rgba(123,155,106,0.9); color:#fff; }
.toast-error { background:rgba(196,107,107,0.9); color:#fff; }
.toast-info { background:rgba(107,29,110,0.9); color:#fff; }

/* ── 侧边栏底部 ── */
.sidebar-footer { padding:16px; border-top:1px solid rgba(255,255,255,0.06); position:relative; z-index:1; }
.sidebar-footer .user-avatar { width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg, var(--fire-purple), var(--fire-amethyst)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:700; }
.sidebar-footer .btn-logout { display:block; width:100%; margin-top:8px; padding:8px; background:transparent; border:1px solid rgba(255,255,255,0.12); color:rgba(255,255,255,0.5); border-radius:var(--radius-sm); font-size:11px; cursor:pointer; text-align:center; transition:all 0.2s; }
.sidebar-footer .btn-logout:hover { background:rgba(196,107,107,0.15); border-color:rgba(196,107,107,0.35); color:#C46B6B; }

/* ── 暗夜模式切换 ── */
.dark-mode-toggle { position:fixed; bottom:24px; right:24px; z-index:999; width:46px; height:46px; border-radius:50%; background:var(--fire-purple); color:#fff; border:none; font-size:20px; cursor:pointer; box-shadow:var(--shadow-lg); display:flex; align-items:center; justify-content:center; transition:all 0.3s; }
.dark-mode-toggle:hover { transform:scale(1.1); }

body.dark-mode { --jade-ivory:#1A1A2E; --jade-cream:#22223A; --jade-silk:#2A2A44; --jade-warm:#323255; --ink-deep:#E0E0F0; --ink-rich:#C8C8E0; --ink-gray:#9898B0; --ink-light:#787890; --fire-deep:#B88AC0; --fire-purple:#8B3A8E; background:linear-gradient(135deg,#1A1A2E 0%,#22223A 30%,#2A2A44 70%,#323255 100%); }
body.dark-mode .card-stat { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.07); }
body.dark-mode .card-gold { border-color:rgba(201,162,91,0.2); }
body.dark-mode .table { background:rgba(255,255,255,0.03); }
body.dark-mode .table th { color:var(--gold-accent); }
body.dark-mode .table td { border-color:rgba(255,255,255,0.03); }
body.dark-mode .login-card input, body.dark-mode select, body.dark-mode .form-control { background:rgba(255,255,255,0.05); color:#fff; border-color:rgba(255,255,255,0.08); }

/* ── 移动端 ── */
.mobile-menu-btn { display:none; position:fixed; top:14px; left:14px; z-index:200; width:42px; height:42px; border-radius:50%; background:var(--fire-purple); color:#fff; border:none; font-size:20px; cursor:pointer; box-shadow:var(--shadow-lg); align-items:center; justify-content:center; }
@media(max-width:768px){
  .mobile-menu-btn{display:flex}
  .sidebar{transform:translateX(-100%);transition:transform .3s;width:260px;z-index:150}
  .sidebar.open{transform:translateX(0)}
  .main-content{margin-left:0!important;padding:16px;padding-top:56px}
  .main-content [class*=col-md-]{flex:0 0 100%;max-width:100%}
  .page-title{font-size:20px}
  .card-stat{padding:12px!important}
  .card-stat .value{font-size:22px}
  .table{font-size:11px}
  .table td,.table th{padding:6px 8px}
  .dark-mode-toggle{bottom:70px}
  .login-card{width:90vw;padding:28px}
}

/* ── Map Animations ── */
@keyframes mapPulse { 0%,100%{box-shadow:0 0 0 0 rgba(201,162,91,0.4)} 50%{box-shadow:0 0 0 8px rgba(201,162,91,0)} }
@keyframes slideInUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
.map-card-enter { animation:slideInUp 0.6s var(--ease-out) both; }
.map-card-enter:nth-child(1){animation-delay:0.05s} .map-card-enter:nth-child(2){animation-delay:0.1s}
.map-card-enter:nth-child(3){animation-delay:0.15s} .map-card-enter:nth-child(4){animation-delay:0.2s}
.map-card-enter:nth-child(5){animation-delay:0.25s} .map-card-enter:nth-child(6){animation-delay:0.3s}
.map-card-enter:nth-child(7){animation-delay:0.35s} .map-card-enter:nth-child(8){animation-delay:0.4s}
.map-pulse { animation:mapPulse 2s infinite; }
.map-shimmer { background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.1) 50%,transparent 100%); background-size:200% 100%; animation:shimmer 3s infinite; }
.map-tooltip { position:relative; }
.map-tooltip:hover::after { content:attr(data-tip); position:absolute; bottom:100%; left:50%; transform:translateX(-50%); background:var(--fire-deep); color:#fff; padding:4px 10px; border-radius:6px; font-size:11px; white-space:nowrap; z-index:10; margin-bottom:4px; }
.map-occupied { background:linear-gradient(135deg,var(--fire-purple),rgba(255,255,255,0.9))!important; color:#fff!important; transition:all 0.4s var(--ease-out); }
.map-occupied:hover { transform:translateY(-3px) scale(1.03); box-shadow:var(--shadow-glow); }
.map-available { transition:all 0.3s; }
.map-available:hover { background:rgba(123,45,142,0.08)!important; transform:translateY(-2px); }
.map-revenue-badge { display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:12px;font-size:9px;background:rgba(201,162,91,0.15);color:#8B6914; }
.refresh-indicator { display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--ink-light);padding:4px 10px;border-radius:20px;background:rgba(123,45,142,0.04); }
.refresh-indicator::before { content:'';width:6px;height:6px;border-radius:50%;background:#22C55E;animation:mapPulse 2s infinite; }

/* ═══════════════════════════════════════════
   FINAL POLISH v100 · Global Improvements
   ═══════════════════════════════════════════ */

/* Smooth all transitions */
.card-stat, .btn, .nav-link, .table tbody tr, input, select, textarea {
  transition: all 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}

/* Refined card hover */
.card-stat:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(61,15,62,0.12), 0 0 0 1px rgba(201,162,91,0.08); }

/* Premium typography */
.page-title { font-size: 28px; letter-spacing: 0.5px; }
.page-subtitle { font-size: 14px; letter-spacing: 0.3px; }

/* Softer inputs */
input:focus, select:focus, textarea:focus { 
  box-shadow: 0 0 0 4px rgba(123,45,142,0.06), 0 2px 8px rgba(123,45,142,0.08) !important;
  border-color: var(--fire-purple) !important;
}

/* Elegant scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--fire-purple), var(--fire-amethyst)); border-radius: 20px; }

/* Button hover glow */
.btn-primary:hover { box-shadow: 0 6px 24px rgba(123,45,142,0.3), 0 0 0 2px rgba(123,45,142,0.1); }
.btn-gold:hover { box-shadow: 0 6px 24px rgba(201,162,91,0.3), 0 0 0 2px rgba(201,162,91,0.1); }

/* Table stripe */
.table tbody tr:nth-child(even) { background: rgba(123,45,142,0.015); }

/* Card inner spacing */
.card-stat p, .card-stat .value { margin-bottom: 4px; }

/* Loading shimmer */
@keyframes loadingShimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
/* 联邦总览 v71 */
.fed-hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--fire-deep) 0%,var(--fire-purple) 40%,#4A154B 70%,var(--ink-deep) 100%);padding:48px 40px;margin-bottom:28px;color:#fff}
.fed-hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 25% 35%,rgba(201,162,91,0.15) 0%,transparent 50%),radial-gradient(circle at 75% 25%,rgba(196,123,92,0.10) 0%,transparent 50%),radial-gradient(circle at 50% 80%,rgba(136,58,142,0.20) 0%,transparent 45%);animation:flamePulse 6s ease-in-out infinite}
.fed-hero-content{position:relative;z-index:1}
.fed-hero-title{font-family:"Noto Serif SC",serif;font-size:32px;font-weight:700;margin-bottom:8px;color:var(--gold-accent);letter-spacing:1px}
.fed-icon-pulse{display:inline-block;animation:pulse 2s ease-in-out infinite}
.fed-hero-subtitle{font-size:14px;color:rgba(255,255,255,0.55);margin-bottom:32px;letter-spacing:0.5px}
.fed-hero-stats{display:flex;gap:16px;flex-wrap:wrap}
.fed-stat-card{flex:1;min-width:130px;background:rgba(255,255,255,0.07);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-md);padding:20px 16px;text-align:center;transition:all 0.3s ease;position:relative;overflow:hidden}
.fed-stat-card:hover{background:rgba(255,255,255,0.12);transform:translateY(-2px);border-color:rgba(201,162,91,0.3);box-shadow:0 8px 30px rgba(0,0,0,0.2)}
.fed-stat-card::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold-accent),transparent);opacity:0;transition:opacity 0.3s}
.fed-stat-card:hover::after{opacity:1}
.fed-stat-icon{font-size:28px;margin-bottom:8px}
.fed-stat-value{font-size:32px;font-weight:700;font-family:"Noto Serif SC",serif;background:linear-gradient(135deg,#fff,var(--gold-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.fed-stat-label{font-size:11px;color:rgba(255,255,255,0.45);margin-top:4px;letter-spacing:1px;text-transform:uppercase}
.fed-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.fed-tab{padding:10px 22px;border-radius:24px;border:1px solid rgba(107,29,110,0.15);background:rgba(255,255,255,0.5);color:var(--ink-gray);font-size:13px;cursor:pointer;transition:all 0.25s ease;backdrop-filter:blur(6px);font-family:"PingFang SC",sans-serif;font-weight:500}
.fed-tab:hover{border-color:var(--fire-purple);color:var(--fire-purple)}
.fed-tab.active{background:linear-gradient(135deg,var(--fire-purple),var(--fire-amethyst));color:#fff;border-color:transparent;box-shadow:0 4px 16px rgba(107,29,110,0.25)}
.fed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.fed-card{background:rgba(255,255,255,0.65);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.5);border-radius:var(--radius-lg);padding:28px 24px;cursor:pointer;position:relative;overflow:hidden;transition:all 0.4s cubic-bezier(0.22,0.61,0.36,1)}
.fed-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(61,15,62,0.15),0 0 0 1px rgba(201,162,91,0.15)}
.fed-card-glow{position:absolute;top:-50%;right:-50%;width:200px;height:200px;border-radius:50%;filter:blur(80px);opacity:0.08;transition:all 0.5s ease}
.fed-card:hover .fed-card-glow{opacity:0.15;transform:scale(1.5)}
.fed-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;position:relative;z-index:1}
.fed-card-badge{padding:5px 14px;border-radius:20px;font-size:11px;color:#fff;font-weight:500;letter-spacing:0.5px}
.fed-card-crown{font-size:24px;animation:pulse 2s ease-in-out infinite}
.fed-card-title{font-size:18px;font-weight:700;color:var(--fire-deep);margin-bottom:4px;position:relative;z-index:1;font-family:"Noto Serif SC",serif}
.fed-card-theme{font-size:12px;color:var(--ink-light);margin-bottom:12px;position:relative;z-index:1}
.fed-card-commander{font-size:12px;color:var(--ink-gray);margin-bottom:14px;display:flex;align-items:center;gap:6px;position:relative;z-index:1}
.fed-card-stats{display:flex;gap:16px;margin-bottom:16px;position:relative;z-index:1}
.fed-card-stat-item{text-align:center;flex:1}
.fed-card-stat-num{font-size:22px;font-weight:700;color:var(--fire-purple)}
.fed-card-stat-lbl{font-size:10px;color:var(--ink-light);margin-top:2px;text-transform:uppercase;letter-spacing:0.5px}
.fed-card-bar{height:3px;border-radius:3px;margin-top:4px;transition:width 1s ease;position:relative;z-index:1;opacity:0.5}
.fed-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.fed-btn{padding:12px 28px;border-radius:28px;border:none;background:linear-gradient(135deg,var(--fire-purple),var(--fire-amethyst));color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.3s ease;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px rgba(107,29,110,0.2)}
.fed-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(107,29,110,0.35)}
.fed-btn span{font-size:18px;font-weight:700}
.fed-btn-alt{background:rgba(255,255,255,0.6);color:var(--fire-purple);border:1px solid rgba(107,29,110,0.15);box-shadow:none}
.fed-btn-alt:hover{background:rgba(255,255,255,0.85);box-shadow:0 4px 16px rgba(107,29,110,0.1)}
.fed-detail{animation:fadeInUp 0.4s ease both}
.fed-back-btn{padding:8px 18px;border-radius:20px;border:1px solid rgba(107,29,110,0.15);background:rgba(255,255,255,0.5);color:var(--fire-purple);font-size:13px;cursor:pointer;margin-bottom:20px;transition:all 0.2s;backdrop-filter:blur(6px)}
.fed-back-btn:hover{background:rgba(255,255,255,0.8);border-color:var(--fire-purple)}
.fed-detail-hero{background:linear-gradient(135deg,var(--fire-deep),var(--fire-purple));border-radius:var(--radius-lg);padding:36px;color:#fff;margin-bottom:24px;position:relative;overflow:hidden}
.fed-detail-hero::after{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle,rgba(201,162,91,0.12) 0%,transparent 70%)}
.fed-detail-hero h2{font-family:"Noto Serif SC",serif;font-size:26px;margin-bottom:6px;position:relative;z-index:1}
.fed-detail-hero p{font-size:13px;opacity:0.7;position:relative;z-index:1}
.fed-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.fed-detail-card{background:rgba(255,255,255,0.6);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);border-radius:var(--radius-md);padding:24px}
.fed-detail-card h6{color:var(--fire-deep);margin-bottom:16px;font-size:14px}
.fed-detail-stats{display:flex;gap:16px}
.fed-detail-stats>div{flex:1;text-align:center;padding:12px 8px;background:rgba(107,29,110,0.03);border-radius:var(--radius-sm)}
.fed-detail-stats>div span{display:block;font-size:24px;font-weight:700;color:var(--fire-purple)}
.fed-detail-stats>div small{font-size:10px;color:var(--ink-light);text-transform:uppercase}
.fed-member-list{display:flex;flex-direction:column;gap:8px}
.fed-member-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(107,29,110,0.02);border-radius:var(--radius-sm);font-size:13px}
.fed-member-role{padding:2px 8px;border-radius:12px;background:rgba(107,29,110,0.1);color:var(--fire-purple);font-size:10px;font-weight:600;text-transform:uppercase}
/* Modal */
.modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeInUp 0.2s ease}
.modal-card{background:#fff;border-radius:var(--radius-xl);width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,0.2);animation:fadeInUp 0.3s ease}
.modal-header{padding:24px;border-bottom:1px solid rgba(0,0,0,0.06);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:2;border-radius:var(--radius-xl) var(--radius-xl) 0 0}
.modal-header h3{font-family:"Noto Serif SC",serif;color:var(--fire-deep);font-size:20px}
.modal-close{width:36px;height:36px;border-radius:50%;border:1px solid rgba(0,0,0,0.1);background:transparent;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--ink-light);transition:all 0.2s}
.modal-close:hover{background:rgba(196,107,107,0.1);color:var(--danger);border-color:var(--danger)}
.modal-body{padding:24px}
.modal-footer{padding:16px 24px;border-top:1px solid rgba(0,0,0,0.06);display:flex;justify-content:flex-end;gap:8px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:12px;font-weight:600;color:var(--ink-gray);margin-bottom:6px}
/* 百花池 */
.hf-hero{background:linear-gradient(165deg,#1A0A1E 0%,var(--fire-deep) 30%,var(--fire-purple) 60%,#5B2C5E 100%);border-radius:var(--radius-xl);padding:48px 40px;margin-bottom:24px;position:relative;overflow:hidden;color:#fff}
.hf-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 30% 45%,rgba(201,162,91,0.08) 0%,transparent 55%),radial-gradient(circle at 70% 25%,rgba(196,123,92,0.06) 0%,transparent 45%);animation:flamePulse 8s ease-in-out infinite}
.hf-hero-content{position:relative;z-index:2}
.hf-hero-title{font-family:"Noto Serif SC",serif;font-size:30px;font-weight:700;color:var(--gold-accent);margin-bottom:8px}
.hf-hero-sub{font-size:13px;color:rgba(255,255,255,0.5);margin-bottom:24px}
.hf-hero-stats{display:flex;gap:20px;flex-wrap:wrap}
.hf-hero-stat{text-align:center}
.hf-hero-stat .num{font-size:36px;font-weight:700;background:linear-gradient(135deg,#FFD700,#FFF);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hf-hero-stat .lbl{font-size:11px;color:rgba(255,255,255,0.4);margin-top:4px;letter-spacing:1px}
.hf-carousel{position:relative;margin-bottom:28px;overflow:hidden;border-radius:var(--radius-xl);background:rgba(255,255,255,0.6);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);min-height:220px}
.hf-carousel-track{display:flex;transition:transform 0.5s cubic-bezier(0.22,0.61,0.36,1)}
.hf-carousel-slide{min-width:100%;padding:40px;display:flex;align-items:center;gap:32px}
.hf-carousel-img{width:180px;height:180px;border-radius:50%;background:linear-gradient(135deg,var(--fire-purple),var(--gold-accent));display:flex;align-items:center;justify-content:center;font-size:64px;flex-shrink:0;box-shadow:0 0 60px rgba(201,162,91,0.2)}
.hf-carousel-info{flex:1}
.hf-carousel-brand{font-size:24px;font-weight:700;color:var(--fire-deep);font-family:"Noto Serif SC",serif;margin-bottom:6px}
.hf-carousel-tagline{font-size:13px;color:var(--ink-light);margin-bottom:12px}
.hf-carousel-desc{font-size:14px;color:var(--ink-gray);line-height:1.7;margin-bottom:16px}
.hf-carousel-meta{display:flex;gap:16px;font-size:11px;color:var(--ink-light);margin-bottom:16px}
.hf-carousel-btn{padding:10px 24px;border-radius:24px;border:none;background:linear-gradient(135deg,var(--fire-purple),var(--fire-amethyst));color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.3s}
.hf-carousel-btn:hover{box-shadow:0 6px 24px rgba(107,29,110,0.35);transform:translateY(-1px)}
.hf-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.8);border:1px solid rgba(107,29,110,0.1);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;z-index:5;color:var(--fire-purple);transition:all 0.2s;backdrop-filter:blur(4px)}
.hf-carousel-nav:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.1)}
.hf-carousel-prev{left:16px}
.hf-carousel-next{right:16px}
.hf-carousel-dots{display:flex;gap:8px;justify-content:center;margin-top:12px;padding-bottom:12px}
.hf-dot{width:8px;height:8px;border-radius:50%;background:rgba(107,29,110,0.2);cursor:pointer;transition:all 0.3s}
.hf-dot.active{background:var(--fire-purple);width:24px;border-radius:4px}
.hf-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.hf-filter{padding:8px 18px;border-radius:20px;border:1px solid rgba(107,29,110,0.12);background:rgba(255,255,255,0.5);cursor:pointer;font-size:12px;color:var(--ink-gray);transition:all 0.2s;backdrop-filter:blur(4px)}
.hf-filter:hover{border-color:var(--fire-purple);color:var(--fire-purple)}
.hf-filter.active{background:linear-gradient(135deg,var(--fire-purple),var(--fire-amethyst));color:#fff;border-color:transparent}
.hf-brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.hf-brand-card{background:rgba(255,255,255,0.6);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.5);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all 0.4s cubic-bezier(0.22,0.61,0.36,1)}
.hf-brand-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(61,15,62,0.12),0 0 0 1px rgba(201,162,91,0.12)}
.hf-brand-cover{height:140px;background:linear-gradient(135deg,var(--fire-deep),var(--fire-purple),var(--fire-amethyst));position:relative;display:flex;align-items:center;justify-content:center;color:#fff;font-size:48px}
.hf-brand-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 40%,rgba(255,255,255,0.1) 0%,transparent 60%)}
.hf-brand-badge{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:12px;font-size:10px;font-weight:600;z-index:1}
.hf-brand-body{padding:20px}
.hf-brand-name{font-size:17px;font-weight:700;color:var(--fire-deep);margin-bottom:4px;font-family:"Noto Serif SC",serif}
.hf-brand-tagline{font-size:12px;color:var(--ink-light);margin-bottom:10px}
.hf-brand-desc{font-size:13px;color:var(--ink-gray);line-height:1.6;margin-bottom:12px}
.hf-brand-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid rgba(0,0,0,0.04);font-size:11px;color:var(--ink-light)}
.hf-brand-footer span{display:flex;align-items:center;gap:4px}
.hf-permission-badge{display:inline-flex;padding:3px 10px;border-radius:12px;font-size:10px;font-weight:500}
.hf-perm-public{background:rgba(123,155,106,0.12);color:#7B9B6A}
.hf-perm-members{background:rgba(201,162,91,0.12);color:#8B6914}
.hf-perm-private{background:rgba(196,107,107,0.1);color:#C46B6B}
.hf-perm-bar{display:flex;gap:6px;padding:16px 0;border-bottom:1px solid rgba(0,0,0,0.04);margin-bottom:16px}
.hf-perm-btn{padding:6px 14px;border-radius:16px;border:1px solid rgba(0,0,0,0.1);background:transparent;font-size:11px;cursor:pointer;transition:all 0.2s}
.hf-perm-btn:hover{border-color:var(--fire-purple)}
.hf-perm-btn.active{background:var(--fire-purple);color:#fff;border-color:var(--fire-purple)}
.hf-modal-showcases{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.hf-showcase-item{background:rgba(107,29,110,0.03);border-radius:var(--radius-sm);padding:14px;text-align:center}
.hf-showcase-item .icon{font-size:28px;margin-bottom:6px}
.hf-showcase-item .title{font-size:12px;font-weight:600;color:var(--fire-deep)}
.hf-showcase-item .desc{font-size:11px;color:var(--ink-light);margin-top:4px}
/* Global search */
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* ═══ 动画增强 ═══ */
@keyframes countUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes pulse-glow{0%,100%{box-shadow:0 0 10px rgba(201,162,91,0.3)}50%{box-shadow:0 0 30px rgba(201,162,91,0.6)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}
@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.95)}100%{transform:scale(1)}}
@keyframes floatUp{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@keyframes bellShake{0%,100%{transform:rotate(0)}10%,30%,50%,70%,90%{transform:rotate(-5deg)}20%,40%,60%,80%{transform:rotate(5deg)}}
@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
/* Card hover lift */
.card-stat{transition:all 0.35s cubic-bezier(0.25,0.46,0.45,0.94)}.card-stat:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(61,15,62,0.12)}
/* Staggered entrance */
.card-stat:nth-child(1){animation:floatUp 0.5s ease both}.card-stat:nth-child(2){animation:floatUp 0.5s 0.05s ease both}.card-stat:nth-child(3){animation:floatUp 0.5s 0.1s ease both}.card-stat:nth-child(4){animation:floatUp 0.5s 0.15s ease both}.card-stat:nth-child(5){animation:floatUp 0.5s 0.2s ease both}.card-stat:nth-child(6){animation:floatUp 0.5s 0.25s ease both}
/* Button ripple */
.btn-primary,.fed-btn,.btn-login{position:relative;overflow:hidden}.btn-primary::after,.fed-btn::after,.btn-login::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.3);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}.btn-primary:active::after,.fed-btn:active::after,.btn-login:active::after{width:300px;height:300px}
/* Nav link slide */
.nav-link{transition:all 0.3s cubic-bezier(0.25,0.46,0.45,0.94)}.nav-link:hover{transform:translateX(4px)}
/* Notification badge bounce */
.nav-badge{animation:bounceIn 0.5s ease}
/* Hero gradient animate */
[class*="linear-gradient"][class*="135deg"]{background-size:200% 200%;animation:gradientShift 8s ease infinite}
/* KPI number counting effect */
.card-stat .value{animation:countUp 0.6s ease both}
/* Logo text glow */
.logo h2{text-shadow:0 0 20px rgba(201,162,91,0.4);transition:text-shadow 0.5s}.logo h2:hover{text-shadow:0 0 40px rgba(201,162,91,0.8),0 0 80px rgba(201,162,91,0.3)}
/* Progress bar animated */
.progress-bar{transition:width 1.2s cubic-bezier(0.25,0.46,0.45,0.94)}
/* Modal scale in */
.modal-card{animation:scaleIn 0.3s ease}
.modal-overlay{animation:fadeInUp 0.25s ease}
/* Sidebar section fade */
.nav-section{animation:slideInLeft 0.4s ease both}
/* Table row hover */
.table tbody tr{transition:all 0.2s ease}.table tbody tr:hover{transform:scale(1.005);background:rgba(201,162,91,0.05)!important}
/* Badge hover */
.badge-gold,.badge-role{transition:all 0.2s ease}.badge-gold:hover,.badge-role:hover{transform:scale(1.08)}
/* Tab underline slide */
.fed-tab{position:relative;transition:all 0.3s ease}.fed-tab::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--fire-purple);transition:all 0.3s ease;transform:translateX(-50%)}.fed-tab:hover::after{width:60%}.fed-tab.active::after{width:100%}
/* Image hover zoom */
img[src*="svg"]{transition:transform 0.5s ease}img[src*="svg"]:hover{transform:scale(1.02)}
/* Search panel entrance */
#global-search-overlay{animation:fadeInUp 0.2s ease}
#global-search-overlay>div{animation:scaleIn 0.3s ease}
/* Skeleton loading */
.skeleton{background:linear-gradient(90deg,rgba(123,45,142,0.04) 25%,rgba(123,45,142,0.08) 50%,rgba(123,45,142,0.04) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}
@media(max-width:768px){
.fed-hero{padding:28px 20px}.fed-hero-title{font-size:22px}.fed-stat-value{font-size:24px}.fed-grid{grid-template-columns:1fr}
.hf-hero{padding:28px 20px}.hf-hero-title{font-size:22px}.hf-brand-grid{grid-template-columns:1fr}
.hf-carousel-slide{flex-direction:column;padding:24px}.hf-carousel-img{width:100px;height:100px;font-size:36px}
/* Adjust search panel for mobile */
#global-search-overlay>div{max-width:95vw!important;margin:0 8px}
}
