.login-page[data-v-c489ed57]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg-primary)}.bg-grid[data-v-c489ed57]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(94,175,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(94,175,214,.08) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}.bg-particles[data-v-c489ed57]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.particle[data-v-c489ed57]{position:absolute;width:2px;height:2px;background:var(--text-accent);border-radius:50%;opacity:0;left:var(--x);animation:particleFloat-c489ed57 8s var(--delay) ease-in-out infinite}@keyframes particleFloat-c489ed57{0%{opacity:0;transform:translateY(100vh) scale(0)}20%{opacity:.3}80%{opacity:.15}to{opacity:0;transform:translateY(-20vh) scale(1.5)}}.login-container[data-v-c489ed57]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-8);max-width:480px;width:90%}.logo-section[data-v-c489ed57]{text-align:center}.game-title[data-v-c489ed57]{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--text-primary);letter-spacing:.15em;margin-bottom:var(--space-3)}.game-subtitle[data-v-c489ed57]{font-family:var(--font-narrative);font-size:var(--text-sm);color:var(--text-muted);min-height:1.6em}.cursor[data-v-c489ed57]{color:var(--text-accent);animation:typing-cursor 1s step-end infinite;font-weight:300}.login-form[data-v-c489ed57]{width:100%;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);position:relative;overflow:hidden}.login-form[data-v-c489ed57]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#5eafd6,#9366d6,#c45c8a);transition:filter var(--duration-fast),opacity var(--duration-fast)}.login-form.form-gradient-bar[data-v-c489ed57]:before{animation:gradient-bar-pulse .6s var(--ease-default)}.form-group[data-v-c489ed57]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-c489ed57]{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:4px}.label-icon[data-v-c489ed57]{font-size:11px;color:var(--text-accent);opacity:.6}.input-wrap[data-v-c489ed57]{position:relative;display:flex;align-items:center}.input-icon[data-v-c489ed57]{position:absolute;left:12px;font-size:15px;color:var(--text-muted);pointer-events:none;transition:color var(--duration-fast)}.input.has-icon[data-v-c489ed57]{padding-left:36px}.input-wrap:focus-within .input-icon[data-v-c489ed57]{color:#5eafd699}.field-hint[data-v-c489ed57]{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px;line-height:1.4;display:flex;align-items:flex-start;gap:4px}.hint-icon[data-v-c489ed57]{font-size:10px;flex-shrink:0;opacity:.5;margin-top:2px}.form-error[data-v-c489ed57]{font-size:var(--text-sm);color:var(--color-danger);padding:var(--space-2) var(--space-3);background:rgba(217,72,72,.15);border-left:2px solid var(--color-danger);border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:flex;align-items:center;gap:6px}.error-icon[data-v-c489ed57]{font-size:12px;flex-shrink:0}.form-hint[data-v-c489ed57]{font-size:var(--text-xs);color:var(--color-warning);text-align:center;padding-top:var(--space-1)}.submit-btn[data-v-c489ed57]{margin-top:var(--space-1);height:44px;font-weight:700;letter-spacing:.05em;display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;overflow:hidden;transition:all var(--duration-fast) var(--ease-default)}.submit-btn[data-v-c489ed57]:active:not(:disabled){transform:scale(.98);filter:brightness(.96)}.submit-btn .ripple-effect[data-v-c489ed57]{display:none}.input[data-v-c489ed57]:focus{box-shadow:0 0 0 2px #c9a66b38}.btn-icon[data-v-c489ed57]{font-size:16px}.btn--loading[data-v-c489ed57]{opacity:.7;cursor:not-allowed}.btn--disabled[data-v-c489ed57]{opacity:.45;cursor:not-allowed;background:var(--border-default)!important;border-color:var(--border-default)!important;color:var(--text-muted)!important}.btn-loader[data-v-c489ed57]{display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin-c489ed57 .6s linear infinite;margin-right:var(--space-2);vertical-align:middle}@keyframes spin-c489ed57{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ws-status[data-v-c489ed57]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:rgba(94,175,214,.04);border:1px solid rgba(94,175,214,.12);border-radius:var(--radius-md)}.ws-text[data-v-c489ed57]{font-size:var(--text-xs);color:var(--text-secondary)}.form-footer[data-v-c489ed57]{display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-size:var(--text-sm)}.link[data-v-c489ed57]{color:var(--text-secondary);transition:color var(--duration-fast);display:inline-flex;align-items:center;gap:4px}.link[data-v-c489ed57]:hover{color:var(--text-accent)}.link-icon[data-v-c489ed57]{font-size:12px}.link.muted[data-v-c489ed57]{color:var(--text-muted)}.link.muted[data-v-c489ed57]:hover{color:var(--text-secondary)}.divider[data-v-c489ed57]{color:var(--border-active)}.server-status[data-v-c489ed57]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.status-dot[data-v-c489ed57]{width:6px;height:6px;border-radius:50%}.status-dot.online[data-v-c489ed57]{background:var(--text-gold);box-shadow:0 0 6px #c9a66b40;animation:pulse-green-c489ed57 2s ease-in-out infinite}.status-dot.offline[data-v-c489ed57]{background:var(--color-warning)}.version[data-v-c489ed57]{margin-left:auto;font-family:var(--font-mono);color:var(--border-active)}@keyframes pulse-green-c489ed57{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 767px){.login-container[data-v-c489ed57]{padding:24px 20px;width:95%;gap:24px}.game-title[data-v-c489ed57]{font-size:24px;letter-spacing:.08em}.game-subtitle[data-v-c489ed57]{font-size:12px}.login-form[data-v-c489ed57]{gap:14px;padding:18px}.form-label[data-v-c489ed57]{font-size:11px}.form-error[data-v-c489ed57]{font-size:12px;padding:8px 10px}.submit-btn[data-v-c489ed57]{height:44px;font-size:15px}.ws-status[data-v-c489ed57]{padding:8px 10px}.ws-text[data-v-c489ed57]{font-size:11px}.form-footer[data-v-c489ed57]{font-size:13px}.server-status[data-v-c489ed57]{font-size:10px}}.not-found-page[data-v-355675e2]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0a0e1a 0%,#121828 50%,#0d1220 100%);position:relative;overflow:hidden}.bg-grid[data-v-355675e2]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(94,175,214,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(94,175,214,.03) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 30%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 30%,transparent 70%)}.content[data-v-355675e2]{text-align:center;padding:48px 24px;position:relative;z-index:1}.error-code[data-v-355675e2]{font-family:JetBrains Mono,monospace;font-size:clamp(80px,15vw,140px);font-weight:700;background:linear-gradient(135deg,#5eafd6 0%,#9366d6 50%,#c45c8a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:16px;text-shadow:0 0 60px rgba(94,175,214,.3)}.error-title[data-v-355675e2]{font-family:ZCOOL XiaoWei,"Noto Serif SC",serif;font-size:clamp(20px,4vw,28px);color:#e8e0d4;margin:0 0 12px;letter-spacing:.08em}.error-desc[data-v-355675e2]{font-size:14px;color:#e8e0d480;margin:0 0 36px}.actions[data-v-355675e2]{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.btn[data-v-355675e2]{display:inline-block;padding:12px 28px;border-radius:6px;font-size:14px;text-decoration:none;transition:all .2s ease;letter-spacing:.05em}.btn-primary[data-v-355675e2]{background:linear-gradient(135deg,#5eafd6,#9366d6);color:#fff;box-shadow:0 4px 16px #5eafd64d}.btn-primary[data-v-355675e2]:hover{transform:translateY(-2px);box-shadow:0 6px 24px #5eafd666}.btn-secondary[data-v-355675e2]{border:1px solid rgba(94,175,214,.4);color:#5eafd6;background:rgba(94,175,214,.05)}.btn-secondary[data-v-355675e2]:hover{background:rgba(94,175,214,.1);border-color:#5eafd699}
