*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* -------- 午夜玫红 Midnight Rose（2026-09 定稿：近黑底 + 玫红单色强调，无渐变） -------- */
  --bg:#0a0a0a;
  --bg2:#111111;
  --bg-gradient:#0a0a0a;
  --surface:#121212;                          /* 卡片面：近黑贴片（非玻璃） */
  --surface-solid:#151515;
  --surface-hover:rgba(255,77,148,0.07);
  --border:rgba(255,255,255,0.09);
  --border-hover:rgba(255,122,181,0.45);
  --primary:#ff4d94;                          /* 主强调：玫红 */
  --primary-light:#ff9ec6;                    /* 玫红的文字/图标态 */
  --primary-dark:#c9246e;                     /* 深玫红（按下 / 实心块） */
  --accent:#ff7ab5;                           /* 浅玫红（次级强调） */
  --text:#ffffff;
  --text2:#c9c9c9;
  --text3:#8a8a8a;
  --danger:#ff5d5d;
  --success:#7ddc9a;
  --warning:#ffa94d;
  --radius:18px;
  --radius-sm:13px;
  --radius-lg:26px;
  --nav-h:78px;
  --sidebar-w:260px;
  --ink:#2a0a18;                              /* 玫红实心底上的深墨字 */
  --gold:#ff4d94;                             /* 兼容旧变量名：等同于主强调 */
  --amber:#c9246e;
  --hairline:rgba(255,77,148,0.22);           /* 玫红发丝线 */
  /* 极简阴影：卡片刻意“无阴影”，靠描边与底色分层 */
  --shadow-lg:0 26px 64px rgba(0,0,0,0.66);
  --shadow-md:0 12px 30px rgba(0,0,0,0.45);
  --shadow-card:0 0 0 1px rgba(255,255,255,0.06);
  --shadow-glow:
    0 0 22px rgba(255,77,148,0.42),
    0 0 44px rgba(201,36,110,0.18);
  /* 强调色一律纯色，不使用渐变 */
  --grad-primary:#ff4d94;
  --grad-accent:#c9246e;
  --grad-button:#ff4d94;
  --grad-ink:#ff4d94;
  /* 毛玻璃滤镜（顶栏 / 浮层用） */
  --glass-blur:blur(20px) saturate(150%);
  --glass-bg:rgba(12,12,12,0.72);
  --glass-border:1px solid rgba(255,77,148,0.16);

  /* ================= 设计令牌（UI 打磨层统一复用） ================= */
  /* 间距阶梯 4 / 8 / 12 / 16 / 24 / 32 */
  --sp-1:4px;  --sp-2:8px;  --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  /* 圆角阶梯 10 / 12 / 18 / 24（既有 --radius:18px / --radius-sm:13px / --radius-lg 保留） */
  --r-10:10px; --r-12:12px; --r-18:18px; --r-24:24px;
  /* 阴影三级：卡片 / 悬浮 / 弹窗 */
  --elev-1:0 0 0 1px rgba(255,255,255,0.07);
  --elev-2:0 0 0 1px rgba(255,122,181,0.28),0 14px 34px rgba(0,0,0,0.50);
  --elev-3:0 28px 74px rgba(0,0,0,0.68),0 0 0 1px rgba(255,122,181,0.16);
  /* 字体阶梯：标题 / 分组 / 正文 / 次要 */
  --fs-h1:26px; --fs-h2:20px; --fs-group:15px; --fs-body:14px; --fs-sub:12.5px;
  /* 过渡时长 120–200ms */
  --t-fast:120ms; --t-base:180ms; --t-slow:200ms;
  --ease:cubic-bezier(.4,0,.2,1);
  /* 交互态色调（浅色层会覆盖同一语义） */
  --hover-veil:rgba(255,77,148,0.10);
  --press-veil:rgba(255,77,148,0.18);
  --focus-ring:0 0 0 3px rgba(255,122,181,0.28);
}
html,body{height:100%;font-family:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,"Hiragino Sans GB","Noto Sans SC",sans-serif;background:var(--bg);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text);overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}
body::before{content:'';position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:
  radial-gradient(circle at 20% 15%,rgba(255,158,198,0.16) 0%,transparent 48%),
  radial-gradient(circle at 85% 80%,rgba(201,36,110,0.12) 0%,transparent 52%),
  radial-gradient(circle at 50% 50%,rgba(255,77,148,0.06) 0%,transparent 70%);pointer-events:none;z-index:0;animation:auroraShift 22s ease-in-out infinite alternate}
@keyframes auroraShift{
  0%  { transform: translate3d(0,0,0) scale(1); }
  100%{ transform: translate3d(-2%,1%,0) scale(1.05); }
}
a{color:var(--primary-light);text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none;color:inherit}
input,textarea,select{font-family:inherit;outline:none;color:inherit}
/*  强制 #radarMap 容器高度: 内联 inline style 可能被父布局覆盖, 这里用 !important 锁死, 彻底解决 height=0 导致的地图 tile 全空白 */
#radarMap{width:100% !important;height:62vh !important;min-height:460px !important;display:block !important;box-sizing:border-box;margin-top:24px;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.35);border:1px solid rgba(255,158,198,.15)}
/* 频道雷达（频道聊天窗内全屏覆盖层） */
#ccRadarMap{width:100%;height:100%;min-height:220px;background:var(--bg2)}
.cc-radar-marker{width:38px;height:38px;border-radius:50%;border:2px solid #fff;object-fit:cover;box-shadow:0 2px 8px rgba(0,0,0,.45);background:#fff}
.cc-radar-me{width:18px;height:18px;border-radius:50%;background:var(--primary);border:3px solid #fff;box-shadow:0 0 0 2px rgba(255,158,198,.45)}
.cc-radar-cluster{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;border:2px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.4)}
.cc-radar-row{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;cursor:pointer}
.cc-radar-row:hover{background:var(--surface-hover,rgba(255,255,255,.05))}
.cc-radar-dist{font-size:12.5px;color:var(--primary-light);font-weight:600;white-space:nowrap}
.cc-switch{position:relative;width:38px;height:22px;border-radius:11px;background:rgba(255,255,255,.18);transition:background .2s;flex-shrink:0}
.cc-switch.on{background:var(--primary)}
.cc-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s}
.cc-switch.on::after{left:18px}
img{display:block;max-width:100%}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,158,198,0.32);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,158,198,0.55)}

.svg-icon{width:1em;height:1em;vertical-align:middle;flex-shrink:0}
.svg-icon.size-12{width:12px;height:12px}
.svg-icon.size-14{width:14px;height:14px}
.svg-icon.size-16{width:16px;height:16px}
.svg-icon.size-18{width:18px;height:18px}
.svg-icon.size-20{width:20px;height:20px}
.svg-icon.size-22{width:22px;height:22px}
.svg-icon.size-24{width:24px;height:24px}
.svg-icon.size-28{width:28px;height:28px}
.svg-icon.size-32{width:32px;height:32px}
.svg-icon.size-36{width:36px;height:36px}
.svg-icon.size-40{width:40px;height:40px}
.svg-icon.size-44{width:44px;height:44px}
.svg-icon.size-48{width:48px;height:48px}
.svg-icon.size-56{width:56px;height:56px}
.svg-icon.size-60{width:60px;height:60px}
.svg-icon.size-64{width:64px;height:64px}
.svg-icon.size-80{width:80px;height:80px}
.svg-icon.size-88{width:88px;height:88px}

#app{display:flex;height:100%;width:100%;position:relative;z-index:1}

.sidebar{display:none;width:var(--sidebar-w);background:rgba(22,14,18,0.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);flex-direction:column;border-right:1px solid var(--border);flex-shrink:0;position:relative}
.sidebar::before{content:'';position:absolute;top:0;bottom:0;right:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,158,198,0.30),transparent)}
.sidebar .logo{padding:24px 20px 18px;font-size:19px;font-weight:800;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:10px;letter-spacing:0.5px}
.sidebar .logo .logo-icon{color:var(--primary);display:none !important;align-items:center;justify-content:center;filter:drop-shadow(0 0 8px rgba(255,158,198,0.5));width:0;height:0;overflow:hidden}
/* 顶栏品牌：logo 图标 + 文字（多页架构：左侧栏取消后，logo 放在这里） */
.top-bar-left .brand .logo-icon{display:inline-flex !important;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#f7f2f6;box-shadow:0 4px 14px rgba(20,14,18,0.45)}
.top-bar-left .brand .logo-icon img{width:100%;height:100%;display:block;object-fit:contain}
.brand{gap:9px !important}
/* 页面标题：logo 图标 + 标题文字 */
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;position:relative;z-index:3}
.page-head .page-logo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:#f7f2f6;box-shadow:0 5px 16px rgba(20,14,18,0.45)}
.page-head .page-logo img{width:100%;height:100%;display:block;object-fit:contain}
.page-head .page-title{margin:0}
@media(max-width:767px){.page-head{margin-bottom:14px;gap:10px}.page-head .page-logo{width:32px;height:32px}}
/* 顶栏「更多」下拉（原左侧栏里的次级入口） */
.more-menu{position:relative}
.more-menu-panel{display:none;position:absolute;right:0;top:calc(100% + 12px);min-width:186px;padding:8px;border-radius:16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:0 18px 50px rgba(0,0,0,0.42);z-index:60}
.more-menu-panel.show{display:block}
.more-menu-panel a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;color:var(--text2);font-size:13.5px;font-weight:500;text-decoration:none;transition:all .2s}
.more-menu-panel a:hover{background:var(--surface-hover);color:var(--text)}
.more-menu-panel a.active{background:linear-gradient(135deg,rgba(255,158,198,0.32),rgba(201,36,110,0.20));color:var(--text)}
.sidebar nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:6px 10px}
.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 16px;color:var(--text2);font-size:14px;font-weight:500;border-radius:var(--radius-sm);transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}
.sidebar nav a:hover{background:var(--surface-hover);color:var(--text);transform:translateX(2px)}
.sidebar nav a.active{background:linear-gradient(135deg,rgba(255,158,198,0.22),rgba(201,36,110,0.12));color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,158,198,0.18)}
.sidebar nav a.active::before{content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:26px;background:var(--primary);border-radius:0 3px 3px 0}
.sidebar nav a .icon{display:flex;align-items:center;justify-content:center;width:22px;color:currentColor}
.sidebar .nav-section{padding:14px 18px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);font-weight:600}
.sidebar .sidebar-footer{padding:14px;border-top:1px solid var(--border)}
.sidebar .user-chip{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s;margin-bottom:10px}
.sidebar .user-chip:hover{background:var(--surface-hover)}
.sidebar .user-chip .avatar{width:40px;height:40px}
.sidebar .user-chip .info{flex:1;min-width:0}
.sidebar .user-chip .name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .user-chip .meta{font-size:12px;color:var(--text2)}
.sidebar .sidebar-footer button{width:100%;padding:10px;background:var(--surface-hover);color:var(--text2);border-radius:var(--radius-sm);font-size:13.5px;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}
.sidebar .sidebar-footer button:hover{background:rgba(251,113,133,0.15);color:var(--danger)}

.main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;min-width:0}
.page-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:28px 28px 120px;scroll-behavior:smooth}
.page-container::-webkit-scrollbar{width:8px}

/* ============== TOP BAR — Glassmorphism ============== */
.top-bar{display:none;height:68px;align-items:center;justify-content:space-between;padding:0 30px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:var(--glass-border);flex-shrink:0;position:sticky;top:0;z-index:10;box-shadow:0 8px 30px rgba(0,0,0,0.22),0 0 40px rgba(255,77,148,0.05)}
.top-bar-left{display:flex;align-items:center;gap:16px;min-width:180px}
.top-bar-left .brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.top-bar-center{display:flex;align-items:center;gap:4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:16px;padding:6px;box-shadow:var(--shadow-md)}
.top-bar-center a{display:flex;align-items:center;gap:7px;padding:9px 18px;border-radius:12px;color:var(--text2);font-size:13.5px;font-weight:500;transition:all .22s;white-space:nowrap}
.top-bar-center a:hover{color:var(--text);background:var(--surface-hover)}
.top-bar-center a.active{background:linear-gradient(135deg,rgba(255,158,198,0.32),rgba(201,36,110,0.20));color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,77,148,0.3),0 0 18px rgba(255,158,198,0.22)}
.top-bar-right{display:flex;align-items:center;gap:12px;min-width:180px;justify-content:flex-end}
.top-bar-search{position:relative;width:230px}
.top-bar-search input{width:100%;padding:11px 14px 11px 40px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:var(--glass-border);border-radius:24px;color:var(--text);font-size:13px;transition:all .2s;box-shadow:inset 0 0 0 1px rgba(255,77,148,0.05)}
.top-bar-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,158,198,0.14),0 0 22px rgba(255,158,198,0.18)}
.top-bar-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text3)}
.icon-btn{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--text2);transition:all .22s;flex-shrink:0;cursor:pointer;background:transparent;border:1px solid transparent}
.icon-btn:hover{background:rgba(255,77,148,0.10);color:var(--primary-light);border-color:rgba(255,77,148,0.16);box-shadow:0 4px 16px rgba(255,77,148,0.16)}
.icon-btn .svg-icon{width:18px;height:18px}
.top-bar-avatar{width:38px;height:38px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:transform .25s,box-shadow .25s;border:2px solid rgba(255,77,148,0.35)}
.top-bar-avatar:hover{transform:scale(1.06);box-shadow:0 0 0 3px rgba(255,158,198,0.4),0 0 24px rgba(255,158,198,0.45)}

/* ============== BOTTOM NAV — Glass + Glow ============== */
.bottom-nav{position:fixed;left:14px;right:14px;bottom:14px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:28px;display:flex;align-items:center;justify-content:space-around;padding:10px 12px calc(12px + env(safe-area-inset-bottom, 0px)) 12px;z-index:50;box-shadow:
  0 20px 60px rgba(0,0,0,0.55),
  0 0 0 1px rgba(255,77,148,0.08),
  0 0 80px rgba(255,77,148,0.08)}
.bottom-nav::before{content:'';position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,77,148,0.45),transparent)}
.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;color:var(--text3);font-size:11px;font-weight:600;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;cursor:pointer;text-decoration:none;border-radius:18px;min-width:0}
.bottom-nav a .icon-wrap{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;background:transparent}
.bottom-nav a .icon-wrap .svg-icon{width:22px;height:22px;transition:all .3s}
/* 非选中 hover：轻微浮起 */
.bottom-nav a:hover{color:var(--primary-light);transform:translateY(-2px)}
.bottom-nav a:hover .icon-wrap{background:rgba(255,158,198,0.14)}
/* ===== 选中状态：径向光晕外扩散 + Glass Pill ===== */
.bottom-nav a.active{color:#fff}
.bottom-nav a.active .icon-wrap{
  background:linear-gradient(135deg,rgba(255,158,198,0.85),rgba(255,77,148,0.85));
  transform:translateY(-10px) scale(1.08);
}
/* —— 外扩散光晕：多层 box-shadow + 伪元素径向渐变 —— */
.bottom-nav a.active .icon-wrap::before{
  content:'';position:absolute;inset:-12px;border-radius:22px;
  background:radial-gradient(circle,rgba(255,158,198,0.55) 0%,rgba(255,158,198,0.22) 38%,rgba(255,77,148,0) 70%);
  filter:blur(6px);z-index:-1;animation:navGlowPulse 2.6s ease-in-out infinite alternate;
}
.bottom-nav a.active .icon-wrap{
  box-shadow:
    0 0 0 2px rgba(255,255,255,0.12),
    0 10px 28px rgba(255,77,148,0.6),
    0 0 24px rgba(255,158,198,0.75),
    0 0 60px rgba(255,77,148,0.45);
}
@keyframes navGlowPulse{
  0%  { transform:scale(.92); opacity:.72; }
  100%{ transform:scale(1.12); opacity:1; }
}
.bottom-nav a.active{
  text-shadow:0 0 10px rgba(255,77,148,0.6);
  background:linear-gradient(180deg,rgba(255,158,198,0.10),transparent);
}

.page{display:none;animation:pageIn .38s cubic-bezier(.4,0,.2,1)}
.page.active{display:block}
.page.in{animation:pageIn .38s ease}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.42}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes heartBeat{0%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes rotate{to{transform:rotate(360deg)}}

/* 基础按钮：修饰类（btn-primary/btn-ghost/btn-danger/btn-accent）在全站经常单独使用，
   必须自带 flex 布局与内边距，否则图标与文字会挤在一起（历史上只写 class="btn-primary" 导致） */
.btn,.btn-primary,.btn-ghost,.btn-danger,.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:14px;font-size:13.5px;font-weight:700;transition:all .24s;cursor:pointer;border:none;white-space:nowrap}
.btn:active,.btn-primary:active,.btn-ghost:active,.btn-danger:active,.btn-accent:active{transform:scale(.97)}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:11px}
.btn-primary{background:var(--grad-button);color:#fff;box-shadow:
  0 8px 22px rgba(255,77,148,0.42),
  0 0 0 1px rgba(255,77,148,0.28),
  0 0 30px rgba(255,158,198,0.22)}
.btn-primary:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:
  0 12px 30px rgba(255,77,148,0.55),
  0 0 0 1px rgba(255,77,148,0.4),
  0 0 44px rgba(255,158,198,0.40)}
