/* === 五子棋 — Premium Dark Theme === */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;600;700;900&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}
html,body{width:100%;height:100%;overflow:hidden;font-family:'Noto Sans TC','Segoe UI',sans-serif;background:#080818;color:#e0e0ff;}

/* Screens */
.screen{display:none;position:absolute;inset:0;z-index:1;}
.screen.active{display:flex;align-items:center;justify-content:center;flex-direction:column;}
.overlay{display:none;position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;background:rgba(4,4,16,0.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.overlay.active{display:flex;}

/* === Menu === */
.menu-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.menu-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 20%,#151538 0%,#080818 60%);}
.menu-bg::after{content:'';position:absolute;inset:0;background:
  radial-gradient(2px 2px at 20% 30%,rgba(0,212,255,0.3),transparent),
  radial-gradient(2px 2px at 80% 20%,rgba(123,47,247,0.3),transparent),
  radial-gradient(2px 2px at 50% 70%,rgba(0,212,255,0.2),transparent),
  radial-gradient(1px 1px at 10% 80%,rgba(255,255,255,0.15),transparent),
  radial-gradient(1px 1px at 90% 60%,rgba(255,255,255,0.1),transparent),
  radial-gradient(1px 1px at 40% 10%,rgba(123,47,247,0.2),transparent);
animation:twinkle 8s ease-in-out infinite alternate;}
@keyframes twinkle{0%{opacity:0.6;}100%{opacity:1;}}
.menu-content{position:relative;z-index:1;text-align:center;padding:20px;}

/* Title */
.title-glow{font-size:3.8rem;font-weight:900;letter-spacing:0.05em;background:linear-gradient(135deg,#00d4ff 0%,#7b2ff7 50%,#ff6ec7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px rgba(0,212,255,0.4));animation:title-breathe 4s ease-in-out infinite;}
.subtitle{font-size:1.1rem;letter-spacing:0.8em;color:rgba(123,143,255,0.7);margin:4px 0 48px;text-transform:uppercase;font-weight:400;}
@keyframes title-breathe{0%,100%{filter:drop-shadow(0 0 30px rgba(0,212,255,0.4)) brightness(1);}50%{filter:drop-shadow(0 0 50px rgba(123,47,247,0.5)) brightness(1.15);}}

/* === Buttons === */
.menu-buttons{display:flex;flex-direction:column;gap:14px;align-items:center;}
.btn-neon{padding:14px 40px;font-size:1.05rem;border:1.5px solid rgba(0,212,255,0.5);background:linear-gradient(135deg,rgba(0,212,255,0.08),rgba(123,47,247,0.08));color:#d0d0ff;border-radius:14px;cursor:pointer;transition:all 0.35s cubic-bezier(0.4,0,0.2,1);min-width:220px;font-weight:600;position:relative;overflow:hidden;letter-spacing:0.02em;}
.btn-neon::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,212,255,0.15),rgba(123,47,247,0.15));opacity:0;transition:opacity 0.35s;}
.btn-neon:hover::before{opacity:1;}
.btn-neon:hover{border-color:rgba(0,212,255,0.8);box-shadow:0 0 24px rgba(0,212,255,0.25),0 4px 16px rgba(0,0,0,0.3);transform:translateY(-3px);}
.btn-neon:active{transform:translateY(0);box-shadow:0 0 12px rgba(0,212,255,0.2);}
.btn-ghost{padding:10px 28px;font-size:0.95rem;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.03);color:rgba(255,255,255,0.5);border-radius:10px;cursor:pointer;transition:all 0.25s;backdrop-filter:blur(4px);}
.btn-ghost:hover{border-color:rgba(255,255,255,0.25);color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.06);}
.btn-sm{padding:8px 16px;font-size:0.88rem;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:rgba(255,255,255,0.55);border-radius:10px;cursor:pointer;transition:all 0.25s;}
.btn-sm:hover{border-color:rgba(0,212,255,0.5);color:#00d4ff;background:rgba(0,212,255,0.06);}
.btn-exit{border-color:rgba(244,67,54,0.4);color:rgba(244,67,54,0.8);}
.btn-exit:hover{border-color:#f44336;color:#ff6b6b;background:rgba(244,67,54,0.08);}
.btn-icon{background:none;border:none;color:rgba(255,255,255,0.4);font-size:1.4rem;cursor:pointer;padding:4px 8px;transition:color 0.2s;}
.btn-icon:hover{color:#00d4ff;}

/* === Setup Panel === */
.panel{background:rgba(14,14,36,0.95);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:32px;max-width:420px;width:92%;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.05);backdrop-filter:blur(16px);}
.panel h2{margin-bottom:24px;font-size:1.35rem;font-weight:700;color:#e0e0ff;}
.setup-group{margin-bottom:20px;text-align:left;}
.setup-group label{display:block;margin-bottom:8px;color:rgba(255,255,255,0.45);font-size:0.88rem;font-weight:600;letter-spacing:0.03em;}
.btn-group{display:flex;gap:8px;flex-wrap:wrap;}
.btn-opt{flex:1;padding:10px;font-size:0.88rem;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.02);color:rgba(255,255,255,0.5);border-radius:10px;cursor:pointer;transition:all 0.25s;min-width:80px;}
.btn-opt.active{border-color:rgba(0,212,255,0.6);color:#00d4ff;background:rgba(0,212,255,0.08);box-shadow:0 0 12px rgba(0,212,255,0.1);}
.btn-opt:hover{border-color:rgba(255,255,255,0.2);}
.rank-grid{display:grid!important;grid-template-columns:repeat(4,1fr);gap:8px;}
.rank-btn{flex:none!important;display:flex;flex-direction:column;align-items:center;padding:8px 4px!important;min-width:0!important;}
.rank-label{font-size:1rem;font-weight:700;}
.rank-sub{font-size:0.7rem;opacity:0.5;margin-top:2px;}
.rank-btn.dan{border-color:rgba(204,168,0,0.3);color:rgba(204,168,0,0.7);}
.rank-btn.dan.active{border-color:rgba(255,215,0,0.7);color:#ffd700;background:rgba(255,215,0,0.08)!important;box-shadow:0 0 12px rgba(255,215,0,0.1);}
.rank-btn.dan:hover{border-color:rgba(255,215,0,0.4);}
.setup-actions{margin-top:28px;display:flex;flex-direction:column;gap:12px;}

/* === Game Screen === */
#gameScreen{flex-direction:column;background:#080818;}
#gameHeader{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;width:100%;background:rgba(255,255,255,0.02);border-bottom:1px solid rgba(255,255,255,0.04);}
#turnIndicator{display:flex;align-items:center;gap:8px;font-size:0.95rem;font-weight:600;}
#turnDot{width:14px;height:14px;border-radius:50%;display:inline-block;transition:all 0.3s;}
.dot-black{background:radial-gradient(circle at 35% 35%,#3a3a5e,#0a0a1e);border:2px solid rgba(0,212,255,0.6);box-shadow:0 0 10px rgba(0,212,255,0.3);}
.dot-white{background:radial-gradient(circle at 35% 35%,#fff,#c0c0c0);border:2px solid rgba(255,215,0,0.6);box-shadow:0 0 10px rgba(255,215,0,0.3);}
#moveCount{color:rgba(255,255,255,0.3);font-size:0.82rem;font-weight:400;}
#boardContainer{flex:1;display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden;position:relative;}
#boardCanvas{touch-action:none;cursor:pointer;border-radius:4px;}
#gameFooter{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;width:100%;background:rgba(255,255,255,0.02);border-top:1px solid rgba(255,255,255,0.04);}

/* === Win Overlay === */
#vfxCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.win-content{position:relative;z-index:1;text-align:center;padding:20px;}
.win-content h2{font-size:2.6rem;margin-bottom:8px;font-weight:900;letter-spacing:0.02em;}
.win-content p{color:rgba(255,255,255,0.45);margin-bottom:28px;font-size:0.95rem;}
.win-actions{display:flex;flex-direction:column;gap:12px;align-items:center;}

/* === Replay === */
.replay-panel{max-width:500px;width:92%;}
#replayBoardContainer{margin:16px auto;position:relative;}
#replayCanvas{display:block;margin:0 auto;border-radius:4px;}
.replay-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px;}
#replayStep{color:rgba(255,255,255,0.4);min-width:60px;text-align:center;font-variant-numeric:tabular-nums;}

/* Replay Commentary Panel */
.replay-comment{min-height:60px;max-height:120px;overflow-y:auto;margin:0 0 12px;padding:10px 14px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:10px;font-size:0.82rem;line-height:1.5;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent;}
.rc-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.rc-num{font-size:0.75rem;color:rgba(255,255,255,0.35);font-variant-numeric:tabular-nums;}
.rc-label{font-weight:600;font-size:0.8rem;}
.rc-wr{margin-left:auto;font-size:0.7rem;color:rgba(255,255,255,0.3);font-variant-numeric:tabular-nums;}
.rc-detail{color:rgba(255,255,255,0.6);font-size:0.78rem;line-height:1.55;}
.rc-hint{color:rgba(255,255,255,0.25);font-size:0.75rem;font-style:italic;}
.rc-best .rc-label{color:#00d4ff;}
.rc-good .rc-label{color:#4caf50;}
.rc-ok .rc-label{color:#888;}
.rc-warn .rc-label{color:#ff9800;}
.rc-bad .rc-label{color:#f44336;}
.rc-blunder .rc-label{color:#d32f2f;}

/* === Responsive === */
@media(max-width:600px){
  .title-glow{font-size:2.6rem;}
  .subtitle{font-size:0.85rem;letter-spacing:0.5em;margin-bottom:36px;}
  .btn-neon{padding:12px 30px;font-size:1rem;min-width:180px;}
  .panel{padding:24px 20px;}
  #gameFooter{gap:6px;}
  .btn-sm{padding:6px 12px;font-size:0.82rem;}
}

/* === Analysis Panel === */
.analysis-panel{background:rgba(14,14,36,0.97);border:1px solid rgba(255,255,255,0.06);border-radius:20px;width:95%;max-width:500px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,0.5);}
.analysis-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 10px;position:sticky;top:0;background:rgba(14,14,36,0.98);z-index:2;border-radius:20px 20px 0 0;backdrop-filter:blur(8px);}
.analysis-header h2{font-size:1.25rem;margin:0;font-weight:700;}
.analysis-footer{padding:14px 22px 18px;text-align:center;position:sticky;bottom:0;background:rgba(14,14,36,0.98);border-radius:0 0 20px 20px;}
.analysis-loading{text-align:center;padding:48px 20px;}
.spinner{width:36px;height:36px;border:2.5px solid rgba(255,255,255,0.08);border-top-color:#00d4ff;border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 14px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Summary */
.analysis-summary{display:flex;align-items:center;gap:20px;padding:14px 22px;flex-wrap:wrap;justify-content:center;}
.accuracy-ring{position:relative;width:110px;height:110px;flex-shrink:0;}
.accuracy-ring svg{width:100%;height:100%;}
.accuracy-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.accuracy-text span{font-size:2rem;font-weight:900;color:#00d4ff;}
.accuracy-text small{font-size:1rem;color:#00d4ff;}
.accuracy-label{font-size:0.72rem;color:rgba(255,255,255,0.35);margin-top:2px;font-weight:600;letter-spacing:0.05em;}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;}
.stat-item{font-size:0.84rem;color:rgba(255,255,255,0.5);display:flex;align-items:center;gap:6px;}
.stat-item span:last-child{margin-left:auto;color:#e0e0ff;font-weight:700;}
.stat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* Win Rate Chart */
.chart-section{padding:10px 22px;}
.chart-section h3,.moments-section h3,.moves-section h3,.gemini-section h3{font-size:0.92rem;margin-bottom:10px;color:rgba(255,255,255,0.4);font-weight:600;letter-spacing:0.03em;}
#winRateChart{width:100%;height:120px;display:block;border-radius:10px;}

/* Key Moments */
.moments-section{padding:10px 22px;}
.moment-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.04);border-radius:12px;margin-bottom:8px;cursor:pointer;transition:all 0.25s;}
.moment-item:hover{background:rgba(0,212,255,0.04);border-color:rgba(0,212,255,0.15);}
.moment-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:700;flex-shrink:0;}
.moment-num.black{background:radial-gradient(circle at 35% 35%,#2a2a4e,#0a0a1e);border:2px solid rgba(0,212,255,0.5);color:#00d4ff;}
.moment-num.white{background:radial-gradient(circle at 35% 35%,#fff,#d0d0d0);border:2px solid rgba(255,215,0,0.5);color:#333;}
.moment-info{flex:1;min-width:0;}
.moment-info .label{font-size:0.84rem;font-weight:600;}
.moment-info .detail{font-size:0.72rem;color:rgba(255,255,255,0.3);margin-top:2px;}
.moment-delta{font-size:0.84rem;font-weight:700;}

/* Move List */
.moves-section{padding:10px 22px 18px;}
.move-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;margin-bottom:3px;font-size:0.82rem;transition:all 0.2s;border:1px solid transparent;}
.move-item:hover{background:rgba(0,212,255,0.04);border-color:rgba(0,212,255,0.1);}
.move-item .num{width:24px;text-align:center;color:rgba(255,255,255,0.25);font-size:0.72rem;font-weight:600;}
.move-item .coord{color:rgba(255,255,255,0.5);width:36px;font-weight:600;}
.move-item .rating-badge{padding:2px 8px;border-radius:6px;font-size:0.7rem;font-weight:700;}
.move-item .best-hint{color:rgba(255,255,255,0.25);font-size:0.7rem;margin-left:auto;}
.move-color-dot{font-size:0.7rem;flex-shrink:0;}
.active-toggle{border-color:#00d4ff!important;color:#00d4ff!important;}

/* Gemini AI Review */
.gemini-section{padding:10px 22px;}
.gemini-review{background:rgba(0,212,255,0.03);border:1px solid rgba(0,212,255,0.1);border-radius:12px;padding:16px 18px;font-size:0.86rem;line-height:1.7;color:rgba(255,255,255,0.65);white-space:pre-wrap;word-break:break-word;}
.gemini-loading{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,0.4);font-size:0.84rem;}
.spinner-sm{width:16px;height:16px;border:2px solid rgba(255,255,255,0.08);border-top-color:#00d4ff;border-radius:50%;animation:spin 0.8s linear infinite;flex-shrink:0;}

/* === History Panel === */
.history-panel{max-width:440px;width:92%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;background:rgba(14,14,36,0.97);border:1px solid rgba(255,255,255,0.06);border-radius:20px;box-shadow:0 12px 48px rgba(0,0,0,0.5);}
.history-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 10px;}
.history-header h2{margin:0;font-size:1.25rem;font-weight:700;}
.history-stats{padding:10px 18px;}
.stats-row{display:flex;gap:8px;justify-content:center;}
.stat-box{flex:1;text-align:center;padding:12px 4px;background:rgba(255,255,255,0.02);border-radius:12px;border:1px solid rgba(255,255,255,0.05);}
.stat-box .stat-num{display:block;font-size:1.5rem;font-weight:900;color:#e0e0ff;}
.stat-box .stat-lbl{font-size:0.72rem;color:rgba(255,255,255,0.3);font-weight:600;letter-spacing:0.03em;}
.stat-box.win .stat-num{color:#4caf50;}
.stat-box.lose .stat-num{color:#f44336;}
.diff-stats{margin-top:12px;}
.diff-row{display:flex;align-items:center;padding:6px 10px;font-size:0.84rem;border-radius:6px;}
.diff-row:nth-child(odd){background:rgba(255,255,255,0.015);}
.diff-name{width:50px;color:rgba(255,255,255,0.5);font-weight:700;}
.diff-record{flex:1;color:rgba(255,255,255,0.35);}
.diff-rate{width:40px;text-align:right;color:#00d4ff;font-weight:700;}
.history-list{flex:1;overflow-y:auto;padding:8px 18px;min-height:0;}
.history-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;font-size:0.84rem;border-bottom:1px solid rgba(255,255,255,0.03);transition:background 0.2s;}
.history-item:last-child{border-bottom:none;}
.hi-date{width:72px;color:rgba(255,255,255,0.25);font-size:0.76rem;font-variant-numeric:tabular-nums;}
.hi-color{width:20px;text-align:center;}
.hi-diff{flex:1;color:rgba(255,255,255,0.5);font-weight:600;}
.hi-result{width:24px;text-align:center;font-weight:800;}
.result-win{color:#4caf50;}
.result-lose{color:#f44336;}
.result-draw{color:rgba(255,255,255,0.35);}
.hi-moves{width:40px;text-align:right;color:rgba(255,255,255,0.2);font-size:0.76rem;}
.history-empty{text-align:center;color:rgba(255,255,255,0.25);padding:36px 0;font-size:0.92rem;}
.history-footer{display:flex;gap:12px;justify-content:center;padding:14px 18px;border-top:1px solid rgba(255,255,255,0.04);}
.btn-danger{color:#f44336!important;border-color:rgba(244,67,54,0.3)!important;}
.btn-danger:hover{background:rgba(244,67,54,0.08)!important;border-color:#f44336!important;}
.btn-history{border-color:rgba(123,47,247,0.4);background:linear-gradient(135deg,rgba(123,47,247,0.1),rgba(0,212,255,0.05));}
.btn-history:hover{border-color:rgba(168,85,247,0.6);box-shadow:0 0 20px rgba(123,47,247,0.2);}

/* === Move Advice === */
.move-advice,.moment-advice{font-size:0.76rem;color:rgba(255,255,255,0.5);margin-top:4px;line-height:1.5;padding:5px 10px;background:rgba(0,212,255,0.03);border-left:2px solid rgba(0,212,255,0.3);border-radius:0 6px 6px 0;}
.moment-advice{margin-top:6px;}

/* === Tutorial Mode === */
.toggle-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;position:relative;padding-right:52px;}
.toggle-row span:first-child{font-size:0.95rem;color:#e0e0ff;}
.toggle-hint{font-size:0.72rem;color:rgba(255,255,255,0.3);width:100%;}
.toggle-row input[type="checkbox"]{display:none;}
.toggle-slider{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:24px;background:rgba(255,255,255,0.1);border-radius:12px;transition:background 0.3s;}
.toggle-slider::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:rgba(255,255,255,0.3);border-radius:50%;transition:all 0.3s;}
.toggle-row input:checked+.toggle-slider{background:rgba(0,212,255,0.3);}
.toggle-row input:checked+.toggle-slider::after{left:23px;background:#00d4ff;box-shadow:0 0 8px rgba(0,212,255,0.4);}

/* Tutorial Hint Toast */
.tutorial-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(10,10,28,0.95);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:12px 18px;font-size:0.84rem;color:rgba(255,255,255,0.7);max-width:90%;text-align:center;opacity:0;transition:all 0.35s cubic-bezier(0.4,0,0.2,1);pointer-events:none;z-index:10;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);line-height:1.5;box-shadow:0 4px 20px rgba(0,0,0,0.3);}
.tutorial-hint.show{opacity:1;transform:translateX(-50%) translateY(0);}
.tutorial-hint.hint-good{border-color:rgba(76,175,80,0.4);color:rgba(165,214,167,0.9);box-shadow:0 4px 20px rgba(76,175,80,0.1);}
.tutorial-hint.hint-ok{border-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);}
.tutorial-hint.hint-warn{border-color:rgba(255,152,0,0.4);color:rgba(255,204,128,0.9);box-shadow:0 4px 20px rgba(255,152,0,0.1);}
.tutorial-hint.hint-bad{border-color:rgba(244,67,54,0.4);color:rgba(239,154,154,0.9);box-shadow:0 4px 20px rgba(244,67,54,0.1);}

/* === AI Thinking Animation === */
.ai-thinking{animation:think-pulse 1.2s ease-in-out infinite;}
@keyframes think-pulse{0%,100%{box-shadow:0 0 8px currentColor;}50%{box-shadow:0 0 18px currentColor,0 0 28px currentColor;}}
.thinking-text{opacity:0.6;}
.thinking-dots span{animation:dot-blink 1.4s infinite;opacity:0;font-weight:900;}
.thinking-dots span:nth-child(1){animation-delay:0s;}
.thinking-dots span:nth-child(2){animation-delay:0.2s;}
.thinking-dots span:nth-child(3){animation-delay:0.4s;}
@keyframes dot-blink{0%,20%{opacity:0;}50%{opacity:1;}100%{opacity:0;}}

/* === Game Timer === */
.game-timer{display:flex;align-items:center;gap:6px;font-size:0.76rem;color:rgba(255,255,255,0.25);font-variant-numeric:tabular-nums;font-weight:600;}
.timer-black,.timer-white{padding:3px 8px;border-radius:6px;transition:all 0.3s;}
.timer-active{color:#e0e0ff;background:rgba(0,212,255,0.08);box-shadow:0 0 8px rgba(0,212,255,0.1);}
.timer-sep{color:rgba(255,255,255,0.1);}

/* === History Replay Icon === */
.history-item.has-replay{cursor:pointer;}
.history-item.has-replay:hover{background:rgba(0,212,255,0.04);}
.hi-replay-icon{color:rgba(0,212,255,0.5);font-size:0.72rem;margin-left:4px;transition:all 0.2s;}
.history-item.has-replay:hover .hi-replay-icon{color:#00d4ff;}

/* === Music Selector v3 (30 tracks) === */
.music-selector{display:flex;flex-direction:column;gap:8px;}
.bgm-tabs{display:flex;gap:4px;flex-wrap:wrap;}
.bgm-cat{padding:6px 10px;font-size:0.78rem;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.02);color:rgba(255,255,255,0.45);border-radius:8px;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.bgm-cat.active{border-color:rgba(0,212,255,0.6);color:#00d4ff;background:rgba(0,212,255,0.08);}
.bgm-cat:hover{border-color:rgba(255,255,255,0.2);}
.bgm-cnt{font-size:0.65rem;opacity:0.5;margin-left:2px;}
.bgm-ctrl{display:flex;align-items:center;gap:6px;}
.bgm-btn{background:none;border:none;color:rgba(255,255,255,0.5);font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:6px;transition:all 0.2s;}
.bgm-btn:hover{color:#fff;background:rgba(255,255,255,0.06);}
.bgm-now{flex:1;font-size:0.75rem;color:rgba(255,255,255,0.4);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bgm-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent;}
.bgm-track{padding:6px 10px;font-size:0.9rem;color:rgba(255,255,255,0.85);border-radius:6px;cursor:pointer;transition:all 0.2s;}
.bgm-track:hover{background:rgba(255,255,255,0.04);color:rgba(255,255,255,0.7);}
.bgm-track.active{color:#00d4ff;background:rgba(0,212,255,0.06);}
