@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:ital,wght@0,300..900;1,300..900&family=Red+Hat+Text:ital,wght@0,300..700;1,300..700&display=swap');:root{--login-bg:#3d3d3d;--login-text:var(--gl-gray-900);--login-text-light:var(--gl-gray-950);--login-brand-text:var(--gl-gray-0);--login-text-muted:var(--gl-gray-500);--login-text-subtle:var(--gl-gray-600);--login-card-bg:var(--gl-gray-0);--login-primary:var(--gl-blue-500);--login-primary-hover:var(--gl-blue-600);--login-primary-alpha-8:rgba(31,117,203,0.08);--login-primary-alpha-25:rgba(31,117,203,0.25);--login-input-text:var(--gl-gray-900);--login-input-border:var(--gl-gray-200);--login-input-bg-muted:var(--gl-gray-50);--login-gitlab-orange:#fc6d26;--login-gitlab-orange-hover:#e24329;--login-footer-border:var(--gl-gray-200);--login-footer-link:var(--gl-blue-700);--login-shadow:var(--shadow-lg)}body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background-color:var(--login-bg);background-image:url('/static/img/keycloak-bg.png');background-repeat:no-repeat;background-position:center;background-size:cover;background-attachment:fixed;padding:0 var(--gl-spacing-5) var(--gl-spacing-7);color:var(--login-text);font-family:'Red Hat Text','RedHatText','Overpass','Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;overflow:auto!important;position:relative}.login-page>main{width:100%;max-width:500px;min-width:0;margin-bottom:40px}.login-shell-header{display:flex;align-items:center;justify-content:center;margin-bottom:20px;width:100%}@media (min-width:768px){.login-shell-header{padding:110px 10px 20px}}.login-brand-block{min-width:0;text-align:center;width:100%}.login-brand-title{color:#ededed;font-family:'Red Hat Text','RedHatText','Overpass','Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:29px;font-weight:400;letter-spacing:0;text-align:center;margin:0;text-transform:uppercase;line-height:1.2em}.login-container{width:100%;max-width:500px;min-width:0}.login-card{min-width:0;background:var(--login-card-bg);border-top:3px solid var(--login-primary);border-radius:var(--radius);box-shadow:0 0.5rem 1rem 0 rgba(3,3,3,0.16),0 0 0.375rem 0 rgba(3,3,3,0.08);padding:0 20px 20px 20px}.login-heading{font-size:24px;font-weight:300;font-family:'Red Hat Display','RedHatDisplay','Overpass','Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#151515;text-align:center;margin:24px 0 20px 0;line-height:1.3}.login-form .form-group{min-width:0;margin-bottom:var(--gl-spacing-5)}.login-form .form-help{overflow-wrap:anywhere}.login-form .form-label{display:block;font-size:14px;font-weight:400;color:#151515;margin-bottom:8px}.login-form .form-input{display:block;width:100%;height:36px;padding:var(--gl-spacing-2) var(--gl-spacing-3);font-size:var(--font-size-md);color:var(--login-input-text);background:var(--login-card-bg);border:none;border-bottom:1px solid var(--login-input-border);border-radius:0;outline:none;transition:border-color var(--transition-control),box-shadow var(--transition-control),background var(--transition-control);box-sizing:border-box}.login-form .form-input:hover{border-bottom-color:var(--gl-control-border-hover)}.login-form .form-input:focus{border-bottom:2px solid var(--login-primary);box-shadow:none}.role-select{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gl-spacing-3)}.role-option{position:relative}.role-option input{position:absolute;opacity:0;width:0;height:0}.role-option label{display:flex;flex-direction:column;align-items:center;gap:var(--gl-spacing-2);padding:var(--gl-spacing-4) var(--gl-spacing-3);background:var(--login-input-bg-muted);border:1.5px solid var(--login-input-border);border-radius:0;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal);text-align:center}.role-option label:hover{border-color:var(--gl-control-border-hover);background:var(--login-card-bg)}.role-option input:checked + label{border-color:var(--login-primary);background:var(--login-primary-alpha-8)}.role-option .role-icon{width:24px;height:24px;color:var(--login-text-muted)}.role-option input:checked + label .role-icon{color:var(--login-primary)}.role-option .role-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--login-text-subtle)}.role-option input:checked + label .role-name{color:var(--login-primary)}.btn-signin{display:block;width:100%;margin-top:var(--gl-spacing-4);background:var(--gl-btn-confirm-bg);color:var(--gl-btn-confirm-text);border:0;border-radius:0;padding:var(--gl-spacing-2) var(--gl-spacing-4);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal);height:36px;box-sizing:border-box}.btn-signin:hover{background:var(--gl-btn-confirm-bg-hover)}.btn-signin:focus{box-shadow:var(--focus-ring)}.btn-signin:active{box-shadow:none}.btn-signin.loading{cursor:progress}.btn-signin[disabled]{cursor:not-allowed}.btn-gitlab{display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--gl-spacing-3)}.btn-gitlab svg{width:18px;height:18px;color:var(--login-gitlab-orange)}.login-gitlab-url{margin-top:var(--gl-spacing-3);font-size:var(--font-size-xs);color:var(--login-text-muted);text-align:center}.login-separator{text-align:center;color:var(--login-text-muted);font-size:var(--font-size-sm);margin:var(--gl-spacing-5) 0}.login-rbac-note{margin-bottom:var(--gl-spacing-5);font-size:var(--font-size-sm);padding:var(--gl-spacing-4)}.login-unconfigured{text-align:center;color:var(--login-text-muted)}.login-footer{margin-top:var(--gl-spacing-5);padding-top:var(--gl-spacing-5);border-top:1px solid var(--login-footer-border);display:flex;flex-direction:column;align-items:center;gap:var(--gl-spacing-2)}.login-footer p{font-size:var(--font-size-xs);color:var(--login-text-muted);margin:0;text-align:center}.login-thesis-note{font-size:var(--font-size-xs);opacity:1;color:var(--gl-text-color-subtle)}.login-footer a{color:var(--login-footer-link);text-decoration:none;transition:color var(--transition-normal)}.login-footer a:hover{color:var(--login-primary);text-decoration:underline}.login-lang-switch{display:flex;justify-content:center}.logout-prompt{margin:0 0 var(--gl-spacing-5);color:var(--login-text-subtle);font-size:var(--font-size-sm)}.logout-form .btn-signin{margin-top:0}.logout-cancel{display:block;width:max-content;margin:var(--gl-spacing-4) auto 0;color:var(--login-footer-link);font-size:var(--font-size-sm);text-decoration:none}.logout-cancel:hover{text-decoration:underline}@media (pointer:coarse){.logout-cancel{position:relative}.logout-cancel::after{content:"";position:absolute;inset:-8px}}.login-alert-region{margin:var(--gl-spacing-5) 0 var(--gl-spacing-2)}@media (max-width:767px){body{display:block!important;padding:0!important;overflow:auto!important;background-image:none!important;background-color:var(--login-card-bg)!important;color:var(--login-text)}.login-page>main{width:100%;min-height:100dvh;display:flex;flex-direction:column;background:var(--login-card-bg);padding:max(var(--gl-spacing-6),env(safe-area-inset-top)) max(var(--gl-spacing-5),env(safe-area-inset-right)) max(var(--gl-spacing-6),env(safe-area-inset-bottom)) max(var(--gl-spacing-5),env(safe-area-inset-left))}.login-brand-title{color:#72767b;font-size:16px;font-weight:bold;letter-spacing:0;text-align:left}.login-shell-header{align-items:center;margin-bottom:var(--gl-spacing-6);padding:20px 60px 0 0}.login-container{max-width:100%;width:100%}.login-card{background:transparent;box-shadow:none;border-top:0;padding:0}.login-heading{text-align:center;font-size:var(--font-size-xl)}.login-footer{align-items:center}.login-footer p{text-align:center}.role-select{grid-template-columns:1fr;gap:var(--gl-spacing-2)}.role-option label{flex-direction:row;padding:var(--gl-spacing-3) var(--gl-spacing-4)}}.login-health-banner{width:100%;max-width:500px;background:var(--gl-orange-500);color:var(--login-card-bg);display:flex;align-items:center;gap:var(--gl-spacing-3);padding:var(--gl-spacing-3) var(--gl-spacing-5);border-radius:var(--radius) var(--radius) 0 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.login-health-banner .login-health-text{animation:pulse var(--gl-anim-loop) var(--motion-ease-loop) infinite}.login-health-banner[hidden]{display:none}.login-health-icon{flex-shrink:0}.login-server-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:var(--gl-spacing-2);vertical-align:middle;background:var(--login-text-muted);transition:background var(--transition-normal)}.login-server-dot.status-online{background:var(--gl-green-500);box-shadow:0 0 4px var(--gl-green-500)}.login-server-dot.status-offline{background:var(--gl-red-500);box-shadow:0 0 4px var(--gl-red-500);animation:pulse var(--gl-anim-loop) var(--motion-ease-loop) infinite}.login-card-restored{box-shadow:rgba(16,133,72,0.35) 0px 0px 0px 3px,var(--login-shadow);transition:box-shadow var(--transition-normal)}.btn-disabled-offline{opacity:0.5;cursor:not-allowed;pointer-events:none}.role-option .role-icon{transition:color var(--transition-normal)}.btn-gitlab:focus{box-shadow:var(--focus-ring)}.btn-gitlab:active{box-shadow:none}@media (prefers-reduced-motion:reduce){.login-health-banner{animation:none!important}.login-health-banner .login-health-text{animation:none}}