.btn-primary:disabled{opacity:.55;cursor:not-allowed;filter:none;transform:none}
.btn-primary.btn-sm{padding:8px 14px;font-size:13px;border-radius:11px}
.btn-block{width:100%;justify-content:center;margin-top:6px}
.btn-accent{background:var(--grad-button);color:#fff;box-shadow:0 4px 16px rgba(201,36,110,0.28)}
.btn-accent:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn-outline{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:var(--glass-border);color:var(--text);border-radius:14px;font-size:14px;font-weight:600;transition:all .24s;cursor:pointer;box-shadow:var(--shadow-md)}
.btn-outline:hover{border-color:rgba(255,77,148,0.45);color:var(--primary-light);background:rgba(255,158,198,0.10);box-shadow:0 0 22px rgba(255,158,198,0.25)}
.btn-outline-sm{padding:7px 14px;background:var(--glass-bg);border:var(--glass-border);border-radius:11px;font-size:12.5px;color:var(--text2);display:inline-flex;align-items:center;gap:6px;transition:all .22s;cursor:pointer;font-weight:600}
.btn-outline-sm:hover{border-color:rgba(255,77,148,0.45);color:var(--primary-light);box-shadow:0 0 18px rgba(255,158,198,0.20)}
.btn-ghost{background:rgba(255,77,148,0.08);color:var(--text2);border:1px solid rgba(255,77,148,0.15)}
.btn-ghost:hover{background:rgba(255,158,198,0.16);color:var(--text)}
.btn-danger{background:rgba(251,113,133,0.14);color:var(--danger)}
.btn-danger:hover{background:rgba(251,113,133,0.22)}

.input-wrap{position:relative;margin-bottom:16px}
.input-wrap label{display:block;font-size:12.5px;font-weight:600;color:var(--text2);margin-bottom:6px;letter-spacing:.3px}
.input-wrap input,.input-wrap textarea,.input-wrap select{width:100%;padding:12px 14px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:var(--glass-border);border-radius:14px;font-size:14px;color:var(--text);transition:all .22s;box-shadow:inset 0 0 0 1px rgba(255,77,148,0.03)}
.input-wrap input:focus,.input-wrap textarea:focus,.input-wrap select:focus{border-color:rgba(255,77,148,0.55);box-shadow:0 0 0 3px rgba(255,158,198,0.16),0 0 26px rgba(255,158,198,0.20);outline:none}
textarea{resize:vertical;font-family:inherit;min-height:100px;line-height:1.6}
/* 通用表单控件（弹窗内 class="input"，含频道创建/编辑/成员等表单） */
.input{width:100%;padding:11px 14px;background:rgba(22,18,12,.6);border:1px solid var(--border);border-radius:12px;font-size:14px;color:var(--text);transition:all .22s}
.input:focus{border-color:rgba(255,77,148,.55);box-shadow:0 0 0 3px rgba(255,158,198,.16);outline:none}
.input::placeholder{color:var(--text3)}
.input:disabled{opacity:.55;cursor:not-allowed}
select.input option{background:#141014;color:var(--text)}
/* 验证码输入框 + 按钮并排 */
.input-code-row{display:flex;gap:10px;align-items:flex-start}
.input-code-row > .input-wrap{flex:1;margin:0}
.code-btn{height:44px;padding:0 16px;border-radius:14px;font-size:13px;font-weight:700;background:var(--grad-primary);color:#fff;white-space:nowrap;flex-shrink:0;transition:all .2s;box-shadow:0 6px 18px rgba(255,77,148,0.4)}
.code-btn:hover{filter:brightness(1.08)}
.code-btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.1)}

/* ============== CARD — Glassmorphism 多层阴影 ============== */
.card{position:relative;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius);transition:all .32s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-card);overflow:hidden}
.card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,0.06) 0%,rgba(255,255,255,0) 60%);pointer-events:none}
.card:hover{transform:translateY(-3px);box-shadow:
  0 22px 56px rgba(0,0,0,0.62),
  0 0 0 1px rgba(255,77,148,0.30),
  0 0 70px rgba(255,77,148,0.16);border-color:rgba(255,77,148,0.45)}

.avatar{border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:transparent;background:#161215 url('/assets/brand/logo.png') center/62% no-repeat}
.letter-avatar{display:flex;align-items:center;justify-content:center;font-weight:700;color:transparent;font-size:0;border-radius:50%;flex-shrink:0;font-family:inherit;background:#161215 url('/assets/brand/logo.png') center/62% no-repeat}
.avatar.size-36{width:36px;height:36px;font-size:14px}
.avatar.size-40{width:40px;height:40px;font-size:15px}
.avatar.size-44{width:44px;height:44px;font-size:16px}
.avatar.size-48{width:48px;height:48px;font-size:18px}
.avatar.size-56{width:56px;height:56px;font-size:21px}
.avatar.size-60{width:60px;height:60px;font-size:22px}
.avatar.size-80{width:80px;height:80px;font-size:30px;border:3px solid var(--surface-solid)}
.avatar.size-88{width:88px;height:88px;font-size:32px;border:3px solid var(--surface-solid)}

.badge-fs{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;background:linear-gradient(135deg,rgba(255,158,198,0.22),rgba(201,36,110,0.15));font-size:11px;color:var(--primary-light);font-weight:600;border:1px solid rgba(255,158,198,0.25)}
.badge-fs.sm{padding:2px 7px;font-size:10.5px}
.badge-fs .svg-icon{width:11px;height:11px}
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;background:rgba(255,158,198,0.08);font-size:11.5px;color:var(--text2);border:1px solid rgba(255,158,198,0.1)}
.tag .svg-icon{width:11px;height:11px}

.toast-container{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;background:rgba(20,16,39,0.95);border:1px solid var(--border);border-radius:14px;color:var(--text);font-size:14px;box-shadow:0 8px 28px rgba(0,0,0,0.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transform:translateY(-14px);transition:all .3s cubic-bezier(.4,0,.2,1);max-width:86vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{border-color:rgba(91,231,196,0.35)}
.toast.success .toast-icon{color:var(--success)}
.toast.error{border-color:rgba(255,77,106,0.35)}
.toast.error .toast-icon{color:var(--danger)}
.toast.warning{border-color:rgba(255,181,71,0.35)}
.toast.warning .toast-icon{color:var(--warning)}
.toast.info .toast-icon{color:var(--primary-light)}
.toast-icon .svg-icon{width:18px;height:18px}

.empty{padding:60px 20px;text-align:center;color:var(--text3)}
.empty .svg-icon{width:56px;height:56px;margin-bottom:16px;opacity:.5;color:var(--primary-light)}
.empty h3{font-size:16px;color:var(--text2);margin-bottom:6px}
.empty p{font-size:13px;line-height:1.6}

.container{max-width:1100px;margin:0 auto;padding:0 4px}
.page-title{font-size:22px;font-weight:800;margin-bottom:20px;display:flex;align-items:center;gap:10px;letter-spacing:0.3px}
.page-title.sub{font-size:17px;margin-bottom:14px;margin-top:24px}
.page-title .svg-icon{color:var(--primary-light)}
.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-14{margin-top:14px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}
.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}
.ml-auto{margin-left:auto}
.row-wrap{display:flex;align-items:center;flex-wrap:wrap}

.feed-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,0.3)}
.search-box{flex:1;position:relative}
.search-box input{width:100%;padding:10px 14px 10px 40px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13.5px;color:var(--text);transition:all .2s}
.search-box input:focus{border-color:var(--primary)}
.search-box .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text3)}
.search-box .search-icon .svg-icon{width:15px;height:15px}
.top-bar-search{position:relative;min-width:200px}
.top-bar-search input{width:100%;padding:8px 12px 8px 36px;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--text);transition:all .2s}
.top-bar-search input:focus{border-color:var(--primary)}
.top-bar-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text3)}

.auth-page{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:32px 16px;position:relative;overflow:hidden}
.auth-page::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(255,158,198,0.28),transparent 70%);top:-150px;left:-150px;filter:blur(60px);animation:float 6s ease-in-out infinite}
.auth-page::after{content:'';position:absolute;width:450px;height:450px;border-radius:50%;background:radial-gradient(circle,rgba(201,36,110,0.22),transparent 70%);bottom:-100px;right:-100px;filter:blur(60px);animation:float 7s ease-in-out infinite reverse}
.auth-wrap{width:100%;max-width:420px;animation:slideUp .5s cubic-bezier(.4,0,.2,1);position:relative;z-index:2}
.auth-logo{text-align:center;margin-bottom:28px}
.logo-big{width:76px;height:76px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f7f2f6;box-shadow:0 10px 30px rgba(20,14,18,0.5)}
.logo-big img{width:100%;height:100%;display:block;object-fit:contain}
.auth-logo h1{font-size:24px;font-weight:800;margin-bottom:6px;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.auth-logo p{font-size:14px;color:var(--text2)}
.auth-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:28px 24px;box-shadow:
  0 26px 70px rgba(0,0,0,0.6),
  0 0 0 1px rgba(255,77,148,0.10),
  0 0 60px rgba(255,77,148,0.12);position:relative;overflow:hidden}
.auth-card::before{content:'';position:absolute;top:-80px;left:-80px;width:260px;height:260px;background:radial-gradient(circle,rgba(255,158,198,0.22),transparent 70%);border-radius:50%;animation:auroraShift 14s ease-in-out infinite alternate}
.auth-card::after{content:'';position:absolute;bottom:-60px;right:-60px;width:220px;height:220px;background:radial-gradient(circle,rgba(201,36,110,0.18),transparent 70%);border-radius:50%;animation:auroraShift 18s ease-in-out infinite alternate-reverse}
.auth-card > *{position:relative;z-index:2}
.auth-tabs{display:flex;background:rgba(255,77,148,0.06);border-radius:14px;padding:5px;margin-bottom:22px;border:1px solid rgba(255,77,148,0.15)}
.auth-tab{flex:1;padding:10px 8px;text-align:center;border-radius:10px;font-size:14px;font-weight:700;color:var(--text2);cursor:pointer;transition:all .25s}
.auth-tab.active{background:var(--grad-primary);color:#fff;box-shadow:0 6px 18px rgba(255,77,148,0.38)}
.login-error{margin-top:10px;font-size:13px;color:var(--danger);text-align:center;min-height:18px}
.auth-divider{margin:20px 0 14px;display:flex;align-items:center;gap:12px;color:var(--text3);font-size:12px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.auth-switch{text-align:center;margin-top:18px;font-size:13.5px;color:var(--text2)}
.auth-switch a{color:var(--primary-light);font-weight:700;cursor:pointer;margin-left:4px}
#authWrap{display:none}
#authWrap.active{display:block}

.agent-tab{padding:8px 16px;border-radius:12px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:var(--glass-border);color:var(--text2);font-size:13px;font-weight:700;transition:all .22s;cursor:pointer}
.agent-tab:hover{color:var(--primary-light);border-color:rgba(255,77,148,.4)}
.agent-tab.active{background:var(--grad-button);color:#fff;box-shadow:0 4px 14px rgba(255,77,148,.38)}
.agent-card:hover{border-color:rgba(255,77,148,.42)!important;box-shadow:0 18px 48px rgba(0,0,0,.6),0 0 0 1px rgba(255,77,148,.28),0 0 60px rgba(255,158,198,.14)!important;transform:translateY(-3px)!important}

/* ---------- Explore Tab 分段按钮样式（Glass Pill）---------- */
.explore-tab{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 14px;border-radius:16px;font-size:13.5px;font-weight:700;color:var(--text2);
  transition:all .28s cubic-bezier(.4,0,.2,1);cursor:pointer;background:transparent;border:none;
  position:relative;
}
.explore-tab:hover{color:var(--primary-light);background:rgba(255,77,148,0.10)}
.explore-tab.active{
  background:var(--grad-button);color:#fff;
  box-shadow:
    0 4px 14px rgba(255,77,148,0.4),
    0 0 0 1px rgba(255,255,255,0.12) inset,
    0 0 22px rgba(255,158,198,0.35);
  transform:translateY(-1px);
}
/* Explore panels 淡入切换 */
.explore-panel{animation:pageIn .35s cubic-bezier(.4,0,.2,1)}

.section-title{font-size:18px;font-weight:800;margin:24px 0 14px;display:flex;align-items:center;gap:10px;color:var(--text)}
.section-title:first-child{margin-top:0}
.section-title .icon{color:var(--primary-light);display:flex}

.events-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:14px}
.events-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;color:var(--text2);font-size:13px;font-weight:500;transition:all .2s;background:transparent;border:none;cursor:pointer}
.events-tab:hover{color:var(--text);background:var(--surface-hover)}
.events-tab.active{background:linear-gradient(135deg,rgba(255,158,198,0.22),rgba(201,36,110,0.12));color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,158,198,0.2)}
.events-tab .svg-icon{width:14px;height:14px}
.events-filter{margin-bottom:16px}
.events-filter select{padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13.5px;color:var(--text)}
.events-grid{display:grid;grid-template-columns:1fr;gap:14px}
.ev-card{overflow:hidden;cursor:pointer;padding:0}
.ev-cover{height:170px;position:relative;overflow:hidden;background:var(--primary)}
.ev-cover img{width:100%;height:100%;object-fit:cover;opacity:.92}
.ev-cat{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:rgba(0,0,0,0.55);backdrop-filter:blur(8px);color:#fff;font-size:11.5px;border-radius:10px;z-index:2}
.ev-cat .svg-icon{width:12px;height:12px}
.ev-free{position:absolute;top:12px;right:12px;padding:5px 10px;background:var(--success);color:#121212;font-size:11.5px;font-weight:700;border-radius:10px;z-index:2}
.ev-info{padding:16px}
.ev-title{font-size:16px;font-weight:700;margin-bottom:10px;line-height:1.4}
.ev-meta{display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:var(--text2)}
.ev-meta .meta-row{display:flex;align-items:center;gap:7px}
.ev-meta .svg-icon{width:13px;height:13px;color:var(--text3)}
.ev-bottom{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.ev-progress{height:5px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:10px}
.ev-progress div{height:100%;background:var(--grad-primary);border-radius:3px}
.ev-foot{display:flex;align-items:center;justify-content:space-between;font-size:12.5px}
.ev-reg{color:var(--text2);display:inline-flex;align-items:center;gap:5px}
.ev-reg .svg-icon{width:12px;height:12px}
.ev-price{font-weight:700;color:var(--accent)}
#eventDetailWrap{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow-y:auto;animation:fadeIn .2s ease}
#eventDetailWrap.active{display:block}
.event-detail-inner{max-width:780px;margin:40px auto;background:var(--bg-gradient);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,0.6);animation:slideUp .3s ease}
.event-detail-content{padding:24px}
#evdCover{height:240px;position:relative;overflow:hidden;background:var(--primary)}
#evdCover img{width:100%;height:100%;object-fit:cover}
.close-btn{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,0.55);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:3}
.close-btn:hover{background:rgba(255,77,106,0.7)}
#evdTitle{font-size:24px;font-weight:800;margin:18px 0 14px;line-height:1.35}
#evdMeta{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:16px}
#evdMeta .meta-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text2)}
#evdMeta .svg-icon{width:16px;height:16px;color:var(--primary-light);flex-shrink:0}
#evdIntro p{font-size:14px;line-height:1.75;color:var(--text);margin-bottom:10px}
.event-detail-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}

