/* Personnalisation de la page de login Keycloak */ .login-pf body { background: linear-gradient(135deg, #10b981 0%, #059669 50%, #047857 100%); min-height: 100vh; } #kc-header-wrapper { color: white; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); margin-bottom: 2rem; font-size: 32px; } #kc-header-wrapper h1, #kc-header-wrapper .kc-logo-text { font-weight: 700; letter-spacing: 0.5px; font-size: 40px; } /* Card principale */ .card-pf { border-radius: 20px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2), 0 5px 15px rgba(0, 0, 0, 0.1); border: 2px solid rgba(16, 185, 129, 0.3); backdrop-filter: blur(10px); background-color: rgba(255, 255, 255, 0.98); overflow: hidden; transition: transform 0.3s ease; } .card-pf:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25), 0 8px 20px rgba(16, 185, 129, 0.15); } /* Header de la card */ #kc-form-login .card-pf h1, .login-pf-page h1 { color: #047857; font-weight: 600; border-bottom: 3px solid #10b981; padding-bottom: 10px; margin-bottom: 20px; } /* Champs de formulaire */ .form-group { margin-bottom: 20px; } #kc-form-login input[type="text"], #kc-form-login input[type="password"], #kc-form-login input[type="email"], .pf-c-form-control { border: 2px solid #d1d5db; border-radius: 12px; padding: 12px 16px; transition: all 0.3s ease; font-size: 15px; } #kc-form-login input[type="text"]:focus, #kc-form-login input[type="password"]:focus, #kc-form-login input[type="email"]:focus, .pf-c-form-control:focus { border-color: #10b981; outline: none; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); transform: translateY(-1px); } /* Labels */ label, .pf-c-form__label { color: #374151; font-weight: 500; margin-bottom: 6px; } /* Bouton principal */ .btn-primary, #kc-login, .pf-c-button.pf-m-primary { background: linear-gradient(135deg, #10b981, #059669); border: none; border-radius: 12px; padding: 12px 24px; font-weight: 600; color: white; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 6px rgba(16, 185, 129, 0.3); width: 100%; font-size: 16px; text-transform: uppercase; letter-spacing: 0.5px; } .btn-primary:hover, #kc-login:hover, .pf-c-button.pf-m-primary:hover { background: linear-gradient(135deg, #059669, #047857); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(16, 185, 129, 0.4); } .btn-primary:active, #kc-login:active, .pf-c-button.pf-m-primary:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3); } /* Boutons secondaires */ .btn-secondary, .btn-default, .pf-c-button.pf-m-secondary { background-color: transparent; color: #10b981; border: 2px solid #10b981; border-radius: 12px; padding: 10px 20px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; } .btn-secondary:hover, .btn-default:hover, .pf-c-button.pf-m-secondary:hover { background-color: #10b981; color: white; transform: scale(1.02); } /* Liens */ #kc-form-options a, #kc-registration a, .login-pf-page a { color: #10b981; font-weight: 500; text-decoration: none; transition: all 0.2s ease; border-bottom: 2px solid transparent; } #kc-form-options a:hover, #kc-registration a:hover, .login-pf-page a:hover { color: #059669; border-bottom-color: #10b981; } /* Checkbox "Se souvenir de moi" */ .checkbox label { color: #4b5563; font-weight: 400; } input[type="checkbox"] { accent-color: #10b981; width: 18px; height: 18px; cursor: pointer; } /* Messages d'alerte */ .alert-error, .pf-c-alert.pf-m-danger { background-color: #fef2f2; border-left: 4px solid #ef4444; border-radius: 10px; color: #991b1b; } .alert-warning, .pf-c-alert.pf-m-warning { background-color: #fffbeb; border-left: 4px solid #f59e0b; border-radius: 10px; color: #92400e; } .alert-success, .pf-c-alert.pf-m-success { background-color: #f0fdf4; border-left: 4px solid #10b981; border-radius: 10px; color: #065f46; } .alert-info, .pf-c-alert.pf-m-info { background-color: #eff6ff; border-left: 4px solid #3b82f6; border-radius: 10px; color: #1e40af; } /* Social login buttons */ #kc-social-providers .btn { border-radius: 12px; margin-bottom: 10px; transition: all 0.3s ease; border: 2px solid #e5e7eb; } #kc-social-providers .btn:hover { transform: translateX(5px); border-color: #10b981; box-shadow: -3px 3px 10px rgba(16, 185, 129, 0.2); } /* Footer */ #kc-registration { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e5e7eb; text-align: center; } /* Animation au chargement */ .card-pf { animation: fadeInUp 0.6s ease-out; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* Responsive */ @media (max-width: 768px) { .card-pf { border-radius: 15px; margin: 10px; } .btn-primary, #kc-login { font-size: 14px; padding: 10px 20px; } }