Files
infrapuzzle/terraform/haumdaucher-theme.css
T

515 lines
16 KiB
CSS

/* ==========================================================================
HAUMDAUCHER THEME FOR AUTHENTIK
Wurst und Spezialitäten n.e.V.
========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');
/* --- Global Brand Font (Safe for all pages) --- */
:root {
--hd-font: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
--pf-global--FontFamily--sans-serif: var(--hd-font);
--pf-v5-global--FontFamily--sans-serif: var(--hd-font);
}
/* ==========================================================================
AUTHENTICATED INTERFACE POLISH (User Dashboard & Admin Console)
Ensure brand logo is well proportioned and high-contrast in masthead
========================================================================== */
ak-interface-user .pf-c-brand img,
ak-interface-admin .pf-c-brand img,
.pf-c-page__header-brand img,
.pf-v5-c-page__header-brand img {
max-height: 38px !important;
width: auto !important;
}
[data-theme='dark'] ak-interface-user .pf-c-brand img,
[data-theme='dark'] ak-interface-admin .pf-c-brand img,
[data-theme='dark'] .pf-c-page__header-brand img,
[data-theme='dark'] .pf-v5-c-page__header-brand img {
filter: invert(1) hue-rotate(180deg);
}
/* ==========================================================================
LOGIN & AUTHENTICATION FLOW SCOPE
All custom card styling, colors, and layout rules are strictly scoped
to ak-flow-executor and .pf-c-login to avoid leaking into the dashboard!
========================================================================== */
/* --- Flow Executor Variables & Overrides --- */
ak-flow-executor,
.pf-c-login,
.pf-v5-c-login,
ak-stage,
.ak-stage {
--hd-bg: #f4f5f8;
--hd-card-bg: #ffffff;
--hd-card-border: rgba(0, 0, 0, 0.08);
--hd-text-main: #111111;
--hd-text-muted: #555555;
--hd-input-bg: #f9f9fb;
--hd-input-border: #d0d5dd;
--hd-btn-bg: #000000;
--hd-btn-text: #ffffff;
--hd-radius: 12px;
--hd-card-radius: 22px;
--hd-transition: all 0.2s ease-in-out;
/* Force PatternFly flow text & inputs to crisp black on the white card */
--pf-global--FontFamily--sans-serif: var(--hd-font) !important;
--pf-v5-global--FontFamily--sans-serif: var(--hd-font) !important;
--pf-global--Color--100: #111111 !important;
--pf-v5-global--Color--100: #111111 !important;
--pf-global--Color--200: #222222 !important;
--pf-v5-global--Color--200: #222222 !important;
--pf-global--Color--300: #444444 !important;
--pf-v5-global--Color--300: #444444 !important;
--pf-global--Color--dark-100: #111111 !important;
--pf-v5-global--Color--dark-100: #111111 !important;
--pf-global--Color--light-100: #111111 !important;
--pf-v5-global--Color--light-100: #111111 !important;
--pf-global--primary-color--100: #000000 !important;
--pf-v5-global--primary-color--100: #000000 !important;
/* Form & Label Variables */
--pf-c-form__label--Color: #111111 !important;
--pf-v5-c-form__label--Color: #111111 !important;
--pf-c-form__label-text--Color: #111111 !important;
--pf-v5-c-form__label-text--Color: #111111 !important;
--pf-c-form-control--Color: #111111 !important;
--pf-v5-c-form-control--Color: #111111 !important;
--pf-c-form-control--placeholder--Color: #666666 !important;
--pf-v5-c-form-control--placeholder--Color: #666666 !important;
--pf-c-form-control--BackgroundColor: #f9f9fb !important;
--pf-v5-c-form-control--BackgroundColor: #f9f9fb !important;
--pf-c-form-control--BorderColor: #d0d5dd !important;
--pf-v5-c-form-control--BorderColor: #d0d5dd !important;
--pf-c-form__helper-text--Color: #555555 !important;
--pf-v5-c-form__helper-text--Color: #555555 !important;
}
/* --- Flow Executor Viewport Centering & Background --- */
ak-flow-executor,
.pf-c-login,
.pf-v5-c-login {
min-height: 100vh !important;
min-height: 100dvh !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
background-color: #f4f5f8 !important;
background-image: radial-gradient(circle at 50% 15%, rgba(0, 0, 0, 0.03) 0%, transparent 60%) !important;
background-attachment: fixed !important;
background-size: cover !important;
padding: 32px 16px 48px 16px !important;
box-sizing: border-box !important;
position: relative !important;
font-family: var(--hd-font) !important;
color: #111111 !important;
}
/* --- Centered Login Container --- */
ak-flow-executor .pf-c-login__container,
.pf-c-login .pf-c-login__container,
.pf-v5-c-login .pf-v5-c-login__container {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
max-width: 420px !important;
margin: auto !important;
padding: 0 !important;
box-sizing: border-box !important;
}
/* --- Top Header & Logo Layout --- */
ak-flow-executor .pf-c-login__header,
.pf-c-login .pf-c-login__header,
.pf-v5-c-login .pf-v5-c-login__header {
display: flex !important;
justify-content: center !important;
align-items: center !important;
width: 100% !important;
margin-top: 0 !important;
margin-bottom: 24px !important;
padding: 0 !important;
}
ak-flow-executor .pf-c-login__header ak-brand,
ak-flow-executor .pf-c-login__header img,
.pf-c-login .pf-c-login__header ak-brand,
.pf-c-login .pf-c-login__header img,
.pf-v5-c-login .pf-v5-c-login__header ak-brand,
.pf-v5-c-login .pf-v5-c-login__header img {
display: block !important;
max-height: 85px !important;
max-width: 240px !important;
width: auto !important;
margin: 0 auto !important;
mix-blend-mode: multiply !important;
filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.08)) !important;
transition: all 0.2s ease-in-out;
}
/* --- Classic White Card --- */
ak-flow-executor .pf-c-login__main,
.pf-c-login .pf-c-login__main,
.pf-v5-c-login .pf-v5-c-login__main,
ak-flow-executor ak-stage,
ak-flow-executor .ak-stage {
background: #ffffff !important;
border: 1px solid rgba(0, 0, 0, 0.08) !important;
border-radius: 22px !important;
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
padding: 36px 32px 32px 32px !important;
width: 100% !important;
box-sizing: border-box !important;
color: #111111 !important;
}
/* --- Fully Hide Duplicate / Generic Flow Title --- */
ak-flow-executor .pf-c-login__main-header-title,
ak-flow-executor .pf-v5-c-login__main-header-title,
ak-flow-executor .pf-c-title,
ak-flow-executor .pf-v5-c-title,
.pf-c-login .pf-c-login__main-header-title,
.pf-v5-c-login .pf-v5-c-login__main-header-title {
display: none !important;
}
ak-flow-executor .pf-c-login__main-header,
.pf-c-login .pf-c-login__main-header,
.pf-v5-c-login .pf-v5-c-login__main-header {
margin-bottom: 24px !important;
padding: 0 !important;
text-align: center !important;
}
ak-flow-executor .pf-c-login__main-header-desc,
.pf-c-login .pf-c-login__main-header-desc,
.pf-v5-c-login .pf-v5-c-login__main-header-desc {
font-family: var(--hd-font) !important;
font-size: 0.95rem !important;
line-height: 1.5 !important;
margin: 0 !important;
color: #555555 !important;
text-align: center !important;
}
ak-flow-executor .pf-c-login__main-header-desc strong,
ak-flow-executor .pf-c-login__main-header-desc b,
.pf-c-login .pf-c-login__main-header-desc strong,
.pf-c-login .pf-c-login__main-header-desc b,
.pf-v5-c-login .pf-v5-c-login__main-header-desc strong,
.pf-v5-c-login .pf-v5-c-login__main-header-desc b {
color: #111111 !important;
font-weight: 700 !important;
}
/* --- Form Field Groups --- */
ak-flow-executor .pf-c-form__group,
.pf-c-login .pf-c-form__group,
.pf-v5-c-login .pf-v5-c-form__group {
margin-bottom: 20px !important;
}
/* --- LABELS & LABEL TEXT (High-Contrast Black inside login flow) --- */
ak-flow-executor .pf-c-form__label,
ak-flow-executor .pf-v5-c-form__label,
ak-flow-executor .pf-c-form__label-text,
ak-flow-executor .pf-v5-c-form__label-text,
ak-flow-executor .pf-c-form__group-label,
ak-flow-executor .pf-v5-c-form__group-label,
ak-flow-executor label,
ak-flow-executor label *,
.pf-c-login .pf-c-form__label,
.pf-c-login .pf-v5-c-form__label,
.pf-c-login .pf-c-form__label-text,
.pf-c-login .pf-v5-c-form__label-text,
.pf-c-login label,
.pf-c-login label *,
.pf-v5-c-login label,
.pf-v5-c-login label * {
font-family: var(--hd-font) !important;
font-weight: 600 !important;
font-size: 0.9rem !important;
color: #111111 !important;
margin-bottom: 6px !important;
display: inline-block !important;
opacity: 1 !important;
}
/* Required Asterisk */
ak-flow-executor .pf-c-form__label-required,
ak-flow-executor .pf-v5-c-form__label-required,
.pf-c-login .pf-c-form__label-required,
.pf-v5-c-login .pf-v5-c-form__label-required {
color: #c9190b !important;
margin-left: 4px !important;
font-weight: 700 !important;
}
/* --- INPUT FIELDS & TEXT (inside login flow) --- */
ak-flow-executor .pf-c-form-control,
ak-flow-executor .pf-v5-c-form-control,
ak-flow-executor input[type="text"],
ak-flow-executor input[type="password"],
ak-flow-executor input[type="email"],
ak-flow-executor input,
.pf-c-login .pf-c-form-control,
.pf-c-login .pf-v5-c-form-control,
.pf-c-login input,
.pf-v5-c-login input {
font-family: var(--hd-font) !important;
font-size: 0.98rem !important;
border-radius: 12px !important;
padding: 12px 14px !important;
background-color: #f9f9fb !important;
border: 1px solid #d0d5dd !important;
color: #111111 !important;
transition: all 0.2s ease-in-out !important;
width: 100% !important;
box-sizing: border-box !important;
}
/* Input Placeholder */
ak-flow-executor input::placeholder,
.pf-c-login input::placeholder,
.pf-v5-c-login input::placeholder {
color: #666666 !important;
font-style: normal !important;
opacity: 1 !important;
}
/* Focus State */
ak-flow-executor input:focus,
.pf-c-login input:focus,
.pf-v5-c-login input:focus {
outline: none !important;
border-color: #000000 !important;
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12) !important;
background-color: #ffffff !important;
color: #111111 !important;
}
/* Browser Autofill Fix (Prevent White on White) */
ak-flow-executor input:-webkit-autofill,
ak-flow-executor input:-webkit-autofill:hover,
ak-flow-executor input:-webkit-autofill:focus,
.pf-c-login input:-webkit-autofill,
.pf-v5-c-login input:-webkit-autofill {
-webkit-text-fill-color: #111111 !important;
-webkit-box-shadow: 0 0 0 1000px #f9f9fb inset !important;
box-shadow: 0 0 0 1000px #f9f9fb inset !important;
transition: background-color 5000s ease-in-out 0s !important;
}
/* --- Solid Black Submit Button (inside login flow) --- */
ak-flow-executor button[type="submit"],
ak-flow-executor .pf-c-button.pf-m-primary,
ak-flow-executor .pf-v5-c-button.pf-m-primary,
.pf-c-login button[type="submit"],
.pf-c-login .pf-c-button.pf-m-primary,
.pf-v5-c-login button[type="submit"],
.pf-v5-c-login .pf-v5-c-button.pf-m-primary {
font-family: var(--hd-font) !important;
font-size: 1rem !important;
font-weight: 700 !important;
letter-spacing: 0.3px !important;
border-radius: 12px !important;
padding: 13px 20px !important;
border: none !important;
cursor: pointer !important;
background: #000000 !important;
color: #ffffff !important;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
transition: all 0.2s ease-in-out !important;
width: 100% !important;
margin-top: 16px !important;
margin-bottom: 4px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
}
ak-flow-executor button[type="submit"]:hover,
.pf-c-login button[type="submit"]:hover,
.pf-v5-c-login button[type="submit"]:hover {
background: #222222 !important;
color: #ffffff !important;
transform: translateY(-1px) !important;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2) !important;
}
ak-flow-executor button[type="submit"]:active,
.pf-c-login button[type="submit"]:active,
.pf-v5-c-login button[type="submit"]:active {
transform: translateY(0) !important;
}
/* Secondary Buttons (inside login flow) */
ak-flow-executor .pf-c-button.pf-m-secondary,
ak-flow-executor .pf-v5-c-button.pf-m-secondary,
.pf-c-login .pf-c-button.pf-m-secondary,
.pf-v5-c-login .pf-v5-c-button.pf-m-secondary {
font-family: var(--hd-font) !important;
font-weight: 600 !important;
border-radius: 12px !important;
padding: 11px 18px !important;
border: 1px solid #d0d5dd !important;
background: #ffffff !important;
color: #111111 !important;
transition: all 0.2s ease-in-out !important;
}
ak-flow-executor .pf-c-button.pf-m-secondary:hover,
.pf-c-login .pf-c-button.pf-m-secondary:hover,
.pf-v5-c-login .pf-v5-c-button.pf-m-secondary:hover {
background: #f4f5f7 !important;
border-color: #000000 !important;
}
/* --- Alerts & Messages (inside login flow) --- */
ak-flow-executor .pf-c-alert,
ak-flow-executor .pf-v5-c-alert,
.pf-c-login .pf-c-alert,
.pf-v5-c-login .pf-v5-c-alert {
border-radius: 12px !important;
margin-bottom: 16px !important;
}
/* --- LANGUAGE BUTTON AT BOTTOM (inside login flow only) --- */
ak-flow-executor ak-locale-select,
ak-flow-executor [part="locale-select"],
ak-flow-executor::part(locale-select),
.pf-c-login ak-locale-select,
.pf-v5-c-login ak-locale-select {
position: fixed !important;
inset-block-start: auto !important;
inset-inline-start: auto !important;
top: auto !important;
left: auto !important;
bottom: 14px !important;
right: 18px !important;
z-index: 999 !important;
opacity: 0.65 !important;
transition: opacity 0.2s ease, transform 0.2s ease !important;
}
ak-flow-executor ak-locale-select:hover,
.pf-c-login ak-locale-select:hover {
opacity: 1 !important;
transform: translateY(-1px) !important;
}
ak-flow-executor ak-locale-select select,
.pf-c-login ak-locale-select select {
color: #111111 !important;
background: transparent !important;
cursor: pointer !important;
}
ak-flow-executor ak-locale-select label,
.pf-c-login ak-locale-select label {
color: #111111 !important;
cursor: pointer !important;
}
/* --- Footer & Copyright (inside login flow) --- */
ak-flow-executor ak-brand-links,
ak-flow-executor .pf-c-login__footer,
ak-flow-executor .pf-v5-c-login__footer,
.pf-c-login .pf-c-login__footer,
.pf-v5-c-login .pf-v5-c-login__footer {
margin-top: 24px !important;
margin-bottom: 0 !important;
text-align: center !important;
font-size: 0.82rem !important;
color: #555555 !important;
}
ak-flow-executor ak-brand-links a,
ak-flow-executor .pf-c-login__footer a,
.pf-c-login .pf-c-login__footer a,
.pf-v5-c-login .pf-v5-c-login__footer a {
color: #111111 !important;
text-decoration: none !important;
font-weight: 600 !important;
}
ak-flow-executor ak-brand-links a:hover,
ak-flow-executor .pf-c-login__footer a:hover,
.pf-c-login .pf-c-login__footer a:hover,
.pf-v5-c-login .pf-v5-c-login__footer a:hover {
text-decoration: underline !important;
}
/* --- Watermark (inside login flow container) --- */
ak-flow-executor .pf-c-login__container::after,
.pf-c-login .pf-c-login__container::after,
.pf-v5-c-login .pf-v5-c-login__container::after {
content: "HAUMDAUCHER • Wurst und Spezialitäten n.e.V.";
display: block;
margin-top: 28px;
margin-bottom: 12px;
font-size: 0.76rem;
letter-spacing: 1.5px;
text-transform: uppercase;
font-weight: 600;
color: #888888;
text-align: center;
}
/* --- Mobile Responsiveness (inside login flow) --- */
@media (max-width: 480px) {
ak-flow-executor,
.pf-c-login,
.pf-v5-c-login {
padding: 24px 12px 48px 12px !important;
}
ak-flow-executor .pf-c-login__container,
.pf-c-login .pf-c-login__container,
.pf-v5-c-login .pf-v5-c-login__container {
padding: 0 !important;
}
ak-flow-executor .pf-c-login__header,
.pf-c-login .pf-c-login__header,
.pf-v5-c-login .pf-v5-c-login__header {
margin-bottom: 18px !important;
}
ak-flow-executor .pf-c-login__main,
.pf-c-login .pf-c-login__main,
.pf-v5-c-login .pf-v5-c-login__main,
ak-flow-executor ak-stage,
ak-flow-executor .ak-stage {
padding: 28px 20px 24px 20px !important;
border-radius: 18px !important;
}
ak-flow-executor .pf-c-login__header img,
.pf-c-login .pf-c-login__header img,
.pf-v5-c-login .pf-v5-c-login__header img {
max-height: 72px !important;
}
ak-flow-executor .pf-c-login__container::after,
.pf-c-login .pf-c-login__container::after,
.pf-v5-c-login .pf-v5-c-login__container::after {
margin-top: 20px;
margin-bottom: 8px;
}
ak-flow-executor ak-locale-select,
.pf-c-login ak-locale-select,
.pf-v5-c-login ak-locale-select {
bottom: 10px !important;
right: 12px !important;
}
}