.user-card{position:relative;overflow:hidden;padding:0;border-radius:20px;background:linear-gradient(180deg,rgba(255,158,198,0.08),rgba(22,14,18,0.95));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,158,198,0.14);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 32px rgba(0,0,0,0.45)}
.user-card:hover{transform:translateY(-4px) scale(1.01);border-color:rgba(255,158,198,0.45);box-shadow:0 18px 48px rgba(0,0,0,0.55),0 0 0 1px rgba(255,158,198,0.22),0 0 32px rgba(255,158,198,0.22)}
.user-card-banner{height:92px;position:relative;margin:0;overflow:hidden}
.user-card-banner::before{content:'';position:absolute;inset:0;background:#8e1148;opacity:.92}
.user-card-banner::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 120%,rgba(201,36,110,0.45) 0%,transparent 55%),radial-gradient(circle at 15% -10%,rgba(255,158,198,0.45) 0%,transparent 55%)}
.user-card-glow{position:absolute;top:-28px;right:-28px;width:130px;height:130px;background:radial-gradient(circle,rgba(201,36,110,0.35) 0%,transparent 70%);pointer-events:none}
.user-card-body{padding:0 18px 18px;text-align:center;margin-top:-42px;position:relative;z-index:2}
.user-card-avatar{width:84px;height:84px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:0;color:transparent;background:#161215 url('/assets/brand/logo.png') center/62% no-repeat;border:4px solid #131313;box-shadow:0 8px 24px rgba(255,158,198,0.45),inset 0 0 0 2px rgba(255,255,255,0.15);position:relative;transition:transform .3s}
.user-card:hover .user-card-avatar{transform:scale(1.06) rotate(-2deg)}
.user-card-badges{display:flex;justify-content:center;gap:6px;margin-bottom:8px;min-height:22px;flex-wrap:wrap}
.user-card-name{font-size:17px;font-weight:800;margin-bottom:4px;background:#ffd3e6;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.2px}
.user-card-tags{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}
.user-card-bio{font-size:12.5px;color:#8f8a90;line-height:1.6;padding:10px 12px;background:rgba(5,10,24,0.7);border-radius:12px;margin-bottom:12px;min-height:44px;border:1px solid rgba(255,158,198,0.08)}
.user-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:10px 2px 0;border-top:1px solid rgba(255,158,198,0.1)}
.user-card-stats > div{text-align:center}
.user-card-stats strong{display:block;font-size:15px;font-weight:800;color:#ff9ec6;margin-bottom:2px;letter-spacing:.5px}
.user-card-stats span{font-size:10.5px;color:#85808a;font-weight:600}
.plaza-filter{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.plaza-filter select{flex:1;min-width:150px;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text)}
.plaza-filter .refresh-btn{padding:11px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text2);display:flex;align-items:center;gap:8px;transition:all .2s;white-space:nowrap;cursor:pointer}
.plaza-filter .refresh-btn:hover{color:var(--primary-light);border-color:var(--primary)}
.cards-grid{display:grid;grid-template-columns:1fr;gap:14px}

.radar-banner{background:var(--primary);border-radius:var(--radius-lg);padding:36px 28px;margin-bottom:28px;position:relative;overflow:hidden;color:#fff}
.radar-banner-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,0.18),transparent 55%),radial-gradient(circle at 80% 70%,rgba(255,255,255,0.12),transparent 50%)}
.radar-banner-content{position:relative;z-index:2;max-width:560px}
.radar-banner-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:rgba(255,255,255,0.15);backdrop-filter:blur(8px);border-radius:20px;font-size:12px;font-weight:600;margin-bottom:14px}
.radar-banner-content h2{font-size:26px;font-weight:800;margin-bottom:8px;letter-spacing:0.5px}
.radar-banner-content p{font-size:14.5px;opacity:.9;line-height:1.7;margin-bottom:18px}
.radar-banner-scan{position:absolute;right:28px;bottom:14px;opacity:.2}
.radar-banner-scan .svg-icon{width:180px;height:180px;animation:rotate 18s linear infinite}
.rec-card{padding:20px;text-align:center}
.rec-card h4{font-size:15px;font-weight:700;margin:10px 0 4px}
.rec-card .rec-species{font-size:12px;color:var(--text2);margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.rec-card .rec-species .svg-icon{width:12px;height:12px}
#radarRecommend{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:24px}
#radarDiscover{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:20px}
.disco-card{padding:14px;display:flex;align-items:center;gap:12px}
.disco-info{flex:1;min-width:0}
.disco-info h4{font-size:14px;font-weight:600;margin-bottom:3px}
.disco-info p{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:4px}
.disco-info p .svg-icon{width:11px;height:11px}
.disco-heart:hover{color:var(--danger)}

.conversations-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 28px rgba(0,0,0,0.40)}
.conv-header{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.conv-header h2{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}
.conv-header h2 .ch-icon{color:var(--primary-light)}
#convList{flex:1;overflow-y:auto}
.conv-item{display:flex;align-items:center;gap:13px;padding:14px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .2s}
.conv-item:hover{background:var(--surface-hover)}
.conv-item.active{background:rgba(255,158,198,0.1);border-left:3px solid var(--primary);padding-left:15px}
.conv-content{flex:1;min-width:0}
.conv-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.conv-name{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-time{font-size:11.5px;color:var(--text3);flex-shrink:0;margin-left:8px}
.conv-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.conv-last{font-size:13px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.conv-badge{min-width:20px;height:20px;padding:0 6px;background:var(--danger);border-radius:10px;font-size:10.5px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.messages-layout{display:grid;grid-template-columns:1fr;height:calc(100vh - 128px);gap:0}
#chatBox{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;height:100%;box-shadow:0 8px 28px rgba(0,0,0,0.4)}
.chat-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px}
.chat-head-info{flex:1;min-width:0}
.chat-head-info h3{font-size:15px;font-weight:700;margin-bottom:3px}
.chat-head-info span{font-size:12px;color:var(--text2);display:inline-flex;align-items:center;gap:6px}
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--success);display:inline-block}
.chat-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px;background:var(--bg-gradient)}
.chat-row{display:flex;gap:10px;align-items:flex-end;max-width:80%}
.chat-row.right{align-self:flex-end;flex-direction:row-reverse}
.bubble{padding:10px 14px;border-radius:18px;font-size:14px;line-height:1.55;word-break:break-word;position:relative;background:var(--surface-solid);border:1px solid var(--border);max-width:100%}
.bubble-time{display:block;font-size:10.5px;color:var(--text3);margin-top:4px;text-align:right;opacity:.7}
.bubble.mine{background:var(--primary);color:#fff;border:none;box-shadow:0 3px 12px rgba(255,158,198,0.35)}
.bubble.mine .bubble-time{color:rgba(255,255,255,0.7)}
.chat-input{padding:14px 18px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:10px;align-items:center}
.chat-input input{flex:1;padding:10px 16px;background:var(--bg);border:1px solid var(--border);border-radius:20px;font-size:14px;color:var(--text);transition:all .2s}
.chat-input input:focus{border-color:var(--primary)}

#meHero{position:relative;margin:0 -36px 24px;padding:24px 36px 36px;overflow:hidden;border-radius:0}
#meHero::before{content:'';position:absolute;inset:0;background:var(--primary)}
.me-hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 80% 0%,rgba(255,255,255,0.16),transparent 55%),radial-gradient(circle at 10% 100%,rgba(201,36,110,0.18),transparent 55%)}
.me-hero-content{position:relative;z-index:2;display:flex;align-items:center;gap:20px;color:#fff;flex-wrap:wrap}
.me-avatar{margin-top:8px;border:3px solid rgba(255,255,255,0.25);box-shadow:0 8px 24px rgba(0,0,0,0.35)}
.me-hero-info{flex:1;min-width:0}
.me-hero-info h2{font-size:24px;font-weight:800;margin-bottom:4px}
.me-hero-info > p{font-size:13px;opacity:.75}
.me-bio{font-size:14px;color:rgba(255,255,255,0.92);line-height:1.7;margin-top:8px;max-width:560px}
#meStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}
.stat-card{padding:18px 16px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(255,255,255,0)) ,var(--surface)}
.stat-card strong{display:block;font-size:22px;font-weight:800;margin-bottom:4px;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.stat-card span{font-size:12px;color:var(--text2);display:inline-flex;align-items:center;gap:5px}
.stat-card span .svg-icon{width:12px;height:12px}
#myFeed{display:grid;gap:14px}

.user-hero{padding:0;overflow:hidden;border-radius:var(--radius)}
.user-hero-bg{height:180px;background:var(--primary)}
.user-hero-content{padding:0 24px 24px;display:flex;gap:20px;margin-top:-44px;align-items:flex-end;position:relative;z-index:2;flex-wrap:wrap}
.user-hero-info{flex:1;min-width:0;padding-bottom:4px}
.user-hero-info h2{font-size:22px;font-weight:800;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.user-hero-actions{display:flex;gap:10px;align-items:center;padding-bottom:4px;flex-wrap:wrap}
.user-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);margin-top:18px}
.stat-item{padding:14px 8px;text-align:center;position:relative}
.stat-item + .stat-item::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:1px;background:var(--border)}
.stat-item strong{display:block;font-size:18px;font-weight:800;margin-bottom:2px}
.stat-item span{font-size:11.5px;color:var(--text3);text-transform:uppercase;letter-spacing:0.3px}

.menu-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px;box-shadow:0 8px 28px rgba(0,0,0,0.40)}
.menu-item{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .2s}
.menu-item:last-child{border-bottom:none}
.menu-item:hover{background:var(--surface-hover)}
.menu-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,158,198,0.12);flex-shrink:0;color:var(--primary-light)}
.menu-icon.accent{background:rgba(201,36,110,0.12);color:var(--accent)}
.menu-icon.success{background:rgba(91,231,196,0.1);color:var(--success)}
.menu-icon.warning{background:rgba(255,181,71,0.1);color:var(--warning)}
.menu-icon.danger{background:rgba(255,77,106,0.1);color:var(--danger)}
.menu-text{flex:1}
.menu-text .m-title{font-size:14.5px;font-weight:600}
.menu-text .m-sub{font-size:12px;color:var(--text2);margin-top:2px}
.menu-arrow{color:var(--text3);display:flex;align-items:center}

.masonry{display:grid;grid-template-columns:1fr;gap:14px}
.masonry .card{margin-bottom:0;display:block}
.feed-list{display:grid;grid-template-columns:1fr;gap:14px}

/* ===== T7 Radar Map ===== */
.radar-controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center}
.ghost-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.ghost-switch input{display:none}
.ghost-switch .track{width:44px;height:24px;border-radius:12px;background:var(--bg);border:1px solid var(--border);position:relative;transition:all .25s}
.ghost-switch .track::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text3);transition:all .25s}
.ghost-switch input:checked+.track{background:linear-gradient(135deg,rgba(255,158,198,.3),rgba(201,36,110,.22));border-color:var(--primary)}
.ghost-switch input:checked+.track::after{left:22px;background:var(--accent)}
.ghost-hint{font-size:12.5px;color:var(--accent);padding:6px 10px;background:rgba(201,36,110,.08);border-radius:10px;border:1px solid rgba(201,36,110,.2)}
#radarMap{width:100%;min-height:60vh;height:clamp(520px, 72vh, 860px);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg2);z-index:1;overflow:hidden}
/* 地图容器包裹 + 加载状态遮罩（手机网页版：避免用户看到空盒子误以为 API 未加载） */
.radar-map-wrap{position:relative;margin-top:24px;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.35);border:1px solid rgba(255,158,198,.15)}
.radar-map-status{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(11,17,32,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:20px}
.radar-map-status.hidden{display:none!important}
.radar-status-box{max-width:400px;text-align:center}
.radar-status-box h3{margin:0 0 10px 0;color:var(--primary-light);font-size:18px;font-weight:800;letter-spacing:.2px}
.radar-status-box p{margin:0;color:var(--text2);font-size:13px;line-height:1.7}
.radar-retry-btn{margin-top:16px;padding:10px 22px;border:none;border-radius:12px;background:var(--grad-button);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(255,77,148,.4);transition:transform .15s}
.radar-retry-btn:hover{transform:translateY(-1px)}
.map-status{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text2)}
.map-status .dot{width:7px;height:7px;border-radius:50%;background:var(--success);display:inline-block;margin-right:4px;animation:pulse 1.6s infinite}
.map-status .dot.err{background:var(--danger)}
.radar-user-popup{min-width:180px;text-align:center;padding:4px}
.radar-user-popup .avatar-wrap{width:56px;height:56px;margin:0 auto 8px}
.radar-user-popup .nm{font-weight:700;font-size:14px;margin-bottom:4px;color:var(--text)}
.radar-user-popup .dist{font-size:12px;color:var(--primary-light);font-weight:600}

/* ===== T8 Cards ===== */
.card-item{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:3/4;background:var(--bg2);border:1px solid var(--border);cursor:pointer;transition:transform .28s, box-shadow .28s}
.card-item:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.55);border-color:var(--primary)}
.card-item img{width:100%;height:100%;object-fit:cover}
.card-item .card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(5,10,24,.92) 100%);padding:16px;display:flex;flex-direction:column;justify-content:flex-end;opacity:0;transition:opacity .28s}
.card-item:hover .card-overlay{opacity:1}
.card-overlay .nm{font-size:16px;font-weight:700;margin-bottom:6px}
.card-overlay .mt{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--text2)}
.card-overlay .mt span{padding:2px 8px;background:rgba(255,158,198,.15);border-radius:10px}
@media (hover:none){
  .card-item .card-overlay{display:none}
}
.card-upload-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--grad-button);color:#fff;border-radius:var(--radius-sm);font-weight:600;box-shadow:0 4px 14px rgba(255,158,198,.3)}
.card-upload-btn:hover{filter:brightness(1.1)}
#cropperModal .modal-body{padding:10px}
#cropperPreviewImg{max-width:100%;max-height:60vh;display:block;margin:0 auto;background:var(--bg)}
.cropper-actions{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap;justify-content:center}
.cropper-actions button{padding:8px 14px;background:var(--surface-hover);border-radius:10px;font-size:13px;color:var(--text);transition:all .2s}
.cropper-actions button:hover{background:rgba(255,158,198,.15);color:var(--primary-light)}
.cropper-range{display:flex;align-items:center;gap:10px;padding:4px 14px;background:var(--bg);border-radius:10px;font-size:12.5px;color:var(--text2)}
.cropper-range input[type=range]{width:120px}

/* ===== T9 Gadgets ===== */
.gadget-tabs{display:flex;gap:6px;margin-bottom:18px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap}
.gadget-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:10px;color:var(--text2);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .22s;white-space:nowrap}
.gadget-tab:hover{color:var(--text);background:var(--surface-hover)}
.gadget-tab.active{background:linear-gradient(135deg,rgba(255,158,198,.22),rgba(201,36,110,.12));color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,158,198,.2)}
.gadget-panel{display:none}
.gadget-panel.active{display:block;animation:fadeIn .25s ease}
.wm-layout{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){
  .wm-layout{grid-template-columns:1fr 1fr;gap:20px}
}
.wm-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.wm-card h3{font-size:16px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.range-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.range-row label{width:84px;font-size:13px;color:var(--text2);flex-shrink:0}
.range-row input[type=range]{flex:1}
.range-row .val{width:44px;text-align:right;font-weight:700;color:var(--primary-light);font-size:13px}
.mode-group{display:flex;gap:10px;margin-bottom:14px;padding:10px 14px;background:var(--bg);border-radius:10px;flex-wrap:wrap}
.mode-group label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text2)}
.mode-group input{display:none}
.mode-group label:has(input:checked){background:rgba(255,158,198,.18);color:var(--primary-light);box-shadow:inset 0 0 0 1px rgba(255,158,198,.3)}
.result-box{margin-top:14px;padding:14px;background:var(--bg);border:1px solid var(--border);border-radius:10px}
.result-box img{max-width:100%;border-radius:8px;margin-bottom:10px;border:1px solid var(--border)}
.result-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:13px}
.result-meta .r{padding:8px 10px;background:var(--surface-hover);border-radius:8px}
.result-meta .r .k{color:var(--text3);font-size:11px;display:block;margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px}
.result-meta .r .v{font-weight:600;color:var(--text);font-family:monospace}
.match-user{display:flex;align-items:center;gap:12px;padding:12px;background:linear-gradient(135deg,rgba(255,158,198,.14),rgba(201,36,110,.08));border-radius:10px;margin-bottom:12px;border:1px solid rgba(255,158,198,.2)}
.match-user .info{flex:1}
.match-user .info .nm{font-weight:700;font-size:15px;margin-bottom:2px}
.match-user .info .claim{font-size:12.5px;color:var(--text2);line-height:1.6}

/* ===== Artist DB ===== */
.artist-search-row{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.artist-search-row .search-box{flex:1;min-width:220px}
.artist-search-row select{padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text)}
.artist-list{display:grid;grid-template-columns:1fr;gap:10px}
.artist-row{padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .2s}
.artist-row:hover{background:var(--surface-hover);border-color:var(--primary);transform:translateY(-1px)}
.artist-row .info{flex:1;min-width:0}
.artist-row .info .nm{font-weight:700;font-size:14.5px;margin-bottom:3px}
.artist-row .info .mt{font-size:12px;color:var(--text2);display:flex;gap:10px;flex-wrap:wrap}
.artist-row .rating{padding:5px 10px;background:linear-gradient(135deg,rgba(255,158,198,.20),rgba(255,77,148,.12));color:#ff7ab5;border-radius:10px;font-weight:700;font-size:13px;border:1px solid rgba(255,193,7,.3)}
.pager{display:flex;gap:6px;justify-content:center;margin-top:18px;padding:10px;flex-wrap:wrap}
.pager button{padding:7px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text2);font-size:13px;cursor:pointer;transition:all .2s}
.pager button:hover:not(:disabled){color:var(--primary-light);border-color:var(--primary)}
.pager button.active{background:linear-gradient(135deg,rgba(255,158,198,.22),rgba(201,36,110,.12));color:var(--text);border-color:var(--primary)}
.pager button:disabled{opacity:.4;cursor:not-allowed}
.artist-hero{padding:22px;background:linear-gradient(135deg,rgba(255,158,198,.14),rgba(201,36,110,.08));border:1px solid rgba(255,158,198,.22);border-radius:var(--radius);margin-bottom:18px}
.artist-hero-top{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.artist-hero-top .info{flex:1;min-width:200px}
.artist-hero-top .info h2{font-size:20px;margin-bottom:6px}
.artist-hero-top .info .meta{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text2)}
.artist-hero-top .big-rating{font-size:28px;font-weight:800;background:#ff7ab5;-webkit-background-clip:text;-webkit-text-fill-color:transparent;padding:6px 14px}
.artist-works{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:10px}
.artist-work{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--bg2);border:1px solid var(--border);cursor:pointer}
.artist-work img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.artist-work:hover img{transform:scale(1.06)}
.artist-work .cap{position:absolute;inset:auto 0 0 0;padding:6px 10px;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);font-size:12px;color:#fff}
.artist-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* ===== T10 ===== */
.verify-card{margin-top:18px;padding:18px;background:linear-gradient(135deg,rgba(255,122,181,.10),rgba(255,158,198,.08));border:1px solid rgba(201,36,110,.22);border-radius:var(--radius)}
.verify-card .verified{display:flex;align-items:center;gap:10px;padding:10px;background:rgba(0,230,118,.12);color:var(--success);border-radius:10px;font-weight:700;border:1px solid rgba(0,230,118,.3)}

/* ===== 文件 ===== */
.file-drop{padding:20px;border:2px dashed var(--border);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s;margin-bottom:14px;background:var(--bg)}
.file-drop:hover{border-color:var(--primary);background:rgba(255,158,198,.05)}
.file-drop .drop-icon{font-size:32px;margin-bottom:6px;color:var(--text3)}
.file-drop .drop-text{font-size:13px;color:var(--text2)}
.file-drop.has-file{border-color:var(--success);background:rgba(0,230,118,.05)}
.file-drop input{display:none}

