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:
+328
-157
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user