:root{--auth-primary: #0d6efd;--auth-primary-dark: #0a58ca;--auth-success: #28a745;--auth-success-dark: #218838;--auth-bg-gradient-start: #667eea;--auth-bg-gradient-end: #764ba2;--auth-page-bg: linear-gradient(135deg, var(--auth-bg-gradient-start) 0%, var(--auth-bg-gradient-end) 100%);--auth-header-bg: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);--auth-header-text: #1a1a2e;--auth-header-subtitle: #6c757d}.auth-page{min-height:100vh;background:var(--auth-page-bg);display:flex;align-items:center;justify-content:center;padding:20px}.auth-container{width:100%;max-width:420px}.auth-container.auth-container-wide{max-width:480px}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}.auth-header{background:var(--auth-header-bg);color:var(--auth-header-text);padding:2rem;text-align:center;border-bottom:1px solid rgba(0,0,0,.1)}.auth-header .logo{height:60px;width:auto;max-width:180px;object-fit:contain;display:block}.auth-header .logo-pill{display:inline-flex;align-items:center;justify-content:center;min-width:60px;min-height:60px;margin-bottom:1rem}.auth-header .logo-pill.has-bg{padding:.5rem;border-radius:.5rem}.auth-header h1{font-size:1.5rem;font-weight:600;margin-bottom:.25rem;color:inherit}.auth-header .subtitle{font-size:.9rem;color:var(--auth-header-subtitle)}.tenant-branding .auth-header{background:var(--auth-header-bg);color:var(--auth-header-text);border-bottom:none}.tenant-branding .auth-header .subtitle{color:var(--auth-header-subtitle)}.auth-body{padding:2rem}.auth-form .form-floating{margin-bottom:1rem}.auth-form .form-floating .form-control{border-radius:8px;border:2px solid #e9ecef;padding:1.625rem .75rem .625rem;min-height:calc(3.5rem + 4px)}.auth-form .form-floating .form-control:focus{border-color:var(--auth-primary);box-shadow:0 0 0 .2rem rgba(13,110,253,.15)}.auth-form .form-floating .form-control:disabled,.auth-form .form-floating .form-control[readonly]{background-color:#f8f9fa}.auth-form .form-floating.password-field{position:relative}.auth-form .form-floating.password-field .form-control{padding-right:45px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#6c757d;cursor:pointer;padding:.25rem;z-index:10}.password-toggle:hover{color:var(--auth-primary)}.btn-auth{width:100%;padding:.875rem;font-size:1rem;font-weight:600;border-radius:8px;border:none;transition:transform .2s,box-shadow .2s}.btn-auth:hover:not(:disabled){transform:translateY(-2px)}.btn-auth:disabled{transform:none;box-shadow:none;opacity:.7}.btn-auth .spinner-border{width:1.2rem;height:1.2rem;margin-right:.5rem}.btn-auth-primary{width:100%;padding:.875rem;font-size:1rem;font-weight:600;border-radius:8px;border:none;transition:transform .2s,box-shadow .2s;background:linear-gradient(135deg, var(--auth-primary) 0%, var(--auth-primary-dark) 100%);color:#fff}.btn-auth-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(13,110,253,.4);color:#fff}.btn-auth-primary:disabled{transform:none;box-shadow:none;opacity:.7}.btn-auth-primary .spinner-border{width:1.2rem;height:1.2rem;margin-right:.5rem}.btn-auth-success{width:100%;padding:.875rem;font-size:1rem;font-weight:600;border-radius:8px;border:none;transition:transform .2s,box-shadow .2s;background:linear-gradient(135deg, var(--auth-success) 0%, var(--auth-success-dark) 100%);color:#fff}.btn-auth-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(40,167,69,.4);color:#fff}.btn-auth-success:disabled{transform:none;box-shadow:none;opacity:.7}.btn-auth-success .spinner-border{width:1.2rem;height:1.2rem;margin-right:.5rem}.auth-alert{border-radius:8px;font-size:.9rem}.auth-footer{text-align:center;padding:1rem 2rem 2rem;border-top:1px solid #f0f0f0}.auth-footer a{color:#6c757d;text-decoration:none;font-size:.85rem}.auth-footer a:hover{color:var(--auth-primary)}.invite-info{background:#f8f9fa;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;border-left:4px solid var(--auth-primary)}.invite-info .info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e9ecef}.invite-info .info-row:last-child{border-bottom:none}.invite-info .info-label{color:#6c757d;font-size:.85rem}.invite-info .info-value{font-weight:500}.password-requirements{font-size:.8rem;color:#6c757d;margin-top:.5rem}.password-requirements li{margin-bottom:.25rem}.password-requirements li.valid{color:#28a745}.password-requirements li.invalid{color:#dc3545}.auth-selector{display:none}.auth-selector.show{display:block}.auth-selector-list{max-height:300px;overflow-y:auto}.selector-item{display:flex;align-items:center;padding:1rem;border:2px solid #e9ecef;border-radius:8px;margin-bottom:.75rem;cursor:pointer;transition:all .2s}.selector-item:hover{border-color:var(--auth-primary);background:rgba(13,110,253,.05)}.selector-item.selected{border-color:var(--auth-primary);background:rgba(13,110,253,.1)}.selector-item.selected .selector-check{opacity:1}.selector-item .selector-icon{width:48px;height:48px;border-radius:8px;background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.25rem;margin-right:1rem;flex-shrink:0}.selector-item .selector-info{flex:1;min-width:0}.selector-item .selector-name{font-weight:600;color:#1a1a2e;margin-bottom:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selector-item .selector-tenant{font-size:.8rem;color:#6c757d}.selector-item .selector-role{font-size:.75rem}.selector-item .selector-check{color:var(--auth-primary);font-size:1.25rem;margin-left:.5rem;opacity:0;transition:opacity .2s}.auth-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,100%,.9);display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1000}.auth-state-container{text-align:center;padding:3rem 2rem}.auth-state-container .state-icon{font-size:4rem;margin-bottom:1rem}.auth-state-container .state-icon.error{color:#dc3545}.auth-state-container .state-icon.success{color:#28a745}.auth-state-container .state-icon.warning{color:#ffc107}.auth-state-container .state-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.auth-state-container .state-message{color:#6c757d;margin-bottom:1.5rem}.auth-version{position:fixed;bottom:10px;right:15px;font-size:.75rem;color:hsla(0,0%,100%,.6)}@media(max-width: 480px){.auth-container{max-width:100%}.auth-header{padding:1.5rem}.auth-header h1{font-size:1.25rem}.auth-body{padding:1.5rem}.selector-item .selector-icon{width:40px;height:40px;font-size:1rem}}
