feat(openclaw,infra): optimize token usage with GLM-5.3-Flash and add Garmin MCP integration

- Migrate OpenClaw primary model to z-ai/glm-5.3-flash across conductor, heartbeat, subagents, and vision
- Configure deepseek-v4.1-flash and qwen3.8-flash as fallback models; retire claude-3.7-sonnet and deepseek-v4-pro
- Decouple heartbeat target to prevent active session context amplification and token bleed
- Add Garmin Connect MCP integration, secret unpacking, and Elite Strength Coach SOUL protocol
- Add ADR 0001 documenting hybrid tool search and subagent architecture
- Update Authentik configuration, theme styles, and Terraform state
- Add Grafana dashboard for Taupi fan monitoring and update Velero secrets
- Bump knowledge-wiki submodule pointer
This commit is contained in:
Moritz Graf
2026-09-13 22:21:17 +02:00
parent 02ad8f0050
commit ea6fa7344d
14 changed files with 648 additions and 196 deletions
+328 -157
View File
@@ -1,95 +1,313 @@
/* ==========================================================================
HAUMDAUCHER THEME FOR AUTHENTIK
Wurst und Spezialitäten n.e.V.
Core Principle: Black on White / White on Black (High Contrast & Consistency)
========================================================================== */
@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) --- */
/* ==========================================================================
1. GLOBAL FOUNDATION & TYPOGRAPHY
========================================================================== */
: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);
/* PatternFly Button Variables (Light Mode / Default) */
--pf-c-button--m-primary--BackgroundColor: #000000;
--pf-c-button--m-primary--hover--BackgroundColor: #262626;
--pf-c-button--m-primary--focus--BackgroundColor: #262626;
--pf-c-button--m-primary--active--BackgroundColor: #000000;
--pf-c-button--m-primary--Color: #ffffff;
--pf-c-button--m-primary--hover--Color: #ffffff;
--pf-c-button--m-primary--focus--Color: #ffffff;
--pf-c-button--m-primary--active--Color: #ffffff;
--pf-c-button--m-secondary--BackgroundColor: #ffffff;
--pf-c-button--m-secondary--hover--BackgroundColor: #000000;
--pf-c-button--m-secondary--focus--BackgroundColor: #f4f5f8;
--pf-c-button--m-secondary--active--BackgroundColor: #000000;
--pf-c-button--m-secondary--Color: #000000;
--pf-c-button--m-secondary--hover--Color: #ffffff;
--pf-c-button--m-secondary--focus--Color: #000000;
--pf-c-button--m-secondary--active--Color: #ffffff;
--pf-c-button--m-secondary--BorderColor: #000000;
--pf-c-button--m-secondary--hover--BorderColor: #000000;
--pf-c-button--m-control--Color: #000000;
--pf-c-button--m-control--BackgroundColor: transparent;
--pf-c-button--m-plain--Color: #000000;
--pf-c-button--m-tertiary--Color: #000000;
}
/* Dark Mode Button Variables */
[data-theme='dark'] {
--pf-c-button--m-primary--BackgroundColor: #ffffff;
--pf-c-button--m-primary--hover--BackgroundColor: #e4e4e7;
--pf-c-button--m-primary--focus--BackgroundColor: #e4e4e7;
--pf-c-button--m-primary--active--BackgroundColor: #ffffff;
--pf-c-button--m-primary--Color: #000000;
--pf-c-button--m-primary--hover--Color: #000000;
--pf-c-button--m-primary--focus--Color: #000000;
--pf-c-button--m-primary--active--Color: #000000;
--pf-c-button--m-secondary--BackgroundColor: transparent;
--pf-c-button--m-secondary--hover--BackgroundColor: #ffffff;
--pf-c-button--m-secondary--focus--BackgroundColor: #27272a;
--pf-c-button--m-secondary--active--BackgroundColor: #ffffff;
--pf-c-button--m-secondary--Color: #ffffff;
--pf-c-button--m-secondary--hover--Color: #000000;
--pf-c-button--m-secondary--focus--Color: #ffffff;
--pf-c-button--m-secondary--active--Color: #000000;
--pf-c-button--m-secondary--BorderColor: #ffffff;
--pf-c-button--m-secondary--hover--BorderColor: #ffffff;
--pf-c-button--m-control--Color: #ffffff;
--pf-c-button--m-control--BackgroundColor: transparent;
--pf-c-button--m-plain--Color: #ffffff;
--pf-c-button--m-tertiary--Color: #ffffff;
}
/* ==========================================================================
AUTHENTICATED INTERFACE POLISH (User Dashboard & Admin Console)
Ensure brand logo is well proportioned and high-contrast in masthead
2. UNIVERSAL BUTTON CONTRAST ENFORCEMENT
Guarantees that button text is NEVER the same color as the button background
in ANY state (normal, hover, focus, active, disabled).
========================================================================== */
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;
/* Ensure all inner elements (spans, icons, text) inherit button text color */
.pf-c-button *,
.pf-v5-c-button *,
button * {
color: inherit !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);
/* --- Primary Buttons (Light Mode / Default: Solid Black with Solid White Text) --- */
.pf-c-button.pf-m-primary,
.pf-v5-c-button.pf-m-primary,
button[type="submit"] {
background-color: #000000 !important;
color: #ffffff !important;
border: 1px solid #000000 !important;
font-family: var(--hd-font) !important;
font-weight: 700 !important;
border-radius: 12px !important;
transition: all 0.2s ease-in-out !important;
}
.pf-c-button.pf-m-primary:hover,
.pf-v5-c-button.pf-m-primary:hover,
button[type="submit"]:hover {
background-color: #262626 !important;
color: #ffffff !important;
border-color: #262626 !important;
}
.pf-c-button.pf-m-primary:focus,
.pf-v5-c-button.pf-m-primary:focus,
button[type="submit"]:focus {
background-color: #262626 !important;
color: #ffffff !important;
outline: 2px solid #000000 !important;
outline-offset: 2px !important;
}
.pf-c-button.pf-m-primary:active,
.pf-v5-c-button.pf-m-primary:active,
button[type="submit"]:active {
background-color: #000000 !important;
color: #ffffff !important;
}
.pf-c-button.pf-m-primary:disabled,
.pf-c-button.pf-m-primary.pf-m-disabled,
.pf-v5-c-button.pf-m-primary:disabled,
.pf-v5-c-button.pf-m-primary.pf-m-disabled,
button[type="submit"]:disabled {
background-color: #e5e7eb !important;
color: #6b7280 !important;
border-color: #d1d5db !important;
cursor: not-allowed !important;
opacity: 0.8 !important;
}
/* --- Primary Buttons (Dark Mode: Solid White with Solid Black Text) --- */
[data-theme='dark'] .pf-c-button.pf-m-primary:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-primary:not(ak-flow-executor *),
[data-theme='dark'] .pf-c-page button[type="submit"] {
background-color: #ffffff !important;
color: #000000 !important;
border: 1px solid #ffffff !important;
}
[data-theme='dark'] .pf-c-button.pf-m-primary:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-primary:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-c-page button[type="submit"]:hover {
background-color: #e4e4e7 !important;
color: #000000 !important;
border-color: #e4e4e7 !important;
}
[data-theme='dark'] .pf-c-button.pf-m-primary:not(ak-flow-executor *):focus,
[data-theme='dark'] .pf-v5-c-button.pf-m-primary:not(ak-flow-executor *):focus,
[data-theme='dark'] .pf-c-page button[type="submit"]:focus {
background-color: #e4e4e7 !important;
color: #000000 !important;
outline: 2px solid #ffffff !important;
outline-offset: 2px !important;
}
[data-theme='dark'] .pf-c-button.pf-m-primary:not(ak-flow-executor *):disabled,
[data-theme='dark'] .pf-v5-c-button.pf-m-primary:not(ak-flow-executor *):disabled,
[data-theme='dark'] .pf-c-page button[type="submit"]:disabled {
background-color: #27272a !important;
color: #71717a !important;
border-color: #3f3f46 !important;
}
/* --- Secondary Buttons (Light Mode / Default: Solid White with Black Border & Text) --- */
.pf-c-button.pf-m-secondary,
.pf-v5-c-button.pf-m-secondary {
background-color: #ffffff !important;
color: #000000 !important;
border: 1px solid #000000 !important;
font-family: var(--hd-font) !important;
font-weight: 600 !important;
border-radius: 12px !important;
transition: all 0.2s ease-in-out !important;
}
.pf-c-button.pf-m-secondary:hover,
.pf-v5-c-button.pf-m-secondary:hover {
background-color: #000000 !important;
color: #ffffff !important;
border-color: #000000 !important;
}
.pf-c-button.pf-m-secondary:focus,
.pf-v5-c-button.pf-m-secondary:focus {
background-color: #f4f5f8 !important;
color: #000000 !important;
outline: 2px solid #000000 !important;
outline-offset: 2px !important;
}
.pf-c-button.pf-m-secondary:active,
.pf-v5-c-button.pf-m-secondary:active {
background-color: #000000 !important;
color: #ffffff !important;
}
.pf-c-button.pf-m-secondary:disabled,
.pf-c-button.pf-m-secondary.pf-m-disabled,
.pf-v5-c-button.pf-m-secondary:disabled,
.pf-v5-c-button.pf-m-secondary.pf-m-disabled {
background-color: #f9fafb !important;
color: #9ca3af !important;
border-color: #e5e7eb !important;
cursor: not-allowed !important;
}
/* --- Secondary Buttons (Dark Mode) --- */
[data-theme='dark'] .pf-c-button.pf-m-secondary:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-secondary:not(ak-flow-executor *) {
background-color: transparent !important;
color: #ffffff !important;
border: 1px solid #ffffff !important;
}
[data-theme='dark'] .pf-c-button.pf-m-secondary:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-secondary:not(ak-flow-executor *):hover {
background-color: #ffffff !important;
color: #000000 !important;
border-color: #ffffff !important;
}
[data-theme='dark'] .pf-c-button.pf-m-secondary:not(ak-flow-executor *):focus,
[data-theme='dark'] .pf-v5-c-button.pf-m-secondary:not(ak-flow-executor *):focus {
background-color: #27272a !important;
color: #ffffff !important;
outline: 2px solid #ffffff !important;
outline-offset: 2px !important;
}
[data-theme='dark'] .pf-c-button.pf-m-secondary:not(ak-flow-executor *):disabled,
[data-theme='dark'] .pf-v5-c-button.pf-m-secondary:not(ak-flow-executor *):disabled {
background-color: transparent !important;
color: #52525b !important;
border-color: #27272a !important;
}
/* --- Control / Plain / Tertiary Buttons (e.g. eye toggle on password fields) --- */
.pf-c-button.pf-m-control,
.pf-v5-c-button.pf-m-control,
.pf-c-button.pf-m-plain,
.pf-v5-c-button.pf-m-plain,
.pf-c-button.pf-m-tertiary,
.pf-v5-c-button.pf-m-tertiary {
color: #000000 !important;
background-color: transparent !important;
}
.pf-c-button.pf-m-control:hover,
.pf-v5-c-button.pf-m-control:hover,
.pf-c-button.pf-m-plain:hover,
.pf-v5-c-button.pf-m-plain:hover,
.pf-c-button.pf-m-tertiary:hover,
.pf-v5-c-button.pf-m-tertiary:hover {
color: #000000 !important;
background-color: rgba(0, 0, 0, 0.08) !important;
}
[data-theme='dark'] .pf-c-button.pf-m-control:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-control:not(ak-flow-executor *),
[data-theme='dark'] .pf-c-button.pf-m-plain:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-plain:not(ak-flow-executor *),
[data-theme='dark'] .pf-c-button.pf-m-tertiary:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-tertiary:not(ak-flow-executor *) {
color: #ffffff !important;
background-color: transparent !important;
}
[data-theme='dark'] .pf-c-button.pf-m-control:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-control:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-c-button.pf-m-plain:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-plain:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-c-button.pf-m-tertiary:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-tertiary:not(ak-flow-executor *):hover {
color: #ffffff !important;
background-color: rgba(255, 255, 255, 0.12) !important;
}
/* --- Link Buttons --- */
.pf-c-button.pf-m-link,
.pf-v5-c-button.pf-m-link {
color: #000000 !important;
text-decoration: underline !important;
background-color: transparent !important;
}
.pf-c-button.pf-m-link:hover,
.pf-v5-c-button.pf-m-link:hover {
color: #333333 !important;
}
[data-theme='dark'] .pf-c-button.pf-m-link:not(ak-flow-executor *),
[data-theme='dark'] .pf-v5-c-button.pf-m-link:not(ak-flow-executor *) {
color: #ffffff !important;
text-decoration: underline !important;
}
[data-theme='dark'] .pf-c-button.pf-m-link:not(ak-flow-executor *):hover,
[data-theme='dark'] .pf-v5-c-button.pf-m-link:not(ak-flow-executor *):hover {
color: #d4d4d8 !important;
}
/* ==========================================================================
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!
3. LOGIN & AUTHENTICATION FLOW SCOPE (Classic White Card & Black Elements)
========================================================================== */
/* --- 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 --- */
/* Page Viewport Centering & Soft Minimal Backdrop */
ak-flow-executor,
.pf-c-login,
.pf-v5-c-login {
@@ -110,7 +328,7 @@ ak-flow-executor,
color: #111111 !important;
}
/* --- Centered Login Container --- */
/* 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 {
@@ -125,7 +343,7 @@ ak-flow-executor .pf-c-login__container,
box-sizing: border-box !important;
}
/* --- Top Header & Logo Layout --- */
/* Header & Logo */
ak-flow-executor .pf-c-login__header,
.pf-c-login .pf-c-login__header,
.pf-v5-c-login .pf-v5-c-login__header {
@@ -154,7 +372,7 @@ ak-flow-executor .pf-c-login__header img,
transition: all 0.2s ease-in-out;
}
/* --- Classic White Card --- */
/* The 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,
@@ -162,7 +380,7 @@ 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;
border-radius: 20px !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;
@@ -170,7 +388,7 @@ ak-flow-executor .ak-stage {
color: #111111 !important;
}
/* --- Fully Hide Duplicate / Generic Flow Title --- */
/* Hide Redundant / 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,
@@ -205,18 +423,17 @@ ak-flow-executor .pf-c-login__main-header-desc b,
.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;
color: #000000 !important;
font-weight: 700 !important;
}
/* --- Form Field Groups --- */
/* Form Groups & Labels */
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,
@@ -236,7 +453,7 @@ ak-flow-executor label *,
font-family: var(--hd-font) !important;
font-weight: 600 !important;
font-size: 0.9rem !important;
color: #111111 !important;
color: #000000 !important;
margin-bottom: 6px !important;
display: inline-block !important;
opacity: 1 !important;
@@ -252,7 +469,7 @@ ak-flow-executor .pf-v5-c-form__label-required,
font-weight: 700 !important;
}
/* --- INPUT FIELDS & TEXT (inside login flow) --- */
/* Inputs */
ak-flow-executor .pf-c-form-control,
ak-flow-executor .pf-v5-c-form-control,
ak-flow-executor input[type="text"],
@@ -269,13 +486,12 @@ ak-flow-executor input,
padding: 12px 14px !important;
background-color: #f9f9fb !important;
border: 1px solid #d0d5dd !important;
color: #111111 !important;
color: #000000 !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 {
@@ -284,7 +500,6 @@ ak-flow-executor input::placeholder,
opacity: 1 !important;
}
/* Focus State */
ak-flow-executor input:focus,
.pf-c-login input:focus,
.pf-v5-c-login input:focus {
@@ -292,42 +507,27 @@ ak-flow-executor input:focus,
border-color: #000000 !important;
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12) !important;
background-color: #ffffff !important;
color: #111111 !important;
color: #000000 !important;
}
/* Browser Autofill Fix (Prevent White on White) */
/* Autofill Fix */
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-text-fill-color: #000000 !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) --- */
/* Flow Submit Button Spacing */
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;
.pf-v5-c-login button[type="submit"] {
width: 100% !important;
padding: 13px 20px !important;
margin-top: 16px !important;
margin-bottom: 4px !important;
display: flex !important;
@@ -335,53 +535,7 @@ ak-flow-executor .pf-v5-c-button.pf-m-primary,
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) --- */
/* Language Selector at Bottom Right */
ak-flow-executor ak-locale-select,
ak-flow-executor [part="locale-select"],
ak-flow-executor::part(locale-select),
@@ -407,18 +561,18 @@ ak-flow-executor ak-locale-select:hover,
ak-flow-executor ak-locale-select select,
.pf-c-login ak-locale-select select {
color: #111111 !important;
color: #000000 !important;
background: transparent !important;
cursor: pointer !important;
}
ak-flow-executor ak-locale-select label,
.pf-c-login ak-locale-select label {
color: #111111 !important;
color: #000000 !important;
cursor: pointer !important;
}
/* --- Footer & Copyright (inside login flow) --- */
/* Footer & Watermark */
ak-flow-executor ak-brand-links,
ak-flow-executor .pf-c-login__footer,
ak-flow-executor .pf-v5-c-login__footer,
@@ -435,7 +589,7 @@ 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;
color: #000000 !important;
text-decoration: none !important;
font-weight: 600 !important;
}
@@ -447,7 +601,6 @@ ak-flow-executor .pf-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 {
@@ -463,7 +616,7 @@ ak-flow-executor .pf-c-login__container::after,
text-align: center;
}
/* --- Mobile Responsiveness (inside login flow) --- */
/* Mobile Responsiveness */
@media (max-width: 480px) {
ak-flow-executor,
.pf-c-login,
@@ -512,3 +665,21 @@ ak-flow-executor .pf-c-login__container::after,
right: 12px !important;
}
}
/* ==========================================================================
4. AUTHENTICATED DASHBOARD (User & Admin Interface)
========================================================================== */
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: 36px !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);
}