:root{--accent: #ff5c7a;--accent-light: #ff5c7a22;--bg: #0f0f14;--surface: #ffffff;--text: #1d2327;--text-muted: #666666;--text-faint: #999999;--border: #dddddd;--border-light: #c3c4c7;--green: #4ecdc4;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);font-size:16px;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.login-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:50px 50px}.mesh-blob{position:absolute;border-radius:50%;filter:blur(120px);animation:gradientShift 20s ease-in-out infinite}.mesh-blob-1{width:500px;height:500px;background:#ff5c7a;opacity:.1;top:-200px;right:-100px}.mesh-blob-2{width:400px;height:400px;background:#c084fc;opacity:.08;bottom:-150px;left:-100px;animation-delay:-7s}.mesh-blob-3{width:300px;height:300px;background:#5cb8ff;opacity:.06;top:40%;left:30%;animation-delay:-14s}@keyframes gradientShift{0%,to{transform:translate(0)}33%{transform:translate(30px,-20px)}66%{transform:translate(-20px,15px)}}.login-wrapper{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:32px}.login-logo img{border-radius:6px}.login-logo span{font-weight:700;font-size:20px;color:#fff}.auth-card{background:var(--surface);border-radius:12px;padding:40px 36px;width:100%;max-width:420px;box-shadow:0 8px 60px #0006,0 0 0 1px #ffffff0f}.auth-card h1{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--text)}.auth-subtitle{color:var(--text-muted);font-size:14px;margin-bottom:28px}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}.form-group input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;font-family:var(--font);color:var(--text);background:#fafafa;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);background:#fff}.form-group input::placeholder{color:var(--text-faint)}.form-error{color:#dc3232;font-size:13px;margin-bottom:12px;min-height:20px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 24px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;font-family:var(--font);border:2px solid transparent;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 20px #ff5c7a66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-outline{background:transparent;color:var(--text);border-color:var(--border-light)}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-block{width:100%;text-align:center}.auth-switch{text-align:center;font-size:13px;color:var(--text-muted);margin-top:20px}.auth-switch a{color:var(--accent);font-weight:600}.auth-switch a:hover{text-decoration:underline}.logged-in-icon{text-align:center;margin-bottom:16px}#loggedInView h1,#loggedInView .auth-subtitle{text-align:center}.logged-in-info{background:#f7f7f8;border-radius:var(--radius-md);padding:16px 20px;margin-bottom:24px}.info-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.info-row:not(:last-child){border-bottom:1px solid #eee}.info-label{color:var(--text-muted)}.info-value{font-weight:600;color:var(--text);text-transform:capitalize}.back-link{display:block;text-align:center;margin-top:16px;font-size:13px;color:var(--text-muted)}.back-link:hover{color:var(--accent)}.btn .spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.auth-card{padding:32px 24px}}
