:root{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 263.4 70% 58%;--primary-foreground: 210 40% 98%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 263.4 70% 58%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 50.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 263.4 70% 58%;--radius: .75rem;--gradient-start: #6366f1;--gradient-mid: #8b5cf6;--gradient-end: #a78bfa}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:hsl(var(--background));color:hsl(var(--foreground));min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-wrapper{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative}@media(max-width:1024px){.page-wrapper{grid-template-columns:1fr}}.brand-panel{display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;position:relative;overflow:hidden;background:linear-gradient(135deg,#090915,#110a1f,#090915)}@media(max-width:1024px){.brand-panel{padding:2rem 1.5rem;min-height:auto}}.brand-panel:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 50%,rgba(99,102,241,.08) 0%,transparent 50%);animation:pulse-glow 8s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.brand-content{position:relative;z-index:1;max-width:520px}.brand-logo{display:flex;align-items:center;gap:.875rem;margin-bottom:2.5rem}.logo-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-mid));display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:#fff;box-shadow:0 0 30px #6366f14d;flex-shrink:0}.logo-text{font-size:1.375rem;font-weight:700;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.brand-headline{font-size:2.75rem;font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:1.25rem;color:hsl(var(--foreground))}@media(max-width:1024px){.brand-headline{font-size:1.75rem}}.brand-headline span{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-subtitle{font-size:1.125rem;color:hsl(var(--muted-foreground));line-height:1.7;margin-bottom:2.5rem;max-width:440px}.features-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:1024px){.features-grid{grid-template-columns:1fr;gap:.75rem}}.feature-card{padding:1.125rem 1.25rem;background:hsl(var(--secondary) / .5);border:1px solid hsl(var(--border) / .5);border-radius:var(--radius);transition:all .3s cubic-bezier(.4,0,.2,1)}.feature-card:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--secondary) / .8);transform:translateY(-2px);box-shadow:0 4px 20px #6366f114}.feature-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,hsl(var(--accent) / .15),hsl(var(--accent) / .05));display:flex;align-items:center;justify-content:center;margin-bottom:.625rem;color:hsl(var(--accent))}.feature-title{font-size:.875rem;font-weight:600;margin-bottom:.25rem;color:hsl(var(--foreground))}.feature-desc{font-size:.8rem;color:hsl(var(--muted-foreground));line-height:1.4}.login-panel{display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;background:hsl(var(--background))}.login-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 0%,rgba(139,92,246,.04) 0%,transparent 60%);pointer-events:none}.login-container{width:100%;max-width:420px;position:relative;z-index:1}.login-header{margin-bottom:2rem}.login-title{font-size:1.625rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.login-description{color:hsl(var(--muted-foreground));font-size:.9375rem;line-height:1.5}.card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);padding:2rem;box-shadow:0 1px 3px #0000001f,0 4px 20px #00000014}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:hsl(var(--foreground))}.form-input{width:100%;height:44px;padding:0 .875rem;background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--foreground));font-family:inherit;font-size:.9375rem;outline:none;transition:all .2s ease}.form-input::placeholder{color:hsl(var(--muted-foreground) / .5)}.form-input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .15)}.form-input.error{border-color:hsl(var(--destructive));box-shadow:0 0 0 3px hsl(var(--destructive) / .1)}.password-wrapper{position:relative}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;display:flex;align-items:center;transition:color .2s}.password-toggle:hover{color:hsl(var(--foreground))}.btn-primary{width:100%;height:44px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--gradient-start),var(--gradient-mid));color:#fff;font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 50%);opacity:0;transition:opacity .2s}.btn-primary:hover:not(:disabled):before{opacity:1}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #6366f159}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-alert{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .2);border-radius:var(--radius);margin-bottom:1.25rem;animation:shake .4s ease-in-out,fadeIn .3s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.error-icon{color:hsl(var(--destructive));flex-shrink:0;margin-top:1px}.error-text{font-size:.875rem;color:hsl(var(--destructive));line-height:1.4}.error-text strong{display:block;margin-bottom:2px;font-weight:600}.login-footer{margin-top:1.5rem;text-align:center}.login-footer a{color:hsl(var(--accent));font-size:.875rem;text-decoration:none;transition:opacity .2s}.login-footer a:hover{opacity:.8;text-decoration:underline}.login-footer p{color:hsl(var(--muted-foreground));font-size:.8125rem;margin-top:.75rem;line-height:1.4}.floating-dots{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.dot{position:absolute;width:4px;height:4px;background:hsl(var(--accent) / .2);border-radius:50%;animation:float-up linear infinite}@keyframes float-up{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100px) scale(1);opacity:0}}@media(max-width:1024px){.brand-panel{order:-1}.login-panel{padding:2rem 1.5rem 3rem}}.page-footer{position:fixed;bottom:0;left:0;right:0;padding:.875rem;text-align:center;font-size:.75rem;color:hsl(var(--muted-foreground) / .5);letter-spacing:.01em;pointer-events:none}@media(max-width:1024px){.page-footer{position:relative;padding:1.5rem}}
