
/* ============ 设计令牌 ============ */
:root{
  --bg-0:#fff6fa; --bg-1:#fff0f6; --bg-2:#fdeeff;
  --ink:#6b4a63; --ink-dim:#9c7f97; --ink-faint:#c2a9be;
  --pink:#ff8fbe; --pink-soft:#ffc2da;
  --lav:#b39dfb; --lav-soft:#d9ccff;
  --cyan:#8fd8ff; --cyan-soft:#bfe9ff;
  --gold:#ffc67a; --gold-deep:#f5a95c;
  --card:rgba(255,255,255,.74); --card-solid:#ffffff;
  --line:rgba(255,150,195,.26);
  --radius:22px;
  --glow-pink:0 8px 34px rgba(255,143,190,.32);
  --glow-lav:0 8px 34px rgba(179,157,251,.32);
  --shadow-soft:0 12px 36px rgba(255,143,190,.16);
  --font-display:'ZCOOL KuaiLe','Noto Sans SC',system-ui,sans-serif;
  --font-body:'Noto Sans SC',system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --hero-bg:url('hero-bg.webp');
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);color:var(--ink);
  background:linear-gradient(160deg,#fff9fb 0%,#fdeef6 42%,#f4ecff 100%);
  overflow-x:hidden;min-height:100vh;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

::selection{background:rgba(255,111,165,.45);color:#fff}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
img{display:block;max-width:100%}

/* ============ 固定背景 ============ */
#starfield{position:fixed;inset:0;z-index:0;pointer-events:none}
.bg-aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;mix-blend-mode:normal;animation:drift 26s ease-in-out infinite alternate}
.aurora-blob.b1{width:56vw;height:56vw;left:-12vw;top:-14vw;background:radial-gradient(circle,#ffd3e8 0%,transparent 65%)}
.aurora-blob.b2{width:48vw;height:48vw;right:-10vw;top:18vh;background:radial-gradient(circle,#e6daff 0%,transparent 65%);animation-delay:-8s}
.aurora-blob.b3{width:42vw;height:42vw;left:24vw;bottom:-16vw;background:radial-gradient(circle,#d6f0ff 0%,transparent 65%);animation-delay:-16s}
@keyframes drift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(4vw,-3vh) scale(1.12)}}
.bg-vignette{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(255,214,233,.38) 100%)}


/* ============ 加载动画 ============ */
#loader{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(80% 70% at 50% 40%,#fff8fb 0%,#fdeef6 70%);transition:opacity .7s ease,visibility .7s}
#loader.done{opacity:0;visibility:hidden}
.loader-star{position:relative;width:120px;height:120px;display:grid;place-items:center;margin-bottom:26px}
.loader-star svg{width:84px;height:84px;animation:spin 6s linear infinite;filter:drop-shadow(0 0 18px rgba(255,143,190,.55))}
.loader-ring{position:absolute;inset:0;border:2px dashed rgba(179,157,251,.6);border-radius:50%;animation:spin 10s linear infinite}
.loader-ring.r2{inset:10px;border-style:solid;border-color:transparent;border-top-color:rgba(143,216,255,.85);animation-duration:4s}
@keyframes spin{to{transform:rotate(360deg)}}
#loader .t{font-family:var(--font-display);font-size:34px;letter-spacing:3px;background:linear-gradient(100deg,#ff9ec9,#b39dfb 55%,#8fd8ff);-webkit-background-clip:text;background-clip:text;color:transparent;animation:blink 1.6s ease-in-out infinite}
#loader .s{color:var(--ink-faint);font-size:14px;margin-top:12px;letter-spacing:4px}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.55}}


/* ============ 顶栏导航 ============ */
#nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:transform .35s ease,background .3s;backdrop-filter:blur(18px);background:rgba(255,255,255,.74);border-bottom:1px solid rgba(255,150,195,.16)}
#nav .nav-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:12px 22px}
.nav-logo{display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0}
.nav-logo img{width:38px;height:38px;border-radius:50%;border:2px solid rgba(255,255,255,.95);box-shadow:0 0 14px rgba(255,143,190,.5)}
.nav-logo b{font-family:var(--font-display);font-size:19px;letter-spacing:.5px;background:linear-gradient(100deg,#ff9ec9,#b39dfb);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.nav-links{display:flex;gap:2px;margin:0 auto}
.nav-links a{position:relative;padding:9px 15px;font-size:15px;color:var(--ink-dim);border-radius:999px;transition:.25s;white-space:nowrap}
.nav-links a:hover{color:var(--pink);background:rgba(255,143,190,.12)}
.nav-links a.active{color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb);box-shadow:0 6px 18px rgba(255,143,190,.35)}
.nav-links a.active::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:2px;width:14px;height:3px;border-radius:3px;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.85)}
/* 「更多」下拉 */
.more-wrap{position:relative;flex-shrink:0}
.more-btn{position:relative;padding:9px 15px;font-size:15px;font-family:inherit;color:var(--ink-dim);background:none;border:none;border-radius:999px;cursor:pointer;transition:.25s;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}
.more-btn:hover{color:var(--pink);background:rgba(255,143,190,.12)}
.more-btn.active{color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb);box-shadow:0 6px 18px rgba(255,143,190,.35)}
.more-caret{font-size:11px;opacity:.75}
.more-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:150px;padding:8px;border-radius:16px;background:rgba(255,255,255,.96);border:1px solid rgba(255,150,195,.22);box-shadow:0 14px 40px rgba(180,110,170,.16);display:none;flex-direction:column;gap:2px;z-index:60;backdrop-filter:blur(10px)}
.more-menu.open{display:flex;animation:moreIn .18s ease}
@keyframes moreIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.more-menu a{padding:10px 14px;border-radius:12px;color:var(--ink-dim);font-size:15px;white-space:nowrap;transition:.2s}
.more-menu a:hover{color:var(--pink);background:rgba(255,143,190,.12)}
.more-menu a.active{color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb)}
html[data-theme="dark"] .more-menu{background:rgba(28,25,62,.97);border-color:rgba(179,157,251,.28)}
.live-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;font-size:13px;color:var(--ink-dim);border:1px solid rgba(255,150,195,.22);background:rgba(255,255,255,.78);white-space:nowrap}
.live-pill .pdot{width:8px;height:8px;border-radius:50%;background:#d9c6de}
.live-pill.on .pdot{background:#ff5d8f;box-shadow:0 0 10px #ff5d8f;animation:pulse 1.4s ease-in-out infinite}
.live-pill.on{color:#ff7ba6;border-color:rgba(255,93,143,.4)}
#navHidden{display:none;padding:8px 22px 14px;flex-direction:column;gap:4px;border-top:1px solid rgba(255,150,195,.14)}
#navHidden a{padding:11px 14px;border-radius:14px;color:var(--ink-dim);font-size:16px}
#navHidden a.active{color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);font-size:20px;width:44px;height:44px;border-radius:14px;cursor:pointer}

#navHidden{display:none;padding:8px 22px 14px;flex-direction:column;gap:4px;border-top:1px solid rgba(167,139,250,.12)}
#navHidden a{padding:11px 14px;border-radius:12px;color:var(--ink-dim);font-size:16px}
#navHidden a.active{color:var(--ink);background:rgba(167,139,250,.16)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);font-size:20px;width:44px;height:44px;border-radius:12px;cursor:pointer}

/* ============ 通用 ============ */
main{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:96px 22px 80px}
.view{display:none}
.view.active{display:block;opacity:1;animation:viewIn .5s cubic-bezier(.22,.9,.3,1)}
@keyframes viewIn{from{transform:translateY(18px)}to{transform:none}}
.section-title{display:flex;align-items:center;gap:14px;margin:52px 0 22px}
.section-title .num{font-family:var(--font-display);font-size:26px;background:linear-gradient(140deg,#ff6fa5,#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9}
.section-title h2{font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:1px}
.section-title .line{flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.card{background:var(--card);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease,border-color .3s}
.card{background:var(--card);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease,border-color .3s}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;cursor:pointer;font-size:16px;font-weight:700;color:#fff;border-radius:16px;padding:13px 26px;overflow:hidden;transition:transform .2s ease,box-shadow .25s ease;white-space:nowrap}
.btn::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .55s ease}
.btn:hover::after{left:130%}
.btn:hover{transform:translateY(-2px)}
.btn-pink{background:linear-gradient(135deg,#ff9ec9,#f269ad);box-shadow:var(--glow-pink)}
.btn-lav{background:linear-gradient(135deg,#b39dfb,#8f7bf0);box-shadow:var(--glow-lav)}
.btn-ghost{background:rgba(255,143,190,.12);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--pink),0 4px 18px rgba(255,143,190,.28)}
.btn-sm{padding:9px 18px;font-size:14px;border-radius:14px}
.btn-sm2{padding:7px 12px;font-size:12px;border-radius:10px}


/* 渐变描边卡片 */
.gcard{position:relative;background:linear-gradient(150deg,rgba(255,255,255,.94),rgba(255,240,248,.96));border-radius:var(--radius);padding:1.5px;box-shadow:0 14px 44px rgba(255,143,190,.2)}
.gcard::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:linear-gradient(140deg,rgba(255,143,190,.55),rgba(179,157,251,.4) 40%,rgba(143,216,255,.5));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.gcard .gcard-in{padding:22px}


.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-dim);background:rgba(167,139,250,.12);border:1px solid rgba(167,139,250,.22);padding:5px 13px;border-radius:999px;white-space:nowrap}

/* 滚动显现 */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.9,.3,1)}
.rv.in{opacity:1;transform:none}

/* 数字芯片 */
.stat-chip{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:88px;padding:12px 14px;border-radius:18px;background:rgba(255,143,190,.1);border:1px solid rgba(255,150,195,.2)}
.stat-chip b{font-size:21px;font-weight:900;background:linear-gradient(100deg,#ffc67a,#ff9ec9);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.stat-chip span{font-size:12px;color:var(--ink-faint)}


/* Toast */
#toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(20px);z-index:300;background:rgba(255,255,255,.96);border:1px solid rgba(255,150,195,.3);color:var(--ink);padding:12px 24px;border-radius:16px;font-size:15px;opacity:0;pointer-events:none;transition:.35s;backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(255,143,190,.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 模态 */
#toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(20px);z-index:300;background:rgba(255,255,255,.96);border:1px solid rgba(255,150,195,.3);color:var(--ink);padding:12px 24px;border-radius:16px;font-size:15px;opacity:0;pointer-events:none;transition:.35s;backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(255,143,190,.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;padding:26px;background:rgba(255,214,233,.42);backdrop-filter:blur(12px)}
.modal.open{display:flex;opacity:1;animation:fadeIn .3s ease}
.modal-box{position:relative;max-width:min(1080px,94vw);max-height:92vh;border-radius:22px;overflow:auto;background:#fffdfe;border:1px solid rgba(255,150,195,.24);box-shadow:0 20px 80px rgba(255,143,190,.32)}
.modal-close{position:absolute;top:12px;right:12px;z-index:5;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,150,195,.3);background:rgba(255,255,255,.94);color:var(--ink);font-size:18px;cursor:pointer}
@keyframes fadeIn{from{transform:translateY(10px)}to{transform:none}}


/* ============ 首页 Hero ============ */
.hero{position:relative;text-align:center;padding:34px 0 8px}
.hero-bg{position:absolute;inset:0;z-index:-1;border-radius:0 0 40px 40px;overflow:hidden;background-image:var(--hero-bg);background-position:center 30%;background-size:cover;background-repeat:no-repeat;mask-image:linear-gradient(#000 55%,transparent 96%);-webkit-mask-image:linear-gradient(#000 55%,transparent 96%);opacity:.9}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.3) 50%,rgba(255,249,252,.92) 100%)}
.kumo-avatar{position:relative;width:176px;height:176px;margin:0 auto 20px;animation:avatarFloat 5s ease-in-out infinite}
@keyframes avatarFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.kumo-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;position:relative;z-index:2;border:3px solid rgba(255,255,255,.92);box-shadow:0 0 40px rgba(255,143,190,.45),0 0 90px rgba(179,157,251,.3)}
.kumo-avatar .ring{position:absolute;inset:-12px;border-radius:50%;background:conic-gradient(from 0deg,#ff9ec9,#b39dfb,#8fd8ff,#ffc67a,#ff9ec9);filter:blur(6px);opacity:.9;animation:spin 8s linear infinite;z-index:1}
.kumo-avatar .ring::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--bg-0)}
.orbit{position:absolute;inset:-34px;animation:spin 22s linear infinite;z-index:3;pointer-events:none}
.orbit i{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 12px #ffc67a}
.orbit i:nth-child(1){top:0;left:50%}
.orbit i:nth-child(2){top:50%;right:0;background:#ff9ec9;box-shadow:0 0 12px #ff9ec9}
.orbit i:nth-child(3){bottom:4%;left:46%;background:#bfe9ff;box-shadow:0 0 12px #bfe9ff}
.hero h1{font-family:var(--font-display);font-size:clamp(40px,7vw,72px);font-weight:400;letter-spacing:2px;line-height:1.15;text-shadow:0 4px 26px rgba(255,255,255,.7)}
.hero h1 .grad{background:linear-gradient(100deg,#ff9ec9 5%,#b39dfb 45%,#8fd8ff 80%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 18px rgba(255,255,255,.65))}
.hero .douyin-chip{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:7px 18px;border-radius:999px;background:rgba(255,255,255,.85);border:1px solid rgba(255,150,195,.28);font-size:14px;color:var(--ink-dim);backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(255,143,190,.16)}
.hero .douyin-chip b{color:var(--pink);font-weight:700}
.badge-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.hero .bio{max-width:560px;margin:18px auto 0;color:var(--ink-dim);font-size:15px;line-height:2}
.cta-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:26px}
.stat-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}
.scroll-hint{color:var(--ink-faint);font-size:12px;margin-top:34px;letter-spacing:3px;animation:floaty 2s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}


/* ============ 首页功能卡片 ============ */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feature-card{position:relative;padding:24px 22px;cursor:pointer;overflow:hidden}
.feature-card .f-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:14px;font-size:24px;color:#fff;box-shadow:0 6px 20px rgba(255,143,190,.28)}
.feature-card h3{font-family:var(--font-display);font-size:20px;font-weight:400;margin-bottom:6px}
.feature-card p{font-size:13px;color:var(--ink-faint);line-height:1.7}
.feature-card .f-go{position:absolute;right:20px;top:24px;color:var(--ink-faint);font-size:20px;transition:.3s;opacity:.6}
.feature-card:hover{transform:translateY(-5px)}
.feature-card:hover .f-go{opacity:1;color:var(--pink);transform:translateX(4px)}
.feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--fc,#ff6fa5),transparent);opacity:0;transition:.3s}
.feature-card:hover::before{opacity:1}

/* ============ 查询区 ============ */
.lookup{display:flex;gap:12px;flex-wrap:wrap}
.lookup input{flex:1;min-width:240px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);font-size:16px;padding:13px 18px;border-radius:14px;outline:none;transition:.25s}
.lookup input:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,111,165,.18)}
.result-empty{text-align:center;color:var(--ink-faint);padding:34px 10px;font-size:15px}
.profile-card{display:grid;grid-template-columns:190px 1fr;gap:22px;padding:24px}
.profile-avatar{width:170px;height:170px;border-radius:18px;object-fit:cover;border:2px solid var(--line);box-shadow:0 0 30px rgba(167,139,250,.35)}
.profile-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.profile-top h3{font-family:var(--font-display);font-size:26px;font-weight:400}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px;color:#fff}
.badge.member{background:linear-gradient(135deg,#f5a95c,#ff6fa5);box-shadow:0 2px 12px rgba(255,111,165,.45)}
.badge.star{background:linear-gradient(135deg,#6fd3ff,#a78bfa);box-shadow:0 2px 12px rgba(111,211,255,.45)}
.badge.fans{background:rgba(167,139,250,.28);color:var(--lav-soft)}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-top:16px}
.p-stat{background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.18);border-radius:14px;padding:11px 12px;text-align:center}
.p-stat b{display:block;font-size:19px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.p-stat span{font-size:12px;color:var(--ink-faint)}
.profile-recent{margin-top:16px}
.profile-recent h4{font-size:13px;color:var(--ink-faint);margin-bottom:10px;letter-spacing:1px}
.recent-item{display:flex;gap:10px;align-items:baseline;font-size:13px;color:var(--ink-dim);padding:7px 0;border-bottom:1px dashed rgba(167,139,250,.14)}
.recent-item .rt{color:var(--ink-faint);font-size:11px;white-space:nowrap}
.recent-item .gift-tag{color:var(--pink);font-weight:700}

/* ============ 直播间页 ============ */
.live-banner{position:relative;overflow:hidden;border-radius:var(--radius);padding:30px;background:linear-gradient(135deg,rgba(255,111,165,.16),rgba(167,139,250,.14) 55%,rgba(111,211,255,.12));border:1px solid var(--line)}
.live-banner .big-dot{width:12px;height:12px;border-radius:50%;background:#ff4d6d;box-shadow:0 0 14px #ff4d6d;animation:pulse 1.4s infinite;display:inline-block;margin-right:8px}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:18px}
.dash{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:18px;padding:18px 16px;text-align:center;transition:.3s}
.dash:hover{transform:translateY(-3px);border-color:rgba(255,111,165,.5)}
.dash b{display:block;font-size:28px;font-weight:900;margin:6px 0 2px;font-variant-numeric:tabular-nums}
.dash span{font-size:12px;color:var(--ink-faint)}
.rank-list{list-style:none;margin-top:8px}
.rank-list li{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px dashed rgba(167,139,250,.12);font-size:14px}
.rank-list .r-no{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-weight:900;font-size:13px;background:rgba(167,139,250,.16);color:var(--lav-soft);flex-shrink:0}
.rank-list .r-no.top{background:linear-gradient(135deg,#f5a95c,#ff6fa5);color:#fff;box-shadow:0 0 10px rgba(255,111,165,.5)}
.rank-list img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.rank-list .r-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-dim)}
.rank-list .r-score{font-weight:700;color:var(--gold);font-size:13px}

/* ============ 画廊 ============ */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.filter-btn{padding:9px 18px;border-radius:999px;border:1px solid rgba(167,139,250,.25);background:rgba(167,139,250,.07);color:var(--ink-dim);font-size:13px;cursor:pointer;transition:all .3s;font-family:inherit}
.filter-btn:hover{border-color:rgba(255,111,165,.5);color:var(--ink);transform:translateY(-1px)}
.filter-btn.active{background:linear-gradient(135deg,var(--pink),var(--lav));color:#fff;border-color:transparent;box-shadow:0 6px 18px rgba(255,111,165,.35)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.g-item{position:relative;border-radius:20px;overflow:hidden;background:rgba(255,143,190,.06);border:1px solid rgba(255,150,195,.16);aspect-ratio:3/4;cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.3,1.2),box-shadow .35s}
.g-item:hover{transform:translateY(-6px) rotate(.6deg);box-shadow:0 14px 34px rgba(255,143,190,.26),0 0 0 1px rgba(255,143,190,.3)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.g-item:hover img{transform:scale(1.06)}
.g-item .g-tag{position:absolute;top:10px;left:10px;z-index:2;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(6px);color:var(--pink);font-size:11px;border:1px solid rgba(255,143,190,.3);box-shadow:0 4px 12px rgba(255,143,190,.2)}
.g-item .g-mask{position:absolute;inset:auto 0 0 0;padding:26px 14px 12px;background:linear-gradient(180deg,transparent,rgba(255,247,251,.94));z-index:1}
.g-item .g-mask b{color:var(--ink);font-size:15px;font-weight:600}
.g-item .g-mask span{display:block;color:var(--ink-dim);font-size:11px;margin-top:2px}
.g-item .g-ph{min-height:220px;display:grid;place-items:center;color:var(--ink-faint);font-size:14px;background:rgba(255,143,190,.08);border-radius:14px;margin:10px}

/* ============ 漫画 ============ */
.cloud-deco{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.cd{position:absolute;background:radial-gradient(circle at 35% 35%,#ffffff 0%,#ffeef6 55%,rgba(255,224,240,.35) 100%);border-radius:50%;filter:blur(2px)}
.cd::before,.cd::after{content:'';position:absolute;background:inherit;border-radius:50%}
.cd.c1{width:240px;height:88px;left:-40px;top:13%;animation:cloudDrift 36s linear infinite}
.c1::before{width:118px;height:118px;top:-58px;left:22px}
.c1::after{width:88px;height:88px;top:-40px;right:24px}
.cd.c2{width:200px;height:74px;right:-30px;top:44%;animation:cloudDrift 46s linear infinite reverse;opacity:.65}
.c2::before{width:98px;height:98px;top:-48px;left:18px}
.c2::after{width:74px;height:74px;top:-34px;right:20px}
.cd.c3{width:170px;height:64px;left:5%;bottom:17%;animation:cloudDrift 42s linear infinite;opacity:.6}
.c3::before{width:84px;height:84px;top:-40px;left:16px}
.c3::after{width:62px;height:62px;top:-28px;right:16px}
.cd.c4{width:150px;height:56px;right:12%;bottom:8%;animation:cloudDrift 52s linear infinite reverse;opacity:.5}
.c4::before{width:74px;height:74px;top:-36px;left:14px}
.c4::after{width:54px;height:54px;top:-26px;right:14px}
@keyframes cloudDrift{0%{transform:translateX(0)}100%{transform:translateX(120px)}}
.comic-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.comic-card .cc{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1/1;cursor:pointer}
.comic-card .cc img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.comic-card:hover .cc img{transform:scale(1.05)}
.comic-card .cc .play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.3);opacity:0;transition:.3s}
.comic-card:hover .cc .play{opacity:1}
.comic-card .cc .play i{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#ff9ec9,#b39dfb);display:grid;place-items:center;color:#fff;font-size:20px;box-shadow:0 0 24px rgba(255,143,190,.55)}

.comic-card h3{font-family:var(--font-display);font-weight:400;font-size:18px;margin-top:12px}
.comic-card p{font-size:12px;color:var(--ink-faint);margin-top:4px}

/* ============ 顶部滚动进度条 ============ */
#scrollbar{position:fixed;top:0;left:0;height:3px;z-index:130;width:0;background:linear-gradient(90deg,#ff6fa5,#a78bfa,#6fd3ff);box-shadow:0 0 12px rgba(255,111,165,.8);pointer-events:none}

/* ============ 漂浮层 & 点击特效 ============ */
#fxLayer{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.fx-spark{position:absolute;bottom:-5vh;width:10px;height:10px;opacity:0;animation:fxRise linear infinite}
.fx-spark::before{content:'✦'}
.fx-spark.s2{color:var(--pink-soft)}
.fx-spark.s3{color:var(--cyan-soft)}
@keyframes fxRise{0%{transform:translateY(0) rotate(0) scale(.5);opacity:0}12%{opacity:.9}100%{transform:translateY(-110vh) rotate(340deg) scale(1.2);opacity:0}}
.cursor-spark{position:fixed;z-index:230;pointer-events:none;font-size:13px;color:var(--gold);animation:curPop .85s ease-out forwards}
.cursor-spark.s2{color:var(--pink-soft)}
@keyframes curPop{0%{transform:translate(-50%,-50%) scale(.3) rotate(0);opacity:1}100%{transform:translate(-50%,-170%) scale(1.35) rotate(130deg);opacity:0}}
.click-burst{position:fixed;z-index:230;pointer-events:none;animation:burst .72s ease-out forwards}
@keyframes burst{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}100%{transform:translate(calc(-50% + var(--bx,0px)),calc(-50% + var(--by,-60px))) scale(1.1);opacity:0}}

/* ============ 交互特效 ============ */
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:rippleFx .6s ease-out forwards;pointer-events:none}
@keyframes rippleFx{to{transform:scale(3.2);opacity:0}}
.shooting-star{position:fixed;top:0;left:0;width:140px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95) 60%,rgba(255,217,138,.95));filter:drop-shadow(0 0 8px rgba(255,217,138,.9));z-index:60;pointer-events:none;opacity:0;animation:shootFx 1.1s ease-in forwards}
.shooting-star::after{content:"";position:absolute;right:-1px;top:-3.5px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 14px 4px rgba(255,217,138,.85)}
@keyframes shootFx{0%{transform:translate(0,0) rotate(-16deg);opacity:0}8%{opacity:1}100%{transform:translate(80vw,30vh) rotate(-16deg);opacity:0}}
/* ============ 跑马灯 ============ */
@keyframes tickMove{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ============ 文字闪光 & 徽章流光 ============ */
.hero h1 .grad{background-size:220% auto;animation:shine 6s linear infinite}
@keyframes shine{0%{background-position:0% center}100%{background-position:220% center}}
.badge{position:relative;overflow:hidden}
.badge::after{content:'';position:absolute;top:0;left:-70%;width:40%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:badgeSweep 3.2s ease-in-out infinite}
@keyframes badgeSweep{0%,55%{left:-70%}100%{left:130%}}
.btn-pink{animation:btnGlow 2.6s ease-in-out infinite}
@keyframes btnGlow{0%,100%{box-shadow:var(--glow-pink)}50%{box-shadow:0 8px 44px rgba(255,111,165,.62)}}

/* ============ 数字弹跳 ============ */
.dash b.pop,.stat-chip b.pop{animation:numPop .55s cubic-bezier(.34,1.56,.64,1)}
@keyframes numPop{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:scale(1)}}

/* ============ 卡片立体交互 ============ */
.feature-card,.gift-card2{will-change:transform}
.feature-card:hover,.gift-card2:hover{box-shadow:0 18px 46px rgba(255,143,190,.28),0 0 0 1px rgba(255,111,165,.4),0 0 36px rgba(255,111,165,.24)}

/* ============ 礼物页 ============ */
.redeem-query{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.redeem-query input{flex:1;min-width:240px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);font-size:16px;padding:13px 18px;border-radius:14px;outline:none;transition:.25s}
.redeem-query input:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,111,165,.18)}
.redeem-bal{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.redeem-bal .bal-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:14px;background:rgba(167,139,250,.1);border:1px solid var(--line);font-size:14px}
.redeem-bal .bal-chip b{font-size:19px;font-weight:900;background:linear-gradient(100deg,#ffd98a,#ff9ec2);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.redeem-bal .bal-chip i{font-style:normal;color:var(--ink-faint);font-size:12px}
.redeem-bal .bal-chip svg{flex-shrink:0}
.redeem-note{color:var(--ink-faint);font-size:12px;margin-top:10px;line-height:1.8}
.gift-sec-title{display:flex;align-items:center;gap:12px;margin:40px 0 16px}
.gift-sec-title .gs-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;box-shadow:0 4px 16px rgba(255,143,190,.3);flex-shrink:0}
.gift-sec-title h3{font-family:var(--font-display);font-size:23px;font-weight:400;letter-spacing:1px}
.gift-sec-title span{font-size:12px;color:var(--ink-faint)}
.gift-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:16px}
.gift-card2{padding:16px;display:flex;flex-direction:column;gap:10px;text-align:center;transition:transform .3s ease,box-shadow .3s ease,border-color .3s,opacity .3s}
.gift-card2::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gc,#ff6fa5),transparent);opacity:0;transition:.3s}
.gift-card2:hover::before{opacity:1}
.gift-card2 .g-img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;border:1px solid rgba(167,139,250,.24);background:rgba(167,139,250,.08)}
.gift-card2 .g-ico{width:100%;aspect-ratio:1/1;border-radius:14px;display:grid;place-items:center;font-size:54px;color:#fff;background:linear-gradient(135deg,rgba(255,111,165,.88),rgba(167,139,250,.88));box-shadow:0 8px 26px rgba(255,143,190,.3)}
.gift-card2 h3{font-family:var(--font-display);font-weight:400;font-size:19px;letter-spacing:.5px}
.gift-card2 .g-cond{font-size:11px;color:var(--gold);background:rgba(255,217,138,.12);border:1px solid rgba(255,217,138,.32);padding:3px 11px;border-radius:999px;display:inline-block;margin:0 auto}
.gift-card2 .g-redeem{width:100%;padding:10px 0;border:0;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:.25s}
.gift-card2 .g-redeem.ok{background:linear-gradient(135deg,#ff6fa5,#e0559a);color:#fff;box-shadow:var(--glow-pink)}
.gift-card2 .g-redeem.ok:hover{transform:translateY(-2px)}
.gift-card2 .g-redeem.ok:active{transform:scale(.96)}
.gift-card2 .g-redeem.wait{background:rgba(167,139,250,.12);color:var(--ink-dim);border:1px dashed var(--line);cursor:pointer}
.gift-card2 .g-redeem.wait:hover{color:var(--ink);border-color:var(--pink)}
.gift-card2 .g-redeem.off{background:rgba(167,139,250,.06);color:var(--ink-faint);border:1px solid var(--line);cursor:not-allowed}
.gift-card2.done{opacity:.7}
.gift-card2.done .g-redeem{background:rgba(111,211,255,.14);color:var(--cyan-soft);border:1px solid rgba(111,211,255,.32);cursor:default}
.gift-empty{padding:42px 10px;text-align:center;color:var(--ink-faint);font-size:14px}

/* ============ 管理：礼物 ============ */
.adm-gift-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;padding:14px;border:1px dashed var(--line);border-radius:14px;background:rgba(167,139,250,.05)}
.adm-gift-form input,.adm-gift-form select,.months-box input{background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:9px 12px;font-size:13px;outline:none;font-family:inherit}
.adm-gift-row{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.7);margin-bottom:10px;flex-wrap:wrap}
.adm-gift-row .g-thumb{width:52px;height:52px;border-radius:10px;object-fit:cover;background:rgba(167,139,250,.12);border:1px solid rgba(167,139,250,.2);flex-shrink:0}
.adm-gift-row .g-thumb.ph{display:grid;place-items:center;font-size:22px;color:var(--ink-faint)}
.adm-gift-row .g-info{flex:1;min-width:170px}
.adm-gift-row .g-info b{font-size:14px}
.adm-gift-row .g-info span{display:block;font-size:11px;color:var(--ink-faint);margin-top:2px}
.adm-gift-row input.adm-in,.adm-gift-row select{background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:7px 10px;font-size:12px;outline:none;font-family:inherit}
.adm-gift-row .btn{padding:7px 14px;font-size:12px;border-radius:9px}
.months-box{padding:14px;border:1px dashed var(--line);border-radius:14px;background:rgba(111,211,255,.05);margin-bottom:14px}
.months-box .mb-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.months-box label{font-size:12px;color:var(--ink-faint);display:flex;align-items:center;gap:6px}
.redeem-list{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.redeem-item{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-dim);padding:9px 12px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:10px}
.redeem-item b{color:var(--ink)}

/* ============ 留言板 ============ */
.gb-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;align-items:start}
.gb-form .field{margin-bottom:14px}
.gb-form label{display:block;font-size:13px;color:var(--ink-dim);margin-bottom:6px}
.gb-form input,.gb-form textarea{width:100%;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:16px;outline:none;transition:.25s;font-family:inherit;resize:vertical}
.gb-form textarea{min-height:120px}
.gb-form input:focus,.gb-form textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,111,165,.16)}
.gb-list{display:flex;flex-direction:column;gap:12px;max-height:560px;overflow:auto;padding-right:4px}
.gb-item{padding:16px 18px}
.gb-item .gb-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.gb-item .gb-nick{font-weight:700;font-size:15px;color:var(--ink)}
.gb-item .gb-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#ff6fa5,#a78bfa);display:grid;place-items:center;color:#fff;font-weight:900;font-size:14px;flex-shrink:0}
.gb-item .gb-time{margin-left:auto;font-size:11px;color:var(--ink-faint)}
.gb-item p{font-size:14px;color:var(--ink-dim);line-height:1.8;word-break:break-word}
.gb-del{margin-left:8px;background:none;border:0;color:var(--ink-faint);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px}
.gb-del:hover{color:#ff6fa5;background:rgba(255,111,165,.12)}

/* ============ 管理后台 ============ */
.adm-tabs{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.adm-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.adm-group-title{flex:none;font-size:12px;color:var(--ink-dim);font-weight:600;letter-spacing:2px;padding:2px 10px 2px 0;border-right:2px solid rgba(255,111,165,.35);margin-right:4px}
.adm-tab{padding:9px 22px;border-radius:12px;border:1px solid var(--line);background:rgba(167,139,250,.08);color:var(--ink-dim);font-size:14px;cursor:pointer;transition:.25s}
.adm-tab.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#ff6fa5,#a78bfa);box-shadow:0 4px 16px rgba(255,111,165,.3)}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:8px}
.asset-card{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}
.asset-card .a-prev{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.18)}
.asset-card .a-info b{font-size:14px;color:var(--ink)}
.asset-card .a-info span{display:block;font-size:11px;color:var(--ink-faint);margin-top:2px;word-break:break-all}
.asset-card .btn{padding:8px 0;font-size:13px;width:100%}
.adm-hint{font-size:12px;color:var(--ink-faint);line-height:1.8;margin-bottom:4px}
#admMsgList{max-height:420px}

.adm-cat-row,.adm-gitem-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 10px;border:1px solid rgba(167,139,250,.14);border-radius:12px;margin-bottom:8px;background:rgba(167,139,250,.05)}
.adm-gadd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:10px;border:1px dashed rgba(167,139,250,.25);border-radius:12px}
.adm-gitem-row .g-thumb{width:52px;height:52px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.adm-gitem-row .g-thumb.ph{display:grid;place-items:center;background:rgba(167,139,250,.08);color:var(--ink-faint)}
.adm-in{background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:13px;outline:none}
.adm-cats select,.adm-gadd select,.adm-gitem-row select{background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:13px;outline:none}
.g-ph{min-height:220px;display:grid;place-items:center;color:var(--ink-faint);font-size:14px;background:rgba(167,139,250,.08);border-radius:14px;margin:10px}
/* ============ 页脚 ============ */
footer{position:relative;z-index:2;text-align:center;padding:40px 22px 50px;color:var(--ink-faint);font-size:13px;line-height:2.2}
footer .f-logo{font-family:var(--font-display);font-size:17px;color:var(--ink-dim);letter-spacing:1px}
footer .admin-hit{cursor:default}

/* ============ 响应式 ============ */
@media (max-width:960px){
  .nav-links{display:none}
  .burger{display:block}
  #navHidden.open{display:flex}
  .live-pill{display:none}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .gb-layout{grid-template-columns:1fr}
  .profile-card{grid-template-columns:1fr;text-align:center}
  .profile-avatar{margin:0 auto}
  .profile-top{justify-content:center}
}
@media (max-width:620px){
  .feature-grid{grid-template-columns:1fr}
  .hero h1{font-size:40px}
  main{padding-top:86px}
  .stat-row{gap:8px}
  .stat-chip{min-width:74px;padding:10px 8px}
  .stat-chip b{font-size:17px}
  .section-title h2{font-size:23px}
  .gallery-grid{columns:2 140px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
}
/* ============ 夜间模式（深色夜空） ============ */
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="dark"]{
  --bg-0:#0b1024; --bg-1:#121a3a; --bg-2:#1a1440;
  --ink:#e8e0ff; --ink-dim:#b3a8d9; --ink-faint:#8074b0;
  --card:rgba(26,24,58,.72); --card-solid:#1e1c42;
  --line:rgba(179,157,251,.26);
  --shadow-soft:0 12px 36px rgba(10,6,40,.5);
  --glow-pink:0 8px 34px rgba(255,143,190,.22);
  --glow-lav:0 8px 34px rgba(179,157,251,.22);
}
html[data-theme="dark"] body{background:linear-gradient(160deg,#0b1024 0%,#131b40 45%,#1d1440 100%)}
html[data-theme="dark"] .aurora-blob.b1{background:radial-gradient(circle,#3a2a6a 0%,transparent 65%);opacity:.75}
html[data-theme="dark"] .aurora-blob.b2{background:radial-gradient(circle,#2a3a6a 0%,transparent 65%);opacity:.75}
html[data-theme="dark"] .aurora-blob.b3{background:radial-gradient(circle,#3a2a5a 0%,transparent 65%);opacity:.75}
html[data-theme="dark"] .bg-vignette{background:radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(70,50,150,.32) 100%)}
html[data-theme="dark"] .cd{background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.5) 0%,rgba(150,140,230,.3) 55%,rgba(120,110,210,.16) 100%);opacity:.45}
html[data-theme="dark"] #starfield{opacity:.95}
html[data-theme="dark"] #loader{background:radial-gradient(80% 70% at 50% 40%,#0d1230 0%,#141a3c 70%)}
html[data-theme="dark"] #nav{background:rgba(14,12,38,.78)!important;border-color:rgba(179,157,251,.22)!important}
html[data-theme="dark"] .live-pill{background:rgba(26,24,60,.62);color:#b3a8d9;border-color:rgba(179,157,251,.28)}
html[data-theme="dark"] .hero-bg{opacity:.8;filter:saturate(.82) brightness(.72)}
html[data-theme="dark"] .hero-bg::after{background:linear-gradient(180deg,rgba(12,10,36,.28) 0%,rgba(12,10,36,.5) 52%,rgba(12,10,36,.92) 100%)}
html[data-theme="dark"] .hero h1{text-shadow:0 4px 26px rgba(0,0,0,.55)}
html[data-theme="dark"] .hero .douyin-chip{background:rgba(24,22,60,.85);color:#b9aee4;border-color:rgba(179,157,251,.3)}
html[data-theme="dark"] .kumo-avatar img{border-color:rgba(190,170,255,.85)}
html[data-theme="dark"] .modal{background:rgba(8,6,28,.55)}
html[data-theme="dark"] .modal-box{background:#171536;border-color:rgba(179,157,251,.26)}
html[data-theme="dark"] .modal-close{background:rgba(26,24,60,.94)!important;color:#e8e0ff!important;border-color:rgba(179,157,251,.3)!important}
html[data-theme="dark"] #toast{background:rgba(23,21,54,.96);color:#e8e0ff;border-color:rgba(179,157,251,.3)}
html[data-theme="dark"] .card,html[data-theme="dark"] .gb-item,html[data-theme="dark"] .asset-card{background:var(--card)!important;border-color:var(--line)!important}
html[data-theme="dark"] .adm-cat-row,html[data-theme="dark"] .adm-gitem-row{background:rgba(120,110,210,.08)!important;border-color:rgba(179,157,251,.18)!important}
html[data-theme="dark"] input,html[data-theme="dark"] textarea,html[data-theme="dark"] select{background:rgba(24,22,58,.92)!important;color:#e8e0ff!important;border-color:rgba(179,157,251,.3)!important}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#8f83bd!important}
html[data-theme="dark"] .btn-ghost{background:rgba(30,28,70,.62)!important;color:#cfc5f4!important;border-color:rgba(179,157,251,.3)!important}
html[data-theme="dark"] .btn-ghost:hover{background:rgba(52,46,116,.75)!important;color:#fff!important}
html[data-theme="dark"] .result-empty{color:var(--ink-faint)}
html[data-theme="dark"] footer{background:rgba(10,8,30,.38)!important}
html[data-theme="dark"] .theme-ic-moon{display:none}
html[data-theme="dark"] .theme-ic-sun{display:block}
.theme-ic-sun{display:none}
.theme-ic-moon{display:block}

/* ============ 导航图标按钮 ============ */
.nav-ic{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid rgba(255,150,195,.28);background:rgba(255,255,255,.8);color:var(--ink-dim);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.25s}
.nav-ic:hover{background:rgba(255,143,190,.15);color:var(--pink);transform:translateY(-1px)}
.nav-ic svg{width:18px;height:18px}
/* ============ 全局搜索 ============ */
#searchModal .modal-box{max-width:620px;padding:26px 24px}
.search-in{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 18px;font-size:15px;outline:none;background:rgba(255,255,255,.92);color:var(--ink)}
.search-in:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,143,190,.12)}
.search-groups{margin-top:6px}
.sg-title{font-size:13px;color:var(--ink-faint);margin:16px 0 8px;letter-spacing:.1em}
.sg-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:14px;cursor:pointer;transition:.2s}
.sg-row:hover{background:rgba(255,143,190,.1);transform:translateX(2px)}
.sg-thumb{width:46px;height:46px;border-radius:11px;object-fit:cover;background:#f4e8ff;flex:none}
.sg-ico{width:46px;height:46px;border-radius:11px;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,#ffd3e8,#e6daff);color:#b46a9e;font-size:16px}
.sg-name{font-size:14px;color:var(--ink);line-height:1.4}
.sg-sub{font-size:12px;color:var(--ink-faint);line-height:1.4;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
@keyframes popIn{from{opacity:0;transform:scale(.92) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}
/* ============ AI 角色助手 ============ */
#aiFab{position:fixed;right:20px;bottom:20px;z-index:122;width:58px;height:58px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#ff8fbe,#b39dfb);box-shadow:0 10px 32px rgba(255,111,165,.42);transition:.3s}
#aiFab:hover{transform:translateY(-3px) scale(1.06)}
#aiFab svg{width:27px;height:27px}
#aiFab::before{content:'';position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(255,143,190,.5);animation:pulse 2.2s ease-in-out infinite}
#aiPanel{position:fixed;right:20px;bottom:92px;z-index:123;width:336px;max-width:calc(100vw - 32px);height:448px;max-height:64vh;border-radius:24px;background:#fffdfe;border:1px solid rgba(255,150,195,.3);box-shadow:0 24px 80px rgba(255,111,165,.35);display:flex;flex-direction:column;overflow:hidden;transform-origin:bottom right;transition:.28s cubic-bezier(.34,1.4,.64,1)}
#aiPanel.closed{transform:scale(.5) translateY(40px);opacity:0;pointer-events:none}
.ai-head{position:relative;padding:15px 18px;background:linear-gradient(135deg,#ff8fbe,#b39dfb);color:#fff;display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:16px;letter-spacing:.5px}
.ai-dot{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 10px #fff;animation:pulse 1.6s ease-in-out infinite}
.ai-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:none;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;font-size:14px;cursor:pointer;transition:.2s}
.ai-x:hover{background:rgba(255,255,255,.4);transform:translateY(-50%) rotate(90deg)}
.ai-body{flex:1;overflow-y:auto;padding:15px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#fff7fb 0%,#f7f2ff 100%)}
.ai-msg{max-width:84%;padding:9px 14px;border-radius:17px;font-size:13.5px;line-height:1.65;white-space:pre-wrap;word-break:break-word;animation:popIn .25s ease}
.ai-msg.bot{align-self:flex-start;background:#f0e7ff;color:var(--ink);border-bottom-left-radius:5px}
.ai-msg.me{align-self:flex-end;background:linear-gradient(135deg,#ff8fbe,#b39dfb);color:#fff;border-bottom-right-radius:5px}
.ai-nick{font-size:11px;color:var(--ink-faint);display:block;margin-bottom:3px}
.ai-input{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,150,195,.16);background:#fffdfe}
.ai-input input{flex:1;min-width:0;border:1px solid rgba(255,150,195,.32);border-radius:15px;padding:10px 14px;font-size:14px;outline:none;background:rgba(255,255,255,.92);color:var(--ink)}
.ai-input input:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,143,190,.12)}
.ai-send{width:46px;flex:none;border-radius:15px;border:none;background:linear-gradient(135deg,#ff8fbe,#b39dfb);color:#fff;font-size:17px;cursor:pointer;transition:.2s}
.ai-send:hover{transform:scale(1.06)}
/* ============ 云朵接星星（彩蛋小游戏） ============ */
#gameModal .modal-box{max-width:520px;padding:20px 20px 18px;text-align:center}
.game-hud{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-dim);margin:10px 0 8px}
.game-hud b{color:var(--pink)}
#gameCanvas{width:100%;height:auto;aspect-ratio:480/340;border-radius:18px;display:block;touch-action:none}
.game-ctrl{margin-top:12px}
.game-tip{font-size:12px;color:var(--ink-faint);margin-top:9px}
/* 夜间下的新组件 */
html[data-theme="dark"] .nav-ic{background:rgba(26,24,60,.72);color:#c9bdf2;border-color:rgba(179,157,251,.3)}
html[data-theme="dark"] .nav-ic:hover{background:rgba(52,46,116,.82);color:#ffb9d6}
html[data-theme="dark"] .ai-body{background:linear-gradient(180deg,#181638 0%,#1c1a42 100%)}
html[data-theme="dark"] .ai-msg.bot{background:#2a2458;color:#e8e0ff}
html[data-theme="dark"] .ai-input{background:#171536;border-top-color:rgba(179,157,251,.2)}
html[data-theme="dark"] .sg-row:hover{background:rgba(179,157,251,.14)}
html[data-theme="dark"] .sg-ico{background:linear-gradient(135deg,#3a2a6a,#2a3a6a);color:#d9ccff}
html[data-theme="dark"] .sg-thumb{background:#241f52}


/* ============ v2 新视图样式（动态/文章/音乐/语音/投稿/守护/连接/直播排期/公告） ============ */
.adm-tabs{flex-wrap:wrap}
.notice-bar{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,rgba(255,143,190,.14),rgba(179,157,251,.14));border:1px solid rgba(255,143,190,.3);border-radius:16px;padding:11px 16px;margin-top:18px;font-size:14px;animation:none}
.notice-bar .nb-ic{flex:none;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.notice-bar b{font-weight:600}
.notice-bar .nb-x{margin-left:auto;cursor:pointer;color:var(--ink-faint);font-size:15px;padding:2px 6px}
.live-tease{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(255,199,122,.18),rgba(255,143,190,.14));border:1px solid rgba(255,199,122,.4);border-radius:16px;padding:12px 16px;margin-top:14px}
.live-tease .lt-dot{width:10px;height:10px;border-radius:50%;background:#ff6fa5;box-shadow:0 0 0 0 rgba(255,111,165,.55);animation:pulse 1.6s infinite}
.live-tease.on .lt-dot{background:#59e3a5;animation:pulse 1.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,111,165,.55)}70%{box-shadow:0 0 0 9px rgba(255,111,165,0)}100%{box-shadow:0 0 0 0 rgba(255,111,165,0)}}
.live-tease .lt-txt{flex:1;min-width:200px;font-size:14px}
.live-tease .lt-txt b{font-size:15px}
.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:18px}
.article-card{display:block;padding:20px 20px 16px;border-radius:20px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft);transition:.3s;position:relative;overflow:hidden}
.article-card:hover{transform:translateY(-4px);box-shadow:var(--glow-pink)}
.article-card .ac-cat{display:inline-block;font-size:11px;padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;margin-bottom:10px}
.article-card h3{font-size:18px;line-height:1.45;font-weight:600}
.article-card .ac-sum{color:var(--ink-dim);font-size:13px;margin-top:8px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.article-card .ac-meta{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--ink-faint);font-size:12px}
.article-card .ac-pin{color:#ff8fbe;font-weight:600}
.article-read{max-width:820px;margin:0 auto;padding:34px 34px 40px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft)}
.article-read h1{font-family:var(--font-display);font-weight:400;font-size:32px;line-height:1.4;margin-bottom:8px}
.article-read .ar-meta{color:var(--ink-faint);font-size:13px;margin-bottom:22px;display:flex;gap:12px;flex-wrap:wrap}
.md-body{line-height:1.95;font-size:15.5px;color:var(--ink)}
.md-body h1,.md-body h2,.md-body h3,.md-body h4{margin:26px 0 12px;line-height:1.5;font-family:var(--font-display);font-weight:400}
.md-body h1{font-size:26px}.md-body h2{font-size:22px}.md-body h3{font-size:19px}.md-body h4{font-size:16px}
.md-body p{margin:12px 0}
.md-body ul,.md-body ol{margin:12px 0;padding-left:26px}
.md-body li{margin:6px 0}
.md-body blockquote{border-left:4px solid var(--pink-soft);background:rgba(255,143,190,.07);padding:10px 16px;border-radius:0 12px 12px 0;margin:14px 0;color:var(--ink-dim)}
.md-body code{background:rgba(179,157,251,.14);padding:2px 7px;border-radius:7px;font-size:13.5px;font-family:ui-monospace,Consolas,monospace}
.md-body pre{background:rgba(107,74,99,.06);border:1px solid var(--line);padding:14px 16px;border-radius:14px;overflow-x:auto;margin:14px 0}
.md-body pre code{background:none;padding:0;font-size:13.5px}
.md-body img{border-radius:16px;margin:14px 0;max-width:100%}
.md-body a{color:#b06bd6;text-decoration:underline;text-underline-offset:3px}
.md-body table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}
.md-body th,.md-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.md-body th{background:rgba(179,157,251,.12)}
.md-body hr{border:none;border-top:1px dashed var(--line);margin:22px 0}
.moment-list{display:flex;flex-direction:column;gap:16px;margin-top:18px}
.moment-item{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow-soft)}
.moment-item .mo-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.moment-item .mo-pin{font-size:11px;color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb);padding:2px 9px;border-radius:999px}
.moment-item p{font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.moment-item .mo-imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.moment-item .mo-imgs img{border-radius:14px;width:100%;height:150px;object-fit:cover;cursor:zoom-in}
.moment-item .mo-time{color:var(--ink-faint);font-size:12px;margin-top:10px}
.disc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px;margin-top:20px}
.disc{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px 16px 16px;text-align:center;cursor:pointer;transition:.3s;box-shadow:var(--shadow-soft)}
.disc:hover{transform:translateY(-5px);box-shadow:var(--glow-lav)}
.disc .disc-art{width:110px;height:110px;margin:0 auto 12px;border-radius:50%;position:relative;overflow:hidden;box-shadow:0 0 0 6px rgba(255,255,255,.5),0 8px 22px rgba(179,157,251,.4)}
.disc .disc-art img{width:100%;height:100%;object-fit:cover}
.disc .disc-art i{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);background:radial-gradient(circle at 50% 50%,transparent 0 34%,rgba(255,255,255,.9) 35% 38%,transparent 40%)}
.disc.playing .disc-art{animation:spin 9s linear infinite}
.disc h3{font-size:15px;font-weight:600;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.disc p{color:var(--ink-dim);font-size:12px;margin-top:3px}
.disc .disc-play{margin-top:10px;font-size:12px;color:var(--lav)}
@keyframes spin{to{transform:rotate(360deg)}}
#playerBar{position:fixed;bottom:18px;right:86px;z-index:900;display:flex;align-items:center;gap:0;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;box-shadow:var(--glow-pink);overflow:hidden;transition:.35s}
#playerBar .pb-toggle{width:44px;height:44px;flex:none;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;border:none;border-radius:999px;font-size:17px;cursor:pointer}
#playerBar .pb-body{display:flex;align-items:center;gap:10px;max-width:0;opacity:0;overflow:hidden;transition:.35s;white-space:nowrap}
#playerBar.open .pb-body{max-width:360px;opacity:1;padding:0 14px 0 6px}
#playerBar .pb-info{min-width:96px}
#playerBar .pb-info b{display:block;font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis}
#playerBar .pb-info span{font-size:11px;color:var(--ink-faint);display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis}
#playerBar .pb-ctrl{display:flex;gap:4px}
#playerBar .pb-ctrl button{width:30px;height:30px;border:none;background:rgba(179,157,251,.16);color:var(--ink);border-radius:50%;cursor:pointer;font-size:12px}
#playerBar .pb-ctrl button:hover{background:var(--lav);color:#fff}
#playerBar .pb-progress{width:90px;height:5px;border-radius:5px;background:rgba(179,157,251,.22);position:relative;overflow:hidden}
#playerBar .pb-bar{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#ff9ec9,#b39dfb);border-radius:5px}
#playerBar #pbTime{font-size:10.5px;color:var(--ink-faint)}
html[data-theme="dark"] #playerBar{background:rgba(23,21,54,.94);border-color:rgba(179,157,251,.3)}
/* ===== 夜间统一压暗增强 ===== */
html[data-theme="dark"] img{filter:brightness(.84) saturate(.9)}
html[data-theme="dark"] #doorOverlay{background:linear-gradient(160deg,#060918 0%,#0c1028 55%,#140f30 100%)!important}
html[data-theme="dark"] #doorOverlay .door-title,html[data-theme="dark"] #doorOverlay .door-sub{color:#cfc5f4}
html[data-theme="dark"] #aiPanel,html[data-theme="dark"] .ai-panel{background:linear-gradient(180deg,#141232 0%,#181638 100%)!important;border-color:rgba(179,157,251,.26)!important}
html[data-theme="dark"] .btn-pink{filter:brightness(.88)}
html[data-theme="dark"] .bal-chip{background:rgba(26,24,58,.78)!important;border-color:rgba(179,157,251,.22)!important;box-shadow:none!important}
html[data-theme="dark"] .gift-sec-title h3,html[data-theme="dark"] .sec-title,html[data-theme="dark"] h2,html[data-theme="dark"] h3{color:#cfc5f4}
html[data-theme="dark"] .gcard{background:rgba(23,21,52,.66)!important;border-color:rgba(179,157,251,.2)!important;box-shadow:0 10px 30px rgba(8,6,32,.45)!important}
html[data-theme="dark"] .nav-ic,html[data-theme="dark"] #searchBtn,html[data-theme="dark"] #themeBtn{background:rgba(24,22,56,.8)!important;border-color:rgba(179,157,251,.24)!important}
html[data-theme="dark"] .modal-box{box-shadow:0 24px 70px rgba(4,3,20,.75)!important}
html[data-theme="dark"] .gb-time,html[data-theme="dark"] .adm-hint,html[data-theme="dark"] .result-empty{color:#8f83bd}
html[data-theme="dark"] .hero .hero-bg{opacity:.72;filter:saturate(.78) brightness(.62)}
html[data-theme="dark"] .live-pill,html[data-theme="dark"] .badge{filter:brightness(.9)}
html[data-theme="dark"] .bw-item{background:rgba(32,28,66,.9)!important;border-color:rgba(255,158,201,.38)!important;color:#e8e0ff!important;box-shadow:0 3px 12px rgba(8,5,32,.55)!important}
html[data-theme="dark"] .pg-item{background:rgba(26,24,58,.74)!important;border-color:var(--line)!important}
html[data-theme="dark"] .pg-track{background:rgba(18,16,46,.9)!important}
html[data-theme="dark"] .pg-tag-todo{background:rgba(96,84,150,.32);color:#b3a8d9}
html[data-theme="dark"] .pg-tag-doing{background:rgba(64,118,190,.28);color:#9cc9f0}
html[data-theme="dark"] .pg-tag-done{background:rgba(170,130,60,.26);color:#e8c98a}
html[data-theme="dark"] #playerBar .pb-ctrl button{background:rgba(179,157,251,.2);color:#e8e0ff}
html[data-theme="dark"] #playerBar .pb-progress{background:rgba(179,157,251,.3)}
html[data-theme="dark"] .article-read,.html[data-theme="dark"] .article-card,.html[data-theme="dark"] .moment-item,.html[data-theme="dark"] .disc{background:#1b1840;border-color:rgba(179,157,251,.2)}
.voice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-top:20px}
.voice-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft);transition:.3s}
.voice-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.voice-card .vc-top{display:flex;align-items:center;gap:12px}
.voice-card .vc-ic{width:46px;height:46px;flex:none;border-radius:50%;background:linear-gradient(135deg,#8fd8ff,#b39dfb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px}
.voice-card h3{font-size:15px;font-weight:600}
.voice-card p{color:var(--ink-dim);font-size:12px;margin-top:4px}
.voice-card audio{width:100%;height:34px;margin-top:12px}
.submit-form{max-width:640px;margin-top:20px}
.submit-form .sf-type{display:flex;gap:10px;margin-bottom:16px}
.submit-form .sf-type button{flex:1;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink-dim);cursor:pointer;font-size:14px;transition:.25s}
.submit-form .sf-type button.active{background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;border-color:transparent;box-shadow:var(--glow-pink)}
.submit-form .sf-previews{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.submit-form .sf-previews img{width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.guard-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.guard-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 18px;box-shadow:var(--shadow-soft)}
.guard-item .g-rank{width:38px;height:38px;flex:none;border-radius:50%;background:linear-gradient(135deg,#ffd98a,#f5a95c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-display)}
.guard-item .g-rank.alt{background:linear-gradient(135deg,#c9d6ff,#a78bfa)}
.guard-item .g-nick{font-weight:600;font-size:15px}
.guard-item .g-title{font-size:12px;color:var(--ink-dim);margin-top:2px}
.guard-item .g-moons{margin-left:auto;font-size:12px;color:var(--ink-faint);white-space:nowrap}
.level-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.level-chip{flex:1;min-width:150px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;text-align:center}
.level-chip .lv-name{font-weight:700;font-size:15px}
.level-chip .lv-min{font-size:11px;color:var(--ink-faint);margin-top:2px}
.level-chip .lv-desc{font-size:12px;color:var(--ink-dim);margin-top:6px}
.sched-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.sched-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 18px}
.sched-item .sd-date{flex:none;text-align:center;width:56px}
.sched-item .sd-date b{display:block;font-size:20px;font-family:var(--font-display);color:var(--pink)}
.sched-item .sd-date span{font-size:11px;color:var(--ink-faint)}
.sched-item .sd-info{flex:1}
.sched-item .sd-info b{font-size:15px}
.sched-item .sd-info p{font-size:12px;color:var(--ink-dim);margin-top:2px}
.sched-item .sd-time{font-size:12px;color:var(--lav);white-space:nowrap}
.replay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:16px}
.replay-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-soft);transition:.3s}
.replay-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.replay-card h3{font-size:15px;font-weight:600}
.replay-card p{font-size:12px;color:var(--ink-faint);margin-top:6px}
.replay-card .btn{margin-top:12px}
.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:20px}
.link-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow-soft);transition:.3s}
.link-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.link-card b{font-size:15px}
.link-card p{font-size:12px;color:var(--ink-dim);margin-top:4px}
.link-card .ln-go{margin-top:10px;font-size:12px;color:var(--lav)}
.about-sec{margin-top:26px}
.about-sec h3{font-family:var(--font-display);font-weight:400;font-size:24px;margin-bottom:12px}
.about-box{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px 26px;box-shadow:var(--shadow-soft);line-height:1.9}
.about-box .ab-item{margin-bottom:18px}
.about-box .ab-item:last-child{margin-bottom:0}
.about-box .ab-item h4{font-size:16px;margin-bottom:8px;color:var(--pink)}
.about-box .ab-item p,.about-box .ab-item li{color:var(--ink-dim);font-size:14px}
.about-box .ab-item ul{padding-left:22px;margin-top:6px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:10px}
.faq-item b{font-size:14px;display:block;margin-bottom:6px}
.faq-item p{font-size:13.5px;color:var(--ink-dim)}
.song-req{max-width:560px}
.adm-form{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.adm-form .af-row{display:flex;gap:10px;flex-wrap:wrap}
.adm-form input,.adm-form textarea,.adm-form select{flex:1;min-width:140px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px;outline:none;color:var(--ink)}
.adm-form textarea{min-height:90px;resize:vertical}
.adm-form .af-row.wrap{flex-wrap:wrap}
.adm-list{display:flex;flex-direction:column;gap:10px}
.adm-item{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.adm-item .ai-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.adm-item .ai-head b{font-size:14px}
.adm-item .ai-head .ai-ops{margin-left:auto;display:flex;gap:6px}
.adm-item .ai-head button{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink-dim);cursor:pointer}
.adm-item .ai-head button:hover{background:var(--lav);color:#fff;border-color:transparent}
.adm-item .ai-body{margin-top:8px;font-size:13px;color:var(--ink-dim);white-space:pre-wrap;word-break:break-word}
.adm-item .ai-imgs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.adm-item .ai-imgs img{width:76px;height:76px;object-fit:cover;border-radius:10px}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.adm-stat{background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.adm-stat b{display:block;font-size:24px;font-family:var(--font-display);font-weight:400;color:var(--pink)}
.adm-stat span{font-size:12px;color:var(--ink-dim)}
html[data-theme="purple"]{color-scheme:light}
html[data-theme="purple"]{--bg-0:#faf6ff;--bg-1:#f5eeff;--bg-2:#f0e9ff;--ink:#53447c;--ink-dim:#8577ad;--ink-faint:#b3a6d6;--pink:#a678e8;--pink-soft:#d4bdf6;--lav:#7c5cf0;--lav-soft:#c9b6ff;--cyan:#9fb6ff;--cyan-soft:#c4d4ff;--gold:#e6b45c;--gold-deep:#d29a3f;--card:rgba(255,255,255,.82);--card-solid:#ffffff;--line:rgba(124,92,240,.24);--glow-pink:0 8px 34px rgba(166,120,232,.34);--glow-lav:0 8px 34px rgba(124,92,240,.34);--shadow-soft:0 12px 36px rgba(124,92,240,.16)}
html[data-theme="purple"] body{background:linear-gradient(160deg,#f4eeff 0%,#faf4ff 45%,#ede4ff 100%)}
html[data-theme="purple"] .aurora-blob.b1{background:radial-gradient(circle,#e4d2ff 0%,transparent 65%)}
html[data-theme="purple"] .aurora-blob.b2{background:radial-gradient(circle,#d6c9ff 0%,transparent 65%)}
html[data-theme="purple"] .hero-bg{opacity:.78;filter:saturate(1.12) hue-rotate(14deg)}
html[data-theme="purple"] .nav-logo b{background:linear-gradient(100deg,#a678e8,#7c5cf0);-webkit-background-clip:text;background-clip:text}
html[data-theme="purple"] .theme-ic-moon{display:block}
html[data-theme="purple"] .theme-ic-sun{display:none}


/* ============ v2 补充样式 ============ */
.gb-ops{display:inline-flex;gap:4px;margin-left:auto}
.gb-ops button{font-size:11px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink-dim);cursor:pointer;transition:.2s}
.gb-ops button:hover{background:var(--lav);color:#fff;border-color:transparent}
.gb-reply{display:flex;gap:10px;margin-top:12px;background:rgba(179,157,251,.1);border-radius:14px;padding:10px 12px}
.gb-reply .gr-av{width:26px;height:26px;flex:none;border-radius:50%;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.gb-reply b{font-size:12.5px;color:var(--lav)}
.gb-reply p{font-size:13px;margin-top:2px;color:var(--ink-dim)}
.g-item{position:relative}
.g-mask .g-dl{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--ink);font-size:11px;padding:4px 10px;border-radius:999px;display:flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(0,0,0,.14);transition:.2s}
.g-mask .g-dl:hover{background:var(--lav);color:#fff}


@media (max-width:640px){
  #playerBar{right:14px;bottom:74px}
  #playerBar .pb-ctrl button{width:38px;height:38px}
  #playerBar .pb-body{max-width:280px}
  input,textarea,select{font-size:16px!important}
}


#adminPanelModal .modal-box{max-width:900px}
/* ============ v2 新视图样式（动态/文章/音乐/语音/投稿/守护/连接/直播排期/公告） ============ */
.adm-tabs{flex-wrap:wrap}
.notice-bar{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,rgba(255,143,190,.14),rgba(179,157,251,.14));border:1px solid rgba(255,143,190,.3);border-radius:16px;padding:11px 16px;margin-top:18px;font-size:14px;animation:none}
.notice-bar .nb-ic{flex:none;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.notice-bar b{font-weight:600}
.notice-bar .nb-x{margin-left:auto;cursor:pointer;color:var(--ink-faint);font-size:15px;padding:2px 6px}
.live-tease{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(255,199,122,.18),rgba(255,143,190,.14));border:1px solid rgba(255,199,122,.4);border-radius:16px;padding:12px 16px;margin-top:14px}
.live-tease .lt-dot{width:10px;height:10px;border-radius:50%;background:#ff6fa5;box-shadow:0 0 0 0 rgba(255,111,165,.55);animation:pulse 1.6s infinite}
.live-tease.on .lt-dot{background:#59e3a5;animation:pulse 1.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,111,165,.55)}70%{box-shadow:0 0 0 9px rgba(255,111,165,0)}100%{box-shadow:0 0 0 0 rgba(255,111,165,0)}}
.live-tease .lt-txt{flex:1;min-width:200px;font-size:14px}
.live-tease .lt-txt b{font-size:15px}
.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:18px}
.article-card{display:block;padding:20px 20px 16px;border-radius:20px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft);transition:.3s;position:relative;overflow:hidden}
.article-card:hover{transform:translateY(-4px);box-shadow:var(--glow-pink)}
.article-card .ac-cat{display:inline-block;font-size:11px;padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;margin-bottom:10px}
.article-card h3{font-size:18px;line-height:1.45;font-weight:600}
.article-card .ac-sum{color:var(--ink-dim);font-size:13px;margin-top:8px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.article-card .ac-meta{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--ink-faint);font-size:12px}
.article-card .ac-pin{color:#ff8fbe;font-weight:600}
.article-read{max-width:820px;margin:0 auto;padding:34px 34px 40px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft)}
.article-read h1{font-family:var(--font-display);font-weight:400;font-size:32px;line-height:1.4;margin-bottom:8px}
.article-read .ar-meta{color:var(--ink-faint);font-size:13px;margin-bottom:22px;display:flex;gap:12px;flex-wrap:wrap}
.md-body{line-height:1.95;font-size:15.5px;color:var(--ink)}
.md-body h1,.md-body h2,.md-body h3,.md-body h4{margin:26px 0 12px;line-height:1.5;font-family:var(--font-display);font-weight:400}
.md-body h1{font-size:26px}.md-body h2{font-size:22px}.md-body h3{font-size:19px}.md-body h4{font-size:16px}
.md-body p{margin:12px 0}
.md-body ul,.md-body ol{margin:12px 0;padding-left:26px}
.md-body li{margin:6px 0}
.md-body blockquote{border-left:4px solid var(--pink-soft);background:rgba(255,143,190,.07);padding:10px 16px;border-radius:0 12px 12px 0;margin:14px 0;color:var(--ink-dim)}
.md-body code{background:rgba(179,157,251,.14);padding:2px 7px;border-radius:7px;font-size:13.5px;font-family:ui-monospace,Consolas,monospace}
.md-body pre{background:rgba(107,74,99,.06);border:1px solid var(--line);padding:14px 16px;border-radius:14px;overflow-x:auto;margin:14px 0}
.md-body pre code{background:none;padding:0;font-size:13.5px}
.md-body img{border-radius:16px;margin:14px 0;max-width:100%}
.md-body a{color:#b06bd6;text-decoration:underline;text-underline-offset:3px}
.md-body table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}
.md-body th,.md-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.md-body th{background:rgba(179,157,251,.12)}
.md-body hr{border:none;border-top:1px dashed var(--line);margin:22px 0}
.moment-list{display:flex;flex-direction:column;gap:16px;margin-top:18px}
.moment-item{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow-soft)}
.moment-item .mo-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.moment-item .mo-pin{font-size:11px;color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb);padding:2px 9px;border-radius:999px}
.moment-item p{font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.moment-item .mo-imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.moment-item .mo-imgs img{border-radius:14px;width:100%;height:150px;object-fit:cover;cursor:zoom-in}
.moment-item .mo-time{color:var(--ink-faint);font-size:12px;margin-top:10px}
.disc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px;margin-top:20px}
.disc{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px 16px 16px;text-align:center;cursor:pointer;transition:.3s;box-shadow:var(--shadow-soft)}
.disc:hover{transform:translateY(-5px);box-shadow:var(--glow-lav)}
.disc .disc-art{width:110px;height:110px;margin:0 auto 12px;border-radius:50%;position:relative;overflow:hidden;box-shadow:0 0 0 6px rgba(255,255,255,.5),0 8px 22px rgba(179,157,251,.4)}
.disc .disc-art img{width:100%;height:100%;object-fit:cover}
.disc .disc-art i{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);background:radial-gradient(circle at 50% 50%,transparent 0 34%,rgba(255,255,255,.9) 35% 38%,transparent 40%)}
.disc.playing .disc-art{animation:spin 9s linear infinite}
.disc h3{font-size:15px;font-weight:600;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.disc p{color:var(--ink-dim);font-size:12px;margin-top:3px}
.disc .disc-play{margin-top:10px;font-size:12px;color:var(--lav)}
@keyframes spin{to{transform:rotate(360deg)}}
#playerBar{position:fixed;bottom:18px;right:86px;z-index:900;display:flex;align-items:center;gap:0;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;box-shadow:var(--glow-pink);overflow:hidden;transition:.35s}
#playerBar .pb-toggle{width:44px;height:44px;flex:none;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;border:none;border-radius:999px;font-size:17px;cursor:pointer}
#playerBar .pb-body{display:flex;align-items:center;gap:10px;max-width:0;opacity:0;overflow:hidden;transition:.35s;white-space:nowrap}
#playerBar.open .pb-body{max-width:360px;opacity:1;padding:0 14px 0 6px}
#playerBar .pb-info{min-width:96px}
#playerBar .pb-info b{display:block;font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis}
#playerBar .pb-info span{font-size:11px;color:var(--ink-faint);display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis}
#playerBar .pb-ctrl{display:flex;gap:4px}
#playerBar .pb-ctrl button{width:30px;height:30px;border:none;background:rgba(179,157,251,.16);color:var(--ink);border-radius:50%;cursor:pointer;font-size:12px}
#playerBar .pb-ctrl button:hover{background:var(--lav);color:#fff}
#playerBar .pb-progress{width:90px;height:5px;border-radius:5px;background:rgba(179,157,251,.22);position:relative;overflow:hidden}
#playerBar .pb-bar{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#ff9ec9,#b39dfb);border-radius:5px}
#playerBar #pbTime{font-size:10.5px;color:var(--ink-faint)}
html[data-theme="dark"] #playerBar{background:rgba(23,21,54,.94);border-color:rgba(179,157,251,.3)}
html[data-theme="dark"] #playerBar .pb-ctrl button{background:rgba(179,157,251,.2);color:#e8e0ff}
html[data-theme="dark"] #playerBar .pb-progress{background:rgba(179,157,251,.3)}
html[data-theme="dark"] .article-read,.html[data-theme="dark"] .article-card,.html[data-theme="dark"] .moment-item,.html[data-theme="dark"] .disc{background:#1b1840;border-color:rgba(179,157,251,.2)}
.voice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-top:20px}
.voice-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft);transition:.3s}
.voice-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.voice-card .vc-top{display:flex;align-items:center;gap:12px}
.voice-card .vc-ic{width:46px;height:46px;flex:none;border-radius:50%;background:linear-gradient(135deg,#8fd8ff,#b39dfb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px}
.voice-card h3{font-size:15px;font-weight:600}
.voice-card p{color:var(--ink-dim);font-size:12px;margin-top:4px}
.voice-card audio{width:100%;height:34px;margin-top:12px}
.submit-form{max-width:640px;margin-top:20px}
.submit-form .sf-type{display:flex;gap:10px;margin-bottom:16px}
.submit-form .sf-type button{flex:1;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink-dim);cursor:pointer;font-size:14px;transition:.25s}
.submit-form .sf-type button.active{background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;border-color:transparent;box-shadow:var(--glow-pink)}
.submit-form .sf-previews{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.submit-form .sf-previews img{width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.guard-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.guard-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 18px;box-shadow:var(--shadow-soft)}
.guard-item .g-rank{width:38px;height:38px;flex:none;border-radius:50%;background:linear-gradient(135deg,#ffd98a,#f5a95c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-display)}
.guard-item .g-rank.alt{background:linear-gradient(135deg,#c9d6ff,#a78bfa)}
.guard-item .g-nick{font-weight:600;font-size:15px}
.guard-item .g-title{font-size:12px;color:var(--ink-dim);margin-top:2px}
.guard-item .g-moons{margin-left:auto;font-size:12px;color:var(--ink-faint);white-space:nowrap}
.level-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.level-chip{flex:1;min-width:150px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;text-align:center}
.level-chip .lv-name{font-weight:700;font-size:15px}
.level-chip .lv-min{font-size:11px;color:var(--ink-faint);margin-top:2px}
.level-chip .lv-desc{font-size:12px;color:var(--ink-dim);margin-top:6px}
.sched-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.sched-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 18px}
.sched-item .sd-date{flex:none;text-align:center;width:56px}
.sched-item .sd-date b{display:block;font-size:20px;font-family:var(--font-display);color:var(--pink)}
.sched-item .sd-date span{font-size:11px;color:var(--ink-faint)}
.sched-item .sd-info{flex:1}
.sched-item .sd-info b{font-size:15px}
.sched-item .sd-info p{font-size:12px;color:var(--ink-dim);margin-top:2px}
.sched-item .sd-time{font-size:12px;color:var(--lav);white-space:nowrap}
.replay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:16px}
.replay-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-soft);transition:.3s}
.replay-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.replay-card h3{font-size:15px;font-weight:600}
.replay-card p{font-size:12px;color:var(--ink-faint);margin-top:6px}
.replay-card .btn{margin-top:12px}
.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:20px}
.link-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow-soft);transition:.3s}
.link-card:hover{transform:translateY(-4px);box-shadow:var(--glow-lav)}
.link-card b{font-size:15px}
.link-card p{font-size:12px;color:var(--ink-dim);margin-top:4px}
.link-card .ln-go{margin-top:10px;font-size:12px;color:var(--lav)}
.about-sec{margin-top:26px}
.about-sec h3{font-family:var(--font-display);font-weight:400;font-size:24px;margin-bottom:12px}
.about-box{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px 26px;box-shadow:var(--shadow-soft);line-height:1.9}
.about-box .ab-item{margin-bottom:18px}
.about-box .ab-item:last-child{margin-bottom:0}
.about-box .ab-item h4{font-size:16px;margin-bottom:8px;color:var(--pink)}
.about-box .ab-item p,.about-box .ab-item li{color:var(--ink-dim);font-size:14px}
.about-box .ab-item ul{padding-left:22px;margin-top:6px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:10px}
.faq-item b{font-size:14px;display:block;margin-bottom:6px}
.faq-item p{font-size:13.5px;color:var(--ink-dim)}
.song-req{max-width:560px}
.adm-form{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.adm-form .af-row{display:flex;gap:10px;flex-wrap:wrap}
.adm-form input,.adm-form textarea,.adm-form select{flex:1;min-width:140px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px;outline:none;color:var(--ink)}
.adm-form textarea{min-height:90px;resize:vertical}
.adm-form .af-row.wrap{flex-wrap:wrap}
.adm-list{display:flex;flex-direction:column;gap:10px}
.adm-item{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.adm-item .ai-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.adm-item .ai-head b{font-size:14px}
.adm-item .ai-head .ai-ops{margin-left:auto;display:flex;gap:6px}
.adm-item .ai-head button{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink-dim);cursor:pointer}
.adm-item .ai-head button:hover{background:var(--lav);color:#fff;border-color:transparent}
.adm-item .ai-body{margin-top:8px;font-size:13px;color:var(--ink-dim);white-space:pre-wrap;word-break:break-word}
.adm-item .ai-imgs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.adm-item .ai-imgs img{width:76px;height:76px;object-fit:cover;border-radius:10px}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.adm-stat{background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.adm-stat b{display:block;font-size:24px;font-family:var(--font-display);font-weight:400;color:var(--pink)}
.adm-stat span{font-size:12px;color:var(--ink-dim)}
html[data-theme="purple"]{color-scheme:light}
html[data-theme="purple"]{--bg-0:#faf6ff;--bg-1:#f5eeff;--bg-2:#f0e9ff;--ink:#53447c;--ink-dim:#8577ad;--ink-faint:#b3a6d6;--pink:#a678e8;--pink-soft:#d4bdf6;--lav:#7c5cf0;--lav-soft:#c9b6ff;--cyan:#9fb6ff;--cyan-soft:#c4d4ff;--gold:#e6b45c;--gold-deep:#d29a3f;--card:rgba(255,255,255,.82);--card-solid:#ffffff;--line:rgba(124,92,240,.24);--glow-pink:0 8px 34px rgba(166,120,232,.34);--glow-lav:0 8px 34px rgba(124,92,240,.34);--shadow-soft:0 12px 36px rgba(124,92,240,.16)}
html[data-theme="purple"] body{background:linear-gradient(160deg,#f4eeff 0%,#faf4ff 45%,#ede4ff 100%)}
html[data-theme="purple"] .aurora-blob.b1{background:radial-gradient(circle,#e4d2ff 0%,transparent 65%)}
html[data-theme="purple"] .aurora-blob.b2{background:radial-gradient(circle,#d6c9ff 0%,transparent 65%)}
html[data-theme="purple"] .hero-bg{opacity:.78;filter:saturate(1.12) hue-rotate(14deg)}
html[data-theme="purple"] .nav-logo b{background:linear-gradient(100deg,#a678e8,#7c5cf0);-webkit-background-clip:text;background-clip:text}
html[data-theme="purple"] .theme-ic-moon{display:block}
html[data-theme="purple"] .theme-ic-sun{display:none}


/* ============ v2 补充样式 ============ */
.gb-ops{display:inline-flex;gap:4px;margin-left:auto}
.gb-ops button{font-size:11px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink-dim);cursor:pointer;transition:.2s}
.gb-ops button:hover{background:var(--lav);color:#fff;border-color:transparent}
.gb-reply{display:flex;gap:10px;margin-top:12px;background:rgba(179,157,251,.1);border-radius:14px;padding:10px 12px}
.gb-reply .gr-av{width:26px;height:26px;flex:none;border-radius:50%;background:linear-gradient(135deg,#ff9ec9,#b39dfb);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.gb-reply b{font-size:12.5px;color:var(--lav)}
.gb-reply p{font-size:13px;margin-top:2px;color:var(--ink-dim)}
.g-item{position:relative}
.g-mask .g-dl{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--ink);font-size:11px;padding:4px 10px;border-radius:999px;display:flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(0,0,0,.14);transition:.2s}
.g-mask .g-dl:hover{background:var(--lav);color:#fff}


@media (max-width:640px){
  #playerBar{right:14px;bottom:74px}
  #playerBar .pb-ctrl button{width:38px;height:38px}
  #playerBar .pb-body{max-width:280px}
  input,textarea,select{font-size:16px!important}
}

/* ===== v3 新增样式：运势 / 弹幕墙 / 成就 / 门扉 / 频谱 / 活动 / 勋章 ===== */
/* 门扉开场 */
#doorOverlay{position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 50% 30%,#141b3f 0%,#0b1026 60%,#070a1a 100%);overflow:hidden;transition:opacity .9s ease;font-family:var(--font-display)}
#doorOverlay.done{opacity:0;pointer-events:none}
#doorOverlay .door-clouds{position:absolute;inset:-10%;background:
  radial-gradient(60% 40% at 20% 80%,rgba(201,166,255,.28),transparent 70%),
  radial-gradient(50% 35% at 80% 70%,rgba(255,143,190,.22),transparent 70%),
  radial-gradient(40% 30% at 50% 20%,rgba(143,216,255,.18),transparent 70%);
  animation:doorClouds 9s ease-in-out infinite alternate}
@keyframes doorClouds{from{transform:translateY(0) scale(1)}to{transform:translateY(-3%) scale(1.06)}}
#doorOverlay .door-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.8;animation:doorTw 3s ease-in-out infinite}
@keyframes doorTw{0%,100%{opacity:.15}50%{opacity:.95}}
#doorOverlay .door-title{font-size:min(9vw,64px);letter-spacing:.12em;color:#fff;text-shadow:0 0 24px rgba(201,166,255,.9),0 0 60px rgba(255,143,190,.5);opacity:0;transform:translateY(18px);animation:doorTitle 1.2s cubic-bezier(.22,1,.36,1) .3s forwards}
#doorOverlay .door-sub{margin-top:14px;font-size:15px;color:#b9aef0;letter-spacing:.3em;opacity:0;animation:doorTitle 1.2s ease .9s forwards}
#doorOverlay .door-btn{margin-top:44px;padding:14px 40px;border-radius:999px;border:none;cursor:pointer;font-size:16px;color:#fff;background:linear-gradient(135deg,#b39dfb,#ff9ec9);box-shadow:0 0 30px rgba(179,157,251,.55);opacity:0;animation:doorTitle .8s ease 1.4s forwards;transition:.25s}
#doorOverlay .door-btn:hover{transform:scale(1.06);box-shadow:0 0 44px rgba(255,158,201,.8)}
@keyframes doorTitle{to{opacity:1;transform:translateY(0)}}
#doorOverlay .door-skip{position:absolute;top:26px;right:30px;color:#8f87c4;font-size:12px;cursor:pointer;padding:8px 12px;opacity:0;animation:doorTitle .6s ease 2s forwards}
/* 运势 */
.fortune-wrap{display:flex;flex-direction:column;align-items:center;gap:22px;padding:10px 0 6px}
.ft-slot{position:relative;width:190px;height:230px;perspective:900px}
.ft-slot .ft-jar{position:absolute;inset:0;transition:transform .8s cubic-bezier(.22,1,.36,1);transform-origin:50% 100%}
.ft-slot.shake .ft-jar{animation:ftShake .8s ease-in-out}
@keyframes ftShake{0%,100%{transform:rotate(0)}15%{transform:rotate(-7deg)}30%{transform:rotate(6deg)}45%{transform:rotate(-5deg)}60%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}
.ft-slot .ft-jar svg{width:100%;height:100%}
.ft-slot .ft-stick{position:absolute;left:50%;top:8%;width:46px;height:120px;transform:translateX(-50%);transition:transform .7s cubic-bezier(.2,1,.4,1)}
.ft-slot .ft-stick svg{width:100%;height:100%}
.ft-slot.draw .ft-stick{transform:translateX(130%) translateY(-30%) rotate(32deg)}
.ft-card{width:min(420px,92vw);min-height:170px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:20px;padding:24px 28px;text-align:center;box-shadow:var(--glow-pink);opacity:0;transform:rotateX(-40deg) translateY(16px);transition:.5s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}
.ft-card.show{opacity:1;transform:none}
.ft-card .ft-level{font-size:30px;font-weight:700;font-family:var(--font-display);letter-spacing:.06em}
.ft-card .ft-text{margin-top:12px;font-size:15px;color:var(--ink);line-height:1.8}
.ft-card .ft-note{margin-top:8px;font-size:12px;color:var(--ink-faint)}
.ft-card .ft-glow{position:absolute;inset:0;pointer-events:none;opacity:.5;background:radial-gradient(70% 90% at 50% 0%,rgba(255,224,138,.55),transparent 70%)}
.ft-card.big{background:linear-gradient(160deg,rgba(255,214,150,.4),rgba(255,255,255,.9) 55%)}
.ft-dots{display:flex;gap:10px;margin-top:4px}
.ft-dots i{width:15px;height:15px;border-radius:50%;border:2px solid var(--pink);opacity:.28;transition:.3s}
.ft-dots i.on{opacity:1;background:var(--pink);box-shadow:0 0 10px rgba(255,111,165,.7)}
.ft-hist{margin-top:8px;width:100%}
.ft-hist .ft-h{display:flex;align-items:center;gap:10px;padding:9px 2px;font-size:13px;color:var(--ink-dim);border-bottom:1px dashed var(--line)}
.ft-share-btn{margin-top:2px;padding:10px 22px;border-radius:999px;border:none;cursor:pointer;font-size:13px;color:#fff;background:linear-gradient(135deg,#ffd98a,#ff9ec9);box-shadow:0 4px 18px rgba(255,158,201,.4);transition:.25s}
.ft-share-btn:hover{transform:translateY(-2px)}
/* 应援弹幕墙 */
.barrage-wall{position:relative;height:150px;overflow:hidden;border-radius:16px;background:radial-gradient(120% 140% at 50% 0%,rgba(179,157,251,.18),rgba(255,143,190,.08) 60%,transparent);border:1px solid var(--line)}
.barrage-wall .bw-track{position:absolute;inset:0;display:flex;flex-direction:column;flex-wrap:wrap;gap:10px;padding:14px;align-content:flex-start}
.bw-item{max-width:88%;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.85);border:1px solid rgba(255,158,201,.35);font-size:13px;color:var(--ink);box-shadow:0 3px 12px rgba(255,158,201,.25);animation:bwFloat 10s linear infinite;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:6px;vertical-align:top}
.bw-ava{width:22px;height:22px;border-radius:50%;flex:0 0 auto;overflow:hidden;font-size:11px;line-height:22px;text-align:center;background:rgba(255,158,201,.18);color:#ff6fa5;position:relative;z-index:1}
.bw-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.bw-item b{color:#ff6fa5;margin-right:6px}
@keyframes bwFloat{from{transform:translateX(105%)}to{transform:translateX(-110%)}}
.bw-item:nth-child(odd){animation-duration:12s;animation-delay:-3s}
.bw-item:nth-child(3n){animation-duration:9s;animation-delay:-6s}
/* 成就 */
.achv-banner{position:fixed;top:74px;left:50%;transform:translateX(-50%) translateY(-30px);z-index:2600;display:flex;align-items:center;gap:12px;padding:13px 22px;border-radius:999px;background:linear-gradient(135deg,#7c5cf0,#ff9ec9);color:#fff;font-size:14px;box-shadow:0 8px 32px rgba(124,92,240,.5);opacity:0;transition:.45s cubic-bezier(.22,1,.36,1);pointer-events:none;font-family:var(--font-display)}
.achv-banner.show{opacity:1;transform:translateX(-50%) translateY(0)}
.achv-banner .ab-ic{font-size:20px}
.achv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:14px}
.achv-card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:16px;padding:16px 12px;text-align:center;transition:.25s;position:relative}
.achv-card.locked{opacity:.5;filter:grayscale(.85)}
.achv-card .ac-ic{font-size:26px;display:block;margin-bottom:6px}
.achv-card .ac-name{font-size:14px;font-weight:600;color:var(--ink)}
.achv-card .ac-desc{font-size:11px;color:var(--ink-faint);margin-top:4px;line-height:1.5}
.achv-card .ac-new{position:absolute;top:-7px;right:-7px;background:#ff6fa5;color:#fff;font-size:10px;padding:2px 8px;border-radius:999px;box-shadow:0 2px 8px rgba(255,111,165,.5)}
/* 勋章 */
.medal-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;font-size:12px;color:#fff;box-shadow:0 3px 12px rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.35)}
.medal-badge .mb-ic{font-size:14px}
/* 音乐频谱 */
.pb-spec{width:0;height:26px;overflow:hidden;transition:.35s;flex:none}
#playerBar.open .pb-spec{width:90px}
#pbSpec{display:block;width:90px;height:26px}
/* 活动横幅 */
#homeAct{position:relative}
.act-banner{display:flex;align-items:center;gap:12px;padding:13px 18px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#ff9ec9,#b39dfb 60%,#6fd3ff);box-shadow:0 6px 24px rgba(255,158,201,.35);margin-bottom:16px;animation:actIn .6s ease-out}
@keyframes actIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.act-banner .ab-ic{font-size:22px;flex:none}
.act-banner .ab-tx{flex:1}
.act-banner .ab-t{font-weight:700;font-size:15px;font-family:var(--font-display)}
.act-banner .ab-d{font-size:12px;opacity:.92;margin-top:2px;line-height:1.5}
.act-banner .ab-x{flex:none;cursor:pointer;opacity:.8;padding:4px 8px;font-size:13px}
.act-banner .ab-x:hover{opacity:1}
/* 后台主题/系统小样式 */
.adm-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.switch{position:relative;width:46px;height:26px;flex:none;cursor:pointer}
.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;border-radius:999px;background:rgba(167,139,250,.28);transition:.3s}
.switch i:before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:.3s}
.switch input:checked+i{background:linear-gradient(135deg,#b39dfb,#ff9ec9)}
.switch input:checked+i:before{transform:translateX(20px)}
#admTheme textarea,#admSys textarea{width:100%;min-height:110px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:13px;font-family:monospace;resize:vertical;outline:none}

.voice-card .vc-cover{width:100%;height:150px;object-fit:cover;border-radius:14px;margin-bottom:12px;display:block}
.voice-card .vc-cover.ph{background:linear-gradient(135deg,#8fd8ff,#b39dfb);display:flex;align-items:center;justify-content:center}
.voice-card .vc-cover.ph .vc-ic{width:52px;height:52px;background:rgba(255,255,255,.92);color:#7c5cf0;font-size:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600}
.voice-card .vc-body h3{font-size:15px;font-weight:600}
.voice-card .vc-body p{color:var(--ink-dim);font-size:12px;margin-top:4px;line-height:1.6}
.voice-card .vc-body{margin-bottom:10px}
.notice-bar .nb-img{width:44px;height:44px;border-radius:12px;object-fit:cover;flex:none}

.review-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.review-strip .rv-item{flex:1;min-width:110px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:var(--shadow-soft)}
.review-strip .rv-item i{display:block;font-style:normal;color:var(--ink-faint);font-size:11px;margin-bottom:3px}
.review-strip .rv-item b{font-size:15px;font-weight:700;color:var(--ink)}
#homeReviewNote{margin-top:8px;font-size:12px;color:var(--ink-faint)}


/* ============ 进度追踪 ============ */
.pg-card{border:1px solid var(--line);box-shadow:var(--glow-lav)}
.pg-item{position:relative;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:10px 0;transition:transform .2s ease-out,box-shadow .2s ease-out}
.pg-item:hover{transform:translateY(-3px);box-shadow:var(--glow-pink)}
.pg-tag{display:inline-block;font-size:11px;padding:2px 10px;border-radius:99px;margin-left:6px}
.pg-tag-todo{background:#ece6f5;color:#8a7ba6}
.pg-tag-doing{background:#e7f2ff;color:#4a9bd8}
.pg-tag-done{background:#fff3d9;color:#d9a545}
.pg-track{position:relative;height:12px;border-radius:99px;background:rgba(120,105,180,.14);overflow:hidden;margin:10px 0 4px}
.pg-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:99px;background:linear-gradient(90deg,#c9a6ff,#ff9ec2,#ffd98a);background-size:200% 100%;transition:width 1s cubic-bezier(.22,1,.36,1)}
.pg-track.lit .pg-fill{animation:pgShine 2.2s linear infinite}
.pg-track.full .pg-fill{background:linear-gradient(90deg,#ffd98a,#ffc67a,#ffe9b8);animation:pgShine 1.6s linear infinite;box-shadow:0 0 12px rgba(255,200,110,.65)}
@keyframes pgShine{0%{background-position:0% 0}100%{background-position:200% 0}}
.pg-note{font-size:12px;color:var(--ink-dim);margin:6px 0 2px;line-height:1.6}
.pg-upd{font-size:11px;color:var(--ink-faint)}
.pg-celebrate.lit{animation:pgPop .5s ease-out}
@keyframes pgPop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
.spark{position:fixed;width:8px;height:8px;border-radius:50%;background:var(--c);pointer-events:none;z-index:9999;animation:sparkFly .9s ease-out forwards}
@keyframes sparkFly{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.pg-group .pg-item{max-width:820px;margin-left:auto;margin-right:auto}

/* ============ 文章预览浮层 ============ */
.prev-overlay{position:fixed;inset:0;background:rgba(30,20,50,.55);backdrop-filter:blur(5px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;animation:pgFade .25s ease-out}
.prev-box{max-width:720px;width:100%;max-height:84vh;overflow:auto;background:var(--bg-card,#fff);border:1px solid var(--line);border-radius:18px;padding:20px 24px;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.prev-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.prev-x{border:none;background:none;font-size:16px;cursor:pointer;color:var(--ink-dim)}
.prev-x:hover{color:var(--lav)}
@keyframes pgFade{from{opacity:0}to{opacity:1}}

/* 画廊图片禁止保存 */
#galGrid img,.lightbox-img,#comicBox img{user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none}
#galGrid .g-item{cursor:pointer}

/* 小游戏平台 */
.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.game-card{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .2s ease-out,box-shadow .2s ease-out}
.game-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.25)}
.game-card img,.game-card .g-ph{width:100%;height:120px;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,#1b2450,#3b2f6b)}
.game-body{padding:12px 14px}
.game-body b{display:block;font-size:15px}
.game-body p{font-size:12px;color:var(--ink-faint);margin:4px 0 8px;min-height:32px}
.game-meta{font-size:12px;color:var(--ink-dim);margin-bottom:8px}
.pg-frame{width:100%;height:70vh;min-height:420px;border-radius:16px;overflow:hidden;background:#0b1026}
.pg-frame iframe{width:100%;height:100%;border:0}
.rank-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
.rank-table th,.rank-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line)}
.rank-table tr.crown td:first-child{color:#ffd76a;font-size:16px}
.file-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--ink-dim);cursor:pointer}
.file-btn:hover{border-color:var(--accent);color:var(--accent)}
.adm-list .ai-sub{padding:10px 14px;background:rgba(0,0,0,.12);border-radius:12px;margin:6px 0 10px}

/* auth-badge */
.auth-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-dim);padding:6px 10px;border-radius:999px;border:1px solid rgba(122,106,255,.25);background:rgba(122,106,255,.08);cursor:pointer;transition:.25s}
.auth-badge:hover{background:rgba(122,106,255,.18);color:var(--ink)}
.auth-badge svg{width:15px;height:15px}
.auth-badge span{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-tabs{display:flex;gap:8px;background:rgba(122,106,255,.07);border-radius:999px;padding:4px;margin-top:4px}
.auth-tab{flex:1;border:0;background:transparent;color:var(--ink-faint);font-size:13px;padding:7px 0;border-radius:999px;cursor:pointer;transition:.25s}
.auth-tab.active{background:linear-gradient(135deg,#ff8fc0,#7a6aff);color:#fff;font-weight:500;box-shadow:0 3px 10px rgba(122,106,255,.35)}


/* ===== 点歌墙 ===== */
.song-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.sw-card{position:relative;background:linear-gradient(150deg,rgba(255,255,255,.92),rgba(255,243,250,.9));border:1px solid rgba(255,182,222,.35);border-radius:18px;padding:16px 18px;box-shadow:0 6px 18px rgba(198,128,255,.1);transition:transform .25s ease,box-shadow .25s ease}
.sw-card:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 10px 26px rgba(198,128,255,.22)}
.sw-card.sw-done{background:linear-gradient(150deg,#fff8e6,#fff1d6);border-color:rgba(255,193,84,.6);box-shadow:0 8px 22px rgba(255,193,84,.28)}
.sw-card.sw-done::after{content:'';position:absolute;top:-8px;right:-8px;width:34px;height:34px;background:radial-gradient(circle,rgba(255,214,120,.7),rgba(255,214,120,0) 70%);border-radius:50%;animation:swSpark 2.2s ease-in-out infinite}
@keyframes swSpark{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}
.sw-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sw-top b{font-family:var(--font-display,inherit);font-weight:700;font-size:15px;color:var(--ink,#3a3552)}
.sw-art{font-size:12px;color:var(--ink-faint,#9a94b8)}
.sw-badge{margin-left:auto;font-size:11px}
.sw-pending{font-size:11px;color:#f5a95c;margin-left:auto;border:1px solid rgba(245,169,92,.4);padding:2px 8px;border-radius:20px;background:rgba(245,169,92,.08)}
.sw-meta{font-size:12px;color:var(--ink-dim,#7c76a0);margin-top:8px}
.sw-note{font-size:12px;color:var(--ink-faint,#9a94b8);margin-top:6px;line-height:1.6;font-style:italic}

/* 云朵数量大数字 */
.cloud-count{flex:1;min-width:220px;background:linear-gradient(135deg,var(--card),rgba(255,255,255,.4));border:1px solid var(--line);border-radius:20px;padding:22px 18px;text-align:center;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.cloud-count b{font-family:var(--font-display);font-weight:400;font-size:44px;line-height:1;background:linear-gradient(120deg,#ff8fbe,#b39dfb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cloud-count span{display:block;font-size:12px;color:var(--ink-dim);margin-top:8px}
.cloud-count::after{content:'';position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,rgba(255,158,194,.25),transparent 70%)}
/* 守护榜前三王冠 */
.guard-item .g-rank.crown{background:linear-gradient(135deg,#ffd98a,#f5a95c);box-shadow:0 4px 14px rgba(245,169,92,.4);font-size:16px}

/* 云朵数量列表（昵称 + 云朵数） */
.cloud-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.cloud-item{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 18px;box-shadow:var(--shadow-soft);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
.cloud-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,143,190,.18)}
.cloud-item.first{border-color:rgba(255,180,120,.55);background:linear-gradient(135deg,var(--card),rgba(255,224,178,.35))}
.cloud-item .c-nick{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}
.cloud-item .c-num{font-family:var(--font-display);font-weight:600;font-size:16px;background:linear-gradient(120deg,#ff8fbe,#b39dfb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}
.cloud-item .c-num i{font-style:normal;font-size:11px;color:var(--ink-faint);-webkit-text-fill-color:var(--ink-faint)}

/* ===== 动态卡片 v2：头像/昵称/个签/方形图/点赞评论 ===== */
.moment-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px 18px 14px;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease}
.moment-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(179,120,180,.16)}
.moment-card .mo-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.moment-card .mo-ava{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;border:2px solid rgba(255,158,201,.45);box-shadow:0 2px 8px rgba(255,158,201,.25)}
.moment-card .mo-who{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.moment-card .mo-nick{font-size:15px;font-weight:700;color:var(--ink)}
.moment-card .mo-sig{font-size:12px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.moment-card .mo-pin{margin-left:auto;flex:none;font-size:11px;color:#fff;background:linear-gradient(135deg,#ff9ec9,#b39dfb);padding:2px 10px;border-radius:999px}
.moment-card .mo-text{font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0 0 12px;color:var(--ink)}
.moment-card .mo-grid{display:grid;gap:8px;margin-bottom:12px}
.moment-card .mo-grid.g1{grid-template-columns:minmax(0,1fr);max-width:420px}
.moment-card .mo-grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.moment-card .mo-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.moment-card .mo-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;cursor:zoom-in;background:rgba(179,157,251,.12);box-shadow:0 2px 10px rgba(120,90,160,.12);transition:transform .2s ease}
.moment-card .mo-grid img:hover{transform:scale(1.015)}
.moment-card .mo-foot{display:flex;align-items:center;gap:6px;padding-top:10px;border-top:1px dashed var(--line)}
.moment-card .mo-act{display:inline-flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;color:var(--ink-dim);font-size:13px;padding:6px 10px;border-radius:999px;transition:background .2s,color .2s,transform .15s}
.moment-card .mo-act:hover{background:rgba(255,158,201,.12);color:#ff6fa5}
.moment-card .mo-act:active{transform:scale(.94)}
.moment-card .mo-act.on{color:#ff6fa5}
.moment-card .mo-act.on .mo-ic{animation:moPop .35s ease}
@keyframes moPop{0%{transform:scale(.6)}55%{transform:scale(1.25)}100%{transform:scale(1)}}
.moment-card .mo-ic{display:inline-flex}
.moment-card .mo-cnt{min-width:14px;text-align:left}
.moment-card .mo-time{margin-left:auto;color:var(--ink-faint);font-size:12px}
.moment-card .mo-cmt{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.moment-card .mo-cmt-list{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow:auto;margin-bottom:12px}
.moment-card .mo-cmt-item{display:flex;flex-wrap:wrap;gap:2px 8px;background:rgba(179,157,251,.07);border:1px solid rgba(179,157,251,.12);border-radius:12px;padding:9px 12px}
.moment-card .mo-cmt-item b{font-size:13px;color:#a77bd8}
.moment-card .mo-cmt-item p{font-size:14px;line-height:1.6;width:100%;margin:0;color:var(--ink);word-break:break-word}
.moment-card .mo-cmt-item span{font-size:11px;color:var(--ink-faint);margin-left:auto}
.moment-card .mo-cmt-empty{color:var(--ink-faint);font-size:13px;text-align:center;padding:8px 0}
.moment-card .mo-cmt-in{display:flex;gap:8px}
.moment-card .mo-cmt-in input{flex:1;min-width:0;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:13px;color:var(--ink);outline:none;transition:border-color .2s}
.moment-card .mo-cmt-in input:focus{border-color:#ff9ec9}
html[data-theme="dark"] .moment-card{background:#1b1840;border-color:rgba(179,157,251,.2)}
html[data-theme="dark"] .moment-card .mo-cmt-item{background:rgba(179,157,251,.1)}
html[data-theme="dark"] .moment-card .mo-cmt-in input{background:rgba(30,27,72,.9);color:#eee;border-color:rgba(179,157,251,.25)}

/* 月度礼物发放弹窗 */
.mc-gift.sel{border-color:#ff9ec7!important;background:rgba(255,158,199,.10)!important;box-shadow:0 0 0 1px rgba(255,158,199,.35)}

/* ===== admin.html 独立后台 ===== */
body[data-admin-page]{background:linear-gradient(180deg,#fff5f8,#efe9ff);min-height:100vh}
body[data-admin-page] #loader{display:none}
body[data-admin-page] .modal{overflow:auto}
body[data-admin-page] .modal-box.adm-full{width:min(1500px,96vw)!important;max-width:none!important;max-height:96vh!important;overflow:auto;margin:2vh auto}
body[data-admin-page] .adm-tabs{flex-wrap:wrap}


/* ===== 主页按钮分组 + 合并大按钮 ===== */
.fc-group-title{font-size:13px;letter-spacing:.06em;color:var(--ink-dim);margin:24px 0 10px;font-weight:500}
.fc-group + .fc-group{margin-top:4px}
.feature-big{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:18px;cursor:pointer;overflow:hidden}
.feature-big .f-icons{display:flex;gap:10px}
.feature-big .f-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:22px;color:#fff;box-shadow:0 6px 20px rgba(255,143,190,.26);margin:0}
.feature-big .f-text{flex:1;min-width:0}
.feature-big .f-text h3{font-family:var(--font-display);font-size:19px;font-weight:400;margin:0 0 4px}
.feature-big .f-text p{font-size:13px;color:var(--ink-dim);margin:0;line-height:1.6}
.feature-big .f-go{position:static;opacity:.7;font-size:22px;color:var(--ink-faint);transition:.3s}
.feature-big:hover .f-go{opacity:1;color:var(--pink);transform:translateX(4px)}
/* 与云见面 · 约会大卡 */
.meet-date-card{position:relative;display:flex;align-items:center;gap:18px;padding:26px 28px;border-radius:20px;cursor:pointer;overflow:hidden;border:1px solid rgba(255,120,170,.35);background:linear-gradient(120deg,rgba(255,111,165,.14),rgba(168,85,247,.12) 55%,rgba(255,111,165,.16));box-shadow:0 10px 34px rgba(255,80,150,.18),inset 0 0 42px rgba(255,150,190,.10)}
.meet-date-card::before{content:'';position:absolute;inset:-40% -20% auto;height:80%;background:radial-gradient(closest-side,rgba(255,140,190,.28),transparent 70%);pointer-events:none}
.meet-date-icon{width:56px;height:56px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:24px;background:linear-gradient(135deg,#ff6fa5,#a855f7);box-shadow:0 8px 26px rgba(255,90,160,.42);animation:meetDatePulse 2.4s ease-in-out infinite}
.meet-date-text{flex:1;min-width:0;position:relative;z-index:1}
.meet-date-text h3{font-family:var(--font-display);font-size:24px;font-weight:400;margin:0 0 6px;background:linear-gradient(120deg,#ff5d94,#c26bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}
.meet-date-text p{font-size:14px;color:var(--ink-dim);margin:0;line-height:1.7}
.meet-date-btn{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;color:#fff;font-size:14px;background:linear-gradient(135deg,#ff6fa5,#b14bf0);box-shadow:0 8px 22px rgba(255,90,160,.38);transition:.3s;position:relative;z-index:1}
.meet-date-arr{transition:.3s}
.meet-date-card:hover .meet-date-btn{transform:translateY(-2px);box-shadow:0 12px 30px rgba(255,90,160,.52)}
.meet-date-card:hover .meet-date-arr{transform:translateX(5px)}
@keyframes meetDatePulse{0%,100%{box-shadow:0 8px 26px rgba(255,90,160,.42)}50%{box-shadow:0 10px 36px rgba(255,90,160,.68)}}
@media(max-width:560px){.meet-date-card{flex-wrap:wrap;gap:12px;padding:20px}.meet-date-btn{width:100%;justify-content:center}}
/* 与云见面 · 设置区三栏卡片（自动适应容器宽度，窄了自动堆叠一列） */
.meet-set-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;align-items:start}
.msc{background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.msc-t{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:15px;letter-spacing:.4px;color:var(--ink)}
.msc-ic{width:28px;height:28px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;font-size:14px;background:linear-gradient(135deg,rgba(255,111,165,.22),rgba(168,85,247,.22));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.msc-q{margin-left:auto;font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--pink);background:rgba(255,111,165,.12);padding:3px 10px;border-radius:999px;white-space:nowrap}
.msc-b{display:flex;flex-direction:column;gap:8px}
.msc-l{font-size:12px;color:var(--ink-dim);margin-top:2px}
.msc-b .meet-prefs{display:flex;flex-wrap:wrap;gap:6px}
.msc-b .meet-pref{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);font-size:13px;cursor:pointer;transition:.25s;color:var(--ink-dim)}
.msc-b .meet-pref.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,#ff6fa5,#a855f7);box-shadow:0 6px 18px rgba(255,90,160,.3)}
.msc-b .meet-keyrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.msc-b .meet-keyrow input{flex:1 1 140px;min-width:0}
.msc-b select{flex:0 0 auto}
/* 专属回忆列表 */
.meet-mems{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.meet-mem{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg-card);font-size:13px}
.meet-mem-cat{flex:0 0 auto;padding:3px 9px;border-radius:999px;font-size:12px;color:#fff;background:linear-gradient(135deg,#ff6fa5,#a855f7)}
.meet-mem-txt{flex:1;min-width:0;color:var(--ink);line-height:1.5;word-break:break-word}
.meet-mem-del{flex:0 0 auto;width:24px;height:24px;border:none;border-radius:8px;background:rgba(255,90,130,.12);color:#ff5d94;cursor:pointer;font-size:12px;line-height:1}
.meet-mem-del:hover{background:rgba(255,90,130,.24)}
.feature-big::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#ffd98a,#ff6fa5,#6fd3ff,transparent)}
.feature-big:hover{transform:translateY(-3px)}

.modal-close.quit{width:auto;min-width:78px;border-radius:999px;font-size:13px;padding:0 14px;line-height:36px;font-weight:500}

/* ===== 电台文本播放器 ===== */
.vc-ctrl{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;background:rgba(127,127,255,.10);border:1px solid rgba(127,127,255,.16);border-radius:12px}
.vc-play{flex:0 0 auto;width:34px;height:34px;border:none;border-radius:50%;background:linear-gradient(135deg,#ff8fd0,#9ad7ff);color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(255,111,165,.35);transition:transform .2s}
.vc-play:hover{transform:scale(1.08)}
.vc-bar{flex:1;height:5px;background:rgba(127,127,255,.18);border-radius:99px;cursor:pointer;position:relative}
.vc-prog{height:100%;width:0;background:linear-gradient(90deg,#ff8fd0,#9ad7ff);border-radius:99px;transition:width .2s linear}
.vc-time{font-size:11px;color:var(--ink-faint);min-width:76px;text-align:right;font-variant-numeric:tabular-nums}
.vc-lyric{max-height:150px;overflow-y:auto;margin-top:8px;padding:6px 10px;background:rgba(127,127,255,.07);border:1px solid rgba(127,127,255,.12);border-radius:12px;scroll-behavior:smooth}
.vc-lyric::-webkit-scrollbar{width:4px}
.vc-lyric::-webkit-scrollbar-thumb{background:rgba(127,127,255,.3);border-radius:99px}
.vc-line{padding:5px 8px;font-size:13px;line-height:1.65;color:var(--ink-dim);border-radius:8px;cursor:pointer;transition:background .25s,color .25s}
.vc-line:hover{background:rgba(255,255,255,.06)}
.vc-line.cur{color:#fff;font-weight:700;background:linear-gradient(90deg,rgba(255,111,165,.26),rgba(154,215,255,.26));text-shadow:0 0 8px rgba(255,143,208,.35)}
html[data-theme="dark"] .vc-ctrl,html[data-theme="dark"] .vc-lyric{background:rgba(32,28,66,.6);border-color:rgba(127,127,255,.2)}
html[data-theme="dark"] .vc-line.cur{background:linear-gradient(90deg,rgba(255,111,165,.3),rgba(154,215,255,.3))}
html[data-theme="dark"] .vc-bar{background:rgba(127,127,255,.28)}

/* ============ 与云见面（Live2D 互动） ============ */
.meet-shell{display:flex;gap:16px;align-items:stretch;padding:16px}
.meet-stage{flex:2.35;min-width:0;display:flex;flex-direction:column}
.meet-stage-in{position:relative;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#1b1633 0%,#241d46 55%,#31245e 100%);box-shadow:inset 0 0 60px rgba(124,92,240,.18);min-height:420px;display:flex;align-items:flex-end;justify-content:center}
/* 舞台装饰层 */
.meet-decor-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;pointer-events:none;display:none}
.meet-stage-in>#meetCanvas{position:relative;z-index:1}
.meet-decor-fg{position:absolute;inset:0;background-size:cover;background-position:center bottom;z-index:3;pointer-events:none;display:none}
#meetCanvas{width:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}
#meetCanvas canvas{display:block;max-width:100%}
.meet-mood{position:absolute;top:12px;left:12px;padding:6px 12px;border-radius:999px;background:rgba(20,14,40,.62);color:#ffd9ea;font-size:12px;letter-spacing:.3px;backdrop-filter:blur(6px);box-shadow:0 2px 10px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);z-index:2}
/* 说话气泡 */
.meet-bubble{position:absolute;right:8%;top:12%;max-width:220px;background:rgba(255,255,255,.97);border:1.5px solid #f6c4db;border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:13px;line-height:1.55;color:#58404f;box-shadow:0 8px 24px rgba(198,120,168,.30);opacity:0;transform:translateY(8px) scale(.97);pointer-events:none;transition:opacity .35s,transform .35s;z-index:30}
.meet-bubble.show{opacity:1;transform:translateY(0) scale(1)}
.meet-cams{position:absolute;top:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:70%;z-index:4}
.meet-cams .meet-cams-lb,.meet-cams .meet-cams-sep{font-size:11px;color:#c9a7d8;align-self:center;padding:0 2px;opacity:.85;white-space:nowrap}
.meet-cams .meet-cams-sep{margin-left:6px}
.meet-cam{border:1px solid rgba(255,255,255,.14);background:rgba(20,14,40,.55);color:#e8d5f2;font-size:11px;padding:3px 9px;border-radius:999px;cursor:pointer;backdrop-filter:blur(6px);transition:all .18s;line-height:1.4}
.meet-cam:hover{border-color:#f9a8d4;color:#ffd9ea;transform:translateY(-1px)}
.meet-cam.on{background:linear-gradient(135deg,#ff7eb6,#c86bdd);border-color:transparent;color:#fff;box-shadow:0 2px 10px rgba(255,126,182,.35)}
.meet-l2d-err{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;color:rgba(255,255,255,.75);font-size:13px;line-height:1.7}
.meet-l2d-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ffd9ea;font-size:14px;letter-spacing:.4px;animation:meetPulse 1.4s ease-in-out infinite}
@keyframes meetPulse{0%,100%{opacity:.55}50%{opacity:1}}
.meet-hint{margin-top:10px;text-align:center;color:var(--ink-faint);font-size:12px}
.meet-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;justify-content:center}
.meet-q{padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(25,15,50,.5);color:#f3e8ff;font-size:12px;cursor:pointer;transition:all .2s;backdrop-filter:blur(8px);box-shadow:0 3px 14px rgba(20,10,50,.25)}
.meet-q:hover{border-color:var(--pink,#ff6fa5);color:#ffd9ea;transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,111,165,.3)}
.meet-panel{flex:1;min-width:330px;max-width:430px;display:flex;flex-direction:column;gap:10px}
.meet-set{background:transparent;border:none;border-radius:0;padding:0}
/* 云茉设定 · 折叠面板 */
.meet-set-fold{background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(20,10,50,.18)}
.meet-set-fold-t{width:100%;display:flex;align-items:center;gap:9px;padding:12px 15px;background:transparent;border:none;color:var(--ink);font-family:var(--font-display);font-size:14px;letter-spacing:.4px;cursor:pointer;text-align:left;transition:background .2s}
.meet-set-fold-t:hover{background:rgba(255,255,255,.045)}
.fold-ic{width:26px;height:26px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;font-size:13px;background:linear-gradient(135deg,rgba(255,111,165,.25),rgba(168,85,247,.25));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.fold-sub{margin-left:auto;font-family:var(--font-body);font-size:11px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%}
.fold-arrow{flex:0 0 auto;font-size:12px;color:var(--ink-dim);transition:transform .3s}
.meet-set-fold-t.open .fold-arrow{transform:rotate(180deg)}
.meet-set-fold-b{padding:13px 14px 14px;border-top:1px dashed var(--line);display:none}
.meet-set-fold-b.open{display:block}
.meet-set-grid{display:flex;flex-direction:column;gap:10px}
.meet-kc label{display:block;font-size:12px;color:var(--ink-dim);margin-bottom:6px}
.meet-keyrow{display:flex;gap:8px}
.meet-keyrow input{flex:1;min-width:0}
.meet-prefs{display:flex;flex-wrap:wrap;gap:7px}
.meet-pref{padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:12px;cursor:pointer;transition:all .2s}
.meet-pref.on{border-color:var(--pink,#ff6fa5);background:linear-gradient(135deg,rgba(255,111,165,.18),rgba(124,92,240,.18));color:var(--pink,#ff6fa5)}
.meet-quota{font-size:13px;color:var(--ink)}
.meet-quota b{color:var(--pink,#ff6fa5);font-size:15px}
.meet-set-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--ink-dim)}
.meet-log{flex:1;min-height:300px;max-height:460px;overflow-y:auto;background:var(--card2,var(--card));border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:9px}
.meet-msg{display:flex;flex-direction:column;max-width:82%;padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.65;word-break:break-word}
.meet-msg.user{align-self:flex-end;background:linear-gradient(135deg,#ff6fa5,#e0559a);color:#fff;border-bottom-right-radius:4px}
.meet-msg.ai{align-self:flex-start;background:var(--card3,var(--card));border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px}
.meet-msg.sys{align-self:center;background:transparent;color:var(--ink-faint);font-size:12px;padding:4px 10px}
.meet-msg .memo{align-self:flex-start;font-size:11px;color:var(--pink,#ff6fa5);margin-bottom:3px;letter-spacing:.3px}
.meet-inrow{display:flex;gap:8px;align-items:center}
.meet-inrow input{flex:1;min-width:0}
.meet-mic{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex:none}
.meet-mic svg{width:18px;height:18px}
.meet-mic:hover{border-color:var(--pink,#ff6fa5);color:var(--pink,#ff6fa5)}
.meet-mic.on{background:linear-gradient(135deg,#ff6fa5,#e0559a);color:#fff;border-color:transparent}
@media (max-width:860px){
  .meet-shell{flex-direction:column}
  .meet-stage-in{min-height:340px}
  .meet-panel{min-width:0}
}
/* 后台：与云见面 */
.adm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){.adm-grid2{grid-template-columns:1fr}}
.adm-meet-model{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--card)}
.adm-meet-model .mt-name{font-weight:600;min-width:110px}
.adm-meet-model .mt-enrow{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-dim)}
.adm-meet-model .mt-path{flex:1;min-width:140px;font-size:11px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============ 云朵许愿墙 ============ */
.wish-form{max-width:560px}
.wish-input-row{display:flex;gap:10px;flex-wrap:wrap}
.wish-input-row input{flex:1;min-width:220px}
.wish-sky{margin-top:18px;min-height:120px}
.wish-cloud{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.wish-sign{position:relative;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;transition:transform .25s,box-shadow .25s;animation:wishFloat 4.5s ease-in-out infinite;animation-delay:calc(var(--wi,0)*.7s)}
.wish-sign:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.08)}
.wish-sign.lit{border-color:var(--pink)}
@keyframes wishFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.ws-paper{font-size:14px;line-height:1.7;min-height:64px;color:var(--ink)}
.ws-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}
.ws-lights{font-size:12px;color:var(--pink);font-weight:600}
.wish-empty{text-align:center;padding:34px 20px}
.we-sign{display:flex;gap:12px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}
.we-sign span{display:inline-block;padding:8px 16px;border:1px dashed var(--pink);border-radius:999px;color:var(--pink);font-size:14px;background:rgba(255,111,165,.06);animation:wishFloat 4s ease-in-out infinite;animation-delay:calc(var(--wi,0)*.5s)}
/* 首页飘灯 */
.wish-home-card{cursor:pointer;overflow:hidden}
.wish-home-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.wish-sky-home{display:flex;gap:16px;justify-content:center;padding:16px 6px 10px;flex-wrap:wrap}
.wh-lantern{display:flex;flex-direction:column;align-items:center;width:132px;animation:lanternFloat 5.5s ease-in-out infinite;animation-delay:calc(var(--wi,0)*.9s)}
@keyframes lanternFloat{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-9px) rotate(-1.6deg)}75%{transform:translateY(-4px) rotate(1.4deg)}}
.wl-cord{width:1px;height:22px;background:linear-gradient(var(--ink-faint),transparent)}
.wl-body{width:100%;padding:12px 10px;border-radius:10px 10px 12px 12px;background:linear-gradient(160deg,rgba(255,111,165,.16),rgba(255,198,122,.14));border:1px solid rgba(255,111,165,.35);font-size:12.5px;line-height:1.6;color:var(--ink);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;box-shadow:0 4px 14px rgba(255,111,165,.10)}
.wl-lights{font-size:11px;color:var(--pink);margin-top:6px;font-weight:600}
/* ============ 云朵档案（好感度） ============ */
.loy-hero{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.lh-left{flex:1;min-width:260px}
.lh-level{display:inline-block;padding:4px 12px;border-radius:999px;background:linear-gradient(135deg,#ff6fa5,#a78bfa);color:#fff;font-size:13px;font-weight:600;margin-bottom:10px}
.lh-nick{font-family:var(--font-display);font-size:24px;margin-bottom:6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lh-tag{font-size:11px;font-weight:400;color:var(--ink-faint);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.lh-aff{font-size:14px;color:var(--ink-dim);margin-bottom:8px}
.lh-aff b{color:var(--pink);font-size:20px}
.lh-next{font-size:12px;color:var(--ink-faint)}
.lh-max{font-size:12px;color:var(--pink)}
.lh-bar{height:8px;border-radius:999px;background:var(--line);overflow:hidden;max-width:420px}
.lh-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff6fa5,#a78bfa);transition:width .6s}
.lh-titles{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}
.loy-title-chip{font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink-dim);background:var(--card)}
.lh-right{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:210px}
/* ===== 我的装扮：头像与装饰应用 ===== */
.lh-ava{width:84px;height:84px;border-radius:50%;overflow:visible;position:relative;flex-shrink:0}
.lh-ava img,.my-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.lh-ava-ph{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:26px;background:linear-gradient(135deg,#ff6fa5,#a78bfa);color:#fff}
.my-ava{width:64px;height:64px;border-radius:50%;position:relative;flex-shrink:0}
.deco-ava{position:relative;z-index:0}
.deco-ava::after{content:'';position:absolute;inset:-5px;border-radius:50%;pointer-events:none;z-index:1}
/* 头像框（元素级：只套在佩戴者自己的头像上，别人可见） */
.deco-ava[data-avatar-id="lv4"]::after{background:conic-gradient(from 0deg,#a78bfa,#f0abfc,#818cf8,#a78bfa);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));animation:spinSlow 6s linear infinite}
.deco-ava[data-avatar-id="avatarframe"]::after{border:3px solid #f6c453;box-shadow:0 0 14px rgba(246,196,83,.7)}
.deco-ava[data-avatar-id="avatarframe"] img{box-shadow:0 0 0 3px #fff8e6}
.deco-ava[data-avatar-id="lv4"] img{box-shadow:0 0 0 2px rgba(167,139,250,.6)}
.deco-ava[data-avatar-id="avatarframe"]::before,.deco-ava[data-avatar-id="avatar_heart"]::before,.deco-ava[data-avatar-id="avatar_star"]::before{content:'';position:absolute;inset:-16px;border-radius:50%;background:var(--d-avatar-img,transparent) center/contain no-repeat;z-index:1;pointer-events:none;-webkit-mask:radial-gradient(closest-side,transparent 72%,#000 73%);mask:radial-gradient(closest-side,transparent 72%,#000 73%)}
.deco-ava[data-avatar-id="avatar_rabbit"]::before,.deco-ava[data-avatar-id="avatar_crown"]::before,.deco-ava[data-avatar-id="avatar_catear"]::before{content:'';position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle at center,rgba(255,182,219,0) 72%,rgba(255,158,201,.55) 79%,rgba(255,158,201,.25) 88%,rgba(255,158,201,0) 97%),var(--d-avatar-img,transparent) center/contain no-repeat;z-index:1;pointer-events:none}
/* 小头像（留言/评论/弹幕 22-34px）装饰贴边，避免空隙 */
.gb-av.deco-ava[data-avatar-id="avatar_rabbit"]::before,.gb-av.deco-ava[data-avatar-id="avatar_crown"]::before,.gb-av.deco-ava[data-avatar-id="avatar_catear"]::before,.mo-c-ava.deco-ava[data-avatar-id="avatar_rabbit"]::before,.mo-c-ava.deco-ava[data-avatar-id="avatar_crown"]::before,.mo-c-ava.deco-ava[data-avatar-id="avatar_catear"]::before,.bw-ava.deco-ava[data-avatar-id="avatar_rabbit"]::before,.bw-ava.deco-ava[data-avatar-id="avatar_crown"]::before,.bw-ava.deco-ava[data-avatar-id="avatar_catear"]::before{inset:-4px}
.deco-ava[data-avatar-id="avatar_halo"]::before{content:'';position:absolute;inset:-16px;border-radius:50%;background:var(--d-avatar-img,transparent) center/contain no-repeat;z-index:-1;pointer-events:none}
@keyframes spinSlow{to{transform:rotate(360deg)}}
.loy-banner{margin-top:10px;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(90deg,#ff6fa5,#a78bfa,#818cf8);box-shadow:0 4px 16px rgba(255,111,165,.35);width:max-content;animation:softGlow 2.4s ease-in-out infinite}
@keyframes softGlow{0%,100%{box-shadow:0 4px 14px rgba(255,111,165,.3)}50%{box-shadow:0 4px 22px rgba(167,139,250,.55)}}
.my-ava,.lh-ava{overflow:visible}
/* 弹幕气泡/横幅：弹幕墙条目（佩戴者本人的弹幕，别人可见） */
.bw-item{position:relative}
.bw-item[data-bubble-id="lv9"]{background:linear-gradient(135deg,rgba(167,139,250,.18),rgba(255,111,165,.12));border:1px solid rgba(167,139,250,.3);border-radius:16px;padding:4px 10px}
.bw-item[data-bubble-id="bubble"]{background:linear-gradient(135deg,#fff,#fdf2ff);border:2px solid #ffc2e2;border-radius:18px;padding:4px 10px;box-shadow:0 4px 14px rgba(255,111,165,.14)}
html[data-theme="dark"] .bw-item[data-bubble-id="bubble"]{background:linear-gradient(135deg,#3a2a3f,#4a2f45);border-color:#8a5a7a}
.bw-item[data-bubble-id="bubble"]::after,.bw-item[data-bubble-id="bubble_cloud"]::after{content:'';position:absolute;inset:0;border-radius:18px;background:var(--d-bubble-img,transparent) center/cover no-repeat;opacity:.3;pointer-events:none;z-index:0}
.bw-item[data-bubble-id="bubble"]>*{position:relative;z-index:1}
.bw-item[data-bubble-id="bubble_cat"]::after,.bw-item[data-bubble-id="bubble_rainbow"]::after{content:'';position:absolute;inset:-2px;border-radius:18px;background:var(--d-bubble-img,transparent) center/100% 100% no-repeat;opacity:.95;pointer-events:none;z-index:0}
.bw-item[data-bubble-id="bubble_cat"],.bw-item[data-bubble-id="bubble_rainbow"]{border-radius:18px;padding:4px 10px;box-shadow:0 4px 14px rgba(255,111,165,.16)}
html[data-theme="dark"] .bw-item[data-bubble-id="bubble_cat"],html[data-theme="dark"] .bw-item[data-bubble-id="bubble_rainbow"]{border-color:#8a5a7a}
.bw-item[data-banner-id="banner"]::before,.bw-item[data-banner-id="banner_glow"]::before{content:'';display:inline-block;width:16px;height:16px;margin-right:6px;vertical-align:-3px;background:var(--d-banner-img,linear-gradient(135deg,#ff6fa5,#a78bfa)) center/contain no-repeat;border-radius:4px}
.bw-item[data-banner-id="banner"]{font-weight:700}
/* 留言板底板（留言条目级：佩戴者本人的留言带底板，别人可见） */
.gb-item[data-board-id="lv6"]{background:linear-gradient(180deg,rgba(167,139,250,.1),rgba(129,140,248,.06));border:1px solid rgba(129,140,248,.22);border-radius:18px;position:relative}
.gb-item[data-board-id="msgboard"]{background:repeating-linear-gradient(45deg,rgba(255,194,226,.16),rgba(255,194,226,.16) 12px,transparent 12px,transparent 24px);border:1px solid rgba(255,194,226,.4);border-radius:18px;position:relative}
.gb-item[data-board-id="msgboard"]::after,.gb-item[data-board-id="board_galaxy"]::after{content:'';position:absolute;inset:0;background:var(--d-board-img,transparent) center/cover no-repeat;opacity:.25;pointer-events:none;border-radius:18px;z-index:0}
.gb-item[data-board-id="lv6"]::after,.gb-item[data-board-id="msgboard"]::after{z-index:0}
/* 评论框（评论条目级：佩戴者本人的评论带框，别人可见） */
.mo-cmt-item[data-comment-id="lv8"]{border:2px solid #818cf8;box-shadow:0 0 0 3px rgba(129,140,248,.18);border-radius:12px;padding:6px 10px}
.mo-cmt-item[data-comment-id="cmtframe"],.mo-cmt-item[data-comment-id="comment_lace"]{border:2px solid #ff9ecb;background:#fff8fb;border-radius:14px;padding:6px 10px;position:relative}
.mo-cmt-item[data-comment-id="cmtframe"]::after,.mo-cmt-item[data-comment-id="comment_lace"]::after{content:'';position:absolute;inset:-6px;background:var(--d-comment-img,transparent) center/100% 100% no-repeat;opacity:.85;pointer-events:none;border-radius:12px;-webkit-mask:linear-gradient(#000,#000) top/100% 11px no-repeat,linear-gradient(#000,#000) bottom/100% 11px no-repeat,linear-gradient(#000,#000) left/11px 100% no-repeat,linear-gradient(#000,#000) right/11px 100% no-repeat;mask:linear-gradient(#000,#000) top/100% 11px no-repeat,linear-gradient(#000,#000) bottom/100% 11px no-repeat,linear-gradient(#000,#000) left/11px 100% no-repeat,linear-gradient(#000,#000) right/11px 100% no-repeat}
.mo-cmt-item[data-comment-id="comment_flower"]{border:2px solid #ffc9e8;background:#fff8fb;border-radius:14px;padding:6px 10px;position:relative}
.mo-cmt-item[data-comment-id="comment_flower"]::after{content:'';position:absolute;inset:-10px;background:var(--d-comment-img,transparent) center/100% 100% no-repeat;opacity:.92;pointer-events:none;border-radius:14px}
body[data-d-cardbg="lv11"] .loy-hero{background:linear-gradient(135deg,rgba(129,140,248,.14),rgba(240,171,252,.12),rgba(255,111,165,.1));border-radius:20px}
body[data-d-cardframe="lv12"] .loy-hero{border:2px solid rgba(167,139,250,.5);box-shadow:0 0 0 3px rgba(255,111,165,.18),0 10px 34px rgba(129,140,248,.22);border-radius:20px}
body[data-d-banner="banner"] .loy-banner::before{content:'';display:inline-block;width:18px;height:18px;margin-right:8px;vertical-align:-3px;background:var(--d-banner-img,linear-gradient(135deg,#ff6fa5,#a78bfa)) center/contain no-repeat;border-radius:4px}
body[data-d-cardbg="cardbg"] .loy-hero,body[data-d-cardbg="cardbg_sunset"] .loy-hero,body[data-d-cardbg="cardbg_cloud"] .loy-hero{background:var(--d-cardbg-img,linear-gradient(135deg,rgba(255,194,226,.3),rgba(167,139,250,.2))) center/cover;border-radius:20px}
body[data-d-cardframe="cardFrame"] .loy-hero::after,body[data-d-cardframe="cardframe_gold"] .loy-hero::after,body[data-d-cardframe="cardframe_dream"] .loy-hero::after{content:'';position:absolute;inset:0;background:var(--d-cardframe-img,transparent) center/100% 100% no-repeat;pointer-events:none;border-radius:20px}
.deco-hero{position:relative}
.gb-av-img img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.gb-av-img{overflow:visible}
.mo-c-ava{width:26px;height:26px;border-radius:50%;flex-shrink:0;margin-top:2px}
.mo-c-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
/* 我的装扮列表 */
.deco-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}
.deco-row:last-child{border-bottom:none}
.deco-cat{font-weight:700;font-size:14px;color:var(--ink);min-width:88px;padding-top:2px}
.deco-opts{display:flex;flex-wrap:wrap;gap:8px}
.deco-chip{padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;color:var(--ink-dim);cursor:pointer;background:transparent;transition:.2s}
.deco-chip:hover{border-color:#ff6fa5;color:#ff6fa5}
.deco-chip.on{background:linear-gradient(135deg,#ff6fa5,#a78bfa);color:#fff;border-color:transparent;font-weight:600}
.deco-wrap{display:inline-flex;align-items:center;gap:4px}
.deco-chip.deco-lock{opacity:.55;border-style:dashed;cursor:pointer}
.deco-pv{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink-faint);font-size:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.deco-pv:hover{border-color:#ff6fa5;color:#ff6fa5;background:rgba(255,111,165,.08)}
.pv-mask{position:fixed;inset:0;background:rgba(15,10,30,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;opacity:0;animation:pvFade .2s ease forwards}
@keyframes pvFade{from{opacity:0}to{opacity:1}}
.pv-card{background:var(--bg,#fff);border:1px solid var(--line);border-radius:18px;padding:20px;max-width:420px;width:100%;box-shadow:0 18px 50px rgba(20,10,40,.35);max-height:86vh;overflow:auto}
.pv-card h3{font-family:var(--font-display);font-weight:600;font-size:18px;margin-bottom:12px;color:var(--ink)}
.pv-stage{background:radial-gradient(circle at 30% 30%,#f7ecff,#e8ddff);border:1px dashed rgba(167,139,250,.4);border-radius:14px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}
.pv-img{max-width:100%;max-height:280px;object-fit:contain}
.pv-sample-item{transform:scale(1.4)}
.pv-item{font-size:14px;color:var(--ink-faint);text-align:center;padding:30px 12px}
.pv-desc{font-size:12.5px;color:var(--ink-faint);margin:12px 0 0;line-height:1.6}
.pv-foot{display:flex;justify-content:flex-end;margin-top:14px}
.sc-img.sc-pv{cursor:zoom-in}
.lh-stat{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:center}
.lh-stat b{display:block;font-size:18px;color:var(--ink)}
.lh-stat span{font-size:11px;color:var(--ink-faint)}
.loy-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.loy-sec-head h3{font-family:var(--font-display);font-weight:400;font-size:20px}
.loy-sec-sub{font-size:12px;color:var(--ink-faint)}
.signin-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}
.ss-cell{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg)}
.ss-cell b{display:block;font-size:13px;margin-bottom:4px}
.ss-cell span{font-size:11px;color:var(--ink-faint)}
.ss-cell.ss-ok{border-color:var(--pink);background:rgba(255,111,165,.06)}
.ss-cell.ss-ok b{color:var(--pink)}
.loy-voice-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.loy-voice-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.lv-num{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#ff6fa5,#a78bfa);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.loy-unlock-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-height:420px;overflow:auto}
.loy-unlock{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);flex-wrap:wrap}
.loy-unlock.un-ok{border-color:rgba(255,111,165,.4)}
.lu-lv{font-size:11px;color:var(--pink);font-weight:600;min-width:52px}
.lu-main{flex:1;min-width:200px}
.lu-main b{display:block;font-size:13px}
.lu-main span{font-size:11.5px;color:var(--ink-faint)}
.lu-state{font-size:11px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:12px}
.shop-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--bg);display:flex;flex-direction:column;gap:8px}
.shop-card.shop-owned{border-color:var(--pink)}
.sc-img{height:110px;border-radius:10px;overflow:hidden;background:var(--card);display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.sc-img img{width:100%;height:100%;object-fit:contain}
.sc-ph{font-size:26px;color:var(--pink)}
.sc-name{font-size:13px;font-weight:600}
.sc-spec{font-size:10.5px;color:var(--ink-faint);line-height:1.5;flex:1}
.sc-foot{text-align:right}
@media (max-width:640px){.lh-right{grid-template-columns:1fr 1fr}.wish-sky-home{gap:10px}.wh-lantern{width:112px}}

/* ============ 主页精简档案卡 ============ */
.archive-mini{cursor:pointer;transition:box-shadow .25s}
.archive-mini:hover{box-shadow:0 8px 22px rgba(255,111,165,.10)}
.archive-mini .gcard-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:26px 30px}
.am-left{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}
.am-ic{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,rgba(255,111,165,.16),rgba(167,139,250,.16));color:var(--pink);display:flex;align-items:center;justify-content:center;flex:none}
.am-body{flex:1;min-width:200px}
.am-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.am-top b{font-size:15px}
.am-level{font-size:11px;padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#ff6fa5,#a78bfa);color:#fff}
.am-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;max-width:300px}
.am-bar i{display:block;height:100%;background:linear-gradient(90deg,#ff6fa5,#a78bfa);border-radius:999px}
.am-meta{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.am-meta span{font-size:11.5px;color:var(--ink-faint)}
.archive-mini .btn{flex:none;margin:0}
@media (max-width:560px){.archive-mini .gcard-in{padding:20px 18px}.archive-mini .btn{width:100%;text-align:center}}
/* ============ 全部好感度等级表弹窗 ============ */
.loy-modal .modal-box{max-height:80vh;overflow:auto}
.loy-levels-table{display:flex;flex-direction:column;gap:6px}
.ll-row{display:grid;grid-template-columns:52px 72px 1fr 1.6fr;gap:8px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ll-lv{font-size:12px;color:var(--pink);font-weight:600}
.ll-need{font-size:12px;color:var(--ink-dim)}
.ll-name{font-size:13px;font-weight:600}
.ll-unlock{font-size:12px;color:var(--ink-dim);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ll-tag{font-size:10px;padding:1px 6px;border-radius:999px;background:rgba(255,111,165,.12);color:var(--pink)}
.ll-sub{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:560px){.ll-row{grid-template-columns:44px 60px 1fr}.ll-unlock{grid-column:1/4}}
