/* 天空之城 · 全部样式 (已从 index-cs.html 提取) */
:root{
  --bg:#f0f4ff;--bg2:#ffffff;--card-bg:#ffffff;
  --card-shadow:0 1px 2px rgba(100,120,255,.06),0 8px 24px rgba(100,120,255,.10);
  --card-shadow-hover:0 2px 4px rgba(100,120,255,.08),0 16px 32px rgba(100,120,255,.18);
  --text:#1a1d2e;--text2:#555a7a;--text3:#888aaa;
  --border:#e4e8f5;--tab-line:#d0d5f0;
  --accent:#6c63ff;--accent2:#a78bfa;
  --badge-bg:#fff0d0;--badge-color:#b45309;
  --pin-bg:linear-gradient(135deg,#f472b6,#a78bfa);
  --rule-bg:linear-gradient(180deg,#6c63ff,#a78bfa);
  --sheet-bg:#ffffff;--overlay:rgba(0,0,0,.45);
  --input-bg:#f5f7ff;--input-border:#d0d5f0;
  --tag-bg:#eef0ff;--tag-color:#6c63ff;
  --orange:#f97316;--orange-bg:#fff5eb;--orange-light:#fb923c;
  --glass-bg:rgba(255,255,255,.80);--glass-blur:blur(16px);
}
[data-theme="dark"]{
  --bg:#080b16;--bg2:#10142a;--card-bg:#171c38;
  --card-shadow:0 1px 2px rgba(0,0,0,.30),0 8px 24px rgba(0,0,0,.40);
  --card-shadow-hover:0 2px 4px rgba(99,102,241,.08),0 16px 40px rgba(0,0,0,.50);
  --text:#e8ebff;--text2:#9aa0cc;--text3:#5e6399;
  --border:#25294a;--tab-line:#25294a;
  --accent:#8b83ff;--accent2:#c4b5fd;
  --badge-bg:#3a2800;--badge-color:#f59e0b;
  --pin-bg:linear-gradient(135deg,#9d174d,#6d28d9);
  --rule-bg:linear-gradient(180deg,#4c46c0,#7c3aed);
  --sheet-bg:#171c38;--overlay:rgba(0,0,0,.75);
  --input-bg:#0d1024;--input-border:#25294a;
  --tag-bg:#1e2040;--tag-color:#a78bfa;
  --orange:#f97316;--orange-bg:#2a1a05;--orange-light:#fb923c;
  --glass-bg:rgba(23,28,56,.85);--glass-blur:blur(20px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{height:100%;scroll-behavior:smooth}
body{height:100%;background:var(--bg);color:var(--text);font-family:'PingFang SC','Microsoft YaHei',sans-serif;transition:background .3s,color .3s;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}
::selection{background:rgba(99,102,241,.22);color:var(--text)}
a{text-decoration:none;color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}

.page{max-width:480px;margin:0 auto;min-height:100vh;position:relative}
.tabs{display:flex;align-items:center;border-bottom:1px solid var(--tab-line);background:var(--bg2);padding:0 16px;position:sticky;top:0;z-index:99}
.tab{flex:1;text-align:center;padding:12px 0 11px;font-size:14px;font-weight:500;color:var(--text2);cursor:default;position:relative;transition:color .2s}
.tab::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:0;height:2px;border-radius:2px;background:var(--text2);opacity:0;transition:width .25s,opacity .25s}
.tab.active{color:var(--text);font-weight:600}
.tab.active::after{width:32%;opacity:.4}
/* 推荐标签 */
.tab-recommend{flex:1;text-align:center;padding:12px 0 11px;font-size:14px;font-weight:500;color:var(--text2);cursor:default;position:relative;transition:color .3s,text-shadow .3s}
.tab-recommend::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#f97316,#eab308,#ef4444,#ec4899);opacity:0;transition:width .3s,opacity .3s}
.tab-recommend .tab-rec-text{background:linear-gradient(135deg,#f97316,#eab308,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.tab-recommend .tab-rec-star{display:inline-block;animation:recStarPulse 1.5s ease-in-out infinite;margin:0 2px}
.tab-recommend .tab-rec-star:nth-child(1){animation-delay:0s}
.tab-recommend .tab-rec-star:nth-child(3){animation-delay:.75s}
@keyframes recStarPulse{0%,100%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
.tab-recommend.active{font-weight:700;text-shadow:0 0 16px rgba(249,115,22,.5),0 0 32px rgba(239,68,68,.25)}
.tab-recommend.active .tab-rec-text{background:linear-gradient(135deg,#fb923c,#facc15,#f87171,#f472b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.tab-recommend.active::after{width:50%;opacity:1}
.tab-recommend::before{content:'';position:absolute;top:4px;left:50%;transform:translateX(-50%);width:0;height:1.5px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(249,115,22,.6),rgba(239,68,68,.6),rgba(249,115,22,.6),transparent);opacity:0;transition:width .35s,opacity .35s}
.tab-recommend.active::before{width:70%;opacity:.7}
.top-menu-btn{flex:0 0 auto;border:none;cursor:pointer;background:transparent;padding:8px 10px;display:flex;align-items:center;justify-content:center;margin-left:-4px}
.top-menu-btn img{width:22px;height:22px;object-fit:contain;display:block}
.top-search-btn{flex:0 0 auto;border:none;cursor:pointer;background:transparent;padding:8px 10px;display:flex;align-items:center;justify-content:center;margin-right:-4px}
.top-search-btn svg{width:20px;height:20px;stroke:var(--text2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.more-login-btn{flex:0 0 auto;border:1.5px solid var(--accent);cursor:pointer;background:transparent;padding:3px 12px;border-radius:14px;color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.3px;transition:all .25s;white-space:nowrap;margin-left:8px}
.more-login-btn:hover{background:var(--accent);color:#fff}
.more-login-btn:active{transform:scale(.95)}
.voice-update-indicator{display:none}
.voice-update-indicator.live{color:var(--accent);opacity:1;animation:voiceLivePulse .5s ease-out}
@keyframes voiceLivePulse{0%{opacity:1}100%{opacity:.75}}

.section-wrap{padding:14px 14px 14px;position:relative;overflow:hidden}
.section-title{font-size:13px;color:var(--text2);margin-bottom:12px;display:flex;align-items:center;gap:8px;font-weight:600}
.section-title::before{content:'';width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--accent2))}
#panel-recommend .section-title::before{display:none}

/* 开放麦厅 grid */
.grid-open{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:stretch;width:100%;max-width:100%}
@media(min-width:900px){.page{max-width:940px}.grid-open{grid-template-columns:repeat(6,1fr)}}
.card-open{background:linear-gradient(135deg,var(--border-g1,#ff00d8),var(--border-g2,#8b31ff));border-radius:6px;overflow:hidden;padding:3px;box-shadow:var(--card-shadow);cursor:pointer;transition:transform .2s,box-shadow .25s;position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;line-height:0;-webkit-tap-highlight-color:transparent;outline:none;contain:layout style}
.card-open:active{transform:scale(.96)}
@media(hover:hover){.card-open:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.card-fovea:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.recommend-open-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(99,102,241,.12)}.recommend-fovea-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(139,92,246,.15)}}
.card-open::before,.card-fovea::before{content:'';position:absolute;inset:-60%;z-index:0;background:conic-gradient(var(--border-g1,#ff00d8),var(--border-g2,#8b31ff),var(--border-g3,#ff00d8));animation:rotate-marquee 3.5s linear infinite;will-change:transform;transform:translateZ(0)}
.card-open.no-border,.card-fovea.no-border{background:transparent;padding:3px}
.card-open.no-border::before,.card-fovea.no-border::before{display:none}
.card-open.has-frame,.card-fovea.has-frame{overflow:visible}
.marquee-inner{position:relative;z-index:2;overflow:hidden;background:var(--card-bg);line-height:normal;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.card-open .marquee-inner,.card-fovea .marquee-inner{border-radius:3px}
.card-open.no-border .marquee-inner,.card-fovea.no-border .marquee-inner{border-radius:6px}
.card-open::after,.card-fovea::after{content:'';position:absolute;z-index:13;inset:0;pointer-events:none;border-radius:6px;background:linear-gradient(105deg,var(--shimmer-c1,transparent) 25%,var(--shimmer-c2,rgba(255,255,255,.18)) 37%,var(--shimmer-c3,rgba(255,255,255,.42)) 45%,var(--shimmer-c4,rgba(255,255,255,.55)) 50%,var(--shimmer-c3,rgba(255,255,255,.42)) 55%,var(--shimmer-c2,rgba(255,255,255,.18)) 63%,var(--shimmer-c1,transparent) 75%);background-size:200% 100%;animation:var(--shimmer-anim,shimmer 3.2s cubic-bezier(.4,0,.2,1) infinite)}
.no-shimmer::after{display:none}
.marquee-inner::after{content:'';position:absolute;z-index:10;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.06) 0%,transparent 35%,transparent 65%,rgba(255,255,255,.03) 100%);pointer-events:none}

.card-open .cover{width:100%;aspect-ratio:3/4;flex-shrink:0;background:linear-gradient(135deg,var(--input-bg),var(--card-bg));overflow:hidden;position:relative}
.cover>img{position:relative;z-index:1}
.room-frame-img{position:absolute;left:-2px;top:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:fill;pointer-events:none;z-index:12}
.card-open .info{padding:3px 4px 2px;overflow:hidden;flex:0 1 auto;min-height:20px}
.card-open .name{font-size:12px;line-height:1.1;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:1px;text-align:center}
.card-open .desc{font-size:10px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.4}
.card-tip{background:var(--input-bg);color:var(--text3);font-size:10px;line-height:1.3;text-align:center;padding:5px 4px;border-top:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.card-open .card-tip{font-size:8px;line-height:1;padding:7px 4px}
.card-fovea .card-tip{font-size:9px;padding:4px 3px}
.rainbow-text{display:inline}
.card-tip-rainbow{font-size:11px!important;font-weight:700;background:var(--accent);color:#fff!important;line-height:1.2;padding:7px 4px!important}

.grid-fovea{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;align-items:stretch;width:100%;max-width:100%}
@media(min-width:900px){.grid-fovea{grid-template-columns:repeat(10,1fr)}.sheet{max-width:940px}}
.card-fovea{background:linear-gradient(135deg,var(--border-g1,#ff00d8),var(--border-g2,#8b31ff));border-radius:6px;overflow:hidden;padding:3px;box-shadow:var(--card-shadow);cursor:pointer;transition:transform .2s,box-shadow .25s;position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;line-height:0;-webkit-tap-highlight-color:transparent;outline:none;contain:layout style}
.card-fovea:active{transform:scale(.95)}
/* 卡片点击按弹动画 — 建立卡片→弹窗的联动感 */
.card-fovea.card-popping{animation:cardPop .28s cubic-bezier(.34,1.56,.64,1)}
@keyframes cardPop{0%{transform:scale(1)}30%{transform:scale(.92)}100%{transform:scale(1)}}
/* 弹窗打开时暂停卡片动画 */
.card-fovea.anim-paused::before,.card-open.anim-paused::before{animation-play-state:paused!important}
.card-fovea.anim-paused .marquee-inner::before,.card-fovea.anim-paused .marquee-inner::after,
.card-open.anim-paused .marquee-inner::before,.card-open.anim-paused .marquee-inner::after{animation-play-state:paused!important}

/* 隐藏 panel 自动暂停动画 */
#panel-open[hidden] *,#panel-fovea[hidden] *,#panel-recommend[hidden] *{animation-play-state:paused!important}
.panel-content{will-change:opacity}
.card-fovea .cover{width:100%;aspect-ratio:4/5;background:linear-gradient(135deg,var(--input-bg),var(--card-bg));overflow:hidden;position:relative;flex-shrink:0}
.card-fovea .cover-img-wrap{width:100%;height:100%;overflow:hidden;border-radius:3px;position:relative;z-index:1}
.card-fovea .info{padding:3px 4px 3px;overflow:hidden;flex:0 0 auto}
.card-fovea .badge-order{background:rgba(0,0,0,.45)!important;color:#fff!important;max-width:calc(100% - 8px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-fovea .name{font-size:10px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.1;text-align:center}
.card-fovea .name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-fovea .qq-icon{position:absolute;right:2px;bottom:0;width:15px;height:15px;z-index:3;border-radius:2px;object-fit:contain;display:block}

.badge-tag{position:absolute;top:0;right:0;background:var(--badge-bg);color:var(--badge-color);font-size:8px;font-weight:700;padding:2px 6px;border-bottom-left-radius:8px;z-index:2;max-width:55px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-open .badge-tag{font-size:10px;padding:3px 8px;max-width:70px;border-bottom-left-radius:0;border-bottom-right-radius:10px;left:0;right:auto}
.card-open .online-badge{left:auto;right:2px;border-radius:4px}
.fovea-vacant-tag{display:inline-block;padding:2px 7px;border-radius:6px;font-size:10px;font-weight:700;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.badge-order{position:absolute;bottom:0;left:0;font-size:10px;font-weight:700;padding:2px 7px;border-top-right-radius:8px;z-index:2;background:var(--badge-bg);color:var(--badge-color)}
.card-open .badge-order{background:rgba(0,0,0,.45)!important;color:#fff!important;max-width:calc(100% - 8px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

.online-badge{position:absolute;top:2px;left:2px;z-index:4;display:inline-flex;align-items:center;gap:2px;background:rgba(34,197,94,.92);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;backdrop-filter:blur(4px);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.card-fovea .badge-tag{left:0;right:auto;border-bottom-left-radius:0;border-bottom-right-radius:5px;font-size:7px;padding:1px 5px}
.card-fovea .online-badge{left:auto;right:2px;font-size:7px;padding:1px 5px;border-radius:4px;gap:1px}
.card-fovea .online-badge .dot{width:6px;height:6px}
.online-badge.zero{background:rgba(148,163,184,.78);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.online-badge .dot{width:8px;height:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='7' r='4' stroke='white' stroke-width='2'/%3E%3Cpath d='M5 21c0-3.8 3.1-7 7-7s7 3.2 7 7' stroke='white' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}

/* 动态热聊标签 */
.badge-tag-hot{background:linear-gradient(135deg,#ff3b30,#ff6b35,#ff9500)!important;color:#fff!important;animation:hotTagGlow 1.8s ease-in-out infinite;text-shadow:0 1px 2px rgba(0,0,0,.3);border:1.5px solid rgba(255,255,255,.3);font-size:9px!important;padding:3px 8px!important;max-width:none!important;overflow:visible!important;border-bottom-left-radius:6px!important;line-height:1.3!important}
.card-fovea .badge-tag-hot{font-size:7px!important;padding:2px 6px!important}
@keyframes hotTagGlow{0%,100%{box-shadow:0 0 3px rgba(255,59,48,.35),0 0 6px rgba(255,149,0,.15)}50%{box-shadow:0 0 6px rgba(255,59,48,.55),0 0 10px rgba(255,149,0,.25)}}

.badge-tag-superhot{background:linear-gradient(135deg,#ff0055,#ff5e00,#ffcc00,#ff0055)!important;background-size:400% 400%!important;color:#fff!important;animation:superHotTagAnim 1s ease-in-out infinite;text-shadow:0 1px 3px rgba(0,0,0,.4);border:1.5px solid rgba(255,255,255,.4);font-size:9px!important;padding:3px 8px!important;max-width:none!important;overflow:visible!important;border-bottom-left-radius:6px!important;line-height:1.3!important}
.card-fovea .badge-tag-superhot{font-size:7px!important;padding:2px 6px!important;border-width:1.5px!important}
@keyframes superHotTagAnim{0%,100%{background-position:0% 50%;box-shadow:0 0 5px rgba(255,0,85,.45),0 0 10px rgba(255,149,0,.25)}25%{background-position:100% 0%}50%{background-position:100% 100%;box-shadow:0 0 10px rgba(255,0,85,.65),0 0 16px rgba(255,149,0,.4)}75%{background-position:0% 100%}100%{background-position:0% 50%}}

/* 推荐面板热聊标签 */
.recommend-hot-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9px;font-weight:700;line-height:1.3;vertical-align:middle;margin-left:4px;flex-shrink:0;white-space:nowrap}
.recommend-hot-tag--hot{background:linear-gradient(135deg,#ff3b30,#ff9500);color:#fff;animation:hotTagGlow 1.8s ease-in-out infinite;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.recommend-hot-tag--superhot{background:linear-gradient(135deg,#ff0055,#ff5e00,#ffcc00,#ff0055);background-size:400% 400%;color:#fff;animation:superHotTagAnim 1s ease-in-out infinite;text-shadow:0 1px 3px rgba(0,0,0,.35);font-size:9px}

/* 运营推荐 */
#panel-recommend{margin:0 0 14px 0}
.recommend-category-tag{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:4px;margin-bottom:8px;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;letter-spacing:.5px}
.recommend-fovea-tag{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff}
.recommend-open-grid{display:flex;flex-direction:column;gap:8px;width:100%}
.recommend-open-card{display:flex;background:var(--card-bg);border-radius:8px;overflow:hidden;position:relative;transition:transform .15s,background .4s,border .4s}
.recommend-open-card[data-rec-hot="hot"]{background:linear-gradient(135deg,rgba(255,80,30,.10),rgba(255,150,40,.16),rgba(255,80,30,.08));border:1.5px solid rgba(255,120,50,.3);box-shadow:0 0 12px rgba(255,100,30,.15)}
.recommend-open-card[data-rec-hot="superhot"]{background:linear-gradient(135deg,rgba(255,0,85,.14),rgba(255,94,0,.20),rgba(255,204,0,.15),rgba(138,43,226,.12),rgba(0,191,255,.10),rgba(255,0,85,.11));background-size:350% 350%;animation:recCardGlow 4s ease-in-out infinite;border:1.5px solid rgba(255,140,40,.40);box-shadow:0 0 20px rgba(255,80,10,.22),0 0 40px rgba(255,0,100,.12)}
@keyframes recCardGlow{0%,100%{background-position:0% 50%}25%{background-position:100% 0%}50%{background-position:100% 100%;box-shadow:0 0 28px rgba(255,80,10,.35),0 0 50px rgba(255,0,100,.20)}75%{background-position:0% 100%}}
.recommend-open-card[data-rec-hot] .recommend-open-name-text{text-shadow:0 1px 4px rgba(0,0,0,.35)}
.recommend-open-card[data-rec-hot] .recommend-open-desc{color:rgba(255,255,255,.65)}
.recommend-open-card[data-rec-hot] .recommend-open-tag-item{background:rgba(255,255,255,.12);color:rgba(255,255,255,.7)}
.recommend-open-card[data-rec-hot] .recommend-open-recruit-text{color:rgba(255,255,255,.65)}
.recommend-open-card:active{transform:scale(.98)}
.recommend-open-cover{width:85px;min-width:85px;aspect-ratio:3/4;overflow:hidden;position:relative;flex-shrink:0}
.recommend-open-cover img{width:100%;height:100%;object-fit:cover;display:block}
.recommend-open-cover .recommend-hot-tag,.recommend-open-cover .recommend-open-tag-rec{position:absolute;top:4px;left:4px;z-index:3;margin-left:0!important;border-radius:4px}
.recommend-open-info{flex:1;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0;justify-content:flex-start}
.recommend-open-name{font-size:15px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px;overflow:hidden}
.recommend-open-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.recommend-open-tag-rec{display:inline-block;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0;line-height:1.4}
.recommend-open-online{position:absolute;top:8px;right:10px;font-size:11px;color:#22c55e;font-weight:600;z-index:2;background:rgba(0,0,0,.5);padding:2px 6px;border-radius:4px}
.recommend-open-tags-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--text2)}
.recommend-open-tag-item{background:var(--input-bg);color:var(--text2);padding:1px 7px;border-radius:10px;font-size:10px;max-width:80px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@keyframes hotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.12)}}
.recommend-open-tag-hot{display:inline-block;font-size:13px;flex-shrink:0;line-height:1;animation:hotPulse .75s ease-in-out infinite}
.recommend-open-desc{font-size:11px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.4}
.recommend-open-recruit{font-size:11px;color:var(--text2);display:flex;align-items:flex-start;gap:4px;overflow:hidden;line-height:1.4}
.recommend-open-recruit-label{flex-shrink:0;color:#f59e0b;font-weight:600}
.recommend-open-recruit-text{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text3)}
.recommend-open-actions{display:flex;gap:6px;margin-top:auto}
.recommend-open-action-btn{flex:1;padding:7px 0;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:none;background:var(--input-bg);color:var(--accent);text-align:center;transition:background .15s,color .15s}
.recommend-open-action-btn:hover{background:var(--accent);color:#fff}
.recommend-open-action-enter{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}
.recommend-open-action-enter:hover{background:linear-gradient(135deg,#ea580c,#c2410c);color:#fff}
.recommend-open-action-friend{background:linear-gradient(135deg,#86efac,#4ade80);color:#064e15}
.recommend-open-action-friend:hover{background:linear-gradient(135deg,#4ade80,#22c55e);color:#064e15}
.recommend-open-action-ghost,.recommend-open-action-ghost:hover,.recommend-open-action-ghost:active,.recommend-open-action-ghost:focus{background:var(--input-bg)!important;color:var(--text3)!important;transition:none}
.recommend-open-action-exam{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff}
.recommend-open-action-exam:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}
.recommend-fovea-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media(min-width:900px){.recommend-fovea-grid{grid-template-columns:repeat(2,1fr)}}
.recommend-fovea-card{display:flex;background:var(--card-bg);border-radius:8px;overflow:hidden;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .15s,background .15s,box-shadow .15s;border:1.5px solid transparent;background-clip:padding-box;position:relative;-webkit-tap-highlight-color:transparent}
.recommend-fovea-card::before{content:'';position:absolute;inset:-1.5px;border-radius:9px;z-index:-1;background:linear-gradient(135deg,#8b5cf6,#6366f1,#8b5cf6);opacity:.4}
.recommend-fovea-card{-webkit-tap-highlight-color:transparent}
.recommend-fovea-cover{width:64px;min-width:64px;aspect-ratio:1/1;overflow:hidden;position:relative;flex-shrink:0;border-radius:6px 0 0 6px}
.recommend-fovea-cover img{width:100%;height:100%;object-fit:cover;display:block}
.recommend-fovea-info{flex:1;padding:10px 10px;display:flex;flex-direction:column;gap:3px;min-width:0;justify-content:center}
.recommend-fovea-name{font-size:12px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:4px;overflow:hidden}
.recommend-fovea-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.recommend-fovea-tag-rec{display:inline-block;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0;line-height:1.4}
.recommend-fovea-online{position:absolute;top:6px;right:8px;font-size:10px;color:#22c55e;font-weight:600;z-index:2;background:rgba(0,0,0,.55);padding:2px 6px;border-radius:4px;pointer-events:none}
.recommend-fovea-owner{font-size:10px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.recommend-fovea-actions{display:flex;align-items:center;gap:4px;margin-top:1px}
.recommend-fovea-enter-btn{display:inline-flex;align-items:center;justify-content:center;padding:3px 18px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:none;background:linear-gradient(135deg,#fdba74,#fb923c);color:#fff;transition:all .15s;white-space:nowrap}
.recommend-fovea-enter-btn:hover{background:linear-gradient(135deg,#fb923c,#ea580c)}
.recommend-fovea-tags-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:10px;color:var(--text2)}
.recommend-fovea-tag-item{background:var(--input-bg);color:var(--text2);padding:1px 5px;border-radius:8px;font-size:9px;max-width:60px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.recommend-fovea-contact-btn{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:8px;font-size:9px;font-weight:600;cursor:pointer;text-decoration:none;background:var(--accent);color:#fff;user-select:none;-webkit-user-select:none}
.recommend-fovea-desc{font-size:10px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.3}
.exam-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:550;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(4px)}
.exam-confirm-overlay.show{opacity:1;pointer-events:auto}
.exam-confirm-card{background:#1a1d2e;border-radius:16px;width:88vw;max-width:340px;padding:24px 20px 18px;box-shadow:0 20px 60px rgba(0,0,0,.4);transform:translateY(20px) scale(.95);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.exam-confirm-overlay.show .exam-confirm-card{transform:translateY(0) scale(1)}
.exam-confirm-text{font-size:13px;color:#e2e8f0;line-height:1.7;margin-bottom:6px}
.exam-confirm-text .exam-highlight{font-weight:700;color:#f97316}
.exam-confirm-actions{display:flex;gap:10px;margin-top:16px}
.exam-confirm-actions button{flex:1;padding:9px 0;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s}
.exam-confirm-btn-join{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}
.exam-confirm-btn-join:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.exam-confirm-btn-close{background:rgba(255,255,255,.08);color:var(--text2)}
.exam-confirm-btn-close:hover{background:rgba(255,255,255,.15)}

.panel-content{transition:opacity .18s ease;opacity:1}
.panel-content[hidden]{display:none!important;opacity:0;will-change:auto}

@keyframes rotate-marquee{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

.claim-vacant-tag{position:absolute;top:2px;right:-8px;background:rgba(107,114,128,.88);color:#fff;font-size:7px;font-weight:700;padding:1px 14px;z-index:5;transform:rotate(16deg);transform-origin:center;box-shadow:0 1px 2px rgba(0,0,0,.18);line-height:1.4;white-space:nowrap;letter-spacing:.3px}
.claim-pending-tag{position:absolute;top:2px;right:-8px;background:rgba(139,92,246,.88);color:#fff;font-size:7px;font-weight:700;padding:1px 14px;z-index:5;transform:rotate(16deg);transform-origin:center;box-shadow:0 1px 2px rgba(0,0,0,.18);line-height:1.4;white-space:nowrap;letter-spacing:.3px}
.button-progress{display:block;width:100%;text-align:center;padding:12px;border-radius:12px;font-weight:700;font-size:14px;border:none;cursor:pointer}

::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}
.sheet-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:8px}

/* 更多浮窗 */
.more-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:190;opacity:0;pointer-events:none;transition:opacity .25s;display:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.more-overlay.active{opacity:1;pointer-events:auto}
.more-panel{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--glass-bg);z-index:191;display:none;flex-direction:column;transform:translateX(-100%);transition:transform .3s cubic-bezier(.32,.72,0,1);box-shadow:4px 0 40px rgba(0,0,0,.25);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.more-panel.active{display:flex;transform:translateX(0)}
.more-panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}
.more-panel-title{font-size:16px;font-weight:700;color:var(--text)}
.more-panel-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--input-bg);color:var(--text2);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.more-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;-webkit-overflow-scrolling:touch}
.more-panel-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.more-panel-btn{width:100%;height:44px;border-radius:8px;border:1.5px solid var(--orange);background:var(--orange-bg);color:var(--orange);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.more-panel-btn:active{transform:scale(.96)}
.more-panel-btn.blue{border-color:#3b82f6;background:rgba(59,130,246,.1);color:#60a5fa}
@media(hover:hover){.more-panel-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(249,115,22,.2)}}
.more-panel-footer{margin-top:18px;display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap}
.more-panel-ver{font-size:10px;color:var(--text3);cursor:pointer;opacity:.45;transition:opacity .2s}
.more-panel-ver:hover,.more-panel-ver:active{opacity:.8}

.menu-badge{position:absolute;top:-1px;right:-1px;font-size:8px;font-weight:700;padding:1px 5px;border-radius:0 5px 0 4px;line-height:1.4;pointer-events:none;white-space:nowrap}
.menu-badge-new{background:#22c55e;color:#fff}
.menu-badge-stopped{background:#ef4444;color:#fff}
.menu-badge-opt{background:#ec4899;color:#fff}
.menu-badge-hot{background:#22c55e;color:#fff}
.menu-badge-rule{background:#8b5cf6;color:#fff}

/* Sheet 弹层 */
.overlay{position:fixed;inset:0;background:var(--overlay);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.overlay.active{opacity:1;pointer-events:auto}
.sheet{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(100%) scale(.97);width:100%;max-width:480px;min-height:50vh;max-height:90vh;background:var(--sheet-bg);border-radius:20px 20px 0 0;z-index:201;display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.22,.61,.36,1);box-shadow:0 -4px 30px rgba(0,0,0,.2)}
.sheet.active{transform:translateX(-50%) translateY(0) scale(1)}
.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:10px auto 0;flex-shrink:0}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:10px 20px 6px;flex-shrink:0;border-bottom:1px solid var(--border)}
.sheet-title{font-size:15px;font-weight:700}
.sheet-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--input-bg);color:var(--text2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
#detailSheet .sheet-head{position:absolute;top:-16px;right:10px;z-index:3;padding:0;border-bottom:none}
#detailSheet{background:#2b2d40}
#detailSheet .sheet-body{background:#3e4052}
#detailSheet .sheet-title{display:none}
#detailSheet .sheet-close{background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(0,0,0,.12)}
[data-theme="dark"] #detailSheet .sheet-close{background:rgba(28,31,51,.92)}
.sheet-body{flex:1;overflow-y:auto;padding:16px 20px 30px;background:var(--input-bg)}
.apply-sheet-body{padding:0;overflow:hidden}
.apply-frame{display:block;width:100%;height:72vh;border:0;background:var(--sheet-bg)}

/* 详情 */
.fovea-detail-top{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}
.fovea-detail-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:76px}
.fovea-detail-tag{display:inline-block;padding:2px 7px;border-radius:8px;font-size:9px;font-weight:700;flex-shrink:0}
.fovea-detail-tag--hot{background:linear-gradient(135deg,#ff3b30,#ff9500)!important;color:#fff!important;animation:hotTagGlow 1.8s ease-in-out infinite;text-shadow:0 1px 2px rgba(0,0,0,.3);padding:2px 7px!important;font-size:9px!important}
.fovea-detail-tag--superhot{background:linear-gradient(135deg,#ff0055,#ff5e00,#ffcc00,#ff0055)!important;background-size:400% 400%!important;color:#fff!important;animation:superHotTagAnim 1s ease-in-out infinite;text-shadow:0 1px 3px rgba(0,0,0,.35);padding:2px 7px!important;font-size:9px!important}
.fovea-detail-name{font-size:18px;font-weight:700;line-height:1.35;margin-top:8px;display:flex;align-items:center;gap:6px}
.fovea-detail-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fovea-detail-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.fovea-detail-cover{width:76px;height:76px;border-radius:12px;overflow:hidden;background:var(--input-bg);flex-shrink:0;position:relative}
.open-detail-cover{width:76px;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--input-bg);flex-shrink:0;position:relative}
.open-detail-cover.has-border{background:transparent;padding:3px}
.open-detail-cover.has-border::before{content:'';position:absolute;inset:-60%;z-index:0;background:conic-gradient(var(--border-g1,#ff00d8),var(--border-g2,#8b31ff),var(--border-g3,#ff00d8));animation:rotate-marquee 3.5s linear infinite}
.open-detail-cover>img:not(.detail-frame-img){position:relative;z-index:2;border-radius:9px;background:var(--input-bg)}
.open-detail-cover.has-frame::before{display:none}
.open-detail-cover.has-frame{overflow:visible}
.open-detail-enter-btn{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:3px 14px;border-radius:999px;background:var(--accent);color:#fff!important;font-size:11px;font-weight:700;white-space:nowrap;vertical-align:middle;text-decoration:none;line-height:1.6;flex-shrink:0;position:relative;top:-1px}
.fovea-detail-cover.has-border{background:transparent;padding:3px}
.fovea-detail-cover.has-border::before{content:'';position:absolute;inset:-60%;z-index:0;background:conic-gradient(var(--border-g1,#ff00d8),var(--border-g2,#8b31ff),var(--border-g3,#ff00d8));animation:rotate-marquee 3.5s linear infinite;will-change:transform;transform:translateZ(0)}
.fovea-detail-cover>img:not(.detail-frame-img){position:relative;z-index:2;border-radius:9px;background:var(--input-bg)}
.detail-frame-img{position:absolute;left:-8px;top:-8px;width:calc(100% + 16px);height:calc(100% + 16px);object-fit:fill;pointer-events:none;z-index:1}
.fovea-detail-cover.has-frame::before{display:none}
.fovea-detail-cover.has-frame{overflow:visible}
.fovea-detail-side{display:flex;align-items:flex-start;gap:10px;flex-shrink:0}
.fovea-detail-media{display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0}
.fovea-detail-media-label{font-size:10px;line-height:1;color:var(--text3);white-space:nowrap}
.fovea-owner{display:flex;align-items:center;gap:8px;min-width:0}
.fovea-owner-avatar{display:block;width:61px;height:61px;border-radius:12px;overflow:hidden;background:#fff;flex-shrink:0}
.fovea-detail-side .fovea-owner-avatar{position:relative;width:61px;height:61px}
.fovea-detail-side .fovea-owner-avatar.has-border{padding:3px;background:transparent}
.fovea-detail-side .fovea-owner-avatar.has-border::before{content:'';position:absolute;inset:-60%;z-index:0;background:conic-gradient(var(--border-g1,#ff00d8),var(--border-g2,#8b31ff),var(--border-g3,#ff00d8));animation:rotate-marquee 3.5s linear infinite;transform:translateZ(0)}
.fovea-detail-side .fovea-owner-avatar>img:not(.detail-frame-img){position:relative;z-index:2;border-radius:9px;background:#fff}
.fovea-owner-name{font-size:14px;color:var(--text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fovea-owner-qq{font-size:12px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fovea-copy-qq-btn{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 10px;border-radius:999px;border:1px solid #c4b5fd;background:#ede9fe;color:#7c6ff7;font-size:10px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s}
.fovea-copy-qq-btn:hover{background:#c4b5fd;color:#fff;border-color:#a78bfa}
.detail-friend-btn{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:20px;padding:0 10px;border-radius:999px;border:1px solid rgba(15,23,42,.55);background:linear-gradient(180deg,#57e8ff 0%,#11bde0 100%);color:#1682a8!important;font-size:10px;font-weight:700;line-height:1;white-space:nowrap;box-shadow:inset 0 1px 2px rgba(255,255,255,.55),0 1px 2px rgba(0,0,0,.18);vertical-align:middle;text-decoration:none}
.fovea-style-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;margin:0 4px 4px 0}
.fovea-card-styles{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.room-no-square{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;border:1.5px solid #9ca3af;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0;line-height:1.4;vertical-align:middle;margin-left:6px}
.fovea-frame-badge{font-size:11px;line-height:1.4;margin-top:6px;font-weight:700}
.fovea-frame-badge .fc-text{color:var(--accent)}

.detail-row{display:flex;padding:5px 0;align-items:flex-start;gap:12px}
@keyframes shimmer{0%{background-position:200% 0%}100%{background-position:-200% 0%}}
.detail-label{font-size:12px;color:var(--orange);min-width:52px;flex-shrink:0;padding-top:1px}
.detail-value{font-size:14px;color:var(--text);word-break:break-all;line-height:1.5}
.detail-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-divider{height:1px;background:var(--border,#e0e0e0);margin:12px 0}
.detail-action{padding:14px 0 0}

.toast{position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);background:var(--glass-bg);color:var(--text);padding:10px 24px;border-radius:14px;border:1.5px solid var(--orange);font-size:14px;z-index:999;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;white-space:nowrap;box-shadow:0 4px 24px rgba(0,0,0,.15);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);font-weight:500}
.toast.active{opacity:1;transform:translateX(-50%) translateY(0)}

/* 底部倒计时宽限提示条 */
.countdown-bar{position:fixed;bottom:0;left:0;right:0;z-index:998;background:linear-gradient(180deg,rgba(30,27,38,.96),rgba(20,18,28,.98));border-top:1px solid rgba(251,146,60,.35);padding:10px 16px;display:flex;align-items:center;gap:10px;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 20px rgba(251,146,60,.12)}
.countdown-bar.show{transform:translateY(0)}
.countdown-bar-icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:rgba(251,146,60,.18);display:flex;align-items:center;justify-content:center;font-size:12px;animation:countdownPulse 2s ease-in-out infinite}
@keyframes countdownPulse{0%,100%{box-shadow:0 0 0 0 rgba(251,146,60,.35)}50%{box-shadow:0 0 0 8px rgba(251,146,60,0)}}
.countdown-bar-text{flex:1;font-size:11px;color:#e2e8f0;line-height:1.5;overflow:hidden}
.countdown-bar-rooms{display:inline;color:#fb923c;font-weight:700}
.countdown-bar-timer{flex-shrink:0;font-size:11px;color:#94a3b8;min-width:44px;text-align:right}
.countdown-bar-timer b{color:#fb923c;font-size:13px;font-weight:800}

/* 认领引导弹窗 */
.claim-guide-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(4px)}
.claim-guide-overlay.show{opacity:1;pointer-events:auto}
.claim-guide-card{background:#1a1d2e;border-radius:18px;width:88vw;max-width:360px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.4);transform:translateY(20px) scale(.95);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.claim-guide-overlay.show .claim-guide-card{transform:translateY(0) scale(1)}
.claim-guide-header{background:linear-gradient(135deg,#22c55e,#16a34a);padding:20px 20px 16px;text-align:center}
.claim-guide-header-title{font-size:15px;font-weight:700;color:#fff;line-height:1.4}
.claim-guide-header-sub{font-size:11px;color:rgba(255,255,255,.75);margin-top:4px}
.claim-guide-body{padding:18px 20px 12px}
.claim-guide-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.claim-guide-step{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:#cbd5e1;line-height:1.6}
.claim-guide-step-num{width:22px;height:22px;border-radius:50%;background:#22c55e;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.claim-guide-copy-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:999px;background:#22c55e;color:#fff;font-size:12px;font-weight:700;border:none;cursor:pointer;white-space:nowrap;vertical-align:middle;margin:0 2px;transition:transform .15s,opacity .15s}
.claim-guide-copy-btn:active{transform:scale(.93);opacity:.85}
.claim-guide-copy-btn.copied{background:#16a34a}
.claim-guide-qr-row{display:flex;align-items:center;gap:16px;margin:6px 0 14px}
.claim-guide-qr-frame{position:relative;flex-shrink:0;display:inline-block;padding:6px;background:#fff;border-radius:8px;box-shadow:0 8px 24px rgba(34,197,94,.18),0 0 0 1px rgba(34,197,94,.25)}
.claim-guide-qr-frame:before{content:'';position:absolute;inset:4px;border-radius:5px;border:1px dashed rgba(34,197,94,.4);pointer-events:none}
.claim-guide-qr-frame img{width:90px;height:90px;display:block;border-radius:4px;object-fit:cover}
.claim-guide-qr-info{display:flex;flex-direction:column;gap:10px;flex:1;align-items:flex-start;min-width:0}
.claim-guide-qr-label{font-size:12px;color:#e2e8f0;font-weight:600;line-height:1.4}
.claim-guide-benefit-tag{font-size:11px;padding:4px 12px;border-radius:999px;background:rgba(34,197,94,.12);color:#4ade80;border:1px solid rgba(34,197,94,.25);white-space:nowrap}
.claim-guide-notice{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.18);border-radius:10px;padding:10px 12px;margin-bottom:16px}
.claim-guide-notice-title{font-size:11px;color:#cbd5e1;text-align:center;margin-bottom:8px;line-height:1.6}
.claim-guide-admins{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.claim-guide-admin{display:inline-flex;align-items:center;padding:4px 12px;border-radius:8px;background:rgba(59,130,246,.14);color:#60a5fa;border:1px solid rgba(59,130,246,.4);font-size:11px;font-weight:700;white-space:nowrap}
.hl-green{color:#4ade80;font-weight:700}
.claim-guide-mini-btn{display:inline-flex;align-items:center;justify-content:center;padding:3px 12px;border-radius:3px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:12px;font-weight:700;border:none;cursor:pointer;white-space:nowrap;vertical-align:middle;margin:0 2px;transition:transform .15s,opacity .15s;box-shadow:0 2px 8px rgba(34,197,94,.3)}
.claim-guide-mini-btn:active{transform:scale(.94);opacity:.85}
.claim-guide-mini-btn.copied{background:linear-gradient(135deg,#16a34a,#15803d)}
.claim-guide-actions{display:flex;gap:10px;padding:8px 20px 20px}
.claim-guide-btn{flex:1;padding:11px 0;border-radius:10px;font-size:14px;font-weight:700;border:none;cursor:pointer;transition:transform .15s,opacity .15s;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center}
.claim-guide-btn:active{transform:scale(.96)}
.claim-guide-btn-close{background:rgba(148,163,184,.18);color:#94a3b8;border:1px solid rgba(148,163,184,.2)}
.claim-guide-btn-add{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 6px 18px rgba(34,197,94,.35)}

.empty{grid-column:1/-1;min-height:calc(100vh - 220px);text-align:center;padding:40px 20px;color:var(--text3);display:flex;flex-direction:column;align-items:center;justify-content:center}
.empty-icon{font-size:48px;margin-bottom:12px}
.empty div{white-space:nowrap}

/* 搜索弹窗 */
.search-sheet-body{padding:0 20px 20px;overflow-y:auto}
.search-input-wrap{display:flex;gap:8px;margin-bottom:8px}
.search-input{flex:1;padding:8px 12px;border-radius:10px;border:1.5px solid var(--input-border);background:var(--input-bg);color:var(--text);font-size:13px;font-family:inherit}
.search-input:focus{border-color:var(--accent)}
.search-input::placeholder{color:var(--text3);font-size:12px}
.search-type-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.search-type-tag{padding:3px 10px;border-radius:12px;border:1px solid var(--border);background:var(--input-bg);color:var(--text2);font-size:10px;cursor:pointer;white-space:nowrap;transition:all .2s}
.search-type-tag.active{background:var(--accent);border-color:transparent;color:#fff}
.search-count{font-size:12px;color:var(--text3);margin-bottom:10px}
.search-result-list{display:flex;flex-direction:column;gap:8px}
.search-result-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:var(--card-bg);border:1px solid var(--border);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.search-result-item:active{transform:scale(.98)}
@media(hover:hover){.search-result-item:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(108,99,255,.06)}}
.search-result-img{width:48px;height:48px;border-radius:10px;object-fit:cover;background:var(--input-bg);flex-shrink:0}
.search-result-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.search-result-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;min-width:0}
.search-result-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.search-type-bubble{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;white-space:nowrap;flex-shrink:0;line-height:1.5}
.search-type-bubble.type-open{background:rgba(80,120,255,.15);color:#4b7bef}
.search-type-bubble.type-fovea{background:rgba(255,150,180,.18);color:#e87090}
[data-theme="dark"] .search-type-bubble.type-open{color:#7ba4ff}
[data-theme="dark"] .search-type-bubble.type-fovea{color:#ff8daa}
.search-roomno-bubble{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;white-space:nowrap;flex-shrink:0;line-height:1.5}
.search-result-sub{font-size:11px;color:var(--text3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.search-dot{color:var(--text3);margin:0 2px;flex-shrink:0}
.search-tag-badge{display:inline-block;padding:1px 7px;border-radius:6px;font-size:10px;font-weight:600;line-height:1.4;white-space:nowrap;flex-shrink:0}
.search-result-arrow{font-size:14px;color:var(--text3);flex-shrink:0}
.search-no-result{text-align:center;padding:30px 20px;color:var(--text3);font-size:13px}

/* 极速加载动画 */
.init-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--bg);overflow:hidden;transition:opacity .45s ease,visibility .45s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.init-loader.hide{opacity:0;visibility:hidden}
.init-loader::before,.init-loader::after{content:'';position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none}
.init-loader::before{width:460px;height:460px;top:-140px;right:-120px;background:radial-gradient(circle,rgba(139,131,255,.20),transparent 62%);animation:loaderGlow 3s ease-in-out infinite}
.init-loader::after{width:420px;height:420px;bottom:-130px;left:-120px;background:radial-gradient(circle,rgba(199,181,253,.16),transparent 62%);animation:loaderGlow 3s ease-in-out infinite reverse}
@keyframes loaderGlow{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.18);opacity:1}}
.loader-orb{position:relative;width:90px;height:90px;display:flex;align-items:center;justify-content:center;z-index:1}
.loader-orb .ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,var(--accent),var(--accent2),#22d3ee,var(--accent));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 calc(100% - 8px));mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 calc(100% - 8px));animation:loaderSpin 1s linear infinite}
.loader-orb .core{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(108,99,255,.42);animation:loaderPulse 1.4s ease-in-out infinite}
.loader-orb .core b{color:#fff;font-size:24px;font-weight:800;line-height:1;font-family:'PingFang SC',sans-serif}
@keyframes loaderSpin{to{transform:rotate(360deg)}}
@keyframes loaderPulse{0%,100%{transform:scale(1)}50%{transform:scale(.84)}}
.loader-title{font-size:21px;font-weight:700;letter-spacing:5px;color:var(--text);opacity:0;z-index:1;animation:loaderFade .6s ease .05s forwards}
.loader-sub{font-size:12px;color:var(--text3);letter-spacing:1.5px;opacity:0;z-index:1;animation:loaderFade .6s ease .2s forwards}
@keyframes loaderFade{to{opacity:1}}
.loader-bar{width:168px;height:4px;border-radius:4px;background:var(--input-bg);overflow:hidden;position:relative;z-index:1}
.loader-bar i{position:absolute;left:0;top:0;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2),#22d3ee);animation:loaderProgress 1s cubic-bezier(.4,0,.2,1) forwards}
@keyframes loaderProgress{to{width:100%}}

.detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:48vh;padding:24px}
.detail-loading .mini-orb{position:relative;width:58px;height:58px;display:flex;align-items:center;justify-content:center}
.detail-loading .mini-orb .ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,var(--accent),var(--accent2),#22d3ee,var(--accent));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 6px));animation:loaderSpin 1s linear infinite}
.detail-loading .mini-orb .core{width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 6px 16px rgba(108,99,255,.4);animation:loaderPulse 1.4s ease-in-out infinite}
.detail-loading .txt{font-size:13px;color:var(--text3);letter-spacing:1.5px}
.detail-loading .txt b{color:var(--accent2);font-weight:700}
.detail-fade>.detail-row,.detail-fade>.fovea-detail-top,.detail-fade>.detail-divider,.detail-fade>.detail-action{opacity:0;transform:translateY(8px);animation:detailStaggerIn .4s cubic-bezier(.22,.61,.36,1) forwards}
.detail-fade>:nth-child(1){animation-delay:0s}
.detail-fade>:nth-child(2){animation-delay:.05s}
.detail-fade>:nth-child(3){animation-delay:.1s}
.detail-fade>:nth-child(4){animation-delay:.15s}
.detail-fade>:nth-child(5){animation-delay:.2s}
.detail-fade>:nth-child(6){animation-delay:.25s}
.detail-fade>:nth-child(7){animation-delay:.3s}
@keyframes detailStaggerIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

button,a,.tab,.card-open,.card-fovea,.more-overlay,.sheet,.sheet-handle,.sheet-close,.more-panel-close,.detail-friend-btn,.fovea-detail-cover,.fovea-owner-avatar,.search-type-tag,.search-result-item{-webkit-tap-highlight-color:transparent;outline:none!important}
button:focus,a:focus,.tab:focus,.card-open:focus,.card-fovea:focus,.search-input:focus{outline:none!important;box-shadow:none!important}
button:focus-visible,a:focus-visible{outline:none!important}
.owner-name-blue{color:#60a5fa!important;font-weight:600}
.super-name-blue{color:#60a5fa!important;font-weight:600}

/* 全局弹窗 */
.popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(3px)}
.popup-overlay.show{opacity:1;pointer-events:auto}
.popup-card{background:#ffffff;border-radius:20px;width:88vw;max-width:340px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.04);position:relative;animation:popupIn .38s cubic-bezier(.22,1,.36,1)}
@keyframes popupIn{from{transform:translateY(28px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.popup-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:rgba(0,0,0,.06);color:#aaa;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;z-index:10;line-height:1}
.popup-close:hover{background:rgba(0,0,0,.12);color:#555}
.popup-banner{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:24px 24px 20px;text-align:center;position:relative;overflow:hidden}
.popup-banner::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.popup-banner-icon{font-size:32px;line-height:1;margin-bottom:8px}
.popup-banner-title{font-size:17px;font-weight:700;color:#fff;letter-spacing:.3px;line-height:1.35}
.popup-banner-sub{font-size:11px;color:rgba(255,255,255,.72);margin-top:5px;line-height:1.5}
.popup-inner{padding:16px 16px 18px;display:flex;flex-direction:column;gap:10px}
.popup-honor{background:linear-gradient(135deg,#fef9c3,#fef3c7);border:1px solid #fcd34d;border-radius:12px;padding:13px 15px;cursor:pointer;transition:transform .18s,box-shadow .18s;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:12px}
.popup-honor:active{transform:scale(.97)}
.popup-honor-crown{font-size:26px;flex-shrink:0;line-height:1}
.popup-honor-body{flex:1;min-width:0}
.popup-honor-name{font-size:14px;font-weight:700;color:#92400e;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px}
.popup-honor-role{font-size:11px;color:#b45309;line-height:1.45;margin-bottom:6px}
.popup-honor-link{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:#d97706;background:rgba(251,191,36,.25);padding:2px 10px;border-radius:99px;border:1px solid rgba(251,191,36,.5)}
.popup-tips{display:flex;flex-direction:column;gap:8px}
.popup-tip-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#dbeafe);cursor:pointer;transition:transform .18s,box-shadow .18s;-webkit-tap-highlight-color:transparent}
.popup-tip-item:active{transform:scale(.97)}
.popup-tip-icon{font-size:20px;flex-shrink:0;line-height:1;margin-top:1px}
.popup-tip-item>div{flex:1;min-width:0}
.popup-tip-item strong{display:block;font-size:13px;font-weight:700;color:#1e3a5f;margin-bottom:3px;line-height:1.35}
.popup-tip-item span{font-size:11px;color:#3b82f6;font-weight:500}
.popup-permanent{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;background:rgba(100,116,139,.07);border:1px solid rgba(100,116,139,.14)}
.popup-permanent-icon{font-size:18px;flex-shrink:0}
.popup-permanent-text{flex:1;font-size:11px;color:#64748b;line-height:1.5}
.popup-permanent-text strong{color:#475569;font-weight:600;display:block;margin-bottom:1px;font-size:11.5px}

[data-theme="dark"] .popup-card{background:#1a1d2e}
[data-theme="dark"] .popup-close{background:rgba(255,255,255,.07);color:#888}
[data-theme="dark"] .popup-close:hover{background:rgba(255,255,255,.14);color:#ccc}
[data-theme="dark"] .popup-banner{background:linear-gradient(135deg,#3b3784 0%,#5b2d8e 100%)}
[data-theme="dark"] .popup-honor{background:linear-gradient(135deg,#2d2005,#3d2c0a);border-color:#b45309}
[data-theme="dark"] .popup-honor-name{color:#fcd34d}
[data-theme="dark"] .popup-honor-role{color:#fbbf24}
[data-theme="dark"] .popup-honor-link{color:#fcd34d;background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.3)}
[data-theme="dark"] .popup-tip-item{background:linear-gradient(135deg,#0c1a3d,#0f2052);border-color:#1d4ed8}
[data-theme="dark"] .popup-tip-item strong{color:#bfdbfe}
[data-theme="dark"] .popup-tip-item span{color:#60a5fa}
[data-theme="dark"] .popup-permanent{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .popup-permanent-text{color:#94a3b8}
[data-theme="dark"] .popup-permanent-text strong{color:#cbd5e1}



/* 骨架屏 */
@keyframes skeleton-pulse{0%,100%{opacity:.35}50%{opacity:.7}}
.skeleton-card{background:linear-gradient(135deg,var(--card-bg),var(--input-bg));border-radius:8px;overflow:hidden;animation:skeleton-pulse 1.4s ease-in-out infinite;display:flex;flex-direction:column}
.skeleton-card .sk-cover{width:100%;aspect-ratio:3/4;background:var(--input-bg);flex-shrink:0}
.skeleton-card .sk-line{height:9px;border-radius:5px;background:var(--input-bg);margin:8px 10px 0}
.skeleton-card .sk-line:last-child{width:60%;margin-bottom:10px}
.skeleton-card-fovea{background:linear-gradient(135deg,var(--card-bg),var(--input-bg));border-radius:6px;overflow:hidden;animation:skeleton-pulse 1.4s ease-in-out infinite;display:flex;flex-direction:column}
.skeleton-card-fovea .sk-cover{width:100%;aspect-ratio:4/5;background:var(--input-bg);flex-shrink:0}
.skeleton-card-fovea .sk-line{height:6px;border-radius:3px;background:var(--input-bg);margin:5px 6px 0}
.skeleton-card-fovea .sk-line:last-child{width:55%;margin-bottom:6px}
.skeleton-card-recommend{background:linear-gradient(135deg,var(--card-bg),var(--input-bg));border-radius:6px;overflow:hidden;animation:skeleton-pulse 1.4s ease-in-out infinite;display:flex;flex-direction:column}
.skeleton-card-recommend .sk-cover{width:100%;aspect-ratio:1/1;background:var(--input-bg);flex-shrink:0}
.skeleton-card-recommend .sk-line{height:6px;border-radius:3px;background:var(--input-bg);margin:4px 6px 0}
.skeleton-card-recommend .sk-line:last-child{width:55%;margin-bottom:6px}
