.login-container{min-height:100dvh;min-height:100vh;overflow-x:hidden}.login-content{display:grid;grid-template-columns:1fr;gap:1.25rem;padding:1rem;padding-bottom:2rem;max-width:500px;margin:0 auto;width:100%}.header-bar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--white);border:4px solid var(--black);box-shadow:5px 5px 0 0 var(--black)}.header-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--primary);border:3px solid var(--black)}.header-icon .material-symbols-outlined{font-size:1.5rem;color:var(--white)}.header-bar h1{font-size:1.25rem;font-weight:800;text-transform:uppercase;font-style:italic;margin:0}.welcome-banner{position:relative;background:var(--comic-yellow);border:4px solid var(--black);padding:1.25rem 1.5rem;text-align:center;box-shadow:5px 5px 0 0 var(--black)}.welcome-banner::after{content:'';position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:20px solid var(--black)}.welcome-banner::before{content:'';position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:16px solid var(--comic-yellow);z-index:1}.welcome-banner h2{font-size:1.75rem;font-weight:800;text-transform:uppercase;font-style:italic;margin:0;letter-spacing:-.02em}.form-section{display:grid;grid-template-columns:1fr;gap:1.25rem;padding-top:.5rem}.form-group{display:grid;grid-template-columns:1fr;gap:.5rem}.form-group label{font-size:.875rem;font-weight:800;text-transform:uppercase;font-style:italic}.input-wrapper{background:var(--white);border:3px solid var(--black);transition:all .15s ease}.input-wrapper input{width:100%;border:none;padding:1rem 1.25rem;font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:600;outline:0;background:0 0}.input-wrapper input::placeholder{color:#999}.input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(235,51,51,.15)}.password-wrapper{display:grid;grid-template-columns:1fr auto;align-items:center}.password-toggle{display:grid;place-items:center;width:48px;height:100%;background:0 0;border:none;border-left:2px solid #eee;cursor:pointer;color:#666}.forgot-link{font-size:.875rem;font-weight:800;font-style:italic;color:var(--primary);text-decoration:underline;text-transform:uppercase}.submit-btn{width:100%;padding:1.125rem;background:#c62828;color:var(--white);border:4px solid var(--black);font-family:'Space Grotesk',sans-serif;font-size:1.125rem;font-weight:800;text-transform:uppercase;font-style:italic;cursor:pointer;box-shadow:5px 5px 0 0 var(--black);transition:all .1s ease}.submit-btn:hover{background:#b71c1c}.submit-btn:active{transform:translate(3px,3px);box-shadow:2px 2px 0 0 var(--black)}.submit-btn:disabled{background:#c62828;color:var(--white);cursor:wait;opacity:.8}.divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.5rem 0}.divider::after,.divider::before{content:'';height:3px;background:var(--black)}.divider span{font-size:.75rem;font-weight:800;text-transform:uppercase}.signup-section{display:grid;grid-template-columns:1fr;gap:.75rem;text-align:center}.signup-section p{font-size:.875rem;font-weight:600;margin:0}.signup-link{display:grid;grid-template-columns:auto auto;gap:.5rem;align-items:center;justify-content:center;padding:1rem 1.5rem;background:var(--white);border:4px solid var(--black);font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:800;text-transform:uppercase;font-style:italic;text-decoration:none;color:var(--black);box-shadow:5px 5px 0 0 var(--black)}.signup-link:hover{background:var(--comic-yellow)}.signup-link .material-symbols-outlined{font-size:1.25rem}.alert{padding:1rem;margin-bottom:1rem;border:3px solid;font-weight:600}.alert-error{background:#fee2e2;border-color:#dc2626;color:#dc2626}.alert-success{background:#d1fae5;border-color:#059669;color:#059669}@media (min-width:576px){.login-content{padding:1.5rem;gap:1.5rem}.welcome-banner h2{font-size:2rem}}