.login-page{min-height:100vh;display:flex;flex-direction:column;position:relative}.login-background{position:fixed;inset:0;z-index:-1;opacity:.5}.login-background .pattern-tessellation{width:100%;height:100%}.login-container{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4);max-width:480px;margin:0 auto;width:100%}.login-logo-section{text-align:center;margin-bottom:var(--space-8)}.logo-icon{margin-bottom:var(--space-4)}.logo-text{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,var(--color-emerald-600),var(--color-gold-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-2)}.logo-subtitle{font-size:var(--font-size-lg);color:var(--color-emerald-700);margin-bottom:var(--space-1)}.logo-tagline{font-size:var(--font-size-sm);color:var(--text-secondary)}.login-card{width:100%;background:var(--bg-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);overflow:hidden}.login-card-header{padding:var(--space-6);text-align:center;border-bottom:1px solid var(--border-light)}.login-card-header h2{font-size:var(--font-size-xl);margin-bottom:var(--space-1)}.login-card-header p{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:0}.login-card-body{padding:var(--space-6)}.invitation-section{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-light)}.invitation-section.validated{background:var(--color-emerald-50);margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-6);padding:var(--space-6);border-bottom:1px solid var(--color-emerald-200)}.login-form{margin-bottom:var(--space-4)}.login-divider{display:flex;align-items:center;margin:var(--space-6) 0;color:var(--text-tertiary)}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--border-light)}.login-divider span{padding:0 var(--space-4);font-size:var(--font-size-sm)}.biometric-note{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--font-size-xs);color:var(--text-tertiary)}.login-card-footer{padding:var(--space-4) var(--space-6);background:var(--bg-tertiary);border-top:1px solid var(--border-light)}.login-help{display:flex;align-items:center;justify-content:center;gap:var(--space-4);font-size:var(--font-size-sm)}.login-help .divider{color:var(--border-medium)}.btn-link{background:none;border:none;color:var(--text-link);font-size:inherit;cursor:pointer;padding:0}.btn-link:hover{text-decoration:underline}.immutables-section{margin-top:var(--space-8);text-align:center}.immutables-section h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-4)}.immutables-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-3);gap:var(--space-3);text-align:left}.immutables-list li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--text-secondary)}.immutables-list svg{flex-shrink:0;color:var(--color-emerald-500)}.login-footer{margin-top:var(--space-8);text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary)}.login-footer p{margin-bottom:var(--space-2)}.login-footer a{color:var(--text-secondary)}.login-footer a:hover{color:var(--text-primary)}.request-options{display:flex;flex-direction:column;gap:var(--space-4)}.request-option{padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-lg)}.request-option h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.request-option p{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:0}.w-full{width:100%}@media (max-width:480px){.immutables-list{grid-template-columns:1fr}.login-help{flex-direction:column;gap:var(--space-2)}.login-help .divider{display:none}}.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal-backdrop{position:absolute;inset:0;background-color:rgba(0,0,0,.5)}.modal-content{position:relative;width:100%;max-width:500px;max-height:90vh;background-color:var(--bg-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light)}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-tertiary);font-size:var(--font-size-xl);transition:all var(--transition-fast)}.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:var(--space-6);overflow-y:auto;max-height:calc(90vh - 120px)}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only:focus{position:fixed;top:var(--space-4);left:var(--space-4);width:auto;height:auto;padding:var(--space-2) var(--space-4);background:var(--color-emerald-600);color:#fff;z-index:9999;clip:auto;border-radius:var(--radius-md);text-decoration:none}