mirror of
https://github.com/Heretek-AI/heretek-control-core.git
synced 2026-10-12 02:03:55 +00:00
feat(branding): overhaul visual identity to Heretek Blood & Steel theme
- Import Heretek master logo (logo.png) from Heretek-AI/ProxmoxVE - Generate scaled 96x96 (icon-sm.png) and 32x32 (icon-xs.png) RGBA icons - Bundle self-hosted Cinzel-Bold.woff2 for offline gothic-tech typography - Overhaul admin.css and ai-chat.css with dark steel void surfaces and crimson blood accents - Port signature Heretek graphical effects (machine-icon glow, blood borders, corruption glow, circuit pulse, custom scrollbars) - Update admin badge to HERETEK UNLOCKED and refresh documentation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<h1 align="center">
|
||||
<img src="assets/img/icon-sm.png" width="72" alt="EMCP Tools logo"><br>
|
||||
Elementor MCP Tools (Unlocked)
|
||||
<img src="assets/img/icon-sm.png" width="72" alt="Heretek AI Elementor MCP logo"><br>
|
||||
Heretek MCP Tools (Unlocked)
|
||||
</h1>
|
||||
|
||||
<p align="center">
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://github.com/Heretek-AI/elementor-mcp/releases)
|
||||
[](https://github.com/Heretek-AI/elementor-mcp/releases)
|
||||
[](LICENSE)
|
||||
[](https://php.net)
|
||||
[](https://wordpress.org)
|
||||
[](#-all-269-mcp-tools-unlocked)
|
||||
[](#-all-269-mcp-tools-unlocked)
|
||||
[](CONTRIBUTING.md)
|
||||
[](https://github.com/Heretek-AI/elementor-mcp/issues)
|
||||
[](https://github.com/Heretek-AI/elementor-mcp)
|
||||
|
||||
+196
-73
@@ -6,11 +6,19 @@
|
||||
*/
|
||||
|
||||
/* =========================================================================
|
||||
* Fonts — Geist (self-hosted, SIL OFL). Used for headings + accents to match
|
||||
* the marketing site; body text stays on the WP system stack. Variable font,
|
||||
* one file covers all weights.
|
||||
* Fonts — Cinzel & Geist (self-hosted, SIL OFL). Cinzel provides the
|
||||
* gothic-tech / Mechanicus heading aesthetic from Heretek AI; Geist and the
|
||||
* WP system stack are used for body copy and dense UI controls.
|
||||
* ========================================================================= */
|
||||
|
||||
@font-face {
|
||||
font-family: "Cinzel";
|
||||
src: url("../fonts/Cinzel-Bold.woff2") format("woff2");
|
||||
font-weight: 600 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Geist";
|
||||
src: url("../fonts/Geist-Variable.woff2") format("woff2");
|
||||
@@ -20,39 +28,41 @@
|
||||
}
|
||||
|
||||
/* =========================================================================
|
||||
* CSS Custom Properties
|
||||
* CSS Custom Properties — Heretek AI (Blood & Steel Theme)
|
||||
* ========================================================================= */
|
||||
|
||||
.elementor-mcp-admin {
|
||||
--mcp-font-heading: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
--mcp-primary: #6366f1;
|
||||
--mcp-primary-hover: #4f46e5;
|
||||
--mcp-primary-light: #eef2ff;
|
||||
--mcp-font-heading: "Cinzel", "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
--mcp-primary: #dc2626;
|
||||
--mcp-primary-hover: #b91c1c;
|
||||
--mcp-primary-light: rgba(220, 38, 38, 0.14);
|
||||
--mcp-primary-glow: rgba(220, 38, 38, 0.45);
|
||||
--mcp-success: #10b981;
|
||||
--mcp-success-light: #ecfdf5;
|
||||
--mcp-success-light: rgba(16, 185, 129, 0.14);
|
||||
--mcp-danger: #ef4444;
|
||||
--mcp-danger-light: #fef2f2;
|
||||
--mcp-danger-light: rgba(239, 68, 68, 0.14);
|
||||
--mcp-warning: #f59e0b;
|
||||
--mcp-pro: #8b5cf6;
|
||||
--mcp-pro-light: #f5f3ff;
|
||||
--mcp-gray-50: #f9fafb;
|
||||
--mcp-gray-100: #f3f4f6;
|
||||
--mcp-gray-200: #e5e7eb;
|
||||
--mcp-gray-300: #d1d5db;
|
||||
--mcp-gray-400: #9ca3af;
|
||||
--mcp-gray-500: #6b7280;
|
||||
--mcp-gray-600: #4b5563;
|
||||
--mcp-gray-700: #374151;
|
||||
--mcp-gray-800: #1f2937;
|
||||
--mcp-gray-900: #111827;
|
||||
--mcp-white: #ffffff;
|
||||
--mcp-radius: 10px;
|
||||
--mcp-radius-sm: 6px;
|
||||
--mcp-radius-lg: 14px;
|
||||
--mcp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
--mcp-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
|
||||
--mcp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
|
||||
--mcp-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
|
||||
--mcp-warning-light: rgba(245, 158, 11, 0.14);
|
||||
--mcp-pro: #dc2626;
|
||||
--mcp-pro-light: rgba(220, 38, 38, 0.18);
|
||||
--mcp-gray-50: #0a0a0d;
|
||||
--mcp-gray-100: #111115;
|
||||
--mcp-gray-200: #1f1f27;
|
||||
--mcp-gray-300: #2c2c38;
|
||||
--mcp-gray-400: #6b6b7a;
|
||||
--mcp-gray-500: #9898a6;
|
||||
--mcp-gray-600: #c4c4cf;
|
||||
--mcp-gray-700: #dedee6;
|
||||
--mcp-gray-800: #f1f1f5;
|
||||
--mcp-gray-900: #ffffff;
|
||||
--mcp-white: #111116;
|
||||
--mcp-radius: 8px;
|
||||
--mcp-radius-sm: 4px;
|
||||
--mcp-radius-lg: 12px;
|
||||
--mcp-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.6);
|
||||
--mcp-shadow: 0 2px 6px rgba(0, 0, 0, 0.7), 0 0 10px rgba(220, 38, 38, 0.08);
|
||||
--mcp-shadow-md: 0 4px 14px rgba(0, 0, 0, 0.8), 0 0 18px rgba(220, 38, 38, 0.15);
|
||||
--mcp-shadow-lg: 0 10px 24px rgba(0, 0, 0, 0.9), 0 0 28px rgba(220, 38, 38, 0.22);
|
||||
--mcp-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
@@ -82,6 +92,89 @@
|
||||
/* Full-width admin page so the app-bar header can bleed edge-to-edge. */
|
||||
max-width: none;
|
||||
margin-right: 20px;
|
||||
color: var(--mcp-gray-800);
|
||||
}
|
||||
|
||||
/* Heretek Scrollbar - Dark Steel Track & Blood Thumb */
|
||||
.elementor-mcp-admin ::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
.elementor-mcp-admin ::-webkit-scrollbar-track {
|
||||
background: #0a0a0d;
|
||||
border-left: 1px solid #1f1f27;
|
||||
}
|
||||
.elementor-mcp-admin ::-webkit-scrollbar-thumb {
|
||||
background: linear-gradient(180deg, #7f1d1d 0%, #450a0a 50%, #7f1d1d 100%);
|
||||
border-radius: 4px;
|
||||
border: 1px solid rgba(220, 38, 38, 0.35);
|
||||
}
|
||||
.elementor-mcp-admin ::-webkit-scrollbar-thumb:hover {
|
||||
background: linear-gradient(180deg, #b91c1c 0%, #7f1d1d 50%, #b91c1c 100%);
|
||||
}
|
||||
|
||||
/* Heretek Graphical Effects — Blood & Steel */
|
||||
.elementor-mcp-admin .machine-icon {
|
||||
filter: drop-shadow(0 0 8px rgba(220, 38, 38, 0.6));
|
||||
transition: filter 0.3s ease;
|
||||
}
|
||||
.elementor-mcp-admin .machine-icon:hover {
|
||||
filter: drop-shadow(0 0 14px rgba(220, 38, 38, 0.9));
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .blood-border {
|
||||
border: 1px solid transparent;
|
||||
background:
|
||||
linear-gradient(var(--mcp-white), var(--mcp-white)) padding-box,
|
||||
linear-gradient(135deg, #991b1b 0%, #450a0a 25%, #dc2626 50%, #450a0a 75%, #991b1b 100%) border-box;
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .corruption-glow {
|
||||
box-shadow:
|
||||
0 0 16px rgba(220, 38, 38, 0.25),
|
||||
0 0 32px rgba(185, 28, 28, 0.15),
|
||||
inset 0 0 16px rgba(220, 38, 38, 0.08);
|
||||
}
|
||||
|
||||
@keyframes corrupted-pulse {
|
||||
0%, 100% {
|
||||
box-shadow: 0 0 10px rgba(220, 38, 38, 0.3), 0 0 20px rgba(185, 28, 28, 0.15);
|
||||
}
|
||||
50% {
|
||||
box-shadow: 0 0 18px rgba(220, 38, 38, 0.55), 0 0 32px rgba(185, 28, 28, 0.25);
|
||||
}
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .corrupted-pulse {
|
||||
animation: corrupted-pulse 2.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .circuit-pulse {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.elementor-mcp-admin .circuit-pulse::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: linear-gradient(90deg, transparent 0%, rgba(220, 38, 38, 0.25) 50%, transparent 100%);
|
||||
animation: circuit-flow 2.5s linear infinite;
|
||||
}
|
||||
@keyframes circuit-flow {
|
||||
0% { transform: translateX(-100%); }
|
||||
100% { transform: translateX(100%); }
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .scan-lines {
|
||||
position: relative;
|
||||
}
|
||||
.elementor-mcp-admin .scan-lines::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 0, 0, 0.25) 2px, rgba(0, 0, 0, 0.25) 4px);
|
||||
pointer-events: none;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.elementor-mcp-admin > h1 {
|
||||
@@ -296,23 +389,24 @@
|
||||
margin: 0 0 -2px;
|
||||
padding: 12px 20px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
color: var(--mcp-gray-500);
|
||||
background: transparent;
|
||||
transition: color var(--mcp-transition), border-color var(--mcp-transition);
|
||||
transition: all var(--mcp-transition);
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .nav-tab:hover {
|
||||
color: var(--mcp-gray-700);
|
||||
background: transparent;
|
||||
color: #ffffff;
|
||||
background: rgba(220, 38, 38, 0.08);
|
||||
}
|
||||
|
||||
.elementor-mcp-admin .nav-tab-active,
|
||||
.elementor-mcp-admin .nav-tab-active:hover,
|
||||
.elementor-mcp-admin .nav-tab-active:focus {
|
||||
color: var(--mcp-primary);
|
||||
color: #ffffff;
|
||||
border-bottom-color: var(--mcp-primary);
|
||||
background: transparent;
|
||||
background: rgba(220, 38, 38, 0.14);
|
||||
text-shadow: 0 0 8px rgba(220, 38, 38, 0.5);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
@@ -3374,55 +3468,56 @@ body.emcp-modal-open { overflow: hidden; }
|
||||
/* Full-width admin header (app bar + tab nav + Help dropdown) ---------------- */
|
||||
.elementor-mcp-admin > h1 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
|
||||
|
||||
.emcp-appbar { display: flex; align-items: stretch; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: var(--mcp-white); border-bottom: 1px solid var(--mcp-gray-200); padding: 10px 20px 10px 20px; margin: 0 -20px 0 -22px; border-top: 1px solid var(--mcp-gray-200); }
|
||||
.emcp-appbar-brand { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 15px 0; width: 40%;}
|
||||
.emcp-appbar-logo { width: 34px; height: 34px; border-radius: 6px; object-fit: contain; }
|
||||
.emcp-appbar-title { font-size: 18px; font-weight: 700; color: var(--mcp-gray-800, #1d2327); }
|
||||
.emcp-appbar-version { font-size: 11px; font-weight: 700; color: var(--mcp-primary); background: var(--mcp-primary-light); border-radius: 10px; padding: 2px 8px; }
|
||||
.emcp-appbar { display: flex; align-items: stretch; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: rgba(13, 13, 17, 0.96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(220, 38, 38, 0.35); padding: 10px 20px 10px 20px; margin: 0 -20px 0 -22px; border-top: 1px solid var(--mcp-gray-200); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); }
|
||||
.emcp-appbar-brand { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 15px 0; width: 40%;}
|
||||
.emcp-appbar-logo { width: 34px; height: 34px; border-radius: 6px; object-fit: contain; filter: drop-shadow(0 0 8px rgba(220, 38, 38, 0.6)); transition: filter 0.3s ease; }
|
||||
.emcp-appbar-logo:hover { filter: drop-shadow(0 0 14px rgba(220, 38, 38, 0.95)); }
|
||||
.emcp-appbar-title { font-family: var(--mcp-font-heading); font-size: 19px; font-weight: 700; color: var(--mcp-gray-800); letter-spacing: 0.02em; }
|
||||
.emcp-appbar-version { font-size: 11px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #7f1d1d 0%, #dc2626 100%); border: 1px solid rgba(220, 38, 38, 0.5); border-radius: 10px; padding: 2px 8px; box-shadow: 0 0 8px rgba(220, 38, 38, 0.35); }
|
||||
.emcp-appbar-actions { display: flex; align-items: center; gap: 10px; }
|
||||
|
||||
.emcp-help-menu { position: relative; }
|
||||
/* Match the Changelog / Affiliate Program pill buttons (.emcp-appbar-changelog). */
|
||||
.emcp-help-toggle { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 18px; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; font-size: 13px; font-weight: 600; color: var(--mcp-gray-800, #1d2327); text-decoration: none; cursor: pointer; }
|
||||
.emcp-help-toggle:hover { border-color: var(--mcp-primary); color: var(--mcp-primary); }
|
||||
.emcp-help-toggle { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 18px; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; font-size: 13px; font-weight: 600; color: var(--mcp-gray-800); text-decoration: none; cursor: pointer; transition: all 0.2s; }
|
||||
.emcp-help-toggle:hover { border-color: var(--mcp-primary); color: #fff; background: rgba(220, 38, 38, 0.1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.2); }
|
||||
.emcp-help-toggle .dashicons { font-size: 16px; width: 16px; height: 16px; }
|
||||
.emcp-help-caret { font-size: 16px; width: 16px; height: 16px; line-height: 1; color: var(--mcp-gray-500, #787c82); }
|
||||
.emcp-help-caret { font-size: 16px; width: 16px; height: 16px; line-height: 1; color: var(--mcp-gray-500); }
|
||||
.emcp-help-toggle:hover .emcp-help-caret { color: var(--mcp-primary); }
|
||||
.emcp-help-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 6px); min-width: 210px; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.14); padding: 6px; z-index: 1000; }
|
||||
.emcp-help-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 6px); min-width: 210px; background: #131318; border: 1px solid var(--mcp-gray-200); border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,.6); padding: 6px; z-index: 1000; }
|
||||
.emcp-help-dropdown::before { content: ''; position: absolute; top: -8px; left: 0; right: 0; height: 8px; }
|
||||
.emcp-help-menu:hover .emcp-help-dropdown, .emcp-help-menu:focus-within .emcp-help-dropdown { display: block; }
|
||||
.emcp-help-dropdown a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 6px; color: var(--mcp-gray-800, #1d2327); text-decoration: none; font-size: 13px; }
|
||||
.emcp-help-dropdown a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 6px; color: var(--mcp-gray-800); text-decoration: none; font-size: 13px; }
|
||||
.emcp-help-dropdown a:hover { background: var(--mcp-primary-light); color: var(--mcp-primary); }
|
||||
.emcp-help-dropdown .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--mcp-gray-500, #787c82); }
|
||||
.emcp-help-dropdown .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--mcp-gray-500); }
|
||||
.emcp-help-dropdown a:hover .dashicons { color: var(--mcp-primary); }
|
||||
|
||||
/* Notifications bell + dropdown (Cloud-fed) — mirrors .emcp-help-menu. */
|
||||
.emcp-notif { position: relative; }
|
||||
.emcp-notif-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; cursor: pointer; }
|
||||
.emcp-notif-toggle:hover { border-color: var(--mcp-primary); }
|
||||
.emcp-notif-toggle .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--mcp-gray-800, #1d2327); }
|
||||
.emcp-notif-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; cursor: pointer; transition: all 0.2s; }
|
||||
.emcp-notif-toggle:hover { border-color: var(--mcp-primary); background: rgba(220, 38, 38, 0.1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.2); }
|
||||
.emcp-notif-toggle .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--mcp-gray-800); }
|
||||
.emcp-notif-toggle:hover .dashicons { color: var(--mcp-primary); }
|
||||
.emcp-notif-badge { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; background: var(--mcp-danger); color: var(--mcp-white); border-radius: 9px; font-size: 10px; line-height: 1; font-weight: 700; }
|
||||
.emcp-notif-badge { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; background: var(--mcp-danger); color: #fff; border-radius: 9px; font-size: 10px; line-height: 1; font-weight: 700; box-shadow: 0 0 8px rgba(239, 68, 68, 0.5); }
|
||||
.emcp-notif-badge.is-empty { display: none; }
|
||||
/* Notifications slide-in drawer (right side) + overlay. */
|
||||
.emcp-notif-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.35); opacity: 0; visibility: hidden; transition: opacity .2s ease; z-index: 100000; }
|
||||
.emcp-notif-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.6); opacity: 0; visibility: hidden; transition: opacity .2s ease; z-index: 100000; }
|
||||
.emcp-notif.is-open .emcp-notif-overlay { opacity: 1; visibility: visible; }
|
||||
.emcp-notif-drawer { position: fixed; top: 0; right: 0; height: 100vh; width: 380px; max-width: 90vw; display: flex; flex-direction: column; background: var(--mcp-white); box-shadow: -8px 0 28px rgba(0,0,0,.18); transform: translateX(100%); transition: transform .25s ease; z-index: 100001; }
|
||||
.emcp-notif-drawer { position: fixed; top: 0; right: 0; height: 100vh; width: 380px; max-width: 90vw; display: flex; flex-direction: column; background: #131318; border-left: 1px solid var(--mcp-gray-200); box-shadow: -8px 0 32px rgba(0,0,0,.6); transform: translateX(100%); transition: transform .25s ease; z-index: 100001; }
|
||||
.emcp-notif.is-open .emcp-notif-drawer { transform: translateX(0); }
|
||||
.emcp-notif-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; font-size: 15px; font-weight: 700; color: var(--mcp-gray-800, #1d2327); border-bottom: 1px solid var(--mcp-gray-200); }
|
||||
.emcp-notif-close { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: none; border: none; border-radius: 4px; color: var(--mcp-gray-500, #787c82); cursor: pointer; }
|
||||
.emcp-notif-close:hover { background: var(--mcp-gray-100, #f0f0f1); color: var(--mcp-primary); }
|
||||
.emcp-notif-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; font-size: 15px; font-weight: 700; color: var(--mcp-gray-800); border-bottom: 1px solid var(--mcp-gray-200); }
|
||||
.emcp-notif-close { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: none; border: none; border-radius: 4px; color: var(--mcp-gray-500); cursor: pointer; }
|
||||
.emcp-notif-close:hover { background: var(--mcp-gray-100); color: var(--mcp-primary); }
|
||||
.emcp-notif-list { flex: 1; overflow-y: auto; }
|
||||
.emcp-notif-empty { padding: 24px 14px; text-align: center; font-size: 13px; color: var(--mcp-gray-500, #787c82); }
|
||||
.emcp-notif-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--mcp-gray-100, #f0f0f1); border-left: 3px solid transparent; }
|
||||
.emcp-notif-empty { padding: 24px 14px; text-align: center; font-size: 13px; color: var(--mcp-gray-500); }
|
||||
.emcp-notif-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--mcp-gray-100); border-left: 3px solid transparent; }
|
||||
.emcp-notif-item:last-child { border-bottom: none; }
|
||||
.emcp-notif-item.is-unread { background: var(--mcp-primary-light); border-left-color: var(--mcp-primary); }
|
||||
.emcp-notif-item-icon { flex: 0 0 auto; margin-top: 2px; font-size: 16px; width: 16px; height: 16px; color: var(--mcp-primary); }
|
||||
.emcp-notif-item-body { min-width: 0; flex: 1; }
|
||||
.emcp-notif-item-body strong { display: block; font-size: 13px; color: var(--mcp-gray-800, #1d2327); }
|
||||
.emcp-notif-item-body p { margin: 3px 0 0; font-size: 12px; line-height: 1.4; color: var(--mcp-gray-600, #50575e); }
|
||||
.emcp-notif-item-body strong { display: block; font-size: 13px; color: var(--mcp-gray-800); }
|
||||
.emcp-notif-item-body p { margin: 3px 0 0; font-size: 12px; line-height: 1.4; color: var(--mcp-gray-600); }
|
||||
.emcp-notif-item-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
|
||||
.emcp-notif-item-time { font-size: 11px; color: var(--mcp-gray-500, #787c82); }
|
||||
.emcp-notif-item-time { font-size: 11px; color: var(--mcp-gray-500); }
|
||||
.emcp-notif-item-cta { font-size: 11px; font-weight: 700; color: var(--mcp-primary); text-decoration: none; }
|
||||
.emcp-notif-item-cta:hover { text-decoration: underline; }
|
||||
.emcp-notif-item--warning .emcp-notif-item-icon { color: #a15c00; }
|
||||
@@ -3431,24 +3526,24 @@ body.emcp-modal-open { overflow: hidden; }
|
||||
.emcp-notif-item--success .emcp-notif-item-icon { color: #22c55e; }
|
||||
|
||||
/* Cloud / avatar button. */
|
||||
.emcp-cloud-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; text-decoration: none; }
|
||||
.emcp-cloud-btn:hover { border-color: var(--mcp-primary); }
|
||||
.emcp-cloud-icon { display: block; font-size: 20px; width: 20px; height: 20px; color: var(--mcp-gray-800, #1d2327); }
|
||||
.emcp-cloud-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; box-sizing: border-box; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; text-decoration: none; transition: all 0.2s; }
|
||||
.emcp-cloud-btn:hover { border-color: var(--mcp-primary); background: rgba(220, 38, 38, 0.1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.2); }
|
||||
.emcp-cloud-icon { display: block; font-size: 20px; width: 20px; height: 20px; color: var(--mcp-gray-800); }
|
||||
.emcp-cloud-btn:hover .emcp-cloud-icon { color: var(--mcp-primary); }
|
||||
.emcp-cloud-dot { position: absolute; right: 3px; bottom: 3px; width: 8px; height: 8px; border-radius: 50%; background: var(--mcp-gray-400, #a7aaad); border: 2px solid var(--mcp-white); }
|
||||
.emcp-cloud-dot { position: absolute; right: 3px; bottom: 3px; width: 8px; height: 8px; border-radius: 50%; background: var(--mcp-gray-400); border: 2px solid var(--mcp-white); }
|
||||
.emcp-cloud-dot.is-connected { background: #22c55e; }
|
||||
|
||||
.emcp-appbar-upgrade { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; background: var(--mcp-primary); color: var(--mcp-white); border: 1px solid var(--mcp-primary); border-radius: 6px; font-size: 13px; font-weight: 600; text-decoration: none; }
|
||||
.emcp-appbar-upgrade:hover { background: var(--mcp-primary-hover); border-color: var(--mcp-primary-hover); color: var(--mcp-white); }
|
||||
.emcp-appbar-upgrade { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; background: var(--mcp-primary); color: #fff; border: 1px solid var(--mcp-primary); border-radius: 6px; font-size: 13px; font-weight: 600; text-decoration: none; box-shadow: 0 0 10px rgba(220, 38, 38, 0.35); transition: all 0.2s; }
|
||||
.emcp-appbar-upgrade:hover { background: var(--mcp-primary-hover); border-color: var(--mcp-primary-hover); color: #fff; box-shadow: 0 0 16px rgba(220, 38, 38, 0.6); }
|
||||
.emcp-appbar-upgrade .dashicons { font-size: 15px; width: 15px; height: 15px; }
|
||||
|
||||
.emcp-appnav { display: flex; align-items: stretch; gap: 0px; background: var(--mcp-white); border-bottom: 1px solid var(--mcp-gray-200); padding: 0 14px; overflow-x: auto; overflow-y: hidden; margin: 0; }
|
||||
.emcp-appnav-item { display: inline-flex; align-items: center; gap: 7px; padding: 14px 16px; margin-bottom: -1px; white-space: nowrap; color: var(--mcp-gray-600, #50575e); text-decoration: none; font-size: 14px; font-weight: 600; border-bottom: 2px solid transparent; flex: 1; justify-content: center; text-align: center; border-right: 1px solid var(--mcp-gray-200); }
|
||||
.emcp-appnav-item:hover { color: var(--mcp-gray-800, #1d2327); background: var(--mcp-gray-50); }
|
||||
.emcp-appnav-item.is-active { color: var(--mcp-primary); border-bottom-color: var(--mcp-primary); }
|
||||
.emcp-appnav { display: flex; align-items: stretch; gap: 0px; background: #0c0c10; border-bottom: 1px solid var(--mcp-gray-200); padding: 0 14px; overflow-x: auto; overflow-y: hidden; margin: 0; }
|
||||
.emcp-appnav-item { display: inline-flex; align-items: center; gap: 7px; padding: 14px 16px; margin-bottom: -1px; white-space: nowrap; color: var(--mcp-gray-500); text-decoration: none; font-size: 14px; font-weight: 600; border-bottom: 2px solid transparent; flex: 1; justify-content: center; text-align: center; border-right: 1px solid var(--mcp-gray-200); transition: all 0.2s; }
|
||||
.emcp-appnav-item:hover { color: #fff; background: rgba(220, 38, 38, 0.08); }
|
||||
.emcp-appnav-item.is-active { color: #fff; border-bottom-color: var(--mcp-primary); background: rgba(220, 38, 38, 0.12); text-shadow: 0 0 8px rgba(220, 38, 38, 0.5); }
|
||||
.emcp-appnav-item .dashicons { font-size: 16px; width: 16px; height: 16px; }
|
||||
.emcp-appbar-changelog { display: inline-flex; align-items: center; gap: 6px; padding: 12px 18px; background: var(--mcp-white); font-size: 13px; font-weight: 600; color: var(--mcp-gray-800, #1d2327); text-decoration: none; }
|
||||
.emcp-appbar-changelog:hover, .emcp-appbar-changelog.is-active { border-color: var(--mcp-primary); color: var(--mcp-primary); }
|
||||
.emcp-appbar-changelog { display: inline-flex; align-items: center; gap: 6px; padding: 12px 18px; background: var(--mcp-white); border: 1px solid var(--mcp-gray-200); border-radius: 4px; font-size: 13px; font-weight: 600; color: var(--mcp-gray-800); text-decoration: none; transition: all 0.2s; }
|
||||
.emcp-appbar-changelog:hover, .emcp-appbar-changelog.is-active { border-color: var(--mcp-primary); color: #fff; background: rgba(220, 38, 38, 0.1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.2); }
|
||||
.emcp-appbar-changelog .dashicons { font-size: 16px; width: 16px; height: 16px; }
|
||||
/* =========================================================================
|
||||
* Focus reset (utility) — remove the default WP/browser outline + box-shadow
|
||||
@@ -3474,6 +3569,34 @@ body.emcp-modal-open { overflow: hidden; }
|
||||
}
|
||||
.elementor-mcp-stat-icon--templates { background: #e0f7f4; color: #0d9488; }
|
||||
|
||||
/* Themed Inputs, Selects & Textareas for Heretek Dark Metal */
|
||||
.elementor-mcp-admin input[type="text"],
|
||||
.elementor-mcp-admin input[type="password"],
|
||||
.elementor-mcp-admin input[type="search"],
|
||||
.elementor-mcp-admin input[type="url"],
|
||||
.elementor-mcp-admin input[type="number"],
|
||||
.elementor-mcp-admin select,
|
||||
.elementor-mcp-admin textarea {
|
||||
background: #14141a !important;
|
||||
color: #f4f4f5 !important;
|
||||
border: 1px solid var(--mcp-gray-200) !important;
|
||||
border-radius: var(--mcp-radius-sm);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
|
||||
transition: border-color var(--mcp-transition), box-shadow var(--mcp-transition);
|
||||
}
|
||||
|
||||
.elementor-mcp-admin input[type="text"]:focus,
|
||||
.elementor-mcp-admin input[type="password"]:focus,
|
||||
.elementor-mcp-admin input[type="search"]:focus,
|
||||
.elementor-mcp-admin input[type="url"]:focus,
|
||||
.elementor-mcp-admin input[type="number"]:focus,
|
||||
.elementor-mcp-admin select:focus,
|
||||
.elementor-mcp-admin textarea:focus {
|
||||
border-color: var(--mcp-primary) !important;
|
||||
box-shadow: 0 0 0 1px var(--mcp-primary), 0 0 10px rgba(220, 38, 38, 0.35) !important;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
/* Swipeable header rows: keep horizontal scroll (touch/drag/trackpad) but hide
|
||||
the scrollbar so small screens read as a swipeable menu, not a scrolling box. */
|
||||
.emcp-appnav, .elementor-mcp-stats { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; }
|
||||
|
||||
+38
-19
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* AI Chat Floating Action Button & Panel
|
||||
* AI Chat Floating Action Button & Panel — Heretek AI (Blood & Steel Theme)
|
||||
*/
|
||||
.emcp-ai-chat-fab {
|
||||
position: fixed;
|
||||
@@ -8,19 +8,20 @@
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
border-radius: 50%;
|
||||
background: #9333ea;
|
||||
background: #dc2626;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 14px rgba(0,0,0,0.25);
|
||||
box-shadow: 0 4px 18px rgba(0, 0, 0, 0.5), 0 0 16px rgba(220, 38, 38, 0.45);
|
||||
z-index: 999999;
|
||||
transition: transform 0.2s, background 0.2s;
|
||||
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
.emcp-ai-chat-fab:hover {
|
||||
transform: scale(1.05);
|
||||
background: #7e22ce;
|
||||
transform: scale(1.06);
|
||||
background: #b91c1c;
|
||||
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.6), 0 0 24px rgba(220, 38, 38, 0.8);
|
||||
}
|
||||
.emcp-ai-chat-panel {
|
||||
position: fixed;
|
||||
@@ -28,9 +29,12 @@
|
||||
right: 24px;
|
||||
width: 380px;
|
||||
height: 520px;
|
||||
background: #fff;
|
||||
background: rgba(14, 14, 18, 0.96);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
border: 1px solid rgba(220, 38, 38, 0.35);
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 30px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.8), 0 0 24px rgba(220, 38, 38, 0.15);
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
z-index: 999999;
|
||||
@@ -41,13 +45,16 @@
|
||||
display: flex;
|
||||
}
|
||||
.emcp-ai-chat-header {
|
||||
background: #9333ea;
|
||||
background: linear-gradient(90deg, #7f1d1d 0%, #dc2626 100%);
|
||||
color: #fff;
|
||||
padding: 12px 16px;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
font-family: "Cinzel", system-ui, sans-serif;
|
||||
letter-spacing: 0.02em;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid rgba(220, 38, 38, 0.4);
|
||||
}
|
||||
.emcp-ai-chat-messages {
|
||||
flex: 1;
|
||||
@@ -56,34 +63,46 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
background: #0a0a0d;
|
||||
}
|
||||
.emcp-msg {
|
||||
padding: 8px 12px;
|
||||
border-radius: 8px;
|
||||
font-size: 13px;
|
||||
line-height: 1.4;
|
||||
line-height: 1.45;
|
||||
max-width: 85%;
|
||||
}
|
||||
.emcp-msg-user {
|
||||
align-self: flex-end;
|
||||
background: #f3e8ff;
|
||||
color: #581c87;
|
||||
background: rgba(220, 38, 38, 0.18);
|
||||
border: 1px solid rgba(220, 38, 38, 0.4);
|
||||
color: #fecaca;
|
||||
}
|
||||
.emcp-msg-assistant {
|
||||
align-self: flex-start;
|
||||
background: #f1f5f9;
|
||||
color: #0f172a;
|
||||
background: #14141a;
|
||||
border: 1px solid #22222c;
|
||||
color: #f4f4f5;
|
||||
}
|
||||
.emcp-ai-chat-input-row {
|
||||
display: flex;
|
||||
padding: 8px;
|
||||
border-top: 1px solid #e2e8f0;
|
||||
padding: 10px;
|
||||
border-top: 1px solid #202028;
|
||||
background: #111116;
|
||||
gap: 8px;
|
||||
}
|
||||
.emcp-ai-chat-input {
|
||||
flex: 1;
|
||||
border: 1px solid #cbd5e1;
|
||||
border: 1px solid #2a2a38;
|
||||
border-radius: 6px;
|
||||
padding: 8px;
|
||||
padding: 8px 10px;
|
||||
font-size: 13px;
|
||||
background: #171720;
|
||||
color: #f4f4f5;
|
||||
transition: border-color 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
.emcp-ai-chat-input:focus {
|
||||
border-color: #dc2626;
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.3);
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 9.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 MiB |
@@ -3816,7 +3816,7 @@ class EMCP_Tools_Admin {
|
||||
<?php esc_html_e( 'Upgrade to Pro', 'emcp-tools' ); ?>
|
||||
</a>
|
||||
<?php else : ?>
|
||||
<span class="elementor-mcp-badge elementor-mcp-badge--pro" style="padding: 4px 10px; font-size: 11px; font-weight: 700; border-radius: 4px; background: #9333ea; color: #fff; margin-right: 8px;">PRO UNLOCKED</span>
|
||||
<span class="elementor-mcp-badge elementor-mcp-badge--pro" style="padding: 4px 10px; font-size: 11px; font-weight: 700; border-radius: 4px; background: #dc2626; color: #fff; margin-right: 8px; box-shadow: 0 0 8px rgba(220, 38, 38, 0.45); letter-spacing: 0.03em;">HERETEK UNLOCKED</span>
|
||||
<?php endif; ?>
|
||||
<div class="emcp-help-menu">
|
||||
<button type="button" class="emcp-help-toggle" aria-haspopup="true">
|
||||
|
||||
@@ -168,19 +168,19 @@ class EMCP_Tools_Themer_CPT {
|
||||
'404' => __( '404', 'emcp-tools' ),
|
||||
);
|
||||
|
||||
$purple = '#8b5cf6';
|
||||
$chips = '';
|
||||
$crimson = '#dc2626';
|
||||
$chips = '';
|
||||
foreach ( self::TYPES as $type ) {
|
||||
$cap = self::quota( $type );
|
||||
$used = self::count_of_type( $type );
|
||||
$full = $used >= $cap;
|
||||
$label = isset( $labels[ $type ] ) ? $labels[ $type ] : ucfirst( $type );
|
||||
// A chip per type: grey when room remains, purple-outlined when at cap.
|
||||
// A chip per type: grey when room remains, crimson-outlined when at cap.
|
||||
$chips .= sprintf(
|
||||
'<span style="display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid %1$s;background:%2$s;color:%3$s;">%4$s <span style="opacity:.8;font-weight:500;">%5$d/%6$d</span></span>',
|
||||
$full ? $purple : '#dcdcde',
|
||||
$full ? '#f5f3ff' : '#fff',
|
||||
$full ? '#6d28d9' : '#3c434a',
|
||||
$full ? $crimson : '#2d2d38',
|
||||
$full ? 'rgba(220, 38, 38, 0.14)' : '#14141a',
|
||||
$full ? '#ef4444' : '#a1a1aa',
|
||||
esc_html( $label ),
|
||||
(int) $used,
|
||||
(int) $cap
|
||||
|
||||
Reference in New Issue
Block a user