@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #f0f2f5;--bg-card: #ffffff;--bg-captcha: #e8eaf0;--text-primary: #1a1a2e;--text-secondary: #4a5568;--text-muted: #718096;--border-color: rgba(0, 0, 0, .15);--border-focus: #4f46e5;--accent-primary: #4f46e5;--accent-primary-hover: #4338ca;--accent-info: #0891b2;--accent-info-hover: #0e7490;--accent-google: #ffffff;--accent-google-border: #dadce0;--accent-google-hover: #f8f9fa;--shadow-card: 0 20px 60px rgba(0, 0, 0, .08), 0 4px 20px rgba(0, 0, 0, .04);--shadow-glow: radial-gradient(ellipse at 50% 0%, rgba(79, 70, 229, .08) 0%, transparent 70%), radial-gradient(ellipse at 0% 50%, rgba(8, 145, 178, .06) 0%, transparent 60%), radial-gradient(ellipse at 100% 50%, rgba(79, 70, 229, .06) 0%, transparent 60%);--input-bg: #ffffff;--input-bg-hover: #fafbff;--captcha-text: #1a1a2e;--toggle-bg: #e2e8f0;--toggle-icon: #64748b;--error-bg: rgba(220, 38, 38, .08);--error-border: rgba(220, 38, 38, .3);--error-text: #dc2626;--success-bg: rgba(16, 185, 129, .08);--success-border: rgba(16, 185, 129, .3);--success-text: #059669;--btn-disabled-bg: #e2e8f0;--btn-disabled-text: #94a3b8}[data-theme=dark]{--bg-primary: #0a0f1e;--bg-card: #111827;--bg-captcha: #1e2535;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--border-color: rgba(255, 255, 255, .08);--border-focus: #818cf8;--accent-primary: #818cf8;--accent-primary-hover: #6366f1;--accent-info: #22d3ee;--accent-info-hover: #06b6d4;--accent-google: #1e2535;--accent-google-border: rgba(255, 255, 255, .12);--accent-google-hover: #252f42;--shadow-card: 0 20px 60px rgba(0, 0, 0, .6), 0 4px 20px rgba(0, 0, 0, .4);--shadow-glow: radial-gradient(ellipse at 50% 0%, rgba(129, 140, 248, .12) 0%, transparent 70%), radial-gradient(ellipse at 0% 50%, rgba(34, 211, 238, .08) 0%, transparent 60%), radial-gradient(ellipse at 100% 50%, rgba(129, 140, 248, .08) 0%, transparent 60%);--input-bg: #1a2236;--input-bg-hover: #1e2845;--captcha-text: #f1f5f9;--toggle-bg: #1e2535;--toggle-icon: #94a3b8;--error-bg: rgba(248, 113, 113, .08);--error-border: rgba(248, 113, 113, .25);--error-text: #f87171;--success-bg: rgba(52, 211, 153, .08);--success-border: rgba(52, 211, 153, .25);--success-text: #34d399;--btn-disabled-bg: #1e2535;--btn-disabled-text: #4a5568}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5;transition:background-color .3s ease,color .3s ease;overflow-x:hidden}.page-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;background:var(--bg-primary)}.page-wrapper:before{content:"";position:fixed;inset:0;background:var(--shadow-glow);pointer-events:none;z-index:0}.theme-toggle-wrapper{position:fixed;top:1rem;right:1.25rem;z-index:100}.theme-toggle-btn{width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--border-color);background:var(--toggle-bg);color:var(--toggle-icon);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.theme-toggle-btn:hover{transform:scale(1.08);border-color:var(--accent-primary);color:var(--accent-primary)}.login-card{position:relative;z-index:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:1.25rem;padding:2.25rem 2rem;width:100%;max-width:460px;box-shadow:var(--shadow-card);transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.card-header{text-align:center;margin-bottom:1.75rem}.card-logo{height:52px;width:auto;object-fit:contain;margin-bottom:.75rem;display:inline-block}.card-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.form{display:flex;flex-direction:column;gap:1rem}.form-group{position:relative;display:flex;flex-direction:column;gap:.25rem}.form-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.form-label .required{color:var(--error-text);margin-left:2px}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.85rem;color:var(--text-muted);display:flex;align-items:center;pointer-events:none;transition:color .2s;z-index:1}.form-input{width:100%;padding:.7rem .9rem .7rem 2.6rem;font-size:.9rem;font-family:inherit;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border-color);border-radius:.6rem;outline:none;transition:all .2s ease}.form-input.no-icon{padding-left:.9rem}.form-input:hover{background:var(--input-bg-hover);border-color:var(--text-muted)}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e51f;background:var(--input-bg)}[data-theme=dark] .form-input:focus{box-shadow:0 0 0 3px #818cf81f}.form-input::placeholder{color:var(--text-muted);font-size:.875rem}.input-action-btn{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;padding:.2rem;border-radius:.3rem;transition:color .2s;z-index:1}.input-action-btn:hover{color:var(--accent-primary)}.captcha-row{display:flex;align-items:center;gap:.625rem}.captcha-canvas-wrapper{flex:1;border-radius:.6rem;overflow:hidden;border:1px solid var(--border-color);background:var(--bg-captcha);display:flex;align-items:center;justify-content:center;min-height:52px}.captcha-canvas{display:block;width:100%;height:52px}.captcha-refresh-btn{flex-shrink:0;padding:.4rem .85rem;font-size:.8rem;font-family:inherit;font-weight:500;color:var(--accent-primary);background:transparent;border:1px solid var(--accent-primary);border-radius:.6rem;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:52px}.captcha-refresh-btn:hover{background:var(--accent-primary);color:#fff}.btn{width:100%;padding:.75rem 1rem;font-size:.95rem;font-family:inherit;font-weight:600;border-radius:.6rem;border:none;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;letter-spacing:.01em}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}[data-theme=dark] .btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #818cf84d}.btn-primary:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);cursor:not-allowed;transform:none;box-shadow:none}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-outline-info{background:transparent;color:var(--accent-info);border:1px solid var(--accent-info);flex:1}.btn-outline-info:hover{background:var(--accent-info);color:#fff}.btn-google{background:var(--accent-google);color:var(--text-primary);border:1px solid var(--accent-google-border);font-weight:500;flex:1}.btn-google:hover{background:var(--accent-google-hover);border-color:var(--accent-primary)}.btn-row{display:flex;gap:.75rem;margin-top:.25rem}.divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.8rem;font-weight:500;margin:.25rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.alert{padding:.65rem .875rem;border-radius:.5rem;font-size:.85rem;font-weight:500;display:flex;align-items:flex-start;gap:.5rem;animation:slideIn .2s ease}.alert-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.alert-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.loading-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;background:var(--bg-primary);color:var(--text-primary)}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:1rem;font-weight:500;color:var(--text-secondary)}.error-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;background:var(--bg-primary);color:var(--text-primary)}.error-icon{font-size:3rem;margin-bottom:.5rem}.error-title{font-size:1.5rem;font-weight:700;color:var(--error-text)}.error-message{color:var(--text-secondary);font-size:.95rem;max-width:360px}.btn-back{margin-top:.5rem;padding:.65rem 1.5rem;background:var(--accent-primary);color:#fff;border:none;border-radius:.6rem;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;display:inline-flex;align-items:center;gap:.4rem}.btn-back:hover{background:var(--accent-primary-hover);transform:translateY(-1px)}.google-icon{width:18px;height:18px;flex-shrink:0}@media(max-width:520px){.login-card{padding:1.75rem 1.25rem;border-radius:1rem}.btn-row{flex-direction:column}.btn-outline-info,.btn-google{flex:unset;width:100%}}@media(max-width:380px){.login-card{padding:1.5rem 1rem}.card-title{font-size:1rem}}
