.auth-body{background:radial-gradient(circle at 50% 0%, #d4af3724, transparent 34rem), linear-gradient(180deg, #0d1422 0%, var(--bg-color) 72%);place-items:center;min-height:100svh;padding:1rem;display:grid}.auth-container{width:100%;max-width:26rem;padding:1.25rem 0}.text-center{text-align:center}.w-100{width:100%}.auth-header{margin-bottom:1.25rem}.auth-logo{width:min(11rem,70vw);height:auto;margin-bottom:1rem;display:inline-block}.auth-title{font-family:var(--font-heading);letter-spacing:0;margin-bottom:.5rem;font-size:2rem;line-height:1.05}.auth-subtitle{color:var(--text-muted);max-width:20rem;margin:0 auto;line-height:1.5}.auth-card{border-radius:.5rem;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1.5rem 4rem #0000003d}.auth-form{gap:1rem;display:grid}.input-group{text-align:left}.input-group label{color:var(--text-muted);margin-bottom:.45rem;font-size:.9rem;font-weight:600;display:block}.input-group input{border:1px solid var(--glass-border);width:100%;min-height:3.5rem;color:var(--text-main);font-family:var(--font-body);background:#0003;border-radius:999px;padding:.85rem 1.25rem;font-size:1rem;line-height:1.3;transition:border-color .2s,box-shadow .2s,background-color .2s}.input-group input::placeholder{color:#ffffff61}.input-group input:focus{border-color:var(--primary-gold);box-shadow:0 0 0 3px var(--gold-glow);background:#00000047;outline:none}.input-group input:user-invalid{border-color:#ff6b6b;box-shadow:0 0 0 3px #ff6b6b29}.input-group small{color:var(--text-muted);margin-top:.45rem;font-size:.78rem;line-height:1.4;display:block}.auth-feedback{min-height:1.25rem;color:var(--text-muted);text-align:center;margin-top:.85rem;font-size:.9rem;line-height:1.4}.auth-feedback.is-success{color:#65e49a}.auth-feedback.is-error{color:#ff8a8a}.auth-divider{text-align:center;color:var(--text-muted);align-items:center;margin:1.35rem 0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--glass-border);flex:1}.auth-divider span{white-space:nowrap;padding:0 .75rem}.btn-google{color:#000;cursor:pointer;background:#fff;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;min-height:3.5rem;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s;display:flex}.btn-google svg{flex:none}.btn-google:hover{transform:translateY(-2px);box-shadow:0 .5rem 1rem #ffffff29}.btn-google:focus-visible,.auth-footer a:focus-visible{outline:3px solid var(--gold-glow);outline-offset:3px}.auth-footer p{color:var(--text-muted);font-size:.95rem;line-height:1.5}.auth-footer a{font-weight:600}@media (width>=36rem){.auth-body{padding:2rem}.auth-container{max-width:28rem}.auth-card{padding:1.75rem}}@media (prefers-reduced-motion:reduce){.auth-card,.btn-google,.input-group input{transition:none}}.password-box{width:100%;position:relative}.password-box input{padding-right:3rem}.password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .2s;display:flex;position:absolute;top:50%;right:1.25rem;transform:translateY(-50%)}.password-toggle:hover,.password-toggle:focus-visible{color:var(--primary-gold,#f9d423);outline:none}.role-selection-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;opacity:1;background:#080c16d9;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.role-selection-modal.hidden{opacity:0;pointer-events:none;visibility:hidden}.role-modal-content{border:1px solid var(--glass-border);text-align:center;background:#121826f2;border-radius:1rem;width:100%;max-width:28rem;padding:2rem;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);transform:translateY(0);box-shadow:0 2rem 4rem #0006}.role-selection-modal.hidden .role-modal-content{transform:translateY(2rem)}.role-modal-content h2{font-family:var(--font-heading);color:var(--text-main);margin-bottom:.75rem;font-size:1.75rem}.role-modal-content p{color:var(--text-muted);margin-bottom:2rem;font-size:.95rem;line-height:1.5}.role-options{flex-direction:column;gap:1rem;display:flex}.btn-role-option{border:1px solid var(--glass-border);width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:#ffffff0d;border-radius:.75rem;align-items:center;gap:1rem;padding:1.25rem;transition:all .2s;display:flex}.btn-role-option:hover,.btn-role-option:focus-visible{background:#ffffff1a;border-color:#fff3;outline:none;transform:translateY(-2px)}.btn-role-option.admin-option{background:#d4af3714;border-color:#d4af374d}.btn-role-option.admin-option:hover,.btn-role-option.admin-option:focus-visible{border-color:var(--primary-gold);background:#d4af3726;box-shadow:0 0 15px #d4af3733}.role-icon{background:#ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.btn-role-option.admin-option .role-icon{color:var(--primary-gold);background:#d4af3733}.role-text{flex-direction:column;gap:.25rem;display:flex}.role-text strong{font-size:1.1rem;font-weight:600}.role-text span{color:var(--text-muted);font-size:.85rem}