/* ===== 气死我惹呜，手机端怎么这么难适配，介也太难为兽惹！ ===== */
#cardInfoModal .ci-info{padding:14px 0}
#cardInfoModal .ci-info .nm{font-size:18px;font-weight:700;margin-bottom:8px}
#cardInfoModal .ci-info .tags{display:flex;gap:6px;flex-wrap:wrap}
#cardInfoModal .ci-info .tags span{padding:4px 12px;background:rgba(255,158,198,.12);border-radius:10px;font-size:12.5px;color:var(--text2)}
.post-card{padding:18px;background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(255,255,255,0)) ,var(--surface)}
.post-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;cursor:pointer}
.post-userinfo{flex:1;min-width:0}
.post-username{font-weight:700;font-size:15px;color:var(--text)}
.post-time{font-size:12px;color:var(--text3);display:inline-flex;align-items:center;gap:4px}
.post-time .svg-icon{width:12px;height:12px}
.post-body{margin-bottom:12px}
.post-text{font-size:14.5px;line-height:1.7;color:var(--text);margin-bottom:12px;white-space:pre-wrap;word-break:break-word}
.post-images{display:grid;gap:6px;border-radius:12px;overflow:hidden}
.post-images.g1{grid-template-columns:1fr}
.post-images.g1 img{max-height:380px;aspect-ratio:auto;width:100%;object-fit:cover}
.post-images.g2{grid-template-columns:repeat(2,1fr)}
.post-images.g2 img{aspect-ratio:4/3;width:100%;height:100%;object-fit:cover}
.post-images.g3{grid-template-columns:repeat(3,1fr)}
.post-images.g3 img{aspect-ratio:1;width:100%;height:100%;object-fit:cover}
.post-images.g4{grid-template-columns:repeat(2,1fr)}
.post-images.g4 img{aspect-ratio:4/3;width:100%;height:100%;object-fit:cover}
.post-images.g9{grid-template-columns:repeat(3,1fr)}
.post-images.g9 img{aspect-ratio:1;width:100%;height:100%;object-fit:cover}
.post-images img{border-radius:8px;background:var(--bg2)}
.post-actions{display:flex;align-items:center;gap:4px;padding-top:10px;border-top:1px solid var(--border)}
.post-actions .act{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;color:var(--text2);border-radius:10px;font-size:13px;transition:all .18s;background:transparent;border:none;cursor:pointer}
.post-actions .act:hover{background:rgba(255,158,198,0.08);color:var(--primary-light)}
.post-actions .act.on.fill-heart{color:var(--danger)}
.post-actions .act.on.fill-star{color:#ff7ab5}
.post-actions .act.today-paw.on{color:var(--accent)}
.post-actions .act .svg-icon{width:16px;height:16px}
.post-actions .act .n{font-weight:600}

.back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:20px;font-size:13.5px;color:var(--text2);margin-bottom:16px;transition:all .2s;cursor:pointer}
.back-btn:hover{color:var(--text);background:var(--surface-hover)}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease}
.modal-overlay.show{display:flex}
.modal{width:100%;max-width:560px;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,0.6);animation:slideUp .3s ease;max-height:88vh;display:flex;flex-direction:column}
.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-header h2{font-size:17px;font-weight:700;display:flex;align-items:center;gap:10px}
.modal-header .mh-icon{color:var(--primary-light)}
.modal-close{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--text2);transition:all .2s;cursor:pointer}
.modal-close:hover{background:rgba(255,77,106,0.15);color:var(--danger)}
.modal-body{padding:22px;overflow-y:auto;flex:1}
.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}

.mobile-tab-bar{display:none}

@media(min-width:768px){
  /* 多页架构：取消左侧导航栏，统一用顶部导航 */
  .bottom-nav{display:none}
  .top-bar{display:flex}
  .page-container{padding:28px 36px}
  .masonry{column-count:2}
  .events-grid{grid-template-columns:repeat(2,1fr)}
  .cards-grid{grid-template-columns:repeat(2,1fr)}
  .detail-grid{grid-template-columns:2fr 1fr}
  .messages-layout{grid-template-columns:340px 1fr;gap:16px;height:calc(100vh - 64px - 56px)}
  #chatBox{display:flex}
  .chat-back{display:none}
}
/* 窄屏 (iPhone SE/安卓小屏 ≤600px) — 压缩导航栏文字/图标防止 5 项显示不全 + 雷达地图拉高可视区域 */
@media(max-width:600px){
  .bottom-nav{left:8px;right:8px;bottom:8px;padding:8px 8px calc(10px + env(safe-area-inset-bottom, 0px)) 8px;border-radius:22px}
  .bottom-nav a{gap:2px;padding:6px 2px;font-size:10px}
  .bottom-nav a .icon-wrap{width:40px;height:40px;border-radius:14px}
  .bottom-nav a .icon-wrap .svg-icon{width:20px;height:20px}
  #radarMap{height:62vh;min-height:460px}
  .page-container{padding-bottom:calc(130px + env(safe-area-inset-bottom, 0px))}
}
@media(min-width:1200px){
  .masonry{column-count:3}
  .events-grid{grid-template-columns:repeat(3,1fr)}
  .cards-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:767px){
  .mobile-tab-bar{display:flex}
  .page-container{padding:16px;padding-bottom:88px}
  .feed-header{margin:-16px -16px 16px;padding:14px 16px 12px}
  .auth-card{padding:24px 20px;border-radius:22px}
  .post-card{padding:14px}
  .post-images img{height:140px}
  #meHero{margin:0 -16px 20px;padding:20px}
  .avatar.size-80{width:64px;height:64px;font-size:24px}
  .avatar.size-88{width:72px;height:72px;font-size:28px}
  .me-hero-info h2{font-size:20px}
  .messages-layout{height:calc(100vh - var(--nav-h) - 32px)}
  .radar-banner{padding:28px 22px}
  .radar-banner-content h2{font-size:20px}
  .masonry .card{margin-bottom:12px}
  .top-bar-search{display:none}
  #meHero{padding:20px 20px 28px}
  .user-stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .masonry{column-count:1}
  .cards-grid{grid-template-columns:1fr}
  .attendees-grid{grid-template-columns:repeat(2,1fr)}
}

/* ==================== APP DOWNLOAD PAGE ==================== */
.download-hero{position:relative;overflow:hidden;border-radius:24px;padding:36px 34px;margin-bottom:24px;background:linear-gradient(135deg,rgba(255,77,148,.28),rgba(201,36,110,.2));border:1px solid rgba(255,158,198,.22);box-shadow:0 10px 40px rgba(255,77,148,.18),inset 0 1px 0 rgba(255,255,255,.05);backdrop-filter:blur(12px);display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center}
.download-hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 88% 10%,rgba(201,36,110,.35) 0,transparent 45%),radial-gradient(circle at 10% 90%,rgba(255,158,198,.35) 0,transparent 48%);pointer-events:none;z-index:0}
.download-hero-content{position:relative;z-index:2}
.badge-soft{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:rgba(255,158,198,.16);color:#ff9ec6;font-size:12.5px;font-weight:600;letter-spacing:.2px;border:1px solid rgba(255,158,198,.3);margin-bottom:16px}
.download-hero-content h2{font-size:clamp(22px,2.8vw,30px);line-height:1.3;margin:0 0 10px;font-weight:800;color:var(--text);background:#ffd3e6;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.download-hero-content p{color:var(--text2);font-size:14.5px;line-height:1.75;margin:0 0 22px;max-width:520px}
.download-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn-lg{height:50px;padding:0 22px;border-radius:14px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px}
.download-hero-art{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;min-height:230px}
.dl-phone-art{width:100%;max-width:240px;height:auto;filter:drop-shadow(0 12px 30px rgba(201,36,110,.28))}
.wechat-tip{margin-top:18px;padding:12px 14px;border-radius:14px;background:rgba(245,158,11,.12);color:#ff7ab5;border:1px solid rgba(245,158,11,.35);font-size:13.5px;line-height:1.7}
.download-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}
.download-info-card .di-row{display:flex;justify-content:space-between;align-items:center;padding:13px 4px;border-bottom:1px dashed rgba(255,158,198,.18)}
.download-info-card .di-row.di-last{border-bottom:none}
.di-label{color:var(--text3);font-size:13px;font-weight:500}
.di-val{color:var(--text);font-size:14px;font-weight:600;text-align:right}
.di-val.di-code{color:var(--accent)}
.notes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.notes-list li{position:relative;padding:8px 8px 8px 38px;line-height:1.65;color:var(--text2);font-size:13.5px;border-radius:10px;transition:background .2s}
.notes-list li:hover{background:rgba(255,158,198,.06)}
.notes-list li>span{position:absolute;left:8px;top:10px;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.changelog{white-space:pre-wrap;word-break:break-word}
@media(max-width:900px){
  .download-hero{grid-template-columns:1fr;padding:28px 22px}
  .download-hero-art{order:-1;min-height:180px}
  .download-grid{grid-template-columns:1fr}
}

/* ==================== TODAY 日更广场 + 话题圈 ==================== */
.today-topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;padding:12px 16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:20px;box-shadow:var(--shadow-md)}
.today-nav-btn{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,77,148,0.08);border:1px solid rgba(255,77,148,0.15);color:var(--text2);transition:all .22s;flex-shrink:0}
.today-nav-btn:hover:not(:disabled){background:rgba(255,158,198,0.18);color:var(--primary-light);border-color:var(--border-hover)}
.today-nav-btn:disabled{opacity:.35;cursor:not-allowed}
.today-date-title{font-size:15px;font-weight:800;color:var(--text);white-space:nowrap}
.today-date-title .today-tag{font-size:11.5px;font-weight:700;color:var(--accent);margin-left:6px}
.today-topbar .today-spacer{flex:1}
.today-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.today-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.today-side{min-width:0;display:flex;flex-direction:column;gap:14px}
.today-side-card{padding:16px}
.today-side-card h3{font-size:14px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:8px;color:var(--text)}
.today-side-card h3 .svg-icon{width:15px;height:15px;color:var(--primary-light)}
@media(min-width:1000px){.today-layout{grid-template-columns:minmax(0,1fr) 300px}}

/* 本月发布热力日历 */
.today-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12.5px;color:var(--text2);font-weight:700}
.today-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.today-cal-w{text-align:center;font-size:11px;color:var(--text3);padding:2px 0}
.today-cal-d{position:relative;aspect-ratio:1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--text2);background:rgba(255,77,148,0.05);border:1px solid transparent;cursor:pointer;transition:all .18s}
.today-cal-d:hover{background:rgba(255,158,198,0.18);color:var(--text)}
.today-cal-d.blank{background:transparent;cursor:default;pointer-events:none}
.today-cal-d.has{background:rgba(255,158,198,0.20);color:var(--text);font-weight:700;border-color:rgba(255,77,148,0.28)}
.today-cal-d.hot{background:linear-gradient(135deg,rgba(255,77,148,0.60),rgba(201,36,110,0.45));color:#fff;font-weight:800;border-color:rgba(255,77,148,0.55)}
.today-cal-d.sel{box-shadow:0 0 0 2px var(--primary),0 0 16px rgba(255,158,198,0.5)}
.today-cal-d .n{font-size:9.5px;line-height:1.1;color:var(--primary-light);font-weight:700}
.today-cal-d.hot .n{color:#fff}

/* Today 卡片附加元素 */
.today-lv{display:inline-flex;align-items:center;padding:1px 7px;border-radius:8px;font-size:10px;font-weight:800;color:#fff;background:var(--grad-primary);margin-left:6px;vertical-align:middle}
.today-mention{color:var(--primary-light);font-weight:700;cursor:pointer;border-radius:4px}
.today-mention:hover{text-decoration:underline;background:rgba(255,158,198,0.12)}
.today-topic-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.today-topic-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;background:linear-gradient(135deg,rgba(255,158,198,0.20),rgba(201,36,110,0.12));border:1px solid rgba(255,158,198,0.25);color:var(--primary-light);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s}
.today-topic-chip:hover{background:rgba(255,158,198,0.28);color:var(--text)}
.today-views{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;font-size:12.5px;color:var(--text3);margin-left:auto}

/* 图片灯箱 */
#imgViewer{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(3,7,18,0.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:24px;animation:fadeIn .2s ease}
#imgViewer.show{display:flex}
#imgViewer img{max-width:92vw;max-height:88vh;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,0.7);object-fit:contain}
#imgViewer .iv-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.12);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
#imgViewer .iv-close:hover{background:rgba(251,113,133,0.7)}

/* 发布 / 编辑 Today 弹窗 */
.today-counter{position:absolute;right:14px;top:12px;font-size:11.5px;color:var(--text3);font-weight:700}
.today-counter.over{color:var(--danger)}
.today-block{margin-bottom:18px}
.today-block > .lb{display:block;font-size:12.5px;font-weight:700;color:var(--text2);margin-bottom:8px;letter-spacing:.3px}
.today-img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.today-img-cell{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg2);border:1px solid var(--border)}
.today-img-cell img{width:100%;height:100%;object-fit:cover}
.today-img-cell .del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,0.6);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;line-height:1}
.today-img-cell .del:hover{background:rgba(251,113,133,0.85)}
.today-img-add{aspect-ratio:1;border-radius:12px;border:1.5px dashed rgba(255,77,148,0.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text3);font-size:11.5px;cursor:pointer;transition:all .2s}
.today-img-add:hover{border-color:var(--primary);color:var(--primary-light);background:rgba(255,158,198,0.08)}
.today-img-add .svg-icon{width:18px;height:18px}
.today-picked{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.today-picked .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 10px;border-radius:20px;background:rgba(255,158,198,0.16);border:1px solid rgba(255,77,148,0.25);color:var(--text);font-size:12px}
.today-picked .chip b{cursor:pointer;color:var(--text3);font-weight:800}
.today-picked .chip b:hover{color:var(--danger)}
.today-opt-list{max-height:150px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;background:rgba(22,18,12,.45)}
.today-opt{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13px;color:var(--text2);cursor:pointer;border-bottom:1px solid rgba(255,77,148,0.06)}
.today-opt:last-child{border-bottom:none}
.today-opt:hover{background:rgba(255,158,198,0.10);color:var(--text)}
.today-opt.on{color:var(--primary-light);background:rgba(255,158,198,0.14);font-weight:700}
.today-opt.plain{cursor:default}
.today-mini-search{display:flex;gap:8px;margin-bottom:8px}
.today-hint{font-size:11.5px;color:var(--text3);margin-top:6px;line-height:1.65}

