.footer-container{border-top:1px solid var(--border-color);background:rgba(var(--card-bg-rgb), .5);flex-shrink:0}.footer-container .footer-content{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex}@media (max-width:768px){.footer-container .footer-content{text-align:center;flex-direction:column;gap:1rem}}.footer-container .footer-content .footer-text{color:var(--text-color-light);margin:0;font-size:.85rem}.footer-container .footer-content .back-to-top{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;transition:all .3s}.footer-container .footer-content .back-to-top:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}

.room-monitor-sticky{z-index:1000;color:#e0e0e0;background-color:#1e1e1e;border:1px solid #333;border-radius:8px;width:260px;font-family:sans-serif;animation:.3s ease-out slideIn;position:fixed;bottom:20px;right:20px;overflow:hidden;box-shadow:0 4px 12px #00000080}.room-monitor-sticky .monitor-header{background-color:#252525;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.75rem;font-weight:600;display:flex}.room-monitor-sticky .monitor-header .status-indicator{align-items:center;gap:6px;display:flex}.room-monitor-sticky .monitor-header .status-indicator .status-text{color:#888;text-transform:uppercase;letter-spacing:.5px}.room-monitor-sticky .monitor-header .status-indicator .status-dot{background-color:#4ade80;border-radius:50%;width:8px;height:8px}.room-monitor-sticky .monitor-header .status-indicator .status-dot.pulsing{animation:2s infinite pulse}.room-monitor-sticky .monitor-header .player-count{color:#aaa}.room-monitor-sticky .monitor-body{flex-direction:column;gap:4px;padding:12px;display:flex}.room-monitor-sticky .monitor-body .room-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.room-monitor-sticky .monitor-body .status-message{font-size:.85rem}.room-monitor-sticky .monitor-body .status-message.waiting{color:#9ca3af;font-style:italic}.room-monitor-sticky .monitor-body .status-message.alert{color:#fbbf24;font-weight:700}.room-monitor-sticky .btn-maximize{color:#fff;cursor:pointer;background-color:#3b82f6;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:8px;font-size:.85rem;font-weight:600;transition:background-color .2s;display:flex}.room-monitor-sticky .btn-maximize:hover{background-color:#2563eb}.room-monitor-sticky .btn-maximize svg{margin-top:-1px}@keyframes pulse{0%{box-shadow:0 0 #4ade8066}70%{box-shadow:0 0 0 6px #4ade8000}to{box-shadow:0 0 #4ade8000}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.game-monitor-sticky{background:var(--card-bg);border:1px solid var(--border-color);z-index:1000;border-radius:12px;flex-direction:column;max-width:500px;padding:12px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 20px #0000004d}.game-monitor-sticky .monitor-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.game-monitor-sticky .monitor-header .status-indicator{align-items:center;gap:6px;display:flex}.game-monitor-sticky .monitor-header .status-indicator .status-dot{background:#4caf50;border-radius:50%;width:8px;height:8px;display:inline-block}.game-monitor-sticky .monitor-header .status-indicator .status-dot.pulsing{animation:1.5s ease-in-out infinite pulse-dot}.game-monitor-sticky .monitor-header .status-indicator .status-text{color:#fff;background:#0006;border-radius:4px;padding:2px 8px;font-size:.8rem;font-weight:700}.game-monitor-sticky .monitor-header .header-actions{align-items:center;gap:8px;display:flex}.game-monitor-sticky .monitor-header .header-actions .turn-indicator{color:var(--text-color-light);font-size:.75rem;font-weight:600}.game-monitor-sticky .monitor-header .header-actions .btn-minimize{color:var(--text-color);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.game-monitor-sticky .monitor-header .header-actions .btn-minimize:hover{background:#ffffff1a}.game-monitor-sticky .mini-board-wrapper{aspect-ratio:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.game-monitor-sticky .mini-board-wrapper .mini-overlay{pointer-events:none;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.game-monitor-sticky .mini-board-wrapper .mini-overlay.check-overlay{background:#ff000026;animation:1.5s ease-in-out infinite pulse-overlay}.game-monitor-sticky .mini-board-wrapper .mini-overlay.checkmate-overlay,.game-monitor-sticky .mini-board-wrapper .mini-overlay.draw-overlay{background:#0009}.game-monitor-sticky .mini-board-wrapper .mini-overlay.checkmate-overlay .overlay-icon{justify-content:center;align-items:center;width:40px;height:40px;display:flex}.game-monitor-sticky .mini-board-wrapper .mini-overlay .overlay-text{flex-direction:column;align-items:center;margin-top:4px;line-height:1;display:flex}.game-monitor-sticky .mini-board-wrapper .mini-overlay .overlay-text-loss{color:#ff4d4f}.game-monitor-sticky .mini-board-wrapper .mini-overlay .overlay-text-win-green{color:#30d158}.game-monitor-sticky .mini-board-wrapper .mini-overlay .overlay-text-win-blue{color:#4da3ff}.game-monitor-sticky .mini-board-wrapper .mini-overlay .overlay-text-draw{color:#f0c419}.game-monitor-sticky .mini-board-wrapper .mini-overlay .result-line{text-align:center;display:block}.game-monitor-sticky .mini-board-wrapper .mini-overlay .result-line-main{letter-spacing:.04em;font-size:1rem;font-weight:800}.game-monitor-sticky .mini-board-wrapper .mini-overlay .result-line-sub{margin-top:2px;font-size:.78rem;font-weight:700}.game-monitor-sticky .btn-maximize{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:12px;padding:8px 12px;font-size:.85rem;transition:background .2s;display:flex}.game-monitor-sticky .btn-maximize:hover{background:var(--primary-dark)}.game-monitor-hidden-toggle{z-index:1000;background:var(--card-bg);color:var(--text-color);border:2px solid var(--border-color);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 16px;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s,color .2s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 15px #0000004d}.game-monitor-hidden-toggle:hover{transform:translateY(-2px)}.game-monitor-hidden-toggle .result-text{flex-direction:column;align-items:center;line-height:1;display:flex}.game-monitor-hidden-toggle .result-line{text-align:center;white-space:nowrap;display:block}.game-monitor-hidden-toggle .result-line-main{letter-spacing:.04em;font-size:.82rem;font-weight:800}.game-monitor-hidden-toggle .result-line-sub{margin-top:2px;font-size:.72rem;font-weight:700}.game-monitor-hidden-toggle .result-text-loss{color:#ff4d4f}.game-monitor-hidden-toggle .result-text-win-green{color:#30d158}.game-monitor-hidden-toggle .result-text-win-blue{color:#4da3ff}.game-monitor-hidden-toggle .result-text-draw{color:#f0c419}.game-monitor-hidden-toggle.king-check-flash{color:#fdd;border-color:#ff4d4f;animation:1.2s infinite pulse-border-check}.game-monitor-hidden-toggle.king-checkmate-loss{color:#fdd;border-color:#ff4d4f;animation:1.2s infinite pulse-border-check;box-shadow:0 0 18px #ff4d4f8c}.game-monitor-hidden-toggle.king-checkmate-win{color:#d8ffe4;border-color:#30d158;animation:1.2s infinite pulse-border-win;box-shadow:0 0 18px #30d1588c}.game-monitor-hidden-toggle.game-result-win{color:#dcecff;border-color:#4da3ff;box-shadow:0 0 18px #4da3ff8c}.game-monitor-hidden-toggle.game-result-draw{color:#fff4c2;border-color:#f0c419;box-shadow:0 0 18px #f0c4198c}.game-monitor-hidden-toggle .turn-indicator{color:#4caf50;font-size:.75rem;font-weight:700}.game-monitor-hidden-toggle.my-turn-flash{animation:1.5s infinite pulse-border-turn}@keyframes pulse-border-turn{0%{border-color:var(--border-color);box-shadow:0 0 5px #4caf5000}50%{border-color:#4caf50;box-shadow:0 0 15px #4caf50cc}to{border-color:var(--border-color);box-shadow:0 0 5px #4caf5000}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}@keyframes pulse-overlay{0%,to{opacity:.4}50%{opacity:.8}}@keyframes pulse-border-check{0%{transform:translateY(0);box-shadow:0 0 5px #ff4d4f26}50%{transform:translateY(-2px);box-shadow:0 0 18px #ff4d4fbf}to{transform:translateY(0);box-shadow:0 0 5px #ff4d4f26}}@keyframes pulse-border-win{0%{transform:translateY(0);box-shadow:0 0 5px #30d15826}50%{transform:translateY(-2px);box-shadow:0 0 18px #30d158bf}to{transform:translateY(0);box-shadow:0 0 5px #30d15826}}@media (max-width:768px){.game-monitor-sticky{padding:8px;bottom:10px;right:10px}.game-monitor-sticky .mini-board-wrapper{max-width:100%}.game-monitor-sticky .btn-maximize{padding:4px 8px;font-size:.7rem}.game-monitor-sticky .monitor-header .status-text{font-size:.6rem}.game-monitor-hidden-toggle{padding:8px 12px;font-size:.8rem;bottom:10px;right:10px}.game-monitor-hidden-toggle .result-line-main{font-size:.7rem}.game-monitor-hidden-toggle .result-line-sub{font-size:.62rem}}
