@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap'); /* ========================================================================== 1. RESET PATTERNFLY LOGIN GRID & ASYMMETRIC PADDING ========================================================================== */ :root { --pf-v5-c-login--PaddingTop: 0 !important; --pf-v5-c-login--PaddingRight: 0 !important; --pf-v5-c-login--PaddingBottom: 0 !important; --pf-v5-c-login--PaddingLeft: 0 !important; --pf-v5-c-login__container--PaddingLeft: 0 !important; --pf-v5-c-login__container--PaddingRight: 0 !important; --pf-v5-c-login__container--MaxWidth: 100% !important; --pf-v5-c-login__container--xl--GridColumnGap: 0 !important; --pf-v5-c-login__container--xl--GridTemplateColumns: none !important; --pf-v5-c-login__main--MaxWidth: 480px !important; /* PatternFly v4 fallbacks */ --pf-c-login--PaddingTop: 0 !important; --pf-c-login--PaddingRight: 0 !important; --pf-c-login--PaddingBottom: 0 !important; --pf-c-login--PaddingLeft: 0 !important; --pf-c-login__container--PaddingLeft: 0 !important; --pf-c-login__container--PaddingRight: 0 !important; --pf-c-login__container--MaxWidth: 100% !important; --pf-c-login__main--MaxWidth: 480px !important; /* Theme Design Tokens */ --primary-color: #385a4f; --primary-hover: #2b473e; --primary-focus: rgba(56, 90, 79, 0.22); --card-bg: rgba(255, 255, 255, 0.82); --card-border: rgba(255, 255, 255, 0.95); --input-bg: #ffffff; --input-border: #d2ddd8; --input-focus-border: #385a4f; --text-main: #1f2d27; --text-muted: #53645e; --radius-card: 28px; --radius-input: 12px; } /* ========================================================================== 2. VIEWPORT CENTERING & BACKGROUND ========================================================================== */ html, body { min-height: 100vh !important; width: 100% !important; margin: 0 !important; padding: 0 !important; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; color: var(--text-main) !important; overflow-x: hidden !important; } body.login-pf, .login-pf body, body { background: url('../img/background.jpg') no-repeat center center fixed !important; background-size: cover !important; display: flex !important; align-items: center !important; justify-content: center !important; } /* Strip PatternFly layout wrappers to enforce absolute centering */ .login-pf-page, .pf-v5-c-login, .pf-c-login { background: transparent !important; min-height: 100vh !important; width: 100% !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; padding: 24px !important; margin: 0 !important; box-sizing: border-box !important; } .pf-v5-c-login__container, .pf-c-login__container { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; width: 100% !important; max-width: 480px !important; padding: 0 !important; margin: 0 auto !important; grid-template-columns: none !important; grid-template-areas: none !important; } /* Hide unused PatternFly header and footer rows */ .pf-v5-c-login__header, .pf-c-login__header, .pf-v5-c-login__footer, .pf-c-login__footer, #kc-header { display: none !important; } /* ========================================================================== 3. GLASSMORPHIC LOGIN CARD ========================================================================== */ .card-pf, .pf-v5-c-login__main, .pf-c-login__main, #kc-content { background: var(--card-bg) !important; backdrop-filter: blur(28px) saturate(180%) !important; -webkit-backdrop-filter: blur(28px) saturate(180%) !important; border-radius: var(--radius-card) !important; border: 1px solid var(--card-border) !important; box-shadow: 0 24px 60px rgba(15, 30, 24, 0.16), 0 4px 16px rgba(0, 0, 0, 0.04) !important; width: 100% !important; max-width: 480px !important; padding: 48px 42px !important; box-sizing: border-box !important; margin: 0 auto !important; } .pf-v5-c-login__main-header, .pf-c-login__main-header, .pf-v5-c-login__main-body, .pf-c-login__main-body, .pf-v5-c-login__main-footer, .pf-c-login__main-footer { padding: 0 !important; background: transparent !important; } /* Title & Heading */ #kc-page-title, .pf-v5-c-title, .pf-c-title { text-align: center !important; font-size: 1.75rem !important; font-weight: 700 !important; color: var(--text-main) !important; margin: 0 0 28px 0 !important; letter-spacing: -0.025em !important; line-height: 1.25 !important; } /* ========================================================================== 4. FORM CONTROLS & UNIFIED PASSWORD EYE INPUT ========================================================================== */ .form-group, .pf-v5-c-form__group, .pf-c-form__group { margin-bottom: 20px !important; } /* Strip default pseudo-elements */ .pf-v5-c-form-control::before, .pf-v5-c-form-control::after, .pf-c-form-control::before, .pf-c-form-control::after { display: none !important; } /* Standalone Input (Username / Email) */ .pf-v5-c-form-control:not(.pf-v5-c-input-group *), .pf-c-form-control:not(.pf-c-input-group *), input[type="text"]:not(.pf-v5-c-input-group *):not(.pf-c-input-group *) { background: var(--input-bg) !important; border: 1.5px solid var(--input-border) !important; border-radius: var(--radius-input) !important; height: 48px !important; box-sizing: border-box !important; transition: border-color 0.15s ease, box-shadow 0.15s ease !important; } /* Grouped Input Container (Password + Eye button) */ .pf-v5-c-input-group, .pf-c-input-group { background: var(--input-bg) !important; border: 1.5px solid var(--input-border) !important; border-radius: var(--radius-input) !important; height: 48px !important; display: flex !important; align-items: stretch !important; box-sizing: border-box !important; overflow: hidden !important; transition: border-color 0.15s ease, box-shadow 0.15s ease !important; } /* Strip inner input box styling inside the input group */ .pf-v5-c-input-group .pf-v5-c-form-control, .pf-c-input-group .pf-c-form-control, .pf-v5-c-input-group input, .pf-c-input-group input { background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; height: 100% !important; flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; padding: 0 16px !important; color: var(--text-main) !important; font-size: 0.95rem !important; outline: none !important; } /* Inner text input inside standalone form-control */ .pf-v5-c-form-control:not(.pf-v5-c-input-group *) input, .pf-c-form-control:not(.pf-c-input-group *) input, input[type="text"]:not(.pf-v5-c-input-group *) { background: transparent !important; border: none !important; outline: none !important; box-shadow: none !important; width: 100% !important; height: 100% !important; padding: 0 16px !important; box-sizing: border-box !important; font-size: 0.95rem !important; color: var(--text-main) !important; } /* Focus States */ .pf-v5-c-form-control:not(.pf-v5-c-input-group *):focus-within, .pf-v5-c-input-group:focus-within, .pf-c-input-group:focus-within { border-color: var(--input-focus-border) !important; box-shadow: 0 0 0 4px var(--primary-focus) !important; } /* Password Eye Button */ .pf-v5-c-input-group button, .pf-c-input-group button, .pf-v5-c-input-group .pf-v5-c-button, .pf-c-input-group .pf-c-button { background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; color: var(--text-muted) !important; padding: 0 16px !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; height: 100% !important; } .pf-v5-c-input-group button:hover, .pf-c-input-group button:hover { color: var(--text-main) !important; } /* Autofill styling cleanup */ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important; -webkit-text-fill-color: var(--text-main) !important; } /* Labels */ label.control-label, label, .pf-v5-c-form__label-text, .pf-c-form__label-text { color: var(--text-muted) !important; font-size: 0.85rem !important; font-weight: 600 !important; margin-bottom: 7px !important; display: inline-block !important; } /* ========================================================================== 5. BUTTONS, OPTIONS & FOOTERS ========================================================================== */ #kc-form-options, .login-pf-settings { display: flex !important; justify-content: space-between !important; align-items: center !important; margin: 14px 0 24px 0 !important; font-size: 0.875rem !important; color: var(--text-muted) !important; } .pf-v5-c-check, .pf-c-check { display: flex !important; align-items: center !important; } input[type="checkbox"] { accent-color: var(--primary-color) !important; margin-right: 8px !important; } .btn-primary, .pf-v5-c-button.pf-m-primary, .pf-c-button.pf-m-primary, #kc-login { background-color: var(--primary-color) !important; border: none !important; border-radius: var(--radius-input) !important; height: 52px !important; font-size: 1rem !important; font-weight: 600 !important; color: #ffffff !important; box-shadow: 0 8px 20px rgba(45, 78, 68, 0.28) !important; cursor: pointer !important; transition: all 0.2s ease !important; width: 100% !important; margin-top: 10px !important; } .btn-primary:hover, #kc-login:hover { background-color: var(--primary-hover) !important; box-shadow: 0 10px 24px rgba(45, 78, 68, 0.38) !important; transform: translateY(-1px) !important; } .btn-primary:active, #kc-login:active { transform: translateY(0) !important; } a { color: var(--primary-color) !important; text-decoration: none !important; font-weight: 500 !important; } a:hover { text-decoration: underline !important; } #kc-registration-container, #kc-info, .pf-v5-c-login__main-footer-band, .pf-c-login__main-footer-band { margin-top: 26px !important; text-align: center !important; font-size: 0.9rem !important; color: var(--text-muted) !important; }