/* 话题圈 */
.topic-card{padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:10px}
.topic-card .tc-top{display:flex;align-items:center;gap:12px}
.topic-card .tc-cover{width:46px;height:46px;border-radius:14px;overflow:hidden;flex-shrink:0;background:var(--grad-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:18px}
.topic-card .tc-cover img{width:100%;height:100%;object-fit:cover}
.topic-card .tc-name{font-size:15.5px;font-weight:800;color:var(--text)}
.topic-card .tc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;min-height:34px}
.topic-card .tc-foot{display:flex;align-items:center;gap:12px;font-size:11.5px;color:var(--text3);border-top:1px solid var(--border);padding-top:10px}
.topic-card .tc-stat{display:inline-flex;align-items:center;gap:4px}
.topic-card .tc-stat .svg-icon{width:12px;height:12px}
.topic-detail-head{padding:22px;margin-bottom:18px}
.topic-detail-head .td-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.topic-detail-head .td-cover{width:64px;height:64px;border-radius:18px;background:var(--grad-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;font-weight:800;overflow:hidden;flex-shrink:0}
.topic-detail-head .td-cover img{width:100%;height:100%;object-fit:cover}
.topic-detail-head h2{font-size:20px;font-weight:800;margin-bottom:4px}
.topic-detail-head p{font-size:13px;color:var(--text2);line-height:1.6}
.topic-detail-head .td-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* 首页公告条 */
.notice-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.notice-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(255,158,198,0.16),rgba(201,36,110,0.10));border:1px solid rgba(255,77,148,0.24);box-shadow:0 6px 20px rgba(255,77,148,0.12)}
.notice-item .ni-icon{width:32px;height:32px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-button);color:#fff}
.notice-item .ni-icon .svg-icon{width:17px;height:17px}
.notice-item .ni-body{flex:1;min-width:0}
.notice-item .ni-title{font-size:13.5px;font-weight:800;color:var(--text)}
.notice-item .ni-content{font-size:12.5px;color:var(--text2);line-height:1.6;margin-top:2px;word-break:break-word}
.notice-item .ni-close{width:28px;height:28px;border-radius:9px;color:var(--text3);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.notice-item .ni-close:hover{background:rgba(251,113,133,0.16);color:var(--danger)}
@media(max-width:767px){.today-topbar{padding:10px 12px;gap:8px}.today-date-title{font-size:14px}.notice-item{align-items:flex-start}}

/* ==================================================================
   2026-09 新增：浅色主题 / 设置页 / 首页传统风格 / 探索页多维检索
   （浅色主题只做变量覆盖层，不动上面的深色样式本身）
   ================================================================== */

/* ---------- 浅色主题覆盖层：日光白（与午夜玫红同源，只是把“底”换成亮纸） ---------- */
html.theme-light{
  --bg:#faf8fa;
  --bg2:#f2edf1;
  --bg-gradient:#faf8fa;
  --surface:#ffffff;
  --surface-solid:#ffffff;
  --surface-hover:rgba(201,36,110,0.09);
  --border:rgba(60,30,45,0.14);
  --border-hover:rgba(201,36,110,0.50);
  --primary:#d61f68;
  --primary-light:#a6154f;
  --primary-dark:#8e1148;
  --accent:#c2185b;
  --text:#1b1418;
  --text2:#4d4348;
  --text3:#7d7378;
  --danger:#c62828;
  --success:#15803d;
  --warning:#c9246e;
  --ink:#2a0a18;
  --gold:#c9246e;
  --amber:#8e1148;
  --hairline:rgba(201,36,110,0.26);
  --glass-bg:rgba(255,255,255,0.80);
  --glass-border:1px solid rgba(201,36,110,0.22);
  --shadow-lg:0 24px 60px rgba(90,20,50,0.14);
  --shadow-md:0 12px 30px rgba(90,20,50,0.10);
  --shadow-card:0 0 0 1px rgba(60,30,45,0.08);
  --shadow-glow:0 0 18px rgba(214,31,104,0.32),0 0 34px rgba(201,36,110,0.14);
  --grad-primary:#d61f68;
  --grad-accent:#8e1148;
  --grad-button:#d61f68;
  --grad-ink:#d61f68;
  /* 设计令牌：与深色层保持同一语义 */
  --elev-1:0 0 0 1px rgba(60,30,45,0.09);
  --elev-2:0 0 0 1px rgba(201,36,110,0.24),0 12px 30px rgba(90,20,50,0.10);
  --elev-3:0 24px 60px rgba(90,20,50,0.20),0 0 0 1px rgba(201,36,110,0.16);
  --hover-veil:rgba(201,36,110,0.10);
  --press-veil:rgba(201,36,110,0.18);
  --focus-ring:0 0 0 3px rgba(201,36,110,0.24);
}
html.theme-light body::before{opacity:.5}
html.theme-light .sidebar{background:rgba(255,255,255,0.88)}
html.theme-light .top-bar{box-shadow:0 8px 30px rgba(201,36,110,0.10)}
html.theme-light .input,html.theme-light .search-box input,html.theme-light .top-bar-search input{background:rgba(255,255,255,0.88)}
html.theme-light .sidebar nav a.active{background:linear-gradient(135deg,rgba(255,77,148,0.18),rgba(201,36,110,0.10));box-shadow:inset 0 0 0 1px rgba(255,77,148,0.22)}
html.theme-light .user-card{background:linear-gradient(180deg,rgba(255,77,148,0.10),#FFFFFF);border-color:rgba(255,77,148,0.18)}
html.theme-light .user-card-name{background:#ff4d94}
html.theme-light .user-card-avatar{border-color:#FFFFFF}
html.theme-light .user-card-bio{background:rgba(239,246,255,0.95);color:var(--text2)}
html.theme-light .user-card-stats strong{color:#ff4d94}
html.theme-light .user-card-stats span{color:var(--text3)}
html.theme-light .notice-item{background:linear-gradient(135deg,rgba(255,77,148,0.14),rgba(201,36,110,0.08))}
html.theme-light ::-webkit-scrollbar-thumb{background:rgba(255,77,148,0.35)}
html.theme-light ::-webkit-scrollbar-thumb:hover{background:rgba(255,77,148,0.55)}

/* ---------- 通用：分段选择控件 / 设置页 ---------- */
.fc-seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:14px;background:var(--glass-bg);border:var(--glass-border)}
.fc-seg button{padding:7px 15px;border-radius:11px;font-size:12.5px;font-weight:600;color:var(--text2);transition:all .22s}
.fc-seg button:hover{color:var(--text);background:var(--surface-hover)}
.fc-seg button.on{background:var(--grad-button);color:#fff;box-shadow:0 4px 14px rgba(255,77,148,0.3)}
.set-stack{display:flex;flex-direction:column;gap:16px}
.set-section{padding:20px 22px}
.set-section > h3{font-size:15px;font-weight:800;margin-bottom:4px;display:flex;align-items:center;gap:9px;color:var(--text)}
.set-section > h3 .svg-icon{width:17px;height:17px;color:var(--primary-light)}
.set-section > .set-sub{font-size:12.5px;color:var(--text3);margin-bottom:16px;line-height:1.7}
.set-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--border)}
.set-row:first-of-type{border-top:none;padding-top:0}
.set-row .sr-text{flex:1;min-width:180px}
.set-row .sr-label{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:3px}
.set-row .sr-desc{font-size:12px;color:var(--text3);line-height:1.6}
.set-note{font-size:12px;color:var(--text3);line-height:1.7;margin-top:10px}
.set-danger{border-color:rgba(251,113,133,0.35) !important}
.set-donate-text{font-size:13px;color:var(--text2);line-height:1.85}
.set-contact-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--text2)}
.contrib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:14px}
.contrib-card{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:14px;background:rgba(255,158,198,0.08);border:1px solid var(--border)}
.contrib-card .ca{width:38px;height:38px;border-radius:12px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-primary);color:#fff;font-weight:800;font-size:15px}
.contrib-card .ca img{width:100%;height:100%;object-fit:cover}
.contrib-card .cn{font-size:13.5px;font-weight:700;color:var(--text)}
.contrib-card .cr{font-size:11.5px;color:var(--text3);margin-top:2px}
.contrib-card a{font-size:11.5px}
.changelog-item{border-top:1px solid var(--border);padding:11px 0}
.changelog-item:first-child{border-top:none;padding-top:0}
.changelog-item .cv{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;color:var(--text)}
.changelog-item .cd{font-size:11.5px;color:var(--text3);font-weight:600}
.changelog-item ul{margin:7px 0 0;padding-left:19px;font-size:12.5px;color:var(--text2);line-height:1.85}
.set-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.set-bottom{padding:8px 2px}
.set-clamp-toggle{font-size:12px;color:var(--primary-light);font-weight:700;margin-top:8px;display:inline-flex;align-items:center;gap:5px}

/* ---------- 首页：传统风格大卡片 ---------- */
.home-classic{position:relative;overflow:hidden;border-radius:24px;padding:0 0 26px;background:linear-gradient(180deg,rgba(255,158,198,0.10),rgba(22,14,18,0.95));border:1px solid rgba(255,158,198,0.18);box-shadow:var(--shadow-card)}
html.theme-light .home-classic{background:linear-gradient(180deg,rgba(255,77,148,0.12),#FFFFFF);border-color:rgba(255,77,148,0.18)}
.home-classic.hc-anim{animation:hcIn .42s cubic-bezier(.4,0,.2,1)}
@keyframes hcIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
.home-classic .hc-banner{height:150px;position:relative;overflow:hidden}
.home-classic .hc-banner::before{content:'';position:absolute;inset:0;background:#8e1148;opacity:.94}
.home-classic .hc-banner::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 82% 118%,rgba(201,36,110,0.45) 0%,transparent 58%),radial-gradient(circle at 14% -12%,rgba(255,158,198,0.48) 0%,transparent 58%)}
.home-classic .hc-inner{padding:0 30px;margin-top:-62px;position:relative;z-index:2;text-align:center}
.home-classic .hc-avatar{width:124px;height:124px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:44px;color:#fff;background:#ff9ec6;border:5px solid rgba(22,14,18,0.95);box-shadow:0 10px 30px rgba(255,158,198,0.45);background-size:cover;background-position:center}
html.theme-light .home-classic .hc-avatar{border-color:#fff}
.home-classic .hc-name{font-size:26px;font-weight:800;color:var(--text);letter-spacing:.3px}
.home-classic .hc-badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.home-classic .hc-bio{font-size:13.5px;color:var(--text2);line-height:1.85;max-width:560px;margin:0 auto;padding:14px 18px;border-radius:16px;background:rgba(5,10,24,0.55);border:1px solid rgba(255,158,198,0.12);min-height:52px}
html.theme-light .home-classic .hc-bio{background:rgba(239,246,255,0.9)}
.home-classic .hc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:460px;margin:18px auto 0;padding-top:16px;border-top:1px solid var(--border)}
.home-classic .hc-stats > div{text-align:center}
.home-classic .hc-stats strong{display:block;font-size:20px;font-weight:800;color:var(--primary-light);margin-bottom:3px}
.home-classic .hc-stats span{font-size:11.5px;color:var(--text3);font-weight:600}
.home-classic .hc-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.home-classic .hc-switch{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:22px}
.home-classic .hc-arrow{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--glass-bg);border:var(--glass-border);color:var(--text2);transition:all .22s}
.home-classic .hc-arrow:hover{color:var(--primary-light);border-color:var(--border-hover);box-shadow:0 0 20px rgba(255,158,198,0.25)}
.home-classic .hc-idx{font-size:12px;color:var(--text3);font-weight:700;min-width:58px;text-align:center}
.home-classic .hc-empty{padding:64px 24px;text-align:center;color:var(--text3)}

/* ---------- 探索页：多维检索 ---------- */
.ex-search-box{position:relative;flex:1}
.ex-search-box input{width:100%;padding:12px 14px 12px 42px;background:var(--glass-bg);border:var(--glass-border);border-radius:16px;font-size:14px;color:var(--text)}
.ex-search-box input:focus{border-color:var(--border-hover);box-shadow:0 0 0 3px rgba(255,158,198,0.14)}
.ex-search-box .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text3)}
.ex-sec{margin-top:24px}
.ex-sec-head{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:800;color:var(--text);margin-bottom:12px}
.ex-sec-head .svg-icon{width:17px;height:17px;color:var(--primary-light)}
.ex-sec-head .ex-sub{font-size:11.5px;color:var(--text3);font-weight:600}
.ex-tagcloud{display:flex;flex-wrap:wrap;gap:9px}
.ex-tag{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:22px;background:var(--glass-bg);border:var(--glass-border);color:var(--text2);font-size:13px;font-weight:600;transition:all .22s}
.ex-tag:hover{color:var(--primary-light);border-color:var(--border-hover);box-shadow:0 0 18px rgba(255,158,198,0.2);transform:translateY(-2px)}
.ex-tag.on{background:var(--grad-button);border-color:transparent;color:#fff}
.ex-tag .n{font-size:11px;color:var(--text3);font-weight:700}
.ex-tag.on .n{color:rgba(255,255,255,0.85)}
.ex-hscroll{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px}
.ex-mini-card{flex:0 0 218px;padding:16px;border-radius:18px;background:var(--glass-bg);border:var(--glass-border);text-align:center;cursor:pointer;transition:all .26s;box-shadow:var(--shadow-md);position:relative}
.ex-mini-card:hover{transform:translateY(-4px);border-color:var(--border-hover);box-shadow:0 14px 34px rgba(0,0,0,0.35)}
.ex-mini-card .em-avatar{width:62px;height:62px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;color:#fff;background:#ff9ec6;border:3px solid rgba(255,158,198,0.28);background-size:cover;background-position:center}
.ex-mini-card .em-name{font-size:14.5px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-mini-card .em-meta{font-size:11.5px;color:var(--text3);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-mini-card .em-reason{display:inline-block;margin-top:9px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;color:var(--primary-light);background:rgba(255,158,198,0.16);border:1px solid rgba(255,158,198,0.24)}
.ex-mini-card .em-stat{margin-top:9px;font-size:11.5px;color:var(--text3)}
.ex-grid{display:grid;grid-template-columns:1fr;gap:14px}
.ex-loading{padding:34px 20px;text-align:center;color:var(--text3);font-size:13px}
@media(min-width:768px){.ex-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}
@media(max-width:767px){
  .home-classic .hc-inner{padding:0 18px}
  .home-classic .hc-name{font-size:21px}
  .home-classic .hc-bio{font-size:12.5px}
  .set-section{padding:16px 15px}
  .ex-mini-card{flex:0 0 180px}
}

/* ============================================================
   本轮新增：个人主页体系 / 名片夹·足迹·点赞 / 兽聚增强
   ============================================================ */
/* ---- 个人主页 ---- */
.pf-wrap{display:flex;flex-direction:column;gap:16px}
.pf-banner{height:180px;border-radius:var(--radius);background:var(--primary);background-size:cover;background-position:center;position:relative;overflow:hidden}
.pf-head{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.pf-name{font-size:24px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.pf-lv{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:800;color:#fff;background:var(--grad-button);letter-spacing:.5px}
.pf-sub{font-size:12.5px;color:var(--text3);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pf-actions{display:flex;gap:8px;flex-wrap:wrap}
.pf-statbar{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.pf-statbar .pf-st{text-align:center}
.pf-statbar .pf-st strong{display:block;font-size:18px;font-weight:800;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.pf-statbar .pf-st span{font-size:11.5px;color:var(--text3)}
.pf-sec{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.pf-sec-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text)}
.pf-sec-title .svg-icon{width:16px;height:16px;color:var(--primary-light)}
.pf-kv{display:flex;gap:10px;font-size:13px;line-height:1.8;color:var(--text2)}
.pf-kv b{color:var(--text3);font-weight:600;min-width:64px;flex-shrink:0}
.pf-tags{display:flex;gap:6px;flex-wrap:wrap}
/* 信任度 */
.pf-trust{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.pf-trust-badge{width:76px;height:76px;border-radius:22px;background:var(--grad-button);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.pf-trust-badge strong{font-size:22px;font-weight:800;line-height:1}
.pf-trust-badge span{font-size:10.5px;opacity:.9;margin-top:3px}
.pf-trust-bars{flex:1;min-width:220px;display:grid;gap:8px}
.pf-bar-row{font-size:12px;color:var(--text2)}
.pf-bar-row .pf-bar-top{display:flex;justify-content:space-between;margin-bottom:4px}
.pf-bar{height:6px;border-radius:6px;background:rgba(255,77,148,.14);overflow:hidden}
.pf-bar > i{display:block;height:100%;border-radius:6px;background:var(--grad-button)}
/* 崽崽 */
.pf-fursona-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.pf-fursona{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;background:var(--surface);cursor:pointer;transition:all .22s;display:flex;gap:10px}
.pf-fursona:hover{border-color:var(--border-hover);transform:translateY(-2px)}
.pf-fursona .pf-fs-avatar{width:52px;height:52px;border-radius:14px;background:var(--bg2);background-size:cover;background-position:center;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:18px}
.pf-fursona .pf-fs-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}
.pf-fursona .pf-fs-meta{font-size:11.5px;color:var(--text3);margin-top:3px;line-height:1.5}
/* 关系绑定 */
.pf-rel-list{display:flex;gap:10px;flex-wrap:wrap}
.pf-rel{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:14px;border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all .2s}
.pf-rel:hover{border-color:var(--border-hover)}
.pf-rel .pf-rel-avatar{width:34px;height:34px;border-radius:50%;background:var(--grad-primary);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff}
.pf-rel .pf-rel-name{font-size:13px;font-weight:600}
.pf-rel .pf-rel-type{font-size:10.5px;color:var(--text3)}
/* 返图 */
.pf-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.pf-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}
/* ---- 收藏页 ---- */
.coll-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:10px}
.coll-item .coll-avatar{width:44px;height:44px;border-radius:50%;background:var(--grad-primary);background-size:cover;background-position:center;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;cursor:pointer}
.coll-item .coll-main{flex:1;min-width:0;cursor:pointer}
.coll-item .coll-name{font-size:14px;font-weight:700}
.coll-item .coll-meta{font-size:11.5px;color:var(--text3);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap}
.coll-item .coll-ops{display:flex;gap:6px;flex-wrap:wrap}
.coll-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.coll-head .coll-count{font-size:12.5px;color:var(--text3)}
/* ---- 兽聚增强 ---- */
.ev-view-seg{display:inline-flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.ev-view-seg button{padding:7px 14px;border:none;background:transparent;color:var(--text2);font-size:12.5px;font-weight:600;border-radius:9px;cursor:pointer;transition:all .2s}
.ev-view-seg button:hover{color:var(--text)}
.ev-view-seg button.on{background:linear-gradient(135deg,rgba(255,158,198,0.22),rgba(201,36,110,0.12));color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,158,198,0.2)}
.ev-bar{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:12px}
.ev-bar .ev-bar-title{font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;margin-bottom:9px}
.ev-bar .ev-bar-title .svg-icon{width:15px;height:15px;color:var(--primary-light)}
.ev-bar-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.ev-plan-card{flex:0 0 200px;padding:11px 13px;border-radius:12px;border:1px solid var(--border);background:var(--bg2);cursor:pointer;transition:all .2s}
.ev-plan-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}
.ev-plan-card .evp-title{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-plan-card .evp-meta{font-size:11px;color:var(--text3);margin-top:5px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ev-plan-card .evp-days{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;background:rgba(255,158,198,.16);color:var(--primary-light)}
.ev-remind{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text2);padding:6px 0}
.ev-intent-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.ev-intent-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s}
.ev-intent-btn:hover{border-color:var(--border-hover);color:var(--text)}
.ev-intent-btn.on{background:linear-gradient(135deg,rgba(255,158,198,0.26),rgba(201,36,110,0.14));color:var(--text);border-color:var(--primary);box-shadow:0 0 14px rgba(255,158,198,.22)}
.ev-intent-btn.on-going{background:linear-gradient(135deg,rgba(255,122,181,0.22),rgba(201,36,110,0.16));border-color:var(--success)}
.ev-badge-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.ev-partner{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;background:linear-gradient(135deg,rgba(255,122,181,.25),rgba(201,36,110,.18));color:#ff7ab5;border:1px solid rgba(255,122,181,.35)}
.ev-source{font-size:10.5px;color:var(--text3)}
.ev-correction{margin-top:8px;font-size:11.5px;color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.ev-correction:hover{color:var(--primary-light)}
/* 日历 */
.ev-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.ev-cal .ev-cal-cell{min-height:74px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:7px 8px;cursor:pointer;transition:all .18s}
.ev-cal .ev-cal-cell:hover{border-color:var(--border-hover)}
.ev-cal .ev-cal-cell.other{opacity:.35}
.ev-cal .ev-cal-cell.sel{border-color:var(--primary);box-shadow:0 0 0 1px rgba(255,158,198,.35) inset}
.ev-cal .ev-cal-cell.today{background:rgba(255,158,198,.14)}
.ev-cal .ev-cal-day{font-size:12.5px;font-weight:700;color:var(--text2)}
.ev-cal .ev-cal-dots{display:flex;gap:3px;margin-top:6px;flex-wrap:wrap}
.ev-cal .ev-cal-dots i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block}
.ev-cal .ev-cal-dots i.partner{background:#ff7ab5}
.ev-cal-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ev-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;font-size:11px;color:var(--text3);text-align:center}
.ev-cal-day-list{margin-top:16px}
@media(max-width:767px){
  .pf-statbar{grid-template-columns:repeat(3,1fr);gap:14px 8px}
  .pf-banner{height:140px}
  .pf-name{font-size:20px}
  .ev-cal .ev-cal-cell{min-height:58px;padding:5px}
  .pf-fursona-grid{grid-template-columns:1fr 1fr}
}

/* ==================================================================
   UI 打磨层（纯视觉 / 交互；不改功能、接口与数据流）
   对应：1 设计令牌 · 2 组件统一 · 3 重点页面 · 4 状态统一
        5 响应式 · 6 细节 · 7 浅色主题专项
   仅使用既有 class / id 作为钩子，不新增 DOM 语义
   ================================================================== */

/* ---------- 2.1 可点元素：cursor + 统一过渡 + 按压反馈 ---------- */
[onclick],a,.btn,.icon-btn,.explore-tab,.events-tab,.agent-tab,.ev-view-seg button,
.fc-seg button,.gadget-tab,.today-nav-btn,.today-cal-d,.ex-tag,.today-topic-chip,
.topic-card,.card-item,.ev-card,.artist-row,.pf-fursona,.pf-rel,.user-chip,.ex-mini-card,
.ev-intent-btn,.ev-plan-card,.coll-item,.pager button,.back-btn,.hc-arrow,.today-opt,
.menu-item,.conv-item,.top-bar-center a,.bottom-nav a,.sidebar nav a{cursor:pointer}

.btn,.btn-outline,.btn-outline-sm,.btn-ghost,.btn-danger,.code-btn,.icon-btn,
.explore-tab,.events-tab,.agent-tab,.gadget-tab,.ev-view-seg button,.fc-seg button,
.today-nav-btn,.ex-tag,.today-topic-chip,.ev-intent-btn,.back-btn,.hc-arrow,
.today-opt,.artist-row,.pf-fursona,.pf-rel,.coll-item,.menu-item,.conv-item{
  transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),
    transform var(--t-fast) var(--ease),filter var(--t-base) var(--ease),opacity var(--t-base) var(--ease)
}

.btn:not(:disabled):active,.btn-outline:active,.btn-outline-sm:active,.btn-ghost:active,
.btn-danger:active,.code-btn:not(:disabled):active,.icon-btn:active,.explore-tab:active,
.events-tab:active,.agent-tab:active,.gadget-tab:active,.ev-view-seg button:active,
.fc-seg button:active,.today-nav-btn:active:not(:disabled),.ex-tag:active,
.today-topic-chip:active,.ev-intent-btn:active,.back-btn:active,.hc-arrow:active,
.pager button:active:not(:disabled),.today-opt:active,.post-actions .act:active,
.today-img-cell .del:active{transform:translateY(1px) scale(.98)}

/* ---------- 2.2 键盘可达：统一 focus-visible 描边与聚焦环 ---------- */
a:focus-visible,button:focus-visible,[onclick]:focus-visible,[tabindex]:focus-visible,
.ex-tag:focus-visible,.today-cal-d:focus-visible,.card-item:focus-visible{
  outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-10)
}
.input:focus,.input-wrap input:focus,.input-wrap textarea:focus,.input-wrap select:focus,
.search-box input:focus,.ex-search-box input:focus,.top-bar-search input:focus,
.plaza-filter select:focus,.events-filter select:focus,.artist-search-row select:focus{
  border-color:var(--border-hover);box-shadow:var(--focus-ring)
}

/* ---------- 2.3 卡片：统一圆角 / 三级阴影 ---------- */
.card{border-radius:var(--r-18);box-shadow:var(--elev-1)}
.card:hover{box-shadow:var(--elev-2)}
.ev-card,.topic-card,.user-card,.home-classic,.set-section{border-radius:var(--r-18)}

/* ---------- 2.4 按钮：统一圆角 / 字重 / 尺寸节奏 ---------- */
.btn{border-radius:var(--r-12);font-size:var(--fs-body);font-weight:600;letter-spacing:.2px}
.btn-primary,.btn-ghost,.btn-danger,.btn-lg{border-radius:var(--r-12)}
.btn-primary.btn-sm,.btn-sm,.btn-outline-sm,.code-btn{border-radius:var(--r-10)}
.btn-outline{border-radius:var(--r-12)}

/* ---------- 2.5 输入框 / 下拉：统一圆角 ---------- */
.input,.input-wrap input,.input-wrap textarea,.input-wrap select,
.search-box input,.ex-search-box input,.top-bar-search input,
.plaza-filter select,.events-filter select,.artist-search-row select{border-radius:var(--r-12)}

/* ---------- 2.6 标签 / 徽章 ---------- */
.tag,.badge-fs,.today-topic-chip,.ev-intent-btn,.ev-plan-card .evp-days,
.ev-partner,.ex-mini-card .em-reason{border-radius:20px;font-weight:600}

/* ---------- 2.7 分隔线 / 列表项 ---------- */
.menu-item,.conv-item,.set-row,.changelog-item,.topic-card .tc-foot{border-color:var(--border)}
.menu-item:last-child,.conv-item:last-child{border-bottom:0}

/* ---------- 2.8 弹窗 / 遮罩 / Toast / 侧栏页脚 ---------- */
.modal{border-radius:var(--r-24);box-shadow:var(--elev-3)}
.modal-header,.modal-footer{background:transparent}
.modal-body::-webkit-scrollbar{width:8px}
.modal-footer .btn,.modal-footer .btn-primary,.modal-footer .btn-ghost,.modal-footer .btn-outline{border-radius:var(--r-12)}
.toast{border-radius:var(--r-12);box-shadow:var(--elev-3)}
.event-detail-inner{border-radius:var(--r-24);box-shadow:var(--elev-3)}
.sidebar .sidebar-footer button{border-radius:var(--r-12)}

/* ==================================================================
   3. 重点页面逐个打磨
   ================================================================== */
/* 3.1 首页信息流（Today 卡片 / 击爪点赞态 / 图片网格） */
.post-card{transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),transform var(--t-base) var(--ease)}
.post-images{border-radius:var(--r-12)}
.post-images img{border-radius:var(--r-10);background-color:var(--bg2)}
.post-actions .act{border-radius:var(--r-10)}
.post-actions .act.on .svg-icon{animation:heartBeat .45s var(--ease)}
.today-lv{box-shadow:0 2px 8px rgba(255,77,148,.35)}
/* 3.1b 首页经典大卡片 */
.home-classic .hc-avatar{border-width:4px}
.home-classic .hc-bio{border-radius:var(--r-12)}

/* 3.2 今天 / 话题圈（列表 + 详情 + 发帖弹窗） */
.today-cal-d{border-radius:var(--r-10)}
.today-img-cell,.today-img-add{border-radius:var(--r-12)}
.today-opt-list{border-radius:var(--r-12)}
.topic-card .tc-cover{border-radius:var(--r-12)}
.topic-detail-head{border-radius:var(--r-18)}
.topic-detail-head .td-cover{border-radius:var(--r-12)}

/* 3.3 我的收藏四 Tab（名片夹 / 足迹 / 我点赞的 / 我看过的） */
.coll-item{border-radius:var(--r-12);box-shadow:none}
.coll-item:hover{border-color:var(--border-hover);background:var(--surface-hover)}
.coll-head .coll-count{font-size:var(--fs-sub)}

/* 3.4 个人主页（头图 / 头像 / 崽崽 / 徽章 / 统计 / 标签 / 商店 / 关系绑定） */
.pf-banner{border-radius:var(--r-18)}
.pf-photos img{border-radius:var(--r-12);background-color:var(--bg2)}
.pf-fursona,.pf-fursona .pf-fs-avatar,.pf-rel{border-radius:var(--r-12)}
.pf-statbar .pf-st strong,.pf-trust-badge strong{letter-spacing:.4px}

/* 3.5 活动中心（年历 / 月历 / 列表 / 想去要去 / 订阅 / 勘误） */
.ev-view-seg{border-radius:var(--r-12)}
.ev-view-seg button{border-radius:var(--r-10)}
.ev-cal .ev-cal-cell{border-radius:var(--r-12)}
.ev-cal .ev-cal-cell.today{background:rgba(255,158,198,.14)}
.ev-cal .ev-cal-cell.sel{border-color:var(--primary);box-shadow:inset 0 0 0 1px rgba(255,158,198,.45)}
.ev-plan-card,.ev-bar{border-radius:var(--r-12)}
.ev-correction:active{transform:translateY(1px)}

/* 3.6 探索（地区 / 物种 / 热门 / 推荐 + 检索语法提示） */
.ex-tag{border-radius:20px}
.ex-mini-card{border-radius:var(--r-18)}
.ex-search-box input{border-radius:var(--r-12)}

/* 3.7 设置页（分组卡片 / 主题与语言选择器 / 危险区） */
.set-section{border-radius:var(--r-18)}
.fc-seg{border-radius:var(--r-12)}
.fc-seg button{border-radius:var(--r-10)}
.set-danger{border-color:rgba(251,113,133,.42)!important;box-shadow:inset 0 0 0 1px rgba(251,113,133,.10)}

/* 3.8 公告条 / 图片灯箱 / 页脚 */
.notice-item{border-radius:var(--r-12)}
#imgViewer img{border-radius:var(--r-18)}
#imgViewer .iv-close{transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}
#imgViewer .iv-close:active{transform:scale(.94)}
.icon-btn{border-radius:var(--r-12)}

/* ==================================================================
   4. 状态统一：空态 / 加载态 / 错误态
   ================================================================== */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:56px 20px;color:var(--text3)}
.empty .svg-icon{width:88px;height:88px;padding:18px;box-sizing:border-box;border-radius:50%;
  background:var(--hover-veil);border:1px solid var(--border);color:var(--primary-light);opacity:1;
  margin-bottom:12px;filter:drop-shadow(0 6px 18px rgba(255,158,198,.28))}
.empty h3{font-size:var(--fs-group);color:var(--text2);font-weight:700;margin-bottom:4px}
.empty p{font-size:var(--fs-sub);line-height:1.7;max-width:420px}
.empty .btn,.empty .btn-outline,.empty .btn-primary{margin-top:14px}
.ex-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:34px 20px;color:var(--text3);font-size:13px}
.ex-loading::before{content:'';width:16px;height:16px;border-radius:50%;
  border:2px solid var(--border);border-top-color:var(--primary);animation:rotate .8s linear infinite;flex-shrink:0}
.ev-intent-btn.on-going{box-shadow:0 0 14px rgba(74,222,128,.22)}

/* ==================================================================
   5. 响应式：宽屏居中收窄、窄屏不横向溢出、日历/网格/表格适配
   ================================================================== */
.page-container{overflow-x:hidden;scroll-behavior:smooth}
.container{max-width:1120px}
@media(min-width:1500px){.container{max-width:1200px}}
.ex-hscroll,.ev-bar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ev-cal,.today-cal-grid,.pf-photos,.ex-grid,.post-images{min-width:0}
@media(max-width:767px){
  .ev-cal{gap:4px}
  .ev-cal .ev-cal-cell{min-height:54px;padding:4px;border-radius:var(--r-10)}
  .ev-cal .ev-cal-day{font-size:11.5px}
  .ev-cal .ev-cal-dots{margin-top:4px}
  .today-layout{gap:14px}
  .event-detail-inner{margin:12px auto;border-radius:var(--r-18)}
  .event-detail-content{padding:16px}
  .event-detail-actions{flex-wrap:wrap}
  .event-detail-actions .btn,.event-detail-actions .btn-outline{flex:1;justify-content:center}
  .modal{border-radius:var(--r-18)}
  .pf-photos{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
  .today-img-grid{gap:6px}
  .set-section{padding:16px 15px}
}
@media(max-width:480px){
  .ev-cal .ev-cal-cell{min-height:46px;padding:3px}
  .ev-cal .ev-cal-dots i{width:5px;height:5px}
  .today-cal-grid{gap:3px}
  .today-cal-w{font-size:10px}
}

/* ==================================================================
   6. 细节：滚动条 / 图片占位 / 长文本省略 / 减弱动效
   ================================================================== */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border-radius:4px;background:var(--primary);opacity:.8}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}
::-webkit-scrollbar-corner{background:transparent}
/* 图片统一占位底色（圆角已各自定义） */
.today-img-cell img,.pf-photos img,.artist-work img,.post-images img,
.card-item img,.ev-cover img,.coll-avatar,.pf-fs-avatar,.ex-mini-card .em-avatar{background-color:var(--bg2)}
/* 长文本省略规则统一 */
.topic-card .tc-name,.coll-item .coll-name,.pf-fs-name,.ev-title,.ex-mini-card .em-name{max-width:100%}
/* 减弱动效偏好 */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important
  }
  .page-container{scroll-behavior:auto}
  .card:hover,.btn-primary:hover,.btn-outline:hover,.user-card:hover,.ex-mini-card:hover,
  .artist-row:hover,.pf-fursona:hover,.ev-plan-card:hover,.explore-tab.active,
  .bottom-nav a:hover,.today-nav-btn:active,.hc-anim{transform:none!important}
}

