.app-header[data-v-e34f6cf2]{background:var(--color-heading);color:#fff;padding:.75rem var(--space-lg)}.logo[data-v-e34f6cf2]{color:#fff;text-decoration:none;font-weight:700;font-size:var(--font-size-xl)}nav[data-v-e34f6cf2]{max-width:var(--container-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.nav-right[data-v-e34f6cf2]{display:flex;align-items:center;gap:var(--space-md)}.user-name[data-v-e34f6cf2]{font-size:var(--font-size-base);opacity:.9}.nav-link[data-v-e34f6cf2]{color:#fff;text-decoration:none;font-size:var(--font-size-sm);opacity:.85;transition:opacity var(--transition-fast)}.nav-link[data-v-e34f6cf2]:hover{opacity:1;text-decoration:underline}.nav-link.user-name[data-v-e34f6cf2]{font-size:var(--font-size-base);opacity:.9;font-weight:500}.btn-lang[data-v-e34f6cf2]{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.25rem .5rem;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;font-family:inherit;cursor:pointer;transition:background var(--transition-fast);touch-action:manipulation;letter-spacing:.05em}.btn-lang[data-v-e34f6cf2]:hover{background:#ffffff40}.btn-logout[data-v-e34f6cf2]{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.375rem .75rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:inherit;cursor:pointer;transition:background var(--transition-fast);touch-action:manipulation}.btn-logout[data-v-e34f6cf2]:hover{background:#ffffff1a}.spinner[data-v-24e8e102]{display:inline-block;border:3px solid transparent;border-top-color:currentColor;border-right-color:currentColor;border-radius:50%;animation:spin-24e8e102 .6s linear infinite}@keyframes spin-24e8e102{to{transform:rotate(360deg)}}.sr-only[data-v-24e8e102]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.container[data-v-15a01d3d]{max-width:var(--container-max);margin:0 auto;padding:var(--space-md)}.loading[data-v-15a01d3d]{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-md);min-height:100vh;font-size:var(--font-size-xl);color:var(--color-text-muted)}.fade-enter-active[data-v-15a01d3d],.fade-leave-active[data-v-15a01d3d]{transition:opacity var(--transition-normal)}.fade-enter-from[data-v-15a01d3d],.fade-leave-to[data-v-15a01d3d]{opacity:0}:root{--color-primary: #4a90d9;--color-primary-hover: #3a7bc8;--color-primary-focus: rgba(74, 144, 217, .2);--color-success: #2ecc71;--color-success-hover: #27ae60;--color-danger: #e74c3c;--color-danger-hover: #c0392b;--color-warning: #f39c12;--color-info: #3498db;--color-purple: #9b59b6;--color-heading: #1a1a2e;--color-text: #333;--color-text-secondary: #555;--color-text-muted: #666;--color-text-hint: #888;--color-text-placeholder: #999;--color-bg: #f5f5f5;--color-bg-card: #fff;--color-bg-secondary: #e8e8e8;--color-bg-secondary-hover: #d8d8d8;--color-border: #ccc;--color-border-light: #ddd;--color-divider: #eee;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-online: #22c55e;--color-badge-bg: #dbeafe;--color-badge-text: #1e40af;--color-lock-bg: #fef3c7;--color-lock-text: #92400e;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 8px;--radius-xl: 10px;--shadow-card: 0 2px 8px rgba(0, 0, 0, .1);--shadow-card-sm: 0 1px 4px rgba(0, 0, 0, .08);--shadow-modal: 0 4px 16px rgba(0, 0, 0, .2);--font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--container-max: 1200px;--page-max-sm: 400px;--page-max-md: 700px;--page-max-lg: 800px;--transition-fast: .15s ease;--transition-normal: .25s ease;--color-purple-hover: #8e44ad;--color-info-hover: #2980b9;--color-orange: #e67e22;--color-orange-hover: #d35400;--color-overlay-bg: rgba(0, 0, 0, .8);--color-overlay-bg-light: rgba(0, 0, 0, .7);--color-overlay-text: #fff;--color-overlay-text-muted: rgba(255, 255, 255, .6);--color-overlay-border: rgba(255, 255, 255, .15);--color-glass-bg: rgba(255, 255, 255, .08);--color-glass-bg-active: rgba(255, 255, 255, .15);--navbar-height: 49px;--color-player-0: #e74c3c;--color-player-1: #3498db;--color-player-2: #2ecc71;--color-player-3: #f39c12;--color-player-4: #9b59b6;--color-player-5: #1abc9c;--color-player-6: #e67e22}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);line-height:1.6;color:var(--color-text);background:var(--color-bg)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.625rem 1rem;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:inherit;font-weight:600;cursor:pointer;transition:background var(--transition-fast);touch-action:manipulation;text-decoration:none;line-height:1.4}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-block{display:flex;width:100%;padding:.75rem;font-size:var(--font-size-md)}.btn-sm{padding:.375rem .75rem;font-size:var(--font-size-sm)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary-hover)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:var(--color-success-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.field{margin-bottom:var(--space-md)}.field label{display:block;margin-bottom:var(--space-xs);font-weight:500;font-size:var(--font-size-base);color:var(--color-text-secondary)}.field input,.field select,.field textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:inherit;transition:border-color var(--transition-fast);background:var(--color-bg-card);color:var(--color-text)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-focus)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--color-bg);cursor:not-allowed}.field small,.field .hint{display:block;margin-top:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-hint)}.field-row{display:flex;gap:var(--space-md)}.field-row .field{flex:1}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card)}.card-sm{padding:var(--space-md);box-shadow:var(--shadow-card-sm)}.error-banner{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error);padding:.625rem .75rem;border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:var(--font-size-base)}.badge{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;line-height:1.5}.badge-primary{background:var(--color-badge-bg);color:var(--color-badge-text)}.badge-lock{background:var(--color-lock-bg);color:var(--color-lock-text)}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fef2f2;color:#991b1b}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal-card{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg);max-width:480px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-modal)}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--color-text-muted);padding:var(--space-xs);line-height:1}.modal-close:hover{color:var(--color-text)}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:var(--space-md)}.auth-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:var(--page-max-sm);box-shadow:var(--shadow-card)}.auth-card h1{margin-bottom:var(--space-lg);text-align:center;color:var(--color-heading)}.auth-link{text-align:center;margin-top:var(--space-lg);font-size:var(--font-size-base);color:var(--color-text-muted)}.divider{text-align:center;margin:1.25rem 0;position:relative}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px solid var(--color-border-light)}.divider span{background:var(--color-bg-card);padding:0 .75rem;position:relative;color:var(--color-text-placeholder);font-size:var(--font-size-base)}.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-online)}.online-dot.offline{background:var(--color-border)}.empty-state{text-align:center;padding:var(--space-xl);color:var(--color-text-placeholder);font-size:var(--font-size-base)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}
