Upload via GUI (182 Dateien)

This commit is contained in:
2026-08-13 21:22:55 +00:00
parent 3d0c7ce557
commit 681ff4c9eb
45 changed files with 1111 additions and 614 deletions
+73 -73
View File
@@ -1,74 +1,74 @@
#mm-assistant-chat {
display: none;
position: absolute;
bottom: 110px;
right: 0;
width: 320px;
background: #1a1d22; /* Dunklerer Hintergrund */
border-radius: 15px;
box-shadow: 0 15px 45px rgba(0,0,0,0.5);
border: 1px solid #333;
overflow: hidden;
z-index: 10000;
}
.chat-header {
background: #0099ff;
padding: 12px 15px;
display: flex;
align-items: center;
font-weight: bold;
color: white;
}
.status-dot {
height: 10px;
width: 10px;
background-color: #00ff00;
border-radius: 50%;
display: inline-block;
margin-right: 10px;
box-shadow: 0 0 5px #00ff00;
}
#mm-assistant-content {
padding: 20px;
max-height: 350px;
overflow-y: auto;
color: #e0e0e0;
line-height: 1.6;
font-size: 14px;
}
.chat-input-area {
background: #111;
padding: 10px;
display: flex;
gap: 8px;
border-top: 1px solid #333;
}
#mm-assistant-input {
flex: 1;
background: #222;
border: 1px solid #444;
color: white;
padding: 8px 12px;
border-radius: 8px;
outline: none;
}
#mm-assistant-send {
background: #0099ff;
border: none;
color: white;
padding: 5px 12px;
border-radius: 8px;
cursor: pointer;
display: flex;
align-items: center;
transition: background 0.2s;
}
#mm-assistant-chat {
display: none;
position: absolute;
bottom: 110px;
right: 0;
width: 320px;
background: #1a1d22; /* Dunklerer Hintergrund */
border-radius: 15px;
box-shadow: 0 15px 45px rgba(0,0,0,0.5);
border: 1px solid #333;
overflow: hidden;
z-index: 10000;
}
.chat-header {
background: #0099ff;
padding: 12px 15px;
display: flex;
align-items: center;
font-weight: bold;
color: white;
}
.status-dot {
height: 10px;
width: 10px;
background-color: #00ff00;
border-radius: 50%;
display: inline-block;
margin-right: 10px;
box-shadow: 0 0 5px #00ff00;
}
#mm-assistant-content {
padding: 20px;
max-height: 350px;
overflow-y: auto;
color: #e0e0e0;
line-height: 1.6;
font-size: 14px;
}
.chat-input-area {
background: #111;
padding: 10px;
display: flex;
gap: 8px;
border-top: 1px solid #333;
}
#mm-assistant-input {
flex: 1;
background: #222;
border: 1px solid #444;
color: white;
padding: 8px 12px;
border-radius: 8px;
outline: none;
}
#mm-assistant-send {
background: #0099ff;
border: none;
color: white;
padding: 5px 12px;
border-radius: 8px;
cursor: pointer;
display: flex;
align-items: center;
transition: background 0.2s;
}
#mm-assistant-send:hover { background: #0077cc; }
File diff suppressed because one or more lines are too long
+275 -275
View File
@@ -1,276 +1,276 @@
/* Minecraft Modern Theme Login & Registrierungs-Styles */
body.login, body.login-action-register {
background-color: #14151a; /* Fallback-Farbe */
background-size: cover;
background-position: center;
background-repeat: no-repeat;
font-family: 'Raleway', sans-serif;
}
/* Dunkler Overlay für bessere Lesbarkeit */
body.login::before, body.login-action-register::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(20, 21, 26, 0.8);
z-index: -1;
}
/* Logo zentrieren */
body.login h1, body.login-action-register h1 {
text-align: center;
margin-bottom: 50px;
}
body.login h1 a, body.login-action-register h1 a {
width: auto;
height: 160px;
background-size: contain;
}
/* Haupt-Container, der alles umschließt */
body.login #login, body.login-action-register #login {
width: 80%;
max-width: 800px;
margin: 0 auto;
padding: 0;
background: none;
box-shadow: none;
}
/* Der Wrapper, der vom Skript erstellt wird. */
body.login #login-content-wrapper, body.login-action-register #login-content-wrapper {
display: flex;
align-items: stretch;
background-color: #252830;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
overflow: hidden;
}
/* Linke Spalte: Minecraft Avatar Slider (27.8%) */
body.login #minecraft-avatar-slider, body.login-action-register #minecraft-avatar-slider {
flex: 0 0 27.8%;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
padding-top: 50px;
background-color: #1a1c23;
height: auto;
position: relative;
overflow: hidden;
}
body.login #minecraft-avatar-slider .avatar-slide, body.login-action-register #minecraft-avatar-slider .avatar-slide {
width: 100%;
height: auto;
max-height: 400px;
border-radius: 4px;
position: absolute;
top: 25px;
left: 0;
opacity: 0;
transition: opacity 0.7s ease-in-out;
}
body.login #minecraft-avatar-slider .avatar-slide-active, body.login-action-register #minecraft-avatar-slider .avatar-slide-active {
opacity: 1;
}
/* Rechte Spalte: Login/Registrierungs-Formular (72.2%) */
body.login #loginform, body.login-action-register #registerform, body.login #loginform, body.login-action-register #registerform {
flex: 1;
padding: 40px;
background: none;
border: none;
box-shadow: none;
}
/* Formular-Felder */
body.login #loginform p, body.login-action-register #registerform p,
body.login #loginform label, body.login-action-register #registerform label {
margin-bottom: 20px;
color: #e4e4e4;
font-weight: 600;
display: block;
margin-bottom: 8px;
}
body.login #loginform input[type="text"], body.login #loginform input[type="password"], body.login-action-register #registerform input[type="text"], body.login-action-register #registerform input[type="password"], body.login #loginform input[type="email"], body.login-action-register #registerform input[type="email"] {
width: 100%;
padding: 14px;
background-color: #1e2029;
border: 1px solid #333;
border-radius: 4px;
color: #e4e4e4;
font-family: 'Raleway', sans-serif;
font-size: 16px;
transition: border-color 0.3s, box-shadow 0.3s;
}
body.login #loginform input[type="text"]:focus, body.login #loginform input[type="password"]:focus, body.login-action-register #registerform input[type="text"]:focus, body.login-action-register #registerform input[type="password"]:focus, body.login-action-register #registerform input[type="email"]:focus {
border-color: #00d4ff;
box-shadow: 0 0 0 2px rgba(0, 212, 255, 0.2);
outline: none;
}
/* "Angemeldet bleiben" Checkbox (nur Login) */
body.login .forgetmenot label, body.login .forgetmenot input[type="checkbox"] {
font-weight: 400;
font-size: 14px;
color: #a0a0a0;
display: flex;
align-items: center;
}
body.login .forgetmenot input[type="checkbox"] {
margin-right: 8px;
}
/* NEU: Stile für die Registrierungsseite */
.auth-title {
text-align: center;
color: #e4e4e4;
margin-bottom: 10px;
}
.auth-subtitle {
text-align: center;
color: #a0a0a0;
margin-bottom: 40px;
}
.login-form-link {
text-align: center;
margin-top: 30px;
}
.login-form-link p {
margin-bottom: 0;
}
.login-form-link a {
color: #00d4ff;
text-decoration: none;
font-weight: 600;
}
.login-form-link a:hover {
color: #fff;
}
.logged-in-message {
text-align: center;
padding: 40px;
background-color: #252830;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.logged-in-message h2 {
margin-top: 0;
color: #00d4ff;
}
.logged-in-message .button {
display: inline-block;
margin: 10px;
padding: 12px 25px;
background-color: #00d4ff;
color: #fff;
text-decoration: none;
border-radius: 4px;
font-weight: 600;
transition: background-color 0.3s;
}
.logged-in-message .button:hover {
background-color: #00a8cc;
}
/* Container für "Angemeldet bleiben" und "Passwort vergessen" (nur Login) */
body.login .login-options-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25px;
}
body.login .login-options-container .forgetmenot,
body.login .login-options-container #nav {
margin: 0;
}
body.login .login-options-container #nav a {
color: #a0a0a0;
text-decoration: none;
font-weight: 400;
font-size: 14px;
transition: color 0.2s;
}
body.login .login-options-container #nav a:hover {
color: #00d4ff;
}
/* Submit-Button (gilt für Login & Registrierung) */
body.login #loginform .submit input[type="submit"], body.login-action-register #registerform .submit input[type="submit"] {
width: 100%;
padding: 14px;
background-color: #00d4ff;
border: none;
border-radius: 4px;
color: #fff;
font-family: 'Raleway', sans-serif;
font-weight: 600;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
body.login #loginform .submit input[type="submit"]:hover, body.login-action-register #registerform .submit input[type="submit"]:hover {
background-color: #00a8cc;
}
/* Anpassungen für kleinere Bildschirme */
@media screen and (max-width: 768px) {
body.login #login-content-wrapper, body.login-action-register #login-content-wrapper {
flex-direction: column;
}
body.login #minecraft-avatar-slider, body.login-action-register #minecraft-avatar-slider {
flex: none;
width: 100%;
padding: 30px;
padding-top: 30px;
}
body.login #minecraft-avatar-slider .avatar-slide, body.login-action-register #minecraft-avatar-slider .avatar-slide {
max-height: 300px;
max-width: 200px;
top: 30px;
}
}
/* Fehlermeldungen und Hinweise */
body.login .message, body.login #login_error, body.login-action-register .message, body.login-action-register #login_error {
background-color: rgba(0, 212, 255, 0.1);
border-left: 4px solid #00d4ff;
padding: 15px;
margin-bottom: 20px;
border-radius: 0 4px 4px 0;
color: #e4e4e4;
}
/* =========================================================================
=== STIL FÜR DIE LINKS UNTER DEM ANMELDE-BUTTON ====================
========================================================================= */
body.login .post-login-links, body.login-action-register .post-login-links {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #333;
}
body.login .post-login-links a, body.login-action-register .post-login-links a {
color: #a0a0a0;
text-decoration: none;
font-size: 14px;
transition: color 0.2s ease;
}
body.login .post-login-links a:hover, body.login-action-register .post-login-links a:hover {
color: #00d4ff;
/* Minecraft Modern Theme Login & Registrierungs-Styles */
body.login, body.login-action-register {
background-color: #14151a; /* Fallback-Farbe */
background-size: cover;
background-position: center;
background-repeat: no-repeat;
font-family: 'Raleway', sans-serif;
}
/* Dunkler Overlay für bessere Lesbarkeit */
body.login::before, body.login-action-register::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(20, 21, 26, 0.8);
z-index: -1;
}
/* Logo zentrieren */
body.login h1, body.login-action-register h1 {
text-align: center;
margin-bottom: 50px;
}
body.login h1 a, body.login-action-register h1 a {
width: auto;
height: 160px;
background-size: contain;
}
/* Haupt-Container, der alles umschließt */
body.login #login, body.login-action-register #login {
width: 80%;
max-width: 800px;
margin: 0 auto;
padding: 0;
background: none;
box-shadow: none;
}
/* Der Wrapper, der vom Skript erstellt wird. */
body.login #login-content-wrapper, body.login-action-register #login-content-wrapper {
display: flex;
align-items: stretch;
background-color: #252830;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
overflow: hidden;
}
/* Linke Spalte: Minecraft Avatar Slider (27.8%) */
body.login #minecraft-avatar-slider, body.login-action-register #minecraft-avatar-slider {
flex: 0 0 27.8%;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
padding-top: 50px;
background-color: #1a1c23;
height: auto;
position: relative;
overflow: hidden;
}
body.login #minecraft-avatar-slider .avatar-slide, body.login-action-register #minecraft-avatar-slider .avatar-slide {
width: 100%;
height: auto;
max-height: 400px;
border-radius: 4px;
position: absolute;
top: 25px;
left: 0;
opacity: 0;
transition: opacity 0.7s ease-in-out;
}
body.login #minecraft-avatar-slider .avatar-slide-active, body.login-action-register #minecraft-avatar-slider .avatar-slide-active {
opacity: 1;
}
/* Rechte Spalte: Login/Registrierungs-Formular (72.2%) */
body.login #loginform, body.login-action-register #registerform, body.login #loginform, body.login-action-register #registerform {
flex: 1;
padding: 40px;
background: none;
border: none;
box-shadow: none;
}
/* Formular-Felder */
body.login #loginform p, body.login-action-register #registerform p,
body.login #loginform label, body.login-action-register #registerform label {
margin-bottom: 20px;
color: #e4e4e4;
font-weight: 600;
display: block;
margin-bottom: 8px;
}
body.login #loginform input[type="text"], body.login #loginform input[type="password"], body.login-action-register #registerform input[type="text"], body.login-action-register #registerform input[type="password"], body.login #loginform input[type="email"], body.login-action-register #registerform input[type="email"] {
width: 100%;
padding: 14px;
background-color: #1e2029;
border: 1px solid #333;
border-radius: 4px;
color: #e4e4e4;
font-family: 'Raleway', sans-serif;
font-size: 16px;
transition: border-color 0.3s, box-shadow 0.3s;
}
body.login #loginform input[type="text"]:focus, body.login #loginform input[type="password"]:focus, body.login-action-register #registerform input[type="text"]:focus, body.login-action-register #registerform input[type="password"]:focus, body.login-action-register #registerform input[type="email"]:focus {
border-color: #00d4ff;
box-shadow: 0 0 0 2px rgba(0, 212, 255, 0.2);
outline: none;
}
/* "Angemeldet bleiben" Checkbox (nur Login) */
body.login .forgetmenot label, body.login .forgetmenot input[type="checkbox"] {
font-weight: 400;
font-size: 14px;
color: #a0a0a0;
display: flex;
align-items: center;
}
body.login .forgetmenot input[type="checkbox"] {
margin-right: 8px;
}
/* NEU: Stile für die Registrierungsseite */
.auth-title {
text-align: center;
color: #e4e4e4;
margin-bottom: 10px;
}
.auth-subtitle {
text-align: center;
color: #a0a0a0;
margin-bottom: 40px;
}
.login-form-link {
text-align: center;
margin-top: 30px;
}
.login-form-link p {
margin-bottom: 0;
}
.login-form-link a {
color: #00d4ff;
text-decoration: none;
font-weight: 600;
}
.login-form-link a:hover {
color: #fff;
}
.logged-in-message {
text-align: center;
padding: 40px;
background-color: #252830;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.logged-in-message h2 {
margin-top: 0;
color: #00d4ff;
}
.logged-in-message .button {
display: inline-block;
margin: 10px;
padding: 12px 25px;
background-color: #00d4ff;
color: #fff;
text-decoration: none;
border-radius: 4px;
font-weight: 600;
transition: background-color 0.3s;
}
.logged-in-message .button:hover {
background-color: #00a8cc;
}
/* Container für "Angemeldet bleiben" und "Passwort vergessen" (nur Login) */
body.login .login-options-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25px;
}
body.login .login-options-container .forgetmenot,
body.login .login-options-container #nav {
margin: 0;
}
body.login .login-options-container #nav a {
color: #a0a0a0;
text-decoration: none;
font-weight: 400;
font-size: 14px;
transition: color 0.2s;
}
body.login .login-options-container #nav a:hover {
color: #00d4ff;
}
/* Submit-Button (gilt für Login & Registrierung) */
body.login #loginform .submit input[type="submit"], body.login-action-register #registerform .submit input[type="submit"] {
width: 100%;
padding: 14px;
background-color: #00d4ff;
border: none;
border-radius: 4px;
color: #fff;
font-family: 'Raleway', sans-serif;
font-weight: 600;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
body.login #loginform .submit input[type="submit"]:hover, body.login-action-register #registerform .submit input[type="submit"]:hover {
background-color: #00a8cc;
}
/* Anpassungen für kleinere Bildschirme */
@media screen and (max-width: 768px) {
body.login #login-content-wrapper, body.login-action-register #login-content-wrapper {
flex-direction: column;
}
body.login #minecraft-avatar-slider, body.login-action-register #minecraft-avatar-slider {
flex: none;
width: 100%;
padding: 30px;
padding-top: 30px;
}
body.login #minecraft-avatar-slider .avatar-slide, body.login-action-register #minecraft-avatar-slider .avatar-slide {
max-height: 300px;
max-width: 200px;
top: 30px;
}
}
/* Fehlermeldungen und Hinweise */
body.login .message, body.login #login_error, body.login-action-register .message, body.login-action-register #login_error {
background-color: rgba(0, 212, 255, 0.1);
border-left: 4px solid #00d4ff;
padding: 15px;
margin-bottom: 20px;
border-radius: 0 4px 4px 0;
color: #e4e4e4;
}
/* =========================================================================
=== STIL FÜR DIE LINKS UNTER DEM ANMELDE-BUTTON ====================
========================================================================= */
body.login .post-login-links, body.login-action-register .post-login-links {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #333;
}
body.login .post-login-links a, body.login-action-register .post-login-links a {
color: #a0a0a0;
text-decoration: none;
font-size: 14px;
transition: color 0.2s ease;
}
body.login .post-login-links a:hover, body.login-action-register .post-login-links a:hover {
color: #00d4ff;
}
@@ -0,0 +1,167 @@
/*
* Verwaltungsseite "Menü-Links" (Backend)
*/
.mm-menu-links-admin .mm-liste {
max-width: 1200px;
}
/* --- Zeilen --- */
.mm-menu-links-admin .mm-liste-zeile {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 12px;
padding: 14px;
margin-bottom: 10px;
border: 1px solid #dcdcde;
border-left: 4px solid #c3c4c7;
border-radius: 5px;
background: #fff;
}
.mm-menu-links-admin .mm-liste-zeile:hover {
border-left-color: #2271b1;
}
/* --- Symbolvorschau --- */
.mm-menu-links-admin .mm-vorschau {
flex: 0 0 auto;
width: 30px;
height: 30px;
font-size: 22px;
line-height: 30px;
text-align: center;
color: #50575e;
background: #f0f0f1;
border-radius: 4px;
margin-bottom: 2px;
}
/* --- Felder --- */
.mm-menu-links-admin .mm-spalte {
display: flex;
flex-direction: column;
gap: 4px;
flex: 1 1 150px;
min-width: 0;
}
.mm-menu-links-admin .mm-spalte-breit { flex: 2 1 240px; }
.mm-menu-links-admin .mm-spalte-schmal { flex: 0 0 110px; }
.mm-menu-links-admin .mm-spalte > span {
font-size: 12px;
font-weight: 600;
color: #50575e;
}
.mm-menu-links-admin .mm-spalte input[type="text"],
.mm-menu-links-admin .mm-spalte select {
width: 100%;
box-sizing: border-box;
}
.mm-menu-links-admin .mm-checkbox {
align-items: flex-start;
}
.mm-menu-links-admin .mm-checkbox input {
margin: 6px 0 0;
}
/* --- Entfernen --- */
.mm-menu-links-admin .mm-liste-entfernen {
flex: 0 0 auto;
padding: 0;
margin-bottom: 6px;
color: #b32d2e;
background: none;
border: none;
line-height: 1;
cursor: pointer;
}
.mm-menu-links-admin .mm-liste-entfernen:hover,
.mm-menu-links-admin .mm-liste-entfernen:focus {
color: #8a2424;
}
.mm-menu-links-admin .mm-liste-entfernen .dashicons {
width: 20px;
height: 20px;
font-size: 20px;
}
/* --- Hinzufügen-Knopf: "+" sauber auf der Textlinie --- */
.mm-menu-links-admin .mm-liste-hinzufuegen {
display: inline-flex !important;
align-items: center;
gap: 7px;
}
.mm-menu-links-admin .mm-liste-hinzufuegen .mm-plus {
display: inline-block;
font-size: 16px;
font-weight: 600;
line-height: 1;
transform: translateY(-1px);
}
/* --- Hinweis bei leerer Liste --- */
.mm-menu-links-admin .mm-leer {
padding: 16px;
border: 1px dashed #c3c4c7;
border-radius: 5px;
color: #787c82;
font-style: italic;
max-width: 1200px;
}
/* --- Symbolliste --- */
.mm-menu-links-admin .mm-icon-liste {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
max-width: 1200px;
margin: 0;
}
.mm-menu-links-admin .mm-icon-liste li {
display: flex;
align-items: center;
gap: 6px;
padding: 6px 10px;
background: #fff;
border: 1px solid #dcdcde;
border-radius: 4px;
margin: 0;
}
.mm-menu-links-admin .mm-icon-liste code {
cursor: pointer;
background: #f0f0f1;
}
.mm-menu-links-admin .mm-icon-liste code:hover {
background: #dbe8f5;
}
.mm-menu-links-admin .mm-icon-name {
color: #787c82;
font-size: 12px;
}
/* --- Schmale Bildschirme --- */
@media (max-width: 782px) {
.mm-menu-links-admin .mm-liste-zeile {
flex-direction: column;
align-items: stretch;
}
.mm-menu-links-admin .mm-spalte-schmal { flex: 1 1 auto; }
.mm-menu-links-admin .mm-liste-entfernen {
align-self: flex-end;
}
}
File diff suppressed because one or more lines are too long
+138 -138
View File
@@ -1,139 +1,139 @@
/* Modernes Design für Virtuellen Assistenten (unten rechts) */
/* Positionierung wird jetzt dynamisch über die Klasse mm-bot-pos-* am #mm-bot-root gesetzt */
#mm-assistant-btn {
background: transparent;
border: none;
cursor: pointer;
box-shadow: 0 2px 8px rgba(0,0,0,0.18);
border-radius: 16px;
padding: 0;
transition: box-shadow 0.2s;
}
#mm-assistant-btn:hover {
box-shadow: 0 4px 16px rgba(0,153,255,0.25);
}
#mm-assistant-btn img {
display: block;
background: #181c22;
border-radius: 16px;
width: 70px;
height: 70px;
box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
#mm-assistant-chat {
display: none;
position: absolute;
bottom: 110px;
right: 0;
width: 340px;
max-width: 95vw;
background: #23272e;
color: #fff;
border-radius: 18px;
box-shadow: 0 8px 32px rgba(0,0,0,0.35);
padding: 0;
overflow: hidden;
animation: mmFadeIn 0.25s;
}
@keyframes mmFadeIn {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
#mm-assistant-chat > div:first-child {
background: #0099ff;
color: #fff;
font-weight: 600;
font-size: 1.1rem;
padding: 14px 18px 10px 18px;
border-bottom: 1px solid #1a1d22;
border-radius: 18px 18px 0 0;
}
#mm-assistant-content {
min-height: 40px;
font-size: 1rem;
padding: 18px 18px 8px 18px;
background: #23272e;
}
#mm-assistant-input {
width: 100%;
padding: 10px 14px;
border-radius: 8px;
border: none;
outline: none;
font-size: 1rem;
background: #1a1d22;
color: #fff;
margin-bottom: 8px;
box-sizing: border-box;
}
#mm-assistant-input::placeholder {
color: #aaa;
}
#mm-assistant-send {
width: 100%;
background: #0099ff;
color: #fff;
font-weight: bold;
border: none;
border-radius: 8px;
padding: 10px 0;
font-size: 1.1rem;
cursor: pointer;
transition: background 0.2s;
}
#mm-assistant-send:hover {
background: #007acc;
}
@media (max-width: 600px) {
#mm-assistant-chat {
width: 98vw;
min-width: 0;
border-radius: 12px;
right: -8px;
}
#mm-virtual-assistant {
right: 8px;
bottom: 8px;
}
}
/* BUG-FIX: Doppelter #mm-assistant-chat Block und veraltete Chat-Stile entfernt.
Die Regeln .chat-header, .status-dot, .chat-input-area sind Relikte des alten
Widget-Designs und werden vom aktuellen mm-bot-* Markup nicht mehr verwendet.
Sie wurden entfernt um Konflikte mit den modernen Stilen oben zu vermeiden. */
#mm-bot-root { position:fixed; bottom:30px; right:30px; z-index:999999; font-family:-apple-system,system-ui,sans-serif; }
#mm-bot-launcher { background:#0099ff; border:none; border-radius:50%; width:60px; height:60px; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.25); transition:.3s ease; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#mm-bot-launcher:hover { transform:scale(1.08); background:#0088ee; }
#mm-bot-launcher img { width:42px; height:42px; border-radius:4px; }
#mm-bot-chat { position:absolute; bottom:80px; right:0; width:340px; background:#1e2124; border-radius:15px; box-shadow:0 12px 40px rgba(0,0,0,.45); display:flex; flex-direction:column; overflow:hidden; border:1px solid #333; }
.mm-bot-header { background:#2f3136; color:#fff; padding:14px 18px; display:flex; align-items:center; gap:12px; font-weight:700; border-bottom:1px solid #111; }
.mm-bot-status { width:10px; height:10px; background:#43b581; border-radius:50%; box-shadow:0 0 8px #43b581; flex-shrink:0; }
#mm-bot-content { height:320px; padding:16px; overflow-y:auto; background:#36393f; display:flex; flex-direction:column; gap:10px; scroll-behavior:smooth; }
.mm-msg { padding:10px 14px; border-radius:12px; font-size:14px; line-height:1.5; max-width:88%; word-break:break-word; }
.mm-msg.bot { background:#40444b; color:#dcddde; align-self:flex-start; border-bottom-left-radius:3px; }
.mm-msg.user { background:#0099ff; color:#fff; align-self:flex-end; border-bottom-right-radius:3px; }
.mm-msg a { color:#00b0f4; text-decoration:none; font-weight:600; }
.mm-msg a:hover { text-decoration:underline; }
.mm-loading { opacity:.6; font-size:20px; letter-spacing:4px; }
.mm-bot-quick { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.mm-quick-btn { background:#2f3136; color:#dcddde; border:1px solid #444; border-radius:20px; padding:5px 12px; font-size:12px; cursor:pointer; transition:.2s; white-space:nowrap; }
.mm-quick-btn:hover { background:#0099ff; color:#fff; border-color:#0099ff; }
.mm-bot-input-area { padding:12px 14px; background:#2f3136; display:flex; gap:8px; border-top:1px solid #222; }
#mm-bot-field { flex:1; background:#40444b; border:1px solid #222; border-radius:8px; color:#fff; padding:9px 12px; outline:none; font-size:14px; }
#mm-bot-field:focus { border-color:#0099ff; }
/* BUG-FIX: ID war '#id-mm-bot-send', korrektes HTML-Element hat id="mm-bot-send" */
#mm-bot-send { background:#0099ff; border:none; color:#fff; border-radius:8px; padding:0 16px; cursor:pointer; font-size:16px; }
#mm-bot-send:hover { background:#00b0f4; }
#mm-bot-close { margin-left:auto; background:none; border:none; color:#888; font-size:24px; cursor:pointer; line-height:1; padding:0; }
#mm-bot-close:hover { color:#fff; }
#mm-bot-chat code { background:#222; padding:2px 6px; border-radius:4px; color:#ffa500; font-family:monospace; font-size:13px; }
@media (max-width:400px) {
#mm-bot-chat { width:calc(100vw - 20px); right:-10px; }
/* Modernes Design für Virtuellen Assistenten (unten rechts) */
/* Positionierung wird jetzt dynamisch über die Klasse mm-bot-pos-* am #mm-bot-root gesetzt */
#mm-assistant-btn {
background: transparent;
border: none;
cursor: pointer;
box-shadow: 0 2px 8px rgba(0,0,0,0.18);
border-radius: 16px;
padding: 0;
transition: box-shadow 0.2s;
}
#mm-assistant-btn:hover {
box-shadow: 0 4px 16px rgba(0,153,255,0.25);
}
#mm-assistant-btn img {
display: block;
background: #181c22;
border-radius: 16px;
width: 70px;
height: 70px;
box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
#mm-assistant-chat {
display: none;
position: absolute;
bottom: 110px;
right: 0;
width: 340px;
max-width: 95vw;
background: #23272e;
color: #fff;
border-radius: 18px;
box-shadow: 0 8px 32px rgba(0,0,0,0.35);
padding: 0;
overflow: hidden;
animation: mmFadeIn 0.25s;
}
@keyframes mmFadeIn {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
#mm-assistant-chat > div:first-child {
background: #0099ff;
color: #fff;
font-weight: 600;
font-size: 1.1rem;
padding: 14px 18px 10px 18px;
border-bottom: 1px solid #1a1d22;
border-radius: 18px 18px 0 0;
}
#mm-assistant-content {
min-height: 40px;
font-size: 1rem;
padding: 18px 18px 8px 18px;
background: #23272e;
}
#mm-assistant-input {
width: 100%;
padding: 10px 14px;
border-radius: 8px;
border: none;
outline: none;
font-size: 1rem;
background: #1a1d22;
color: #fff;
margin-bottom: 8px;
box-sizing: border-box;
}
#mm-assistant-input::placeholder {
color: #aaa;
}
#mm-assistant-send {
width: 100%;
background: #0099ff;
color: #fff;
font-weight: bold;
border: none;
border-radius: 8px;
padding: 10px 0;
font-size: 1.1rem;
cursor: pointer;
transition: background 0.2s;
}
#mm-assistant-send:hover {
background: #007acc;
}
@media (max-width: 600px) {
#mm-assistant-chat {
width: 98vw;
min-width: 0;
border-radius: 12px;
right: -8px;
}
#mm-virtual-assistant {
right: 8px;
bottom: 8px;
}
}
/* BUG-FIX: Doppelter #mm-assistant-chat Block und veraltete Chat-Stile entfernt.
Die Regeln .chat-header, .status-dot, .chat-input-area sind Relikte des alten
Widget-Designs und werden vom aktuellen mm-bot-* Markup nicht mehr verwendet.
Sie wurden entfernt um Konflikte mit den modernen Stilen oben zu vermeiden. */
#mm-bot-root { position:fixed; bottom:30px; right:30px; z-index:999999; font-family:-apple-system,system-ui,sans-serif; }
#mm-bot-launcher { background:#0099ff; border:none; border-radius:50%; width:60px; height:60px; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.25); transition:.3s ease; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#mm-bot-launcher:hover { transform:scale(1.08); background:#0088ee; }
#mm-bot-launcher img { width:42px; height:42px; border-radius:4px; }
#mm-bot-chat { position:absolute; bottom:80px; right:0; width:340px; background:#1e2124; border-radius:15px; box-shadow:0 12px 40px rgba(0,0,0,.45); display:flex; flex-direction:column; overflow:hidden; border:1px solid #333; }
.mm-bot-header { background:#2f3136; color:#fff; padding:14px 18px; display:flex; align-items:center; gap:12px; font-weight:700; border-bottom:1px solid #111; }
.mm-bot-status { width:10px; height:10px; background:#43b581; border-radius:50%; box-shadow:0 0 8px #43b581; flex-shrink:0; }
#mm-bot-content { height:320px; padding:16px; overflow-y:auto; background:#36393f; display:flex; flex-direction:column; gap:10px; scroll-behavior:smooth; }
.mm-msg { padding:10px 14px; border-radius:12px; font-size:14px; line-height:1.5; max-width:88%; word-break:break-word; }
.mm-msg.bot { background:#40444b; color:#dcddde; align-self:flex-start; border-bottom-left-radius:3px; }
.mm-msg.user { background:#0099ff; color:#fff; align-self:flex-end; border-bottom-right-radius:3px; }
.mm-msg a { color:#00b0f4; text-decoration:none; font-weight:600; }
.mm-msg a:hover { text-decoration:underline; }
.mm-loading { opacity:.6; font-size:20px; letter-spacing:4px; }
.mm-bot-quick { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.mm-quick-btn { background:#2f3136; color:#dcddde; border:1px solid #444; border-radius:20px; padding:5px 12px; font-size:12px; cursor:pointer; transition:.2s; white-space:nowrap; }
.mm-quick-btn:hover { background:#0099ff; color:#fff; border-color:#0099ff; }
.mm-bot-input-area { padding:12px 14px; background:#2f3136; display:flex; gap:8px; border-top:1px solid #222; }
#mm-bot-field { flex:1; background:#40444b; border:1px solid #222; border-radius:8px; color:#fff; padding:9px 12px; outline:none; font-size:14px; }
#mm-bot-field:focus { border-color:#0099ff; }
/* BUG-FIX: ID war '#id-mm-bot-send', korrektes HTML-Element hat id="mm-bot-send" */
#mm-bot-send { background:#0099ff; border:none; color:#fff; border-radius:8px; padding:0 16px; cursor:pointer; font-size:16px; }
#mm-bot-send:hover { background:#00b0f4; }
#mm-bot-close { margin-left:auto; background:none; border:none; color:#888; font-size:24px; cursor:pointer; line-height:1; padding:0; }
#mm-bot-close:hover { color:#fff; }
#mm-bot-chat code { background:#222; padding:2px 6px; border-radius:4px; color:#ffa500; font-family:monospace; font-size:13px; }
@media (max-width:400px) {
#mm-bot-chat { width:calc(100vw - 20px); right:-10px; }
}
@@ -0,0 +1,17 @@
/* Alex Brush lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Alex Brush';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('alex-brush-latin-ext-a484545f.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Alex Brush';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('alex-brush-latin-74823526.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,17 @@
/* Allura lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Allura';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('allura-latin-ext-cf553651.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Allura';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('allura-latin-f2f253e0.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,49 @@
/* Archivo lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('archivo-latin-ext-20ba07dc.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('archivo-latin-79dc5e10.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('archivo-latin-ext-20ba07dc.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('archivo-latin-79dc5e10.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('archivo-latin-ext-20ba07dc.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('archivo-latin-79dc5e10.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,9 @@
/* Cookie lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Cookie';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('cookie-latin-cedd2798.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,49 @@
/* Dancing Script lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('dancing-script-latin-ext-438f68b6.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('dancing-script-latin-958aab68.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('dancing-script-latin-ext-438f68b6.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('dancing-script-latin-958aab68.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('dancing-script-latin-ext-438f68b6.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('dancing-script-latin-958aab68.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,49 @@
/* Fira Sans lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('fira-sans-latin-ext-48f6df01.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('fira-sans-latin-28978245.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('fira-sans-latin-ext-e7f40dd9.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('fira-sans-latin-4be51a37.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('fira-sans-latin-ext-ad62430c.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Fira Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('fira-sans-latin-f7b89b6b.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,17 @@
/* Great Vibes lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Great Vibes';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('great-vibes-latin-ext-e5a62ade.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Great Vibes';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('great-vibes-latin-1402a25d.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -0,0 +1,49 @@
/* Inter lokal gehostet (DSGVO). Generiert, nicht manuell bearbeiten. */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('inter-latin-ext-39529051.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('inter-latin-56724408.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('inter-latin-ext-39529051.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('inter-latin-56724408.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('inter-latin-ext-39529051.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('inter-latin-56724408.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+130 -128
View File
@@ -4,13 +4,15 @@ Theme URI: https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme
Author: M_Viper
Description: Ein modernes Gaming-Theme mit konfigurierbarem Header-Slider.
Author URI: https://M-Viper.de
Version: 2.3
Version: 2.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: minecraft-modern-theme
*/
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;600;700&display=swap');
/* Schriften werden lokal aus /fonts/<slug>/font.css geladen (DSGVO: kein Aufruf
von fonts.googleapis.com, keine Übertragung der Besucher-IP an Google).
Eingebunden über mm_enqueue_local_font() in functions.php nicht hier per @import. */
/* === DARK / LIGHT MODE VARIABLEN === */
:root {
@@ -4712,129 +4714,129 @@ html.light-mode .bew-mc-avatar { background: #f0f0f0; }
.bewerbung-container { padding: 28px 18px; }
.bew-grid { grid-template-columns: 1fr; }
.bewerbung-container .page-title { font-size: 1.8rem; }
}
/* ── Bewerbungs-Positionen ── */
.bew-position-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: 12px;
margin-top: 8px;
}
.bew-position-card {
cursor: pointer;
display: block;
}
.bew-position-card input[type="radio"] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
.bew-position-label {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 16px 12px;
border: 2px solid var(--border-color, #30363d);
border-radius: 10px;
background: var(--card-bg, #161b22);
color: var(--text-color, #c9d1d9);
font-weight: 600;
font-size: 14px;
text-align: center;
transition: border-color 0.2s, background 0.2s, color 0.2s, box-shadow 0.2s;
}
.bew-position-label i {
font-size: 22px;
color: var(--primary-accent, #00d4e8);
transition: transform 0.2s;
}
.bew-position-card:hover .bew-position-label {
border-color: var(--primary-accent, #00d4e8);
background: rgba(0, 212, 232, 0.07);
}
.bew-position-card input[type="radio"]:checked + .bew-position-label {
border-color: var(--primary-accent, #00d4e8);
background: rgba(0, 212, 232, 0.12);
color: var(--primary-accent, #00d4e8);
box-shadow: 0 0 0 3px rgba(0, 212, 232, 0.18), 0 4px 16px rgba(0, 212, 232, 0.15);
}
.bew-position-card input[type="radio"]:checked + .bew-position-label i {
transform: scale(1.2);
}
/* Light Mode */
html.light-mode .bew-position-label {
background: #f4f4f4;
border-color: #ddd;
color: #333;
}
html.light-mode .bew-position-card input[type="radio"]:checked + .bew-position-label {
background: rgba(0, 212, 232, 0.1);
color: #007a8c;
}
/* Responsive */
@media (max-width: 500px) {
.bew-position-grid {
grid-template-columns: repeat(2, 1fr);
}
}
/* ══════════════════════════════════════════════════════════════
FIX: Dropdown-Sichtbarkeit im Centered-Layout (Logo oben, Menü darunter)
Das .header-row-nav muss overflow:visible haben damit das Sub-Menu
sichtbar aus dem Header herausragen kann.
══════════════════════════════════════════════════════════════ */
/* Zeilen-Container darf das Dropdown nicht abschneiden */
.site-header--centered,
.site-header--centered .container,
.site-header--classic,
.site-header--classic .container,
.header-row-nav,
.header-centered-nav {
overflow: visible !important;
}
/* Nav-Zeile braucht position:relative als Ankerpunkt für das Dropdown */
.header-row-nav {
position: relative;
}
/* Jedes Menü-Item ist der Ankerpunkt für sein Sub-Menu */
.header-row-nav .menu-item-has-children,
.header-centered-nav .menu-item-has-children,
.site-header--centered .menu-item-has-children,
.site-header--classic .menu-item-has-children {
position: relative;
}
/* Sub-Menu öffnet sich direkt unterhalb des Menüpunkts */
.header-row-nav .sub-menu,
.header-centered-nav .sub-menu,
.site-header--centered .sub-menu,
.site-header--classic .sub-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 99999;
}
/* Hover-State: Dropdown einblenden */
.header-row-nav .menu-item-has-children:hover > .sub-menu,
.header-centered-nav .menu-item-has-children:hover > .sub-menu,
.site-header--centered .menu-item-has-children:hover > .sub-menu,
.site-header--classic .menu-item-has-children:hover > .sub-menu {
opacity: 1;
visibility: visible;
transform: translateY(10px);
}
}
/* ── Bewerbungs-Positionen ── */
.bew-position-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: 12px;
margin-top: 8px;
}
.bew-position-card {
cursor: pointer;
display: block;
}
.bew-position-card input[type="radio"] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
.bew-position-label {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 16px 12px;
border: 2px solid var(--border-color, #30363d);
border-radius: 10px;
background: var(--card-bg, #161b22);
color: var(--text-color, #c9d1d9);
font-weight: 600;
font-size: 14px;
text-align: center;
transition: border-color 0.2s, background 0.2s, color 0.2s, box-shadow 0.2s;
}
.bew-position-label i {
font-size: 22px;
color: var(--primary-accent, #00d4e8);
transition: transform 0.2s;
}
.bew-position-card:hover .bew-position-label {
border-color: var(--primary-accent, #00d4e8);
background: rgba(0, 212, 232, 0.07);
}
.bew-position-card input[type="radio"]:checked + .bew-position-label {
border-color: var(--primary-accent, #00d4e8);
background: rgba(0, 212, 232, 0.12);
color: var(--primary-accent, #00d4e8);
box-shadow: 0 0 0 3px rgba(0, 212, 232, 0.18), 0 4px 16px rgba(0, 212, 232, 0.15);
}
.bew-position-card input[type="radio"]:checked + .bew-position-label i {
transform: scale(1.2);
}
/* Light Mode */
html.light-mode .bew-position-label {
background: #f4f4f4;
border-color: #ddd;
color: #333;
}
html.light-mode .bew-position-card input[type="radio"]:checked + .bew-position-label {
background: rgba(0, 212, 232, 0.1);
color: #007a8c;
}
/* Responsive */
@media (max-width: 500px) {
.bew-position-grid {
grid-template-columns: repeat(2, 1fr);
}
}
/* ══════════════════════════════════════════════════════════════
FIX: Dropdown-Sichtbarkeit im Centered-Layout (Logo oben, Menü darunter)
Das .header-row-nav muss overflow:visible haben damit das Sub-Menu
sichtbar aus dem Header herausragen kann.
══════════════════════════════════════════════════════════════ */
/* Zeilen-Container darf das Dropdown nicht abschneiden */
.site-header--centered,
.site-header--centered .container,
.site-header--classic,
.site-header--classic .container,
.header-row-nav,
.header-centered-nav {
overflow: visible !important;
}
/* Nav-Zeile braucht position:relative als Ankerpunkt für das Dropdown */
.header-row-nav {
position: relative;
}
/* Jedes Menü-Item ist der Ankerpunkt für sein Sub-Menu */
.header-row-nav .menu-item-has-children,
.header-centered-nav .menu-item-has-children,
.site-header--centered .menu-item-has-children,
.site-header--classic .menu-item-has-children {
position: relative;
}
/* Sub-Menu öffnet sich direkt unterhalb des Menüpunkts */
.header-row-nav .sub-menu,
.header-centered-nav .sub-menu,
.site-header--centered .sub-menu,
.site-header--classic .sub-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 99999;
}
/* Hover-State: Dropdown einblenden */
.header-row-nav .menu-item-has-children:hover > .sub-menu,
.header-centered-nav .menu-item-has-children:hover > .sub-menu,
.site-header--centered .menu-item-has-children:hover > .sub-menu,
.site-header--classic .menu-item-has-children:hover > .sub-menu {
opacity: 1;
visibility: visible;
transform: translateY(10px);
}
+5
View File
@@ -7,6 +7,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== YouTube API Key Test ===\n\n";
// Hole API Key aus Customizer
+5
View File
@@ -6,6 +6,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Test API-basiertes Livestream-System ===\n\n";
// 1. Check Customizer Settings
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Testing Direct Stream URL ===\n\n";
$profile_url = 'https://www.youtube.com/@NashvilleBirdCam';
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Testing YouTube Video ID Extraction ===\n\n";
$url = 'https://www.youtube.com/@NashvilleBirdCam/streams';
+5
View File
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Debug: Livestream Filtering ===\n\n";
$args = array(
+5
View File
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
$urls = array(
'https://www.youtube.com/@NashvilleBirdCam/live',
'https://www.youtube.com/channel/UClOWy1mPxNB1D3cpmmxqGEg/live',
+5
View File
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Testing Livestream Rendering ===\n\n";
// Query für Videos mit Livestream
+5
View File
@@ -7,6 +7,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
$video_id = 'kWRhLLbLFE0';
echo "=== Testing Video ID: $video_id ===\n\n";
+5
View File
@@ -2,6 +2,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
echo "=== Testing YouTube Livestream Data ===\n\n";
$profile_url = 'https://www.youtube.com/@NashvilleBirdCam';
@@ -6,6 +6,11 @@
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
if ( php_sapi_name() !== 'cli' && ! current_user_can( 'manage_options' ) ) {
http_response_code( 403 );
exit( 'Forbidden: Admin-Login erforderlich.' );
}
$video_url = 'https://www.youtube.com/watch?v=kWRhLLbLFE0';
$post_id = 17512; // DreamTripspk Post ID