/* ==================================================================
   7. 浅色主题专项排查（对比度 / 描边 / 阴影）
   ================================================================== */
html.theme-light .today-opt-list{background:rgba(255,255,255,.72)}
html.theme-light select.input option{background:#FFFFFF;color:var(--text)}
html.theme-light .toast{background:rgba(255,255,255,.97)}
html.theme-light .bubble{background:#FFFFFF}
html.theme-light .bubble.mine{background:var(--primary);color:#fff}
html.theme-light .radar-map-status{background:rgba(255,255,255,.94)}
html.theme-light #ccRadarMap{background:#fae7f1}
html.theme-light .stat-card{background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0)),var(--surface)}
html.theme-light .post-card{background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0)),var(--surface)}
html.theme-light .wechat-tip{color:#8e1148;background:rgba(245,158,11,.16);border-color:rgba(201,36,110,.28)}
html.theme-light .artist-row .rating{color:#c9246e;border-color:rgba(201,36,110,.28)}
html.theme-light .ev-partner{color:#c9246e;background:rgba(255,122,181,.18);border-color:rgba(201,36,110,.28)}
html.theme-light .post-actions .act.on.fill-star,html.theme-light .ev-src-star{color:#c9246e}
html.theme-light .ev-free{color:#FFFFFF}
html.theme-light .badge-soft{color:#ff4d94;background:rgba(255,77,148,.12);border-color:rgba(255,77,148,.3)}
html.theme-light .download-hero-content h2{background:#ff4d94;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
html.theme-light .today-date-title .today-tag,html.theme-light .ev-price,
html.theme-light .ghost-hint,html.theme-light .di-val.di-code,html.theme-light .menu-icon.accent{color:#b81f60}
html.theme-light .today-cal-d{background:rgba(255,77,148,.07)}
html.theme-light .today-cal-d.has{background:rgba(255,77,148,.18);color:var(--text)}
html.theme-light .ev-cal .ev-cal-cell.today{background:rgba(255,77,148,.12)}
html.theme-light .home-classic .hc-avatar{border-color:#FFFFFF;box-shadow:0 10px 30px rgba(255,77,148,.26)}
html.theme-light .card-item:hover,html.theme-light .pf-fursona:hover,html.theme-light .ev-plan-card:hover{box-shadow:var(--elev-2)}
html.theme-light .empty .svg-icon{filter:drop-shadow(0 6px 18px rgba(255,77,148,.18))}
html.theme-light .ex-mini-card:hover{box-shadow:0 14px 34px rgba(201,36,110,.16)}
html.theme-light .sidebar .user-chip:hover,html.theme-light .notice-item .ni-close:hover{background:rgba(255,77,148,.10)}
/* ===== 出毛指数 / 出毛中 / 取件码 ===== */
.suit-card{padding:20px;margin-bottom:18px}
.suit-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.suit-badge{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:800;letter-spacing:.3px}
.suit-badge .svg-icon{color:var(--accent)}
.suit-city{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--glass-bg);border:var(--glass-border);color:var(--text2);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .22s}
.suit-city:hover{color:var(--text);border-color:var(--border-hover)}
.suit-main{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.suit-score{font-size:52px;font-weight:900;line-height:1;letter-spacing:-2px}
.suit-score span{font-size:15px;font-weight:700;margin-left:3px;letter-spacing:0}
.suit-info{flex:1;min-width:200px}
.suit-level{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12.5px;font-weight:800;border:1px solid transparent}
.suit-summary{font-size:13px;color:var(--text2);line-height:1.7;margin-top:9px}
.suit-plan{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.suit-plan-item{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:11px;background:rgba(255,158,198,.12);border:1px solid var(--border);font-size:12px;color:var(--text2)}
.suit-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.suit-chip{padding:5px 11px;border-radius:11px;background:var(--glass-bg);border:var(--glass-border);font-size:12px;color:var(--text2)}
.suit-more{margin-top:14px;background:none;border:none;color:var(--primary);font-size:12.5px;font-weight:700;cursor:pointer;padding:4px 0;display:inline-flex;align-items:center;gap:5px}
.suit-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.suit-tips{margin:0 0 4px;padding-left:18px;font-size:12.5px;color:var(--text2);line-height:1.9}
.suit-factor-row{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text2);padding:6px 0;border-top:1px solid var(--border)}
.suit-factor-row:first-child{border-top:none}
.suit-factor-row .sf-label{width:74px;flex-shrink:0;color:var(--text3)}
.suit-factor-row .sf-val{font-weight:700;color:var(--text);width:66px;flex-shrink:0}
.suit-factor-row .sf-text{flex:1;min-width:0;line-height:1.6}
.suit-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.suit-na{display:flex;align-items:flex-start;gap:9px;padding:14px;border-radius:14px;background:var(--glass-bg);border:var(--glass-border);font-size:13px;color:var(--text2);line-height:1.7}
.suit-na .svg-icon{flex-shrink:0;color:var(--text3);margin-top:2px}
.suit-foot{margin-top:14px;font-size:11.5px;color:var(--text3);display:flex;align-items:center;gap:6px;line-height:1.6}
.so-start{margin-top:6px}
.so-hint{font-size:12px;color:var(--text3);margin-top:8px}
.so-form{margin-top:6px}
.so-mine{margin-top:14px;padding:14px;border-radius:14px;background:linear-gradient(135deg,rgba(255,122,181,.10),rgba(255,158,198,.08));border:1px solid var(--border)}
.so-mine-title{font-size:14px;font-weight:800;display:flex;align-items:center;gap:7px}
.so-mine-title .svg-icon{color:#ff7ab5}
.so-mine-meta{font-size:12.5px;color:var(--text2);margin-top:8px;line-height:1.9}
.so-mine-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.so-list-title{font-size:13px;font-weight:800;margin:18px 0 10px;display:flex;align-items:center;gap:7px;color:var(--text2)}
.so-list{display:flex;flex-direction:column;gap:11px}
.so-item{display:flex;gap:12px;align-items:flex-start;padding:13px;border-radius:15px;background:var(--glass-bg);border:var(--glass-border)}
.so-item.me{border-color:var(--border-hover)}
.so-item-main{flex:1;min-width:0}
.so-item-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.so-tag{padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;background:rgba(255,158,198,.18);color:var(--primary);border:1px solid var(--border)}
.so-item-sub{font-size:12px;color:var(--text3);margin-top:3px}
.so-item-suit{font-size:12.5px;color:var(--text2);margin-top:4px}
.so-item-meta{font-size:12px;color:var(--text2);margin-top:6px;display:flex;gap:10px;flex-wrap:wrap}
.so-contact{margin-top:7px;font-size:12px;display:flex;align-items:center;gap:6px}
.so-contact.locked{color:var(--text3)}
.so-contact.open{color:var(--success);font-weight:600}
.so-item-act{flex-shrink:0}
.sp-box{padding:18px;margin-top:16px;border-radius:var(--radius);background:var(--glass-bg);border:var(--glass-border)}
.sp-head{font-size:14.5px;font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sp-head .svg-icon{color:var(--accent)}
.sp-tip{font-size:12.5px;color:var(--text2);line-height:1.7;margin-bottom:12px}
.sp-code-wrap{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.sp-code{flex:1;min-width:170px;padding:14px;border-radius:14px;background:var(--surface);border:1px dashed var(--border-hover);text-align:center;cursor:pointer}
.sp-code-label{font-size:11.5px;color:var(--text3);letter-spacing:.5px}
.sp-code-val{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:30px;font-weight:800;letter-spacing:5px;margin-top:6px;color:var(--text)}
.sp-code-hint{font-size:11px;color:var(--text3);margin-top:6px}
.sp-preview{width:140px;flex-shrink:0;border-radius:14px;overflow:hidden;border:1px solid var(--border)}
.sp-preview img{width:100%;display:block;cursor:zoom-in}
.sp-preview span{display:block;font-size:11px;color:var(--text3);padding:5px 8px;background:var(--surface)}
.sp-preview.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100px;color:var(--text3);font-size:11.5px}
.sp-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sp-meta-item{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--glass-bg);border:var(--glass-border);color:var(--text2)}
.sp-form{margin-top:4px}
.sp-form .input-wrap{margin-bottom:12px}
.sp-logs{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.sp-logs-title{font-size:12.5px;font-weight:800;color:var(--text2);margin-bottom:8px}
.sp-log-row{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text2);padding:6px 0;border-top:1px solid var(--border)}
.sp-log-row:first-of-type{border-top:none}
.sp-log-act{font-weight:700;color:var(--text)}
.sp-log-time{color:var(--text3)}
.sp-box-list{display:flex;flex-direction:column;gap:12px}
.sp-box-item{padding:14px}
.sp-box-main{display:flex;gap:12px;align-items:flex-start}
.sp-box-thumb{width:76px;height:76px;border-radius:12px;overflow:hidden;flex-shrink:0;border:1px solid var(--border)}
.sp-box-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sp-box-thumb.empty{display:flex;align-items:center;justify-content:center;color:var(--text3)}
.sp-box-info{flex:1;min-width:0}
.sp-box-title{font-size:14px;font-weight:700}
.sp-box-sub{font-size:12px;color:var(--text3);margin-top:4px}
.sp-box-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px;font-weight:800;letter-spacing:3px;margin-top:8px;color:var(--primary)}
html.theme-light .suit-na{background:rgba(255,255,255,.72)}
html.theme-light .sp-code{background:rgba(255,255,255,.85)}
html.theme-light .so-mine{background:linear-gradient(135deg,rgba(255,122,181,.14),rgba(255,77,148,.10))}

/* ==================================================================
   2026-09 桌面端重塑：午夜金 Midnight Gold
   参考兽圈画廊社区（fursuit.tv）的深色设计语言，加入自有创意：
   · 近黑贴片底 + 金/橙双色强调，卡片“零阴影”靠描边分层
   · 78px 吸顶毛玻璃导航：金色发丝线 + 悬停/选中渐变下划线
   · 卡片悬停：图像轻微推进 + 斜向金光明暗扫过（sheen）
   · 桌面三列等宽画廊网格（gap 25px）；详情页 2 列栅格
   ================================================================== */

/* ---------- 0. 背景：暖炭黑 + 双色微光（替换原蓝色极光）+ 极细颗粒 ---------- */
body::before{background:
  radial-gradient(circle at 18% 10%,rgba(255,158,198,0.10) 0%,transparent 46%),
  radial-gradient(circle at 84% 76%,rgba(201,36,110,0.09) 0%,transparent 50%),
  radial-gradient(circle at 50% 50%,rgba(255,77,148,0.03) 0%,transparent 72%)}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,0.035) 1px,transparent 1px);background-size:3px 3px}
html.theme-light body::after{opacity:.4;background-image:radial-gradient(rgba(90,60,20,0.06) 1px,transparent 1px)}
::selection{background:rgba(255,77,148,0.28);color:#fff}
html.theme-light ::selection{background:rgba(201,36,110,0.24);color:#1a0f14}
::-webkit-scrollbar-thumb{background:rgba(255,158,198,0.22);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,158,198,0.42)}
html.theme-light ::-webkit-scrollbar-thumb{background:rgba(201,36,110,0.28)}
html.theme-light ::-webkit-scrollbar-thumb:hover{background:rgba(201,36,110,0.48)}

/* ---------- 1. 金/橙实心底：统一深墨字（避免白字压金底看不清） ---------- */
.btn-primary,.btn-accent,.code-btn,.card-upload-btn,.radar-retry-btn,.explore-tab.active,
.agent-tab.active,.auth-tab.active,.fc-seg button.on,.today-lv,.pf-lv,.pager button.active,
.avatar,.letter-avatar,.user-card-avatar,.topic-card .tc-cover,.topic-detail-head .td-cover,
.pf-trust-badge,.contrib-card .ca,.ex-mini-card .em-avatar,.notice-item .ni-icon,
.bottom-nav a.active .icon-wrap,.bubble.mine,.today-cal-d.hot,.home-classic .hc-avatar{color:var(--ink)}

/* ---------- 2. 顶栏：78px 吸顶毛玻璃 + 金色发丝线 + 渐变下划线 ---------- */
.top-bar{height:var(--nav-h);padding:0 34px;background:var(--glass-bg);
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border-bottom:1px solid var(--hairline);
  box-shadow:0 1px 0 rgba(0,0,0,0.6),0 14px 36px rgba(0,0,0,0.45)}
.top-bar-left .brand{font-size:18px;letter-spacing:.6px;
  background:#ffd3e6;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.top-bar-left .brand .logo-icon{box-shadow:0 0 0 1px rgba(255,77,148,0.35),0 6px 18px rgba(0,0,0,0.5)}
.top-bar-center{height:100%;align-items:stretch;gap:2px;padding:0;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.top-bar-center a{position:relative;padding:0 15px;border-radius:0;font-size:14px;font-weight:600;color:var(--text2);letter-spacing:.2px}
.top-bar-center a::after{content:'';position:absolute;left:50%;right:50%;bottom:12px;height:2px;border-radius:2px;
  background:var(--grad-ink);opacity:0;transition:left .3s var(--ease),right .3s var(--ease),opacity .3s var(--ease)}
.top-bar-center a:hover{color:#fff;background:rgba(255,255,255,0.035)}
.top-bar-center a:hover::after{left:30%;right:30%;opacity:.5}
.top-bar-center a.active{color:var(--gold);background:linear-gradient(180deg,rgba(255,77,148,0.02),rgba(255,77,148,0.09));box-shadow:none}
.top-bar-center a.active::after{left:18%;right:18%;opacity:1;box-shadow:0 0 14px rgba(255,122,181,0.55)}
.top-bar-center a.active .svg-icon{filter:drop-shadow(0 0 8px rgba(255,158,198,0.55))}
.top-bar-search{width:210px;min-width:0}
.top-bar-search input{padding:10px 14px 10px 38px;background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.09);border-radius:22px;box-shadow:none}
.top-bar-search input:focus{border-color:var(--border-hover);box-shadow:var(--focus-ring)}
.top-bar-search .search-icon{color:var(--text3)}
.icon-btn:hover{background:rgba(255,77,148,0.10);color:var(--gold);border-color:rgba(255,77,148,0.24);box-shadow:none}
.top-bar-avatar{border:2px solid rgba(255,77,148,0.45)}
.top-bar-avatar:hover{box-shadow:0 0 0 3px rgba(255,158,198,0.32),0 0 24px rgba(255,122,181,0.42)}
.more-menu-panel{background:rgba(12,12,12,0.92);border:1px solid var(--hairline);box-shadow:0 22px 54px rgba(0,0,0,0.62)}
.more-menu-panel a.active{background:rgba(255,77,148,0.12);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(255,77,148,0.20)}
html.theme-light .more-menu-panel{background:rgba(255,255,255,0.96)}

/* ---------- 3. 底部导航（移动端）：同色系重绘 ---------- */
.bottom-nav{background:rgba(12,12,12,0.88);border:1px solid var(--hairline);
  box-shadow:0 20px 50px rgba(0,0,0,0.62),0 0 0 1px rgba(255,77,148,0.06)}
.bottom-nav::before{background:linear-gradient(90deg,transparent,rgba(255,77,148,0.45),transparent)}
.bottom-nav a:hover{color:var(--gold)}
.bottom-nav a:hover .icon-wrap{background:rgba(255,77,148,0.12)}
.bottom-nav a.active{color:var(--gold);text-shadow:0 0 12px rgba(255,158,198,0.45);
  background:linear-gradient(180deg,rgba(255,77,148,0.10),transparent)}
.bottom-nav a.active .icon-wrap{background:var(--grad-button)}
.bottom-nav a.active .icon-wrap::before{background:radial-gradient(circle,rgba(255,158,198,0.50) 0%,rgba(255,122,181,0.22) 40%,rgba(201,36,110,0) 72%)}
.bottom-nav a.active .icon-wrap{box-shadow:0 0 0 2px rgba(255,255,255,0.10),0 10px 26px rgba(255,122,181,0.45),0 0 30px rgba(255,158,198,0.5)}
html.theme-light .bottom-nav{background:rgba(255,255,255,0.92)}

/* ---------- 4. 卡片：贴片式（18px 圆角 / 零阴影 / 金色描边悬停 + 斜光扫过） ---------- */
.card{background:#131313;border:1px solid rgba(255,255,255,0.07);border-radius:var(--r-18);box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none}
.card::before{display:none}
.card::after{content:'';position:absolute;top:0;bottom:0;left:-55%;width:45%;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent,rgba(255,77,148,0.08),transparent);transform:skewX(-16deg)}
.card:hover{transform:translateY(-2px);border-color:rgba(255,158,198,0.34);background:#171716;
  box-shadow:0 16px 36px rgba(0,0,0,0.5)}
.card:hover::after{opacity:1;animation:sheenSweep .85s var(--ease)}
@keyframes sheenSweep{from{left:-55%}to{left:115%}}
html.theme-light .card{background:#fff;border-color:rgba(40,25,33,0.10)}
html.theme-light .card:hover{background:#fff;border-color:rgba(201,36,110,0.36);box-shadow:0 14px 30px rgba(90,20,50,0.14)}
html.theme-light .card::after{background:linear-gradient(105deg,transparent,rgba(255,122,181,0.10),transparent)}
/* 页面标题：金色小勾线 */
.page-head{gap:14px;margin-bottom:22px}
.page-head .page-logo{background:#141414;box-shadow:0 0 0 1px rgba(255,77,148,0.28)}
html.theme-light .page-head .page-logo{background:#fff;box-shadow:0 0 0 1px rgba(201,36,110,0.30)}
.page-title{font-size:23px;letter-spacing:.4px}
.page-title .svg-icon{color:var(--gold)}

/* ---------- 5. 名片卡（画廊式重排：头像左 + 姓名/标签右 + 简介/数据通栏） ---------- */
.user-card{background:#121212;background-image:none;border:1px solid rgba(255,255,255,0.07);
  box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.user-card:hover{transform:translateY(-2px);border-color:rgba(255,158,198,0.38);box-shadow:0 16px 38px rgba(0,0,0,0.52)}
.user-card-banner{height:104px}
.user-card-banner::before{background:#171114;opacity:1}
.user-card-banner::after{background:radial-gradient(circle at 82% 118%,rgba(255,158,198,0.30) 0%,transparent 58%),radial-gradient(circle at 12% -14%,rgba(201,36,110,0.22) 0%,transparent 56%)}
.user-card-glow{background:radial-gradient(circle,rgba(255,158,198,0.20) 0%,transparent 70%)}
.user-card-body{display:grid;grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"av name" "av badges" "av tags" "bio bio" "stats stats";
  align-content:start;align-items:start;gap:3px 16px;text-align:left;padding:0 20px 18px;margin-top:-46px}
.user-card-avatar{grid-area:av;width:88px;height:88px;margin:0;font-size:30px;
  background:var(--grad-accent);border:3px solid #121212;box-shadow:0 8px 20px rgba(0,0,0,0.5)}
.user-card:hover .user-card-avatar{transform:scale(1.04) rotate(-2deg)}
.user-card-name{grid-area:name;align-self:end;margin:0;font-size:18px;
  background:#ffd3e6;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.user-card-badges{grid-area:badges;justify-content:flex-start;margin:4px 0 0}
.user-card-tags{grid-area:tags;justify-content:flex-start;margin:6px 0 0}
.user-card-bio{grid-area:bio;margin:13px 0 0;background:#0d0d0d;border:1px solid rgba(255,255,255,0.05);
  color:var(--text2);text-align:left;min-height:0;padding:11px 13px}
.user-card-stats{grid-area:stats;margin-top:11px;padding-top:11px;border-top:1px solid rgba(255,255,255,0.07)}
.user-card-stats strong{color:var(--gold);font-size:16px}
.user-card-stats span{color:var(--text3);letter-spacing:.3px}
html.theme-light .user-card{background:#fff;background-image:none;border-color:rgba(40,25,33,0.10)}
html.theme-light .user-card-banner::before{background:#f7dcea}
html.theme-light .user-card-avatar{border-color:#fff}
html.theme-light .user-card-name{background:#c9246e;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
html.theme-light .user-card-bio{background:#faf7f0;color:var(--text2);border-color:rgba(40,25,33,0.08)}
html.theme-light .user-card-stats{border-color:rgba(40,25,33,0.10)}
html.theme-light .user-card-stats strong{color:#c9246e}

/* ---------- 6. 首页信息流（动态卡 / 搜索条） ---------- */
.feed-header{background:#121212;border:1px solid rgba(255,255,255,0.07);border-radius:var(--r-18);box-shadow:none;padding:12px 16px}
.search-box input{background:#0d0d0d;border:1px solid rgba(255,255,255,0.08);border-radius:var(--r-12)}
.ex-search-box input{background:#121212;border:1px solid rgba(255,255,255,0.08)}
.post-card{background:#131313;border-radius:var(--r-18);box-shadow:none}
.post-username{color:#fff}
.post-text{color:#e8e8e8}
.post-actions .act:hover{background:rgba(255,77,148,0.08);color:var(--gold)}
.post-actions .act.on.fill-star{color:var(--gold)}
.post-actions .act.today-paw.on{color:var(--amber)}
.today-mention{color:var(--gold)}
.today-mention:hover{background:rgba(255,77,148,0.12)}
html.theme-light .post-card,html.theme-light .feed-header{background:#fff;border-color:rgba(40,25,33,0.10)}
html.theme-light .search-box input,html.theme-light .ex-search-box input{background:#faf7f0}

/* ---------- 7. 按钮 / 标签 / 徽章 / 表单 ---------- */
.btn-primary{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.26)}
.btn-primary:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 12px 28px rgba(201,36,110,0.36)}
.btn-accent{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.26)}
.btn-outline{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.12);color:var(--text);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.btn-outline:hover{border-color:var(--border-hover);color:var(--gold);background:rgba(255,77,148,0.08);box-shadow:0 0 18px rgba(255,122,181,0.16)}
.btn-outline-sm{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.12);color:var(--text2);box-shadow:none}
.btn-outline-sm:hover{border-color:var(--border-hover);color:var(--gold);box-shadow:0 0 16px rgba(255,122,181,0.16)}
.btn-ghost{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);color:var(--text2)}
.btn-ghost:hover{background:rgba(255,77,148,0.10);color:var(--gold)}
.btn-danger{background:rgba(255,93,93,0.14);color:var(--danger)}
.btn-danger:hover{background:rgba(255,93,93,0.22)}
.code-btn{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.24)}
.badge-fs{background:rgba(255,77,148,0.12);color:var(--gold);border:1px solid rgba(255,77,148,0.22)}
.badge-fs .svg-icon{color:inherit}
.tag{background:rgba(255,255,255,0.05);color:var(--text2);border:1px solid rgba(255,255,255,0.08)}
.input,.input-wrap input,.input-wrap textarea,.input-wrap select{background:#101010;border:1px solid rgba(255,255,255,0.09);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.input::placeholder,.input-wrap input::placeholder,.input-wrap textarea::placeholder{color:var(--text3)}
select.input option{background:#141414}
.today-opt-list{background:#0f0f0f;border-color:rgba(255,255,255,0.08)}
.today-opt{border-bottom-color:rgba(255,255,255,0.05)}
.today-opt:hover{background:rgba(255,77,148,0.08);color:var(--text)}
.today-opt.on{background:rgba(255,77,148,0.12);color:var(--gold)}
.ex-tag{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.10);color:var(--text2)}
.ex-tag:hover{color:var(--gold);border-color:var(--border-hover);box-shadow:0 0 18px rgba(255,122,181,0.16)}
.ex-tag.on{background:var(--grad-button);border-color:transparent;color:var(--ink)}
.ex-tag.on .n{color:rgba(26,20,0,0.70)}
.today-topic-chip{background:rgba(255,77,148,0.12);border:1px solid rgba(255,77,148,0.22);color:var(--gold)}
.today-topic-chip:hover{background:rgba(255,77,148,0.20);color:#fff}
html.theme-light .input,html.theme-light .input-wrap input,html.theme-light .input-wrap textarea,html.theme-light .input-wrap select{background:#fff;border-color:rgba(40,25,33,0.16)}
html.theme-light .badge-fs{background:rgba(201,36,110,0.12);color:#8e1148;border-color:rgba(201,36,110,0.24)}
html.theme-light .tag{background:rgba(40,25,33,0.05);border-color:rgba(40,25,33,0.10)}

/* ---------- 8. 分段控件 / 标签页 ---------- */
.fc-seg,.events-tabs,.gadget-tabs,.auth-tabs{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08)}
.explore-tab:hover,.events-tab:hover,.gadget-tab:hover,.agent-tab:hover{background:rgba(255,77,148,0.08);color:var(--gold)}
.explore-tab.active,.agent-tab.active{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.28)}
.explore-tab.active .svg-icon{color:var(--ink)}
.fc-seg button.on{background:var(--grad-button);color:var(--ink);box-shadow:0 4px 14px rgba(201,36,110,0.24)}
.gadget-tab.active,.events-tab.active,.ev-view-seg button.on{background:rgba(255,77,148,0.14);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(255,77,148,0.22)}
.auth-tab.active{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.28)}
html.theme-light .fc-seg,html.theme-light .events-tabs,html.theme-light .gadget-tabs,html.theme-light .auth-tabs{background:rgba(40,25,33,0.05);border-color:rgba(40,25,33,0.10)}

/* ---------- 9. 大幅面 / 英雄区：暖金重绘（原蓝紫渐变） ---------- */
#meHero::before{background:#171114}
.me-hero-bg{background:radial-gradient(circle at 80% 0%,rgba(255,158,198,0.20),transparent 55%),radial-gradient(circle at 10% 100%,rgba(201,36,110,0.18),transparent 55%)}
.radar-banner{background:#171114;border:1px solid var(--hairline)}
.radar-banner-bg{background:radial-gradient(circle at 20% 30%,rgba(255,158,198,0.18),transparent 55%),radial-gradient(circle at 80% 70%,rgba(201,36,110,0.16),transparent 50%)}
.home-classic{background:#121212;border:1px solid rgba(255,255,255,0.07);box-shadow:none}
.home-classic .hc-banner::before{background:#35262e;opacity:1}
.home-classic .hc-banner::after{background:radial-gradient(circle at 82% 118%,rgba(255,158,198,0.30) 0%,transparent 58%),radial-gradient(circle at 14% -12%,rgba(201,36,110,0.24) 0%,transparent 58%)}
.home-classic .hc-avatar{background:var(--grad-accent);border-color:#121212;box-shadow:0 10px 26px rgba(201,36,110,0.28)}
.home-classic .hc-bio{background:#0d0d0d;border:1px solid rgba(255,255,255,0.05)}
.home-classic .hc-stats strong{color:var(--gold)}
.user-hero-bg,.pf-banner{background:#35262e}
.ev-cover{background:#1f171b}
.auth-page::before{background:radial-gradient(circle,rgba(255,158,198,0.22),transparent 70%)}
.auth-page::after{background:radial-gradient(circle,rgba(201,36,110,0.18),transparent 70%)}
.auth-card{background:#121212;border:1px solid var(--hairline);box-shadow:0 30px 74px rgba(0,0,0,0.66)}
.auth-card::before{background:radial-gradient(circle,rgba(255,158,198,0.20),transparent 70%)}
.auth-card::after{background:radial-gradient(circle,rgba(201,36,110,0.16),transparent 70%)}
.auth-logo h1{background:#ffd3e6;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.auth-switch a{color:var(--gold)}
.notice-item{background:#141210;border:1px solid var(--hairline);box-shadow:none}
.stat-card{background:#121212}
.stat-card strong,.pf-statbar .pf-st strong,.user-card-stats strong{background:#ff4d94;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.download-hero{background:linear-gradient(135deg,rgba(255,158,198,0.14),rgba(201,36,110,0.12));border:1px solid var(--hairline);box-shadow:none}
.download-hero-bg{background:radial-gradient(circle at 88% 10%,rgba(255,158,198,0.28) 0,transparent 45%),radial-gradient(circle at 10% 90%,rgba(201,36,110,0.24) 0,transparent 48%)}
.download-hero-content h2{background:#ffd3e6;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.badge-soft{background:rgba(255,77,148,0.12);color:var(--gold);border:1px solid rgba(255,77,148,0.26)}
.ex-mini-card{background:#121212;border:1px solid rgba(255,255,255,0.07);box-shadow:none}
.ex-mini-card:hover{transform:translateY(-3px);border-color:var(--border-hover);box-shadow:0 14px 32px rgba(0,0,0,0.5)}
.ex-mini-card .em-avatar{background:var(--grad-accent);border-color:rgba(255,77,148,0.30)}
.ex-mini-card .em-reason{background:rgba(255,77,148,0.12);border:1px solid rgba(255,77,148,0.22);color:var(--gold)}
html.theme-light .notice-item{background:#ffffff}
html.theme-light .stat-card,html.theme-light .home-classic,html.theme-light .ex-mini-card{background:#fff;border-color:rgba(40,25,33,0.10)}
html.theme-light .auth-card{background:#fff;box-shadow:0 26px 60px rgba(90,20,50,0.16)}
html.theme-light .auth-logo h1{background:#c9246e;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
html.theme-light .stat-card strong,html.theme-light .pf-statbar .pf-st strong{background:#c9246e;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- 10. 其余硬编码蓝的收尾（地图 / 浮层 / 日历 / 浅色遗留） ---------- */
#radarMap{border:1px solid rgba(255,77,148,0.16)!important;box-shadow:0 10px 30px rgba(0,0,0,0.45)}
.radar-map-wrap{border:1px solid rgba(255,77,148,0.16);box-shadow:0 10px 30px rgba(0,0,0,0.45)}
.radar-map-status{background:rgba(10,10,10,0.94)}
.radar-status-box h3{color:var(--gold)}
.radar-retry-btn{background:var(--grad-button);color:var(--ink);box-shadow:0 6px 18px rgba(201,36,110,0.26)}
.cc-radar-me{background:var(--gold);box-shadow:0 0 0 2px rgba(255,158,198,0.45)}
.cc-radar-cluster{background:var(--grad-button);color:var(--ink);border-color:#fff}
.ghost-switch input:checked+.track{background:linear-gradient(135deg,rgba(255,77,148,0.30),rgba(201,36,110,0.22));border-color:var(--gold)}
.ghost-switch input:checked+.track::after{background:var(--gold)}
.ghost-hint{color:var(--amber);background:rgba(201,36,110,0.08);border:1px solid rgba(201,36,110,0.22)}
.toast{background:rgba(18,18,18,0.96);border:1px solid var(--hairline);box-shadow:var(--elev-3)}
.toast.info .toast-icon{color:var(--gold)}
html.theme-light .toast{background:rgba(255,255,255,0.97);border-color:rgba(201,36,110,0.22)}
html.theme-light .radar-map-status{background:rgba(255,255,255,0.94)}
.event-detail-inner{background:var(--bg-gradient);border:1px solid var(--hairline)}
.modal{background:#141414;border:1px solid rgba(255,255,255,0.08);box-shadow:var(--elev-3)}
.modal-header h2 .mh-icon,.icon-btn .svg-icon{color:inherit}
.modal-header .mh-icon{color:var(--gold)}
html.theme-light .modal{background:#fff;border-color:rgba(40,25,33,0.12)}
.today-cal-d{background:rgba(255,255,255,0.04)}
.today-cal-d:hover{background:rgba(255,77,148,0.14);color:var(--text)}
.today-cal-d.has{background:rgba(255,77,148,0.16);color:var(--text);border-color:rgba(255,77,148,0.30)}
.today-cal-d.has .n{color:var(--gold)}
.today-cal-d.hot{background:var(--grad-button);border-color:transparent}
.today-cal-d.sel{box-shadow:0 0 0 2px var(--gold),0 0 16px rgba(255,122,181,0.45)}
.today-date-title .today-tag{color:var(--amber)}
.ev-cal .ev-cal-cell{background:#121212;border-color:rgba(255,255,255,0.07)}
.ev-cal .ev-cal-cell:hover{border-color:var(--border-hover)}
.ev-cal .ev-cal-cell.today{background:rgba(255,77,148,0.10)}
.ev-cal .ev-cal-cell.sel{border-color:var(--gold);box-shadow:inset 0 0 0 1px rgba(255,158,198,0.45)}
.ev-cal .ev-cal-dots i{background:var(--amber)}
.ev-plan-card{background:#101010;border-color:rgba(255,255,255,0.08)}
.ev-plan-card .evp-days{background:rgba(255,77,148,0.14);color:var(--gold)}
.ev-intent-btn.on{background:rgba(255,77,148,0.16);color:var(--gold);border-color:var(--gold)}
.ev-view-seg{background:#121212;border-color:rgba(255,255,255,0.08)}
.artist-row{background:#121212;border-color:rgba(255,255,255,0.08)}
.menu-list,.conversations-list,#chatBox,.radar-controls,.wm-card,.set-section{background:#121212;border-color:rgba(255,255,255,0.07);box-shadow:none}
.menu-icon{background:rgba(255,77,148,0.12);color:var(--gold)}
.menu-icon.accent{background:rgba(201,36,110,0.12);color:var(--amber)}
.menu-icon.success{background:rgba(125,220,154,0.10);color:var(--success)}
.menu-icon.warning{background:rgba(255,169,77,0.10);color:var(--warning)}
.menu-icon.danger{background:rgba(255,93,93,0.10);color:var(--danger)}
.conv-item.active{background:rgba(255,77,148,0.08);border-left:3px solid var(--gold)}
.chat-body{background:var(--bg-gradient)}
.bubble{background:#1b1b1b;border-color:rgba(255,255,255,0.07)}
.chat-input{background:#121212;border-top-color:rgba(255,255,255,0.07)}
.chat-input input{background:#0d0d0d;border-color:rgba(255,255,255,0.08)}
.empty .svg-icon{filter:drop-shadow(0 6px 18px rgba(255,122,181,0.22))}
.ev-intent-btn.on-going{background:rgba(125,220,154,0.16);border-color:var(--success);color:var(--success)}
.contrib-card{background:rgba(255,77,148,0.06);border-color:rgba(255,77,148,0.14)}
.sp-code{background:#101010;border:1px dashed var(--border-hover)}
.sp-code-val{color:var(--gold)}
.sp-box-code{color:var(--gold)}
.so-mine{background:linear-gradient(135deg,rgba(255,158,198,0.10),rgba(201,36,110,0.06));border-color:var(--hairline)}
.so-tag{background:rgba(255,77,148,0.14);color:var(--gold);border-color:rgba(255,77,148,0.22)}
.suit-badge .svg-icon{color:var(--amber)}
.suit-score{background:#ff4d94;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.suit-plan-item{background:rgba(255,77,148,0.08);border-color:rgba(255,77,148,0.14)}
.back-btn{background:#121212;border-color:rgba(255,255,255,0.09);border-radius:20px}
.back-btn:hover{color:var(--gold);background:rgba(255,77,148,0.08)}
.artist-hero{background:linear-gradient(135deg,rgba(255,158,198,0.10),rgba(201,36,110,0.06));border:1px solid var(--hairline)}
.pager button{background:#121212;border-color:rgba(255,255,255,0.08)}
.pager button:hover:not(:disabled){color:var(--gold);border-color:var(--border-hover)}
.pager button.active{background:var(--grad-button);color:var(--ink);border-color:transparent}
html.theme-light .menu-list,html.theme-light .conversations-list,html.theme-light #chatBox,
html.theme-light .radar-controls,html.theme-light .wm-card,html.theme-light .set-section,
html.theme-light .ev-cal .ev-cal-cell,html.theme-light .ev-view-seg,html.theme-light .artist-row{background:#fff;border-color:rgba(40,25,33,0.10)}
html.theme-light .bubble{background:#fff;border-color:rgba(40,25,33,0.10)}
html.theme-light .bubble.mine{background:var(--grad-button);color:var(--ink)}
html.theme-light .today-cal-d{background:rgba(40,25,33,0.05)}
html.theme-light .today-cal-d.has{background:rgba(201,36,110,0.16)}
html.theme-light .chat-input,html.theme-light .chat-input input,html.theme-light .sp-code,html.theme-light .back-btn,html.theme-light .pager button,html.theme-light .ev-plan-card,html.theme-light .feed-header{background:#fff}

/* ---------- 11. 桌面（≥1024px）：三列画廊网格 + 更宽的居中含章 ---------- */
@media(min-width:1024px){
  .page-container{padding:34px 40px 120px}
  .container{max-width:1360px}
  #meHero{margin:0 -40px 26px;padding:30px 40px 42px}
  .cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
  .events-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
  .ex-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:25px}
  #radarRecommend{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:25px}
  #myFeed{gap:25px}
  .masonry{column-gap:25px}
  .masonry .card{margin-bottom:25px}
  .detail-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:25px}
  .messages-layout{height:calc(100vh - var(--nav-h) - 130px);gap:20px}
  #chatBox{box-shadow:none}
  .feed-header{padding:14px 18px}
  .set-stack{gap:20px}
}
@media(min-width:1500px){
  .container{max-width:1560px}
}
/* 窄屏回退：名片卡栅格在极窄屏改回居中排布，避免头像挤压文字 */
@media(max-width:430px){
  .user-card-body{grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:0 16px 16px}
  .user-card-avatar{width:72px;height:72px;font-size:0;border-width:3px}
  .user-card-name{font-size:16px}
  .user-card-banner{height:88px}
}

/* ---------- 动态删除入口（仅本人动态显示） ---------- */
.post-del{display:inline-flex;align-items:center;gap:5px;margin-left:auto;flex-shrink:0;padding:6px 11px;border:1px solid rgba(255,93,93,0.32);border-radius:999px;background:rgba(255,93,93,0.08);color:#ff8f8f;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s}
.post-del .svg-icon{width:14px;height:14px}
.post-del:hover{background:rgba(255,93,93,0.18);border-color:rgba(255,93,93,0.55);color:#ffb3b3}
html.theme-light .post-del{border-color:rgba(198,40,40,0.28);background:rgba(198,40,40,0.06);color:#c62828}
html.theme-light .post-del:hover{background:rgba(198,40,40,0.13)}
@media(max-width:767px){.post-del span{display:none}.post-del{padding:6px 8px}}

/* ---------- 图片灯箱：详情说明条 ---------- */
#imgViewer .iv-cap{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:min(680px,92vw);padding:14px 18px;border-radius:16px;background:rgba(18,18,18,0.86);border:1px solid var(--hairline);color:var(--text);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 44px rgba(0,0,0,0.55)}
#imgViewer .iv-cap-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
#imgViewer .iv-cap-name{font-size:14px;font-weight:800;color:var(--primary-light)}
#imgViewer .iv-cap-time{font-size:12px;color:var(--text3)}
#imgViewer .iv-cap-text{font-size:13.5px;line-height:1.65;color:var(--text2);max-height:5.2em;overflow:hidden}
#imgViewer .iv-cap-meta{margin-top:8px;font-size:12px;color:var(--text3)}
html.theme-light #imgViewer .iv-cap{background:rgba(255,255,255,0.92);border-color:rgba(201,36,110,0.18)}
