:root{--bg-deep:#d8ecfa;--bg:#e8f4ff;--bg-elevated:#fff;--bg-secondary:#e8f4ff80;--card-bg:#fff;--card-bg-hover:#f0f7ff;--card-border:#c7e3f5;--card-shadow:0 2px 8px #0078a014;--card-shadow-hover:0 4px 16px #0078a026;--primary:#00b4d8;--primary-end:#0096b8;--primary-grad:linear-gradient(135deg, #00b4d8 0%, #0096b8 100%);--accent-warm:#ffb84d;--accent-pink:#ff6b9d;--accent-yellow:#ffd93d;--text:#1a3a5c;--text-primary:#1a3a5c;--text-secondary:#4a6a8a;--text-muted:#7a9ab8;--border:#c7e3f5;--border-light:#e0f0fa;--success:#4ade80;--danger:#ff5757;--warning:#ffb84d;--info:#00b4d8;--success-bg:#e8fcef;--danger-bg:#ffe5e5;--warning-bg:#fff4e0;--info-bg:#e0f7ff;--radius:16px;--radius-sm:10px;--font-title:"Orbitron", "Nunito", monospace;--font-body:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;background-color:#e8f4ff;background-image:radial-gradient(circle,#00b4d81f 1px,#0000 1px),radial-gradient(circle,#00b4d814 1px,#0000 1px),linear-gradient(135deg,#e8f4ff 0%,#d8ecfa 50%,#e8f4ff 100%);background-position:0 0,15px 15px,0 0;background-size:30px 30px,60px 60px,100% 100%;background-attachment:fixed;min-height:100vh;font-size:14px;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#d8ecfa}::-webkit-scrollbar-thumb{background:#00b4d866;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00b4d899}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.app-header{color:var(--text);border-bottom:2px solid var(--primary);z-index:50;background:#fff;align-items:center;gap:20px;padding:12px 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 12px #0078a01a}.app-brand{flex-shrink:0;align-items:center;gap:12px;height:40px;display:flex}.app-logo{object-fit:cover;border:1px solid var(--border);border-radius:12px;flex-shrink:0;width:40px;height:40px;transition:transform .3s,box-shadow .3s;box-shadow:0 2px 8px #0078a01f}.app-logo:hover{transform:rotate(-6deg)scale(1.05);box-shadow:0 4px 12px #0078a033}.app-brand>div{flex-direction:column;justify-content:center;height:100%;display:flex}.app-title{font-family:var(--font-title);letter-spacing:1px;color:var(--text);white-space:nowrap;font-size:20px;font-weight:700;line-height:1.1}.app-subtitle{font-family:var(--font-body);color:var(--text-secondary);letter-spacing:.5px;white-space:nowrap;margin-top:2px;font-size:12px;line-height:1.1}.header-search-bar{flex:1;align-items:center;gap:8px;min-width:0;max-width:520px;margin:0 auto;display:flex}.header-search-bar .input{flex:1;width:auto;min-width:0}.header-add-btn{white-space:nowrap;flex-shrink:0}.header-right{flex-shrink:0;align-items:center;gap:12px;height:40px;display:flex}.input{border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);background:#00d9ff0d;border:1px solid #00d9ff4d;outline:none;width:280px;padding:8px 14px;font-size:13px;transition:all .2s}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--primary);background:#00d9ff1a;box-shadow:0 0 0 2px #00b4d833}.btn{border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font-body);border:none;align-items:center;gap:6px;padding:8px 16px;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary-grad);color:#0a0e27;box-shadow:0 2px 8px #0078a026}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0078a026}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff;box-shadow:0 2px 8px #ff575726}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:#00d9ff0d}.btn-ghost:hover{color:var(--text);border-color:var(--primary);background:#00d9ff1a}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.login-btn{background:var(--primary-grad);color:#fff;border:none;justify-content:center;min-width:96px;box-shadow:0 2px 8px #0078a040}.login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0078a059}.login-btn-logged{background:var(--success-bg);color:var(--success);box-shadow:none;border:1px solid #4ade8066}.login-btn-logged:hover{border-color:var(--success);background:#d4f7dd;box-shadow:0 2px 6px #4ade8033}.app-body{flex-direction:column;flex:1;gap:16px;width:100%;min-width:0;max-width:1600px;margin:0 auto;padding:20px 24px;display:flex;overflow-x:hidden}.main-content{flex-direction:column;gap:16px;min-width:0;display:flex}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--card-shadow);overflow-wrap:anywhere;word-break:break-word;min-width:0;padding:20px;transition:all .2s}.card-title{font-family:var(--font-title);color:var(--text);letter-spacing:.5px;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.card-title-text{align-items:center;gap:8px;display:flex}.badge{border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge-live{color:#ff7a7a;background:#ff57572e;border:1px solid #ff57574d}.badge-offline{color:var(--text-muted);border:1px solid var(--border);background:#8ca0c826}.badge-info{background:var(--info-bg);color:var(--info);border:1px solid #00d9ff4d}.badge-monitoring{color:var(--success);background:#4ade8026;border:1px solid #4ade804d}.badge-not-monitoring{color:var(--warning);background:#ffb84d26;border:1px solid #ffb84d4d}.export-btn{border:1px solid var(--border);color:var(--text);font-family:var(--font-body);cursor:pointer;background:#00d9ff0d;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .2s}.export-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#00d9ff1f}.export-btn:disabled{opacity:.4;cursor:not-allowed}.export-panel{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#f0f7ff;margin-bottom:14px;padding:12px}.export-range-presets{gap:6px;margin-bottom:10px;display:flex}.range-preset-btn{border:1px solid var(--border);color:var(--text);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:12px;transition:all .15s}.range-preset-btn:hover{border-color:var(--primary);color:var(--primary);background:#00d9ff14}.export-range-inputs{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.export-range-inputs label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.export-range-inputs input[type=date]{border:1px solid var(--border);color:var(--text);background:var(--card-bg);font-size:13px;font-family:var(--font-body);border-radius:6px;padding:5px 10px}.export-range-inputs input[type=date]::-webkit-calendar-picker-indicator{filter:none;cursor:pointer}.export-confirm-btn{background:var(--primary-grad);color:#0a0e27;font-family:var(--font-body);cursor:pointer;border:none;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #0078a026}.export-confirm-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #0078a026}.export-confirm-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.room-list-summary{align-items:center;gap:6px;display:flex}.room-avatar-list{scroll-snap-type:x proximity;scrollbar-width:thin;flex-direction:row;gap:14px;padding:6px 4px 12px;display:flex;overflow:auto hidden}.room-avatar-list::-webkit-scrollbar{height:5px}.room-avatar-list::-webkit-scrollbar-thumb{background:#00b4d84d;border-radius:3px}.room-avatar-card{cursor:pointer;scroll-snap-align:start;flex-direction:column;flex:none;align-items:center;gap:6px;width:76px;transition:transform .15s;display:flex}.room-avatar-card:hover{transform:translateY(-2px)}.room-avatar-card-img-wrap{border-radius:50%;width:56px;height:56px;position:relative;overflow:visible}.room-avatar-card-img{object-fit:cover;border:2px solid var(--border);color:#fff;background:linear-gradient(135deg,#00d9ff,#ff6b9d);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:22px;font-weight:700;display:flex}.room-avatar-card-fallback{background:var(--primary-grad)}.room-avatar-card.selected .room-avatar-card-img{border-color:var(--primary);border-width:3px}.room-avatar-live-ring{pointer-events:none;border:2px solid #ff5757;border-radius:50%;animation:1.5s ease-in-out infinite avatar-live-pulse;position:absolute;inset:-2px}@keyframes avatar-live-pulse{0%,to{opacity:.8;border-color:#ff5757;transform:scale(1)}50%{opacity:.3;border-color:#ff7a7a;transform:scale(1.12)}}.room-avatar-monitoring-dot{background:var(--success);border:2px solid var(--card-bg);z-index:2;border-radius:50%;width:12px;height:12px;position:absolute;top:2px;right:2px}.room-avatar-card-name{color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:11px;font-weight:600;line-height:1.2;overflow:hidden}.room-avatar-card.selected .room-avatar-card-name{color:var(--primary);font-weight:700}.room-avatar-card-all .room-avatar-card-img{color:var(--primary);border:2px dashed var(--primary);background:#00d9ff1a}.room-avatar-card-all:hover .room-avatar-card-img{background:#00d9ff33}.all-icon{color:var(--primary)}.all-rooms-fullscreen{background:var(--bg);z-index:999;flex-direction:column;width:100vw;height:100vh;animation:.25s all-rooms-slide;display:flex;position:fixed;top:0;left:0;overflow:hidden}@keyframes all-rooms-slide{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.all-rooms-page{background:var(--bg);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.all-rooms-header{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 20px;display:flex}.all-rooms-back{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.all-rooms-title{color:var(--text);flex-shrink:0;margin:0;font-size:18px;font-weight:700}.all-rooms-summary{flex-shrink:0;gap:6px;display:flex}.all-rooms-add-inline{flex:1;gap:8px;min-width:0;margin-left:auto;display:flex}.all-rooms-input{flex:1;width:auto;min-width:0}.all-rooms-add-btn{white-space:nowrap;flex-shrink:0}.all-rooms-list{flex-direction:column;flex:1;gap:10px;padding:16px 20px;display:flex;overflow-y:auto}.btn-all-rooms{border-radius:8px;margin-left:4px;padding:4px 12px;font-size:12px}.room-list{scroll-snap-type:x proximity;scrollbar-width:thin;flex-direction:row;gap:12px;padding:4px 4px 10px;display:flex;overflow:auto hidden}.room-list::-webkit-scrollbar{height:6px}.room-item{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--card-bg);scroll-snap-align:start;flex-direction:column;flex:0 0 230px;gap:6px;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.room-item:hover{background:#00d9ff0d;border-color:#0078a059;transform:translateY(-2px);box-shadow:0 4px 12px #0f285014}.room-item.active{border-color:var(--primary);background:#00d9ff1a;box-shadow:0 6px 16px #0078a02e}.room-item-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.room-anchor{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.room-avatar{object-fit:cover;background:linear-gradient(135deg,#00d9ff,#ff6b9d);border:1px solid #00d9ff4d;border-radius:50%;flex-shrink:0;width:32px;height:32px}.room-avatar-fallback{color:var(--text);justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.room-anchor-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:13px;font-weight:700;overflow:hidden}.room-title-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:12px;overflow:hidden}.room-name{white-space:nowrap;text-overflow:ellipsis;max-width:180px;color:var(--text);font-size:13px;font-weight:700;overflow:hidden}.room-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.room-meta-item{color:var(--text-muted);white-space:nowrap;font-size:11px}.room-id-text{color:var(--text-muted);opacity:.7}.live-status-tag{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.live-status-tag.live{color:#ff7a7a;background:#ff57572e;border:1px solid #ff57574d}.live-status-tag.offline{color:var(--text-muted);border:1px solid var(--border);background:#8ca0c81f}.live-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.live-status-tag.live .live-status-dot{background:#ff5757;animation:1.5s ease-in-out infinite live-pulse}.live-status-tag.offline .live-status-dot{background:var(--text-muted)}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.4}}.room-actions{gap:6px;margin-top:6px;display:flex}.btn-room-action{border-radius:6px;flex:none;padding:4px 12px;font-size:11px}.duration-remaining{color:var(--text-muted);font-size:11px}.duration-remaining.has-limit{color:var(--warning);font-weight:700}.room-duration-wrapper{align-items:center;gap:6px;display:flex}.btn-icon-setting-sm{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;font-family:var(--font-body);background:#00d9ff0d;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.btn-icon-setting-sm:hover{color:var(--primary);border-color:var(--primary);background:#00d9ff1f}.btn-icon-setting-sm svg{flex-shrink:0}.room-duration-label{white-space:nowrap}.room-duration-overlay{z-index:100;position:fixed;inset:0}.room-duration-menu{background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--card-border);z-index:101;width:200px;animation:.15s ease-out menu-fade-in;position:fixed;overflow:hidden;box-shadow:0 6px 20px #0078a026}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.room-duration-menu-title{font-family:var(--font-title);color:var(--text);border-bottom:1px solid var(--border-light);letter-spacing:.5px;padding:10px 14px 6px;font-size:12px;font-weight:700}.room-duration-menu-options{flex-direction:column;gap:2px;padding:4px;display:flex}.room-duration-menu-option{cursor:pointer;border-radius:var(--radius-sm);text-align:left;font-family:var(--font-body);color:var(--text-secondary);background:0 0;border:none;padding:7px 10px;font-size:12px;font-weight:500;transition:all .15s}.room-duration-menu-option:hover{color:var(--text);background:#00d9ff1a}.room-duration-menu-option.active{color:var(--primary);background:#00d9ff2e;font-weight:700}.room-duration-menu-custom{border-top:1px solid var(--border-light);align-items:center;gap:6px;padding:8px 14px 10px;display:flex}.room-duration-menu-input{border:1px solid var(--border);color:var(--text);background:var(--card-bg);min-width:0;font-size:12px;font-family:var(--font-body);border-radius:6px;outline:none;flex:1;padding:6px 8px;transition:border-color .15s}.room-duration-menu-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00b4d833}.room-duration-menu-suffix{color:var(--text-secondary);font-size:12px;font-weight:600}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.anchor-info-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--card-shadow);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:clamp(10px,1.6vw,16px);margin-bottom:clamp(10px,1.4vw,14px);padding:clamp(12px,1.8vw,16px) clamp(14px,2vw,20px);display:flex}.anchor-info-left{flex:260px;align-items:center;gap:clamp(10px,1.6vw,14px);min-width:0;display:flex}.anchor-avatar-wrap{cursor:pointer;border-radius:50%;flex-shrink:0;width:clamp(56px,8vw,72px);height:clamp(56px,8vw,72px);text-decoration:none;display:block;position:relative}.anchor-avatar{object-fit:cover;background:linear-gradient(135deg,#00d9ff,#ff6b9d);border:2px solid #00d9ff66;border-radius:50%;flex-shrink:0;width:100%;height:100%;display:block;box-shadow:0 2px 8px #0078a026}.anchor-avatar-fallback{color:var(--text);justify-content:center;align-items:center;font-size:clamp(22px,3.4vw,28px);font-weight:700;display:flex}.anchor-avatar-live-ring{pointer-events:none;border:2px solid #ff5757;border-radius:50%;animation:1.5s ease-in-out infinite avatar-live-pulse;position:absolute;inset:-3px}.anchor-live-badge{color:#fff;border:1px solid var(--card-bg);white-space:nowrap;z-index:2;background:linear-gradient(135deg,#ff5757,#ff7a7a);border-radius:6px;padding:1px clamp(5px,.8vw,7px);font-size:clamp(9px,1.3vw,10px);font-weight:700;line-height:1.4;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.anchor-avatar-live-ring.monitoring{border-color:#4ade80;animation:2s ease-in-out infinite avatar-live-pulse-green}@keyframes avatar-live-pulse-green{0%,to{opacity:.8;border-color:#4ade80;transform:scale(1)}50%{opacity:.35;border-color:#86efac;transform:scale(1.1)}}.anchor-live-badge.monitoring{background:linear-gradient(135deg,#22c55e,#4ade80)}.anchor-detail{flex-direction:column;flex:auto;gap:clamp(4px,.7vw,6px);min-width:0;padding-top:2px;display:flex}.anchor-name{font-family:var(--font-title);color:var(--text);letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:clamp(15px,2.2vw,18px);font-weight:700;overflow:hidden}.anchor-name-row{flex-wrap:nowrap;align-items:center;gap:clamp(8px,1.2vw,12px);display:flex}.anchor-meta-row{flex-wrap:wrap;align-items:center;gap:clamp(8px,1.2vw,12px);display:flex}.anchor-action-link{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:#00d9ff0d;border-radius:8px;flex-shrink:0;align-items:center;padding:clamp(2px,.4vw,3px) clamp(8px,1.2vw,10px);font-size:clamp(11px,1.6vw,12px);font-weight:600;line-height:1.4;text-decoration:none;transition:all .15s;display:inline-flex}.anchor-action-link:hover{color:#0a0e27;background:var(--primary);border-color:var(--primary);text-decoration:none}.anchor-douyin-id{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:clamp(4px,.7vw,6px);font-size:clamp(12px,1.7vw,13px);font-weight:500;display:inline-flex}.anchor-douyin-id-label{color:var(--text-muted);font-weight:500}.anchor-fans{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:clamp(4px,.8vw,8px);font-size:clamp(11px,1.6vw,13px);display:flex}.anchor-fan-club{color:var(--accent-pink)}.anchor-tags-inline{flex-wrap:wrap;align-items:center;gap:clamp(4px,.8vw,6px);max-width:100%;margin-left:auto;display:inline-flex}.anchor-tag{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:12px;align-items:center;gap:clamp(2px,.4vw,3px);padding:clamp(1px,.3vw,2px) clamp(6px,1vw,8px);font-family:inherit;font-size:.92em;font-weight:600;line-height:1.4;transition:filter .15s,box-shadow .15s;display:inline-flex}.anchor-tag:disabled{opacity:.6;cursor:not-allowed}.anchor-tag:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.anchor-tag.lane{color:#0369a1;background:linear-gradient(135deg,#e0f2fe,#cfe8fc);border-color:#38bdf859}.anchor-tag.lane:before{display:none}.anchor-tag.lane:hover:not(:disabled){filter:brightness(.95);box-shadow:0 2px 6px #38bdf859}.anchor-lane-icon{object-fit:cover;border-radius:3px;flex-shrink:0;width:1.15em;height:1.15em;display:inline-block}.anchor-tag.category{color:#c2410c;background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#fb923c59}.anchor-tag.category:before{background:linear-gradient(135deg,#fb923c,#f87171)}.anchor-tag.category:hover:not(:disabled){filter:brightness(.95);box-shadow:0 2px 6px #fb923c59}.anchor-tag-add-btn{width:clamp(24px,3.4vw,28px);height:clamp(24px,3.4vw,28px);color:var(--text-secondary);border:1px dashed var(--border);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:clamp(15px,2.2vw,17px);font-weight:700;line-height:1;transition:all .15s;display:inline-flex}.anchor-tag-add-btn:hover:not(:disabled){color:#0a0e27;background:var(--primary);border-color:var(--primary);border-style:solid;box-shadow:0 2px 6px #0078a040}.anchor-tag-add-btn:disabled{opacity:.5;cursor:not-allowed}.anchor-tags-edit{border-top:1px dashed var(--border);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:clamp(12px,2vw,20px);margin-top:4px;padding-top:clamp(10px,1.4vw,12px);display:flex}.tag-edit-group{flex-wrap:wrap;align-items:center;gap:clamp(6px,1vw,8px);display:flex}.tag-edit-label{color:var(--text-secondary);font-size:clamp(12px,1.8vw,13px);font-weight:600}.tag-options{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-option{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;padding:clamp(2px,.5vw,3px) clamp(10px,1.5vw,12px);font-size:clamp(11px,1.7vw,12px);font-weight:600;transition:all .15s}.tag-option:hover{border-color:var(--primary);color:var(--primary)}.tag-option.selected{color:#0a0e27;background:var(--primary);border-color:var(--primary);box-shadow:0 2px 8px #0078a026}.tag-edit-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.btn-sm{padding:5px 12px;font-size:12px}.anchor-room-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;border-top:1px dashed var(--border-light);text-align:left;flex:100%;min-width:0;margin-top:4px;padding-top:clamp(6px,.9vw,8px);font-size:clamp(12px,1.8vw,14px);overflow:hidden}.anchor-room-title-label{color:var(--text-muted);font-weight:500}.stat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--card-shadow);flex-direction:column;gap:6px;padding:18px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.stat-card:hover{border-color:#0078a059;transform:translateY(-2px);box-shadow:0 6px 18px #0f285017}.stat-card.accent-blue{--accent:var(--primary)}.stat-card.accent-green{--accent:var(--success)}.stat-card.accent-orange{--accent:var(--accent-warm)}.stat-card.accent-purple{--accent:var(--accent-pink)}.stat-label{font-family:var(--font-body);color:var(--text-secondary);letter-spacing:.3px;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.stat-label:before{content:"";background:var(--accent,var(--primary));border-radius:50%;flex-shrink:0;width:6px;height:6px}.stat-value{font-family:var(--font-title);color:var(--text);letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:26px;font-weight:700;line-height:1.2;overflow:hidden}.stat-value.mono{font-variant-numeric:tabular-nums;letter-spacing:.5px;font-size:23px}.stat-unit{font-family:var(--font-body);color:var(--text-muted);margin-left:4px;font-size:13px;font-weight:600}.stat-sub{color:var(--text-muted);font-size:11px}.chart-container{width:100%;height:320px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.feed-list{flex-direction:column;gap:6px;max-height:360px;display:flex;overflow-y:auto}.feed-item{border-radius:var(--radius-sm);border-left:3px solid var(--border);color:var(--text);background:#f0f7ff;align-items:flex-start;gap:10px;min-width:0;max-width:100%;padding:8px 12px;font-size:12px;line-height:1.5;display:flex}.feed-item.type-gift{border-left-color:var(--warning);background:#ffb84d1a}.feed-item.type-session_start{border-left-color:var(--success);background:#4ade801a}.feed-item.type-session_end{border-left-color:var(--danger);background:#ff57571a}.feed-item.type-room_info{border-left-color:var(--info)}.feed-item.type-log{border-left-color:var(--text-muted)}.feed-time{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:1px;font-size:11px}.feed-content{word-break:break-word;overflow-wrap:anywhere;flex:1 1 0;min-width:0}.feed-tag{color:var(--primary);white-space:nowrap;background:#00d9ff1f;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.live-feed-wrapper{flex-direction:column;gap:14px;min-width:0;display:flex}.system-log-card{border:1px dashed #00d9ff33;min-width:0}.log-list{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.log-item{border-radius:var(--radius-sm);border-left:3px solid var(--text-muted);color:var(--text);background:#f0f7ff;align-items:flex-start;gap:8px;min-width:0;max-width:100%;padding:6px 10px;font-size:11px;line-height:1.5;display:flex}.log-item.log-level-error{border-left-color:var(--danger);background:#ff57571a}.log-item.log-level-warning{border-left-color:var(--warning);background:#ffb84d1a}.log-item.log-level-info{border-left-color:var(--info)}.log-time{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:1px;font-size:10px}.log-level-tag{white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.log-level-tag.log-level-error{color:#ff7a7a;background:#ff57572e}.log-level-tag.log-level-warning{color:var(--warning);background:#ffb84d2e}.log-level-tag.log-level-info{color:var(--info);background:#00d9ff26}.log-content{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1 1 0;overflow:hidden}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13px}.session-selector{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.session-chip{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);color:var(--text);background:#00d9ff0d;padding:5px 10px;font-size:12px;transition:all .15s}.session-chip:hover{border-color:var(--primary);color:var(--primary);background:#00d9ff1f}.session-chip.active{background:var(--primary-grad);color:#0a0e27;border-color:#0000;font-weight:700;box-shadow:0 2px 8px #0078a026}.loading{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.error-text{color:var(--danger);padding:4px 0;font-size:12px}.connection-status{color:var(--text-secondary);border:1px solid var(--border);background:#00d9ff0d;border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.status-dot{background:var(--success);border-radius:50%;width:8px;height:8px}.status-dot.offline{background:var(--danger)}.status-dot.connecting{background:#ffc107;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (width<=1024px){.app-body{padding:16px}.stat-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.app-title{font-size:18px}.room-item{flex:0 0 210px}}@media (width<=768px){.app-header{border-radius:0 0 20px 20px;flex-wrap:wrap;gap:8px;padding:10px 14px}.app-brand{flex:0 auto;order:1;gap:8px;min-width:0;height:auto}.app-logo{border-radius:9px;width:30px;height:30px}.app-title{letter-spacing:.3px;font-size:15px}.app-subtitle{margin-top:1px;font-size:10px}.header-right{order:2;gap:8px;height:auto;margin-left:auto}.header-right .connection-status{display:none}.header-search-bar{flex:100%;order:3;gap:6px;width:100%;max-width:none;margin:0}.header-search-bar .input{border-radius:12px;flex:1;padding:8px 12px;font-size:12px}.header-add-btn{border-radius:12px;flex-shrink:0;padding:8px 14px;font-size:12px}.app-body{gap:10px;padding:10px 12px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:6px}.stat-card{text-align:center;border-radius:14px;align-items:center;gap:2px;padding:10px 8px}.stat-value{letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:1.2;overflow:hidden}.stat-value.mono{font-size:12px}.stat-label{letter-spacing:0;justify-content:center;gap:4px;font-size:10px}.stat-label:before{width:5px;height:5px}.stat-sub{font-size:9px}.stat-unit{font-size:10px}.card{border-radius:20px;padding:14px}.card-title{margin-bottom:10px;font-size:13px}.room-list{gap:10px}.room-item{border-radius:14px;flex:0 0 170px;padding:10px 12px}.login-banner{border-radius:14px}.chart-container{height:240px}.danmu-toolbar{gap:8px;margin-bottom:10px}.filter-chips{gap:4px}.filter-chip{padding:3px 8px;font-size:10px}.search-box{flex-wrap:wrap;gap:6px}.search-input{flex:100%;width:100%;min-width:0;padding:6px 8px;font-size:11px}.search-box .btn{flex:100%;padding:6px 10px;font-size:11px}.danmu-list{max-height:360px}.danmu-item{flex-wrap:nowrap;gap:4px;padding:14px 10px;font-size:11px;line-height:1.5;overflow:hidden}.danmu-type-tag{min-width:26px;height:18px;padding:2px 6px;font-size:9px;line-height:1.2}.danmu-user{max-width:60px;font-size:11px}.danmu-content{min-width:0;font-size:11px}.danmu-time{font-size:9px}}@media (width<=400px){.app-title{font-size:14px}.app-subtitle{display:none}.stat-grid{gap:4px}.stat-card{padding:8px 6px}.stat-value{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.stat-value.mono{font-size:10px}.stat-label{font-size:9px}.room-item{flex:0 0 155px}}.login-panel{flex-direction:column;gap:16px;display:flex}.login-page-content{max-width:560px;margin:0 auto;padding-top:24px}.official-page-content{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;padding-top:24px;display:flex}.login-dialog-overlay{z-index:100000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-dialog{background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:14px;width:260px;padding:24px 20px;display:flex;box-shadow:0 8px 30px #0003}.login-dialog-icon{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;font-weight:700;display:flex}.login-dialog-verifying .login-dialog-icon{background:#eff6ff}.login-dialog-success .login-dialog-icon{background:#ecfdf5}.login-dialog-error .login-dialog-icon{background:#fef2f2}.login-dialog-check{color:#16a34a}.login-dialog-cross{color:#dc2626}.login-dialog-spinner{border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;width:26px;height:26px;animation:.8s linear infinite login-dialog-spin}@keyframes login-dialog-spin{to{transform:rotate(360deg)}}.login-dialog-text{color:#1f2937;text-align:center;font-size:14px;line-height:1.5}.login-info{flex-direction:column;gap:10px;display:flex}.login-user{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.login-label{color:var(--text-secondary);font-size:12px}.login-name{color:var(--text);font-weight:700}.login-meta{color:var(--text-muted);flex-wrap:wrap;gap:16px;font-size:11px;display:flex}.login-actions{gap:8px;margin-top:4px;display:flex}.login-form{flex-direction:column;gap:10px;display:flex}.login-desc{color:var(--text-secondary);font-size:12px;line-height:1.6}.cookie-input{border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;background:var(--card-bg);width:100%;color:var(--text);outline:none;padding:10px 12px;font-family:Consolas,Monaco,monospace;font-size:12px;transition:border-color .2s}.cookie-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00b4d833}.login-tabs{border:1px solid var(--border);background:#f0f7ff;border-radius:12px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.login-tab{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:8px 12px;font-size:13px;font-weight:600;transition:background .2s,color .2s}.login-tab:hover{color:var(--text)}.login-tab-active{color:var(--primary);background:#00d9ff2e;box-shadow:0 2px 8px #0078a026}.qr-login{flex-direction:column;align-items:center;gap:12px;display:flex}.qr-box{border:1px solid var(--border);background:#f0f7ff;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:16px;display:flex}.qr-img{object-fit:contain;background:#fff;border-radius:8px;width:200px;height:200px}.qr-placeholder{border:1px dashed var(--border);width:200px;height:200px;color:var(--text-muted);text-align:center;border-radius:12px;justify-content:center;align-items:center;padding:16px;font-size:12px;display:flex}.qr-status-text{text-align:center;font-size:13px;font-weight:700}.qr-status-new{color:var(--text-secondary)}.qr-status-scanned{color:var(--primary)}.qr-status-verify{color:#f59e0b}.qr-status-confirmed{color:var(--success)}.qr-status-error{color:var(--danger)}.verify-guide{background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;margin:8px 0;padding:12px 14px}.verify-guide-title{color:#b45309;margin-bottom:6px;font-size:14px;font-weight:700}.verify-guide-text{color:#78350f;margin-bottom:10px;font-size:13px;line-height:1.6}.sms-verify{border-top:1px dashed #f59e0b;margin-bottom:10px;padding-top:10px}.sms-verify-label{color:#b45309;margin-bottom:8px;font-size:13px;font-weight:700}.sms-verify .btn-ghost:disabled{cursor:not-allowed;opacity:.65;color:#b45309;background:#fef3c7;border-color:#f59e0b;min-width:132px;font-size:12px}.sms-verify-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sms-verify-input{border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;min-width:140px;padding:8px 10px;font-size:14px}.sms-verify-input:focus{border-color:#f59e0b}.sms-verify-msg{color:#16a34a;margin-top:8px;font-size:13px}.vnc-frame-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;margin:8px 0;overflow:hidden}.vnc-frame{border:none;width:100%;height:480px;display:block}.qr-progress-wrap{flex-direction:column;gap:6px;width:100%;display:flex}.qr-progress-track{background:#0078a01f;border-radius:3px;width:100%;height:6px;overflow:hidden}.qr-progress-fill{background:linear-gradient(90deg,#00d9ff,#0093e8);border-radius:3px;height:100%;transition:width .6s}.qr-progress-error{background:#ff6b6b}.qr-progress-steps{color:var(--text-muted);justify-content:space-between;font-size:11px;display:flex}.qr-progress-steps .step{transition:color .3s}.qr-progress-steps .step.done{color:var(--primary);font-weight:600}.extract-guide{border:1px solid var(--border);background:#f0f7ff;border-radius:10px;padding:12px}.extract-guide-title{color:var(--primary);margin-bottom:8px;font-size:13px;font-weight:700}.extract-guide-list{color:var(--text-secondary);margin:0;padding-left:18px;font-size:12px;line-height:1.8}.extract-guide-list code{background:#0078a01a;border-radius:4px;padding:1px 5px;font-size:11px}.extract-guide-note{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.6}.guide-content{flex-direction:column;gap:14px;display:flex}.guide-step{align-items:flex-start;gap:12px;display:flex}.step-num{background:var(--primary-grad);color:#0a0e27;width:24px;height:24px;font-family:var(--font-title);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px 8px #0078a026}.step-text{color:var(--text-secondary);flex:1;font-size:12px;line-height:1.6}.step-text strong{color:var(--text);margin-bottom:2px;display:block}.step-text p{color:var(--text-secondary);margin:0}.step-text a{color:var(--primary);text-decoration:none}.step-text a:hover{text-decoration:underline}.step-tip{color:var(--text-muted);margin-top:4px;font-size:11px;display:block}.guide-note{background:var(--warning-bg);border-radius:var(--radius-sm);color:var(--warning);border:1px solid #ffb84d4d;padding:10px 12px;font-size:11px;line-height:1.6}.danmu-toolbar{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);cursor:pointer;font-family:var(--font-body);color:var(--text-secondary);background:#00d9ff0d;border-radius:6px;padding:4px 10px;font-size:11px;transition:all .15s}.filter-chip:hover{border-color:var(--primary);color:var(--primary);background:#00d9ff1a}.filter-chip.active{background:var(--primary-grad);color:#0a0e27;border-color:#0000;font-weight:700}.search-box{gap:6px;display:flex}.search-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);font-size:12px;font-family:var(--font-body);outline:none;flex:1;padding:6px 10px}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00b4d833}.danmu-list{flex-direction:column;gap:4px;max-height:480px;display:flex;overflow-y:auto}.danmu-item{color:var(--text);background:#f0f7ff;border-radius:6px;align-items:center;gap:8px;padding:12px 14px;font-size:12px;line-height:1.6;transition:background .15s;display:flex}.danmu-item:hover{background:#00d9ff14}.danmu-type-tag{color:#fff;text-align:center;background:var(--primary);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;height:20px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1.2;display:inline-flex}.danmu-user{color:var(--accent-pink);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100px;font-weight:700;overflow:hidden}.danmu-content{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.danmu-time{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.login-banner{border-radius:var(--radius);color:var(--warning);background:linear-gradient(135deg,#ffb84d2e 0%,#ffb84d14 100%);border:1px solid #ffb84d66;align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:flex}.login-banner.logged-in{color:var(--success);background:linear-gradient(135deg,#4ade8026 0%,#4ade800d 100%);border-color:#4ade8066}.banner-icon{font-family:var(--font-title);background:#0078a014;border-radius:6px;padding:2px 8px;font-size:14px;font-weight:700}.banner-link{color:inherit;cursor:pointer;margin-left:auto;font-weight:700;text-decoration:underline}.btn-room-delete{color:var(--danger);cursor:pointer;font-size:11px;font-family:var(--font-body);background:0 0;border:1px solid #ff57574d;border-radius:12px;flex:none;align-items:center;gap:4px;padding:4px 10px;font-weight:600;transition:all .15s;display:inline-flex}.btn-room-delete:hover{border-color:var(--danger);color:var(--danger);background:#ff575726;box-shadow:0 2px 8px #ff575726}.btn-room-delete svg{flex-shrink:0}.delete-confirm-overlay{z-index:1000;background:#1a3a5c80;justify-content:center;align-items:center;animation:.15s ease-out delete-overlay-fade;display:flex;position:fixed;inset:0}@keyframes delete-overlay-fade{0%{opacity:0}to{opacity:1}}.delete-confirm-modal{background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--card-border);width:360px;max-width:calc(100vw - 32px);padding:24px;animation:.2s ease-out delete-modal-pop;box-shadow:0 6px 20px #0078a026}@keyframes delete-modal-pop{0%{opacity:0;transform:scale(.92)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.delete-confirm-icon{width:56px;height:56px;color:var(--danger);background:#ff57572e;border:1px solid #ff57574d;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.delete-confirm-title{text-align:center;font-family:var(--font-title);color:var(--text);letter-spacing:.5px;margin-bottom:10px;font-size:16px;font-weight:700}.delete-confirm-desc{text-align:center;color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.delete-confirm-desc strong{color:var(--text);font-weight:700}.delete-confirm-sub{color:var(--text-muted);font-size:12px}.delete-confirm-actions{justify-content:center;gap:10px;display:flex}.delete-confirm-actions .btn{border-radius:12px;flex:1;padding:8px 16px;font-size:13px;font-weight:700}.btn-delete-confirm{background:var(--danger);color:#fff;border:1px solid var(--danger)}.btn-delete-confirm:hover:not(:disabled){background:#ff7070;border-color:#ff7070;box-shadow:0 2px 8px #ff575726}.btn-delete-cancel{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-delete-cancel:hover:not(:disabled){color:var(--text);border-color:var(--primary);background:#00d9ff1a}.auth-page{grid-template-columns:1fr 1fr;min-height:100vh;max-height:100vh;display:grid;overflow:hidden}.auth-left{color:#fff;background:linear-gradient(135deg,#9ca3af 0%,#6b7280 50%,#4b5563 100%);flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.auth-left-content{z-index:20;position:relative}.auth-logo{align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.auth-logo-icon{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:4px;font-size:15px;display:flex}.auth-logo-img{object-fit:cover;border:1px solid #fff3;border-radius:10px;width:36px;height:36px;box-shadow:0 2px 8px #00000026}.user-menu-wrapper{flex-shrink:0;position:relative}.user-menu-button{border:2px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;overflow:visible}.user-menu-button:hover{border-color:var(--primary);transform:scale(1.05);box-shadow:0 4px 12px #0078a033}.user-menu-avatar{object-fit:cover;background:var(--primary-grad);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:15px;font-weight:700;display:flex}.user-menu-avatar-fallback{justify-content:center;align-items:center;display:flex}.user-menu-status-dot{border:2px solid var(--card-bg);background:var(--text-muted);border-radius:50%;width:11px;height:11px;position:absolute;bottom:0;right:0}.user-menu-status-dot[data-online=true]{background:var(--success)}.user-menu-card{background:var(--card-bg);border:1px solid var(--card-border);z-index:1000;border-radius:18px;width:300px;animation:.18s user-menu-pop;position:fixed;overflow:hidden;box-shadow:0 12px 40px #0f28502e}@keyframes user-menu-pop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,#00b4d814,#00b4d805);align-items:center;gap:12px;padding:18px 18px 14px;display:flex}.user-menu-header-avatar{border:2px solid var(--card-bg);background:var(--primary-grad);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:flex;overflow:hidden;box-shadow:0 2px 8px #0078a026}.user-menu-header-avatar img{object-fit:cover;width:100%;height:100%}.user-menu-header-info{flex:1;min-width:0}.user-menu-header-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.user-menu-header-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.user-menu-edit-btn{border:1px solid var(--border);background:var(--card-bg);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.user-menu-edit-btn:hover{color:var(--primary);border-color:var(--primary);background:#00d9ff14}.user-menu-edit-form{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.user-menu-avatar-upload{align-items:center;gap:14px;display:flex}.user-menu-avatar-preview{border:2px solid var(--border);background:var(--primary-grad);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:26px;font-weight:700;display:flex;overflow:hidden}.user-menu-avatar-preview img{object-fit:cover;width:100%;height:100%}.user-menu-upload-actions{flex-direction:column;flex:1;gap:6px;display:flex}.user-menu-upload-btn,.user-menu-clear-btn{justify-content:center;padding:6px 12px;font-size:12px}.user-menu-upload-error{color:var(--danger);background:var(--danger-bg);border-radius:8px;padding:6px 10px;font-size:12px}.user-menu-edit-label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.user-menu-edit-input{border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-size:13px;font-family:var(--font-body);border-radius:10px;outline:none;padding:8px 12px;transition:border-color .15s,box-shadow .15s}.user-menu-edit-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00b4d826}.user-menu-edit-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.user-menu-edit-actions .btn{padding:6px 14px;font-size:12px}.user-menu-section{border-bottom:1px solid var(--border-light);padding:14px 18px}.user-menu-section-title{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.user-menu-douyin-status{align-items:center;gap:8px;font-size:13px;display:flex}.user-menu-douyin-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.user-menu-douyin-dot-online{background:var(--success)}.user-menu-douyin-dot-offline{background:var(--text-muted)}.user-menu-douyin-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.user-menu-douyin-btn{flex-shrink:0;padding:4px 10px;font-size:11px}.user-menu-footer{padding:14px 18px}.user-menu-logout{justify-content:center;width:100%;padding:8px;font-size:13px}.watch-mode-block{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.watch-mode-info{min-width:0;color:var(--text);flex:1;align-items:center;gap:6px;font-size:13px;display:flex}.watch-mode-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.watch-mode-dot-idle{background:var(--text-muted)}.watch-mode-dot-active{background:#ff9500;animation:1.6s ease-in-out infinite watch-mode-pulse;box-shadow:0 0 0 3px #ff95002e}@keyframes watch-mode-pulse{0%,to{box-shadow:0 0 0 3px #ff95002e}50%{box-shadow:0 0 0 6px #ff950014}}.watch-mode-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.watch-mode-since{color:var(--text-muted);font-size:11px}.watch-mode-toggle-btn{flex-shrink:0;padding:6px 12px;font-size:12px}.watch-mode-stats{color:var(--text-muted);gap:10px;margin-top:6px;font-size:11px;display:flex}.watch-mode-stat-item{background:var(--bg-soft,#f5f7fa);border-radius:8px;padding:2px 8px}.watch-mode-hint{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.5}.official-mode-select{flex-direction:column;gap:6px;display:flex}.official-mode-item{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.official-mode-item:hover{border-color:var(--primary)}.official-mode-item.active{border-color:var(--primary);background:#00b4d81a;box-shadow:0 2px 8px #0078a026}.official-mode-item:disabled{opacity:.6;cursor:not-allowed}.official-mode-name{color:var(--text);font-size:13px;font-weight:600}.official-mode-item.active .official-mode-name{color:var(--primary)}.official-mode-desc{color:var(--text-muted);font-size:11px;line-height:1.4}.admin-official-btn{justify-content:flex-start;width:100%;padding:8px 12px;font-size:13px}.official-panel-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s official-panel-fade-in;display:flex;position:fixed;inset:0}@keyframes official-panel-fade-in{0%{opacity:0}to{opacity:1}}.official-panel{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:640px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.official-panel-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.official-panel-title{color:var(--text);margin:0;font-size:18px;font-weight:700}.official-panel-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;transition:background .15s;display:flex}.official-panel-close:hover{background:var(--bg-soft,#f5f7fa)}.official-panel-body{flex:1;padding:20px 24px;overflow-y:auto}.official-panel-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.official-panel-success{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.backup-panel-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s official-panel-fade-in;display:flex;position:fixed;inset:0}.backup-panel{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:640px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.backup-panel-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.backup-panel-title{color:var(--text);margin:0;font-size:18px;font-weight:700}.backup-panel-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;transition:background .15s;display:flex}.backup-panel-close:hover{background:var(--bg-soft,#f5f7fa)}.backup-panel-body{flex:1;padding:20px 24px;overflow-y:auto}.backup-panel-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.backup-panel-success{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.backup-panel-intro{color:var(--text-muted);background:var(--bg-soft,#f5f7fa);border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:12px;line-height:1.6}.backup-actions{margin-bottom:20px}.backup-create-btn{padding:10px 24px;font-size:14px}.backup-section{margin-bottom:24px}.backup-section-title{color:var(--text);margin:0 0 10px;font-size:14px;font-weight:600}.backup-list-loading,.backup-list-empty{color:var(--text-muted);background:var(--bg-soft,#f5f7fa);text-align:center;border-radius:10px;padding:12px;font-size:12px}.backup-list{flex-direction:column;gap:8px;display:flex}.backup-item{border:1px solid var(--border-light);background:var(--card-bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.backup-item-main{min-width:0}.backup-item-name{color:var(--text);font-size:13px;font-weight:600}.backup-item-file{color:var(--text-muted);word-break:break-all;margin-top:2px;font-size:11px}.backup-restore-btn{flex-shrink:0;padding:6px 14px;font-size:12px}.official-panel-section{margin-bottom:24px}.official-section-title{color:var(--text);margin:0 0 8px;font-size:14px;font-weight:600}.official-section-hint{color:var(--text-muted);margin:0 0 12px;font-size:12px;line-height:1.5}.official-manual-input{border:1px solid var(--border);resize:vertical;background:var(--card-bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;margin-bottom:10px;padding:10px 12px;font-family:Consolas,Monaco,monospace;font-size:12px}.official-manual-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00b4d833}.official-manual-add-btn{padding:8px 20px;font-size:13px}.official-add-actions{flex-wrap:wrap;gap:10px;display:flex}.official-add-btn{padding:8px 16px;font-size:13px}.official-qr-area{background:var(--bg-soft,#f5f7fa);border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:16px;display:flex}.official-qr-start-btn{padding:10px 24px;font-size:14px}.official-qr-loading{color:var(--text-muted);padding:20px;font-size:13px}.official-qr-box{flex-direction:column;align-items:center;gap:10px;display:flex}.official-qr-img{background:#fff;border-radius:12px;width:200px;height:200px;padding:8px;box-shadow:0 2px 8px #00000014}.official-qr-status{text-align:center;min-height:20px;font-size:13px}.official-qr-waiting{color:var(--text-muted)}.official-qr-scanned,.official-qr-verify{color:#f59e0b;font-weight:600}.official-qr-confirmed{color:#22c55e;font-weight:600}.official-qr-refresh-btn{padding:4px 12px;font-size:12px}.official-qr-error{color:#dc2626;text-align:center;font-size:12px}.official-sms-verify{background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;width:100%;margin-top:8px;padding:10px 12px}.official-sms-title{color:#b45309;margin-bottom:4px;font-size:13px;font-weight:700}.official-sms-hint{color:#78350f;margin-bottom:8px;font-size:12px;line-height:1.5}.official-sms-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.official-sms-input{border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;min-width:140px;padding:7px 10px;font-size:13px}.official-sms-input:focus{border-color:#f59e0b}.official-sms-msg{color:#16a34a;font-size:12px}.official-sms-error{color:#dc2626;font-size:12px}.official-list-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.official-validate-btn{padding:6px 12px;font-size:12px}.official-list-loading,.official-list-empty{text-align:center;color:var(--text-muted);background:var(--bg-soft,#f5f7fa);border-radius:10px;padding:24px;font-size:13px}.official-list{flex-direction:column;gap:8px;display:flex}.official-item{background:var(--bg-soft,#f5f7fa);border-left:3px solid var(--success,#22c55e);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.official-item.invalid{opacity:.7;border-left-color:#ef4444}.official-item-avatar{flex-shrink:0;width:44px;height:44px;position:relative}.official-avatar-img{object-fit:cover;background:#e5e7eb;border-radius:50%;width:44px;height:44px}.official-avatar-placeholder{color:#fff;background:linear-gradient(135deg,#60a5fa,#818cf8);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:600;display:flex}.official-item-avatar .official-validity-dot{border:2px solid var(--bg-soft,#f5f7fa);width:12px;height:12px;position:absolute;bottom:-1px;right:-1px}.official-item-main{flex:1;min-width:0}.official-item-name{color:var(--text);align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.official-validity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.official-validity-dot.valid{background:#22c55e}.official-validity-dot.invalid{background:#ef4444}.official-item-nickname{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.official-item-id{color:var(--text-muted);font-size:11px;font-weight:400}.official-item-sub{color:var(--text-muted);flex-wrap:wrap;gap:8px;margin-bottom:4px;font-size:11px;display:flex}.official-item-unique{color:#3b82f6;font-weight:500}.official-item-secuid{color:var(--text-muted);opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.official-item-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}.official-max-rooms-display,.official-max-rooms-editor{align-items:center;gap:5px;display:inline-flex}.official-max-rooms-label{color:var(--text-muted)}.official-max-rooms-value{color:var(--text-strong,#1a202c);min-width:20px;font-weight:600}.official-max-rooms-edit{padding:2px 8px;font-size:11px}.official-max-rooms-input{border:1px solid var(--border-color,#e2e8f0);border-radius:6px;width:64px;padding:3px 6px;font-size:11px}.official-max-rooms-save{padding:2px 8px;font-size:11px}.official-item-delete{flex-shrink:0;padding:4px 10px;font-size:11px}.official-panel-footer-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:11px;line-height:1.5}@media (width<=600px){.official-panel-overlay{padding:0}.official-panel{border-radius:0;max-width:100%;height:100vh;max-height:100vh}.official-panel-header,.official-panel-body{padding:14px 16px}.official-item-meta{gap:6px;font-size:10px}}@media (width<=768px){.user-menu-button{width:34px;height:34px}.user-menu-avatar{font-size:13px}.user-menu-card{width:calc(100vw - 24px);max-width:320px}.user-menu-header{padding:14px}.user-menu-header-avatar{width:42px;height:42px;font-size:17px}.user-menu-edit-form,.user-menu-section,.user-menu-footer{padding:12px 14px}.all-rooms-header{gap:8px;padding:10px 14px}.all-rooms-title{font-size:16px}.all-rooms-add-inline{flex:100%;margin-left:0}.all-rooms-input{padding:7px 12px;font-size:12px}.all-rooms-add-btn{padding:7px 14px;font-size:12px}.all-rooms-list{gap:8px;padding:12px 14px}}.auth-left-characters{z-index:20;transform-origin:bottom;justify-content:center;align-items:flex-end;height:500px;display:flex;position:relative;transform:scale(.85)}.auth-left-footer{z-index:20;color:#ffffffd9;align-items:center;gap:32px;font-size:14px;display:flex;position:relative}.auth-left-footer span{cursor:pointer;transition:color .2s}.auth-left-footer span:hover{color:#fff}.auth-left-grid{pointer-events:none;background-image:linear-gradient(90deg,#ffffff0d 1px,#0000 1px),linear-gradient(#ffffff0d 1px,#0000 1px);background-size:20px 20px;position:absolute;inset:0}.auth-left-blur{filter:blur(48px);pointer-events:none;border-radius:50%;position:absolute}.auth-left-blur-1{background:#9ca3af33;width:256px;height:256px;top:25%;right:25%}.auth-left-blur-2{background:#d1d5db33;width:384px;height:384px;bottom:25%;left:25%}.auth-right{background:var(--bg);justify-content:center;align-items:center;padding:32px;display:flex}.auth-form-wrapper{width:100%;max-width:420px}.auth-mobile-logo{justify-content:center;align-items:center;gap:10px;margin-bottom:48px;font-size:18px;font-weight:600;display:none}.auth-form-header{text-align:center;margin-bottom:40px}.auth-form-header h1{color:var(--text);letter-spacing:-.3px;margin-bottom:8px;font-size:30px;font-weight:700}.auth-form-header p{color:var(--text-secondary);font-size:14px}.auth-form{flex-direction:column;gap:20px;display:flex}.auth-field{flex-direction:column;gap:8px;display:flex}.auth-label{color:var(--text);font-size:14px;font-weight:500}.auth-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);height:48px;color:var(--text);outline:none;padding:0 16px;font-size:14px;transition:border-color .2s}.auth-input:focus{border-color:var(--primary-end)}.auth-password-wrapper{position:relative}.auth-input-password{width:100%;padding-right:56px}.auth-password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.auth-password-toggle:hover{color:var(--text)}.auth-error{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);border:1px solid #f565654d;padding:12px 16px;font-size:13px}.auth-submit-btn{border-radius:var(--radius-sm);background:var(--primary-grad);color:#fff;cursor:pointer;border:none;height:48px;font-size:15px;font-weight:600;transition:opacity .2s,transform .1s}.auth-submit-btn:hover:not(:disabled){opacity:.9}.auth-submit-btn:active:not(:disabled){transform:scale(.98)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-switch-mode{text-align:center;color:var(--text-secondary);margin-top:32px;font-size:14px}.auth-switch-btn{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 4px;font-weight:500;text-decoration:underline}.auth-switch-btn:hover{color:var(--primary-end)}@media (width<=1024px){.auth-page{grid-template-columns:1fr}.auth-left{display:none}.auth-mobile-logo{display:flex}}.auth-loading{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-text{color:var(--text-secondary);font-size:16px}.header-user{border-left:1px solid #00d9ff4d;align-items:center;gap:12px;margin-left:8px;padding-left:12px;display:flex}.header-user-email{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:13px;overflow:hidden}.header-logout-btn{padding:6px 12px;font-size:13px;color:var(--danger)!important;background:#ff57571f!important;border:1px solid #ff575766!important}.header-logout-btn:hover{box-shadow:0 2px 8px #ff575726;background:#ff575733!important}.official-pool-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:12px 0;display:grid}.official-pool-item{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:10px;padding:10px 12px}.official-pool-item.cooldown{background:#fffbeb;border-color:#f59e0b}.official-pool-item.invalid{background:#fef2f2;border-color:#ef4444}.official-pool-item-name{align-items:center;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.official-pool-item-nickname{font-size:13px}.official-pool-badge{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500}.official-pool-badge.valid{color:#166534;background:#dcfce7}.official-pool-badge.cooldown{color:#92400e;background:#fef3c7}.official-pool-badge.invalid{color:#991b1b;background:#fee2e2}.official-pool-item-meta{color:#6b7280;font-size:12px}.official-assign-list{margin-top:12px}.official-assign-title{margin-bottom:8px;font-size:13px;font-weight:600}.official-assign-item{background:#f9fafb;border-radius:8px;align-items:center;gap:10px;margin-bottom:4px;padding:6px 10px;font-size:12px;display:flex}.official-assign-room{font-family:monospace;font-weight:600}.official-assign-cookie{color:#374151}.official-assign-type{color:#374151;background:#e5e7eb;border-radius:999px;padding:1px 8px;font-size:11px}.official-assign-type.manual{color:#1e40af;background:#dbeafe}.official-assign-unbind{margin-left:auto;padding:2px 10px;font-size:12px}.official-pool-rooms{border-top:1px dashed #e5e7eb;max-height:160px;margin-top:8px;padding-top:6px;overflow-y:auto}.official-pool-room{align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.official-pool-room-avatar,.official-assign-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:22px;height:22px}.official-pool-room-avatar.placeholder,.official-assign-avatar.placeholder{color:#6b7280;background:#e5e7eb;justify-content:center;align-items:center;font-size:11px;display:flex}.official-pool-room-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.official-assign-search{box-sizing:border-box;width:100%;margin-bottom:8px}.official-assign-info{flex:1;min-width:0}.official-assign-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.official-assign-sub{color:#6b7280;gap:8px;font-size:11px;display:flex}.official-assign-rebind{padding:2px 10px;font-size:12px}.official-assign-pagination{justify-content:center;align-items:center;gap:12px;margin-top:10px;display:flex}.official-assign-page-info{color:#6b7280;font-size:12px}.official-assign-users{align-items:center;gap:4px;margin-top:4px;display:flex}.official-assign-user-avatar{object-fit:cover;border:1px solid #e5e7eb;border-radius:50%;width:18px;height:18px}.official-assign-user-avatar.placeholder{color:#4f46e5;background:#eef2ff;justify-content:center;align-items:center;font-size:10px;display:flex}.official-assign-users-label{color:#6b7280;font-size:11px}.official-assign-del{padding:2px 8px;font-size:12px}.official-pool-room-users{color:#6b7280;background:#f3f4f6;border-radius:999px;margin-left:auto;padding:0 6px;font-size:10px}
