/* ============================================================================
   mam-jahn v2 im Kern – Ausgleich fuer das, was in WHMCS von nexus bzw. Font Awesome Pro kam.
   Reihenfolge im Kopf: css/zwicky.css → Bootstrap 4.6 → Font Awesome 6 Free → v2/css/{site,custom}.css → diese Datei.
   v2/ selbst wird nur von ops/sync-mamjahn-design.py geschrieben – Anpassungen gehoeren hierher (oder nach dev-v2).
   ========================================================================== */

/* Font Awesome: v2 nennt teils "Font Awesome 6 Pro" bzw. "MJ Icons" (Zuschnitt in WHMCS) – auf die freien Schriften lenken */
@font-face { font-family: 'Font Awesome 6 Pro'; font-weight: 900; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-solid-900.woff2') format('woff2'); }
@font-face { font-family: 'Font Awesome 6 Pro'; font-weight: 400; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-regular-400.woff2') format('woff2'); }
@font-face { font-family: 'Font Awesome 6 Pro'; font-weight: 300; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-regular-400.woff2') format('woff2'); }
@font-face { font-family: 'MJ Icons'; font-weight: 900; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-solid-900.woff2') format('woff2'); }
@font-face { font-family: 'MJ Icons'; font-weight: 400; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-regular-400.woff2') format('woff2'); }
@font-face { font-family: 'MJ Brands'; font-weight: 400; font-display: block; src: url('/vendor/fontawesome-free-6.7.2/webfonts/fa-brands-400.woff2') format('woff2'); }

/* Symbole, die es nur in Pro gibt: naechstes freies Symbol */
.fa-file-minus { --fa: "\e4ed"; }          /* file-circle-minus */
.fa-shield-check { --fa: "\f3ed"; }        /* shield-halved */
.fa-wave-pulse { --fa: "\f21e"; }          /* heart-pulse */
/* "regular" gibt es frei nur fuer wenige Symbole – fehlende in solid zeigen */
.far.fa-shopping-cart, .far.fa-file-minus { font-weight: 900; }

/* Kern-Bausteine im Inhalt (zwicky.css: Formulare, Karten, Tabellen der Seiten, die noch nicht nach v2 umgezogen
   sind) in mam-jahn-Farben und -Schrift – Werte aus dev-v2 build/partials/00-tokens.css */
:root {
    --surface: #09090b; --surface-2: #0f0f12; --surface-3: #18181b;
    --text: #fafafa; --text-2: #d4d4d8; --muted: #a1a1aa; --dim: #8b8b96;
    --accent: #3b82f6; --accent-2: #60a5fa; --accent-ink: #09090b; --accent-rgb: 59, 130, 246; --accent-soft: rgba(59, 130, 246, .14);
    --sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
}

/* Kleinigkeiten aus nexus, auf die v2 baut */
.w-hidden { display: none !important; }

/* Kern: Hinweis "Testbetrieb" im v2-Rahmen */
.mj-core-test { margin: 0 0 18px; padding: 12px 16px; border-radius: 12px; background: rgba(245, 158, 11, .12); color: #fde68a; font-size: .875rem; }
.mj-core-test b { color: #fff; }
/* Probebetrieb (App\Support\Probe): deutlicher als der Testbetrieb */
.mj-core-probe { background: rgba(239, 68, 68, .16); color: #fecaca; }
.mj-core-probe a { color: #fff; text-decoration: underline; }

/* Kern-Seiten (Verwaltung u. a. aus resources/views) im Konsolen-Inhalt: Bootstrap 4 kommt nach zwicky.css und
   ueberschreibt dessen Bausteine – hier zurueckholen, nur in .mjc-content (Website und v2-Seiten unberuehrt).
   :where() haelt die Spezifitaet niedrig, damit Varianten (.btn-primary …) weiter greifen. */
/* .row ist im Kern eine Flex-Zeile, kein Bootstrap-Raster (-15px Rand liess Ueberschriften/Knoepfe links ueberstehen) */
:where(.mjc-content) .row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-left: 0; margin-right: 0; }
/* Knopf ohne Farbvariante: bei Bootstrap #212529 auf Schwarz (unsichtbar) – Kern-Grundknopf */
:where(.mjc-content) .btn:not(.btn-primary, .btn-danger, .btn-success, .btn-warning, .btn-info, .btn-link, .btn-default,
    .btn-secondary, .btn-light, .btn-dark, .btn-ghost, [class*="btn-outline"]) {
    background: var(--surface-3); border: 0; color: var(--text);
}
:where(.mjc-content) .btn:not(.btn-primary, .btn-danger, .btn-success, .btn-warning, .btn-info, .btn-link, .btn-default,
    .btn-secondary, .btn-light, .btn-dark, .btn-ghost, [class*="btn-outline"]):hover { background: #27272a; color: var(--text); }
:where(.mjc-content) .btn-ghost { background: transparent; border: 0; color: var(--text-2); }
:where(.mjc-content) .btn-ghost:hover { background: var(--surface-3); color: var(--text); }
/* Umschalter (.seg, z. B. Live/Test bei Zahlungen): gewaehlte Beschriftung sonst grau auf Blau */
.mjc-content .seg label:has(input:checked) { color: #fff; }

/* === Kern Etappe C: Dienste mit Laufzeit (resources/brands/mamjahn/views/services) – Ergaenzung zu v2 === */
.mjc-svc-back { margin: 0 0 18px -10px; }
.mjc-svc-alert { margin-top: 12px; background: rgba(239, 68, 68, .10); }
.mjc-app .mjc-svc-alert h3 { color: #fca5a5; }
.mjc-svc-alert p { max-width: 70ch; margin: 0; color: var(--mj-text-2); font-size: 14px; line-height: 1.6; }
.mjc-svc-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.mjc-svc-acts form { margin: 0; }
.mjc-svc-acts .mjc-btn[disabled] { opacity: .4; cursor: not-allowed; }
.mjc-svc-auto { margin-top: 22px; }
.mjc-svc-auto .mjc-muted b { color: var(--mj-text); }
.mjc-row .is-end small { color: var(--mj-muted-2); }
/* === Ende Etappe C Dienste === */

/* === Kern Etappe H: Tickets (resources/brands/mamjahn/views/tickets) – Ergaenzung zu v2 === */
.mjc-tk-lead { max-width: 70ch; margin-top: 8px; }
.mjc-tk-acts { margin-top: 18px; }
.mjc-tk-row.is-open { --lc: var(--mj-warn, #f59e0b); }
.mjc-tk-row.is-answered { --lc: var(--mj-ok, #22c55e); }
.mjc-tk-row.is-waiting { --lc: var(--mj-brand); }
.mjc-tk-row.is-closed { --lc: var(--mj-line-strong); opacity: .75; }
.mjc-tk-st.is-open { color: #fcd34d; }
.mjc-tk-st.is-answered { color: var(--mj-ok, #22c55e); }
.mjc-tk-st.is-waiting { color: var(--mj-brand-light); font-weight: 700; }
.mjc-tk-st.is-closed { color: var(--mj-muted-2); }
.mjc-tk-notice { margin-bottom: 16px; }
.mjc-app .mjc-tk-h2, .mjc-tk-guest .mjc-tk-h2 { margin: 0 0 14px; font-size: 15px; font-weight: 700; letter-spacing: 0; }
.mjc-tk-file { height: auto; padding: 9px 12px; }
.mjc-tk-sys { align-self: center; padding: 4px 12px; border-radius: 999px; background: var(--mj-surface); color: var(--mj-muted-2); font: 11.5px var(--mj-mono); }
.mjc-tk-sys span { color: var(--mj-text-2); }
.mj-msg-text { overflow-wrap: anywhere; }
.mj-msg-files .mj-file small { margin-left: 4px; color: var(--mj-muted-2); }
.mjc-tk-hours, .mjc-tk-tips { margin-top: 18px; padding: 14px 16px; border-radius: 12px; background: var(--mj-surface-2); font-size: 13px; line-height: 1.55; }
.mjc-tk-hours b, .mjc-tk-tips b { display: block; margin-bottom: 4px; color: var(--mj-text); }
.mjc-tk-hours span, .mjc-tk-tips li { color: var(--mj-text-2); }
.mjc-tk-tips ul { margin: 6px 0 0; padding-left: 18px; }
.mjc-tk-rate { margin-bottom: 18px; }
.mjc-tk-rate .mj-rate-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.mjc-tk-guest { margin-top: 28px; }
/* === Ende Etappe H Tickets === */

/* === Kern Etappe D: Bestellung (resources/brands/mamjahn/views/orders) – Ergaenzung zu v2 === */
label.mj-pp-choice { margin: 0; font-weight: inherit; }
label.mj-pp-choice[hidden] { display: none !important; }
.mj-pp-choice:focus-within { outline: 2px solid var(--mj-brand, #3b82f6); outline-offset: 2px; }
.mj-pp-qty input[type="number"] { max-width: 120px; }
.mj-host-block .mj-ord-label { max-width: 420px; }
.mj-nc-note.mj-ord-err { color: #fca5a5; }
.mj-ord-pay { margin: 8px 0 18px; }
.mj-ord-more { margin: 8px 0 0; font-size: 13.5px; color: var(--mj-text-2, #d4d4d8); }
.mj-ord-more summary { cursor: pointer; color: var(--mj-brand-light, #60a5fa); }
.mj-ord-more p { margin: 8px 0 0; line-height: 1.6; }
/* === Ende Etappe D === */

/* === Kern Etappe G1: Uebersicht, Dienste-Liste/-Detail, Server-Seite (resources/brands/mamjahn/views/{dashboard,services,servers}) === */
@keyframes mjcG1In { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.mjc-tiles .mjc-tile, .mjc-g1-srv .mjp-gauge, .mjc-stats .mjc-stat { animation: mjcG1In .45s cubic-bezier(.2, .7, .2, 1) both; }
.mjc-stats-row .mjc-stat:nth-child(2) { animation-delay: .05s; }
.mjc-stats-row .mjc-stat:nth-child(3) { animation-delay: .1s; }
.mjc-g1-srv .mjp-gauge:nth-child(2) { animation-delay: .05s; }
.mjc-g1-srv .mjp-gauge:nth-child(3) { animation-delay: .1s; }
.mjc-g1-srv .mjp-gauge:nth-child(4) { animation-delay: .15s; }
.mjc-g1-srv .mjp-view.is-on { animation: mjcG1In .3s ease both; }
@media (prefers-reduced-motion: reduce) { .mjc-tiles .mjc-tile, .mjc-g1-srv .mjp-gauge, .mjc-stats .mjc-stat, .mjc-g1-srv .mjp-view.is-on { animation: none; } }
.mj-calm .mjc-tiles .mjc-tile, .mj-calm .mjc-g1-srv .mjp-gauge, .mj-calm .mjc-stats .mjc-stat, .mj-calm .mjc-g1-srv .mjp-view.is-on { animation: none; }
/* Uebersicht */
.mjc-g1-sub { margin-top: 36px; }
.mjc-g1-inv { grid-template-columns: 4px minmax(0, 1fr) auto auto 20px; }
.mjc-g1-kv { display: grid; gap: 8px; margin: 0; }
.mjc-g1-kv > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; }
.mjc-g1-kv dt { color: var(--mj-muted-2); font-weight: 400; }
.mjc-g1-kv dd { margin: 0; color: var(--mj-text); text-align: right; }
.mjc-g1-kv dd small { color: var(--mj-muted-2); }
.mjc-g1-kv .is-danger dd, .mjc-g1-kv .is-danger dt { color: #fca5a5; }
/* Dienste-Liste: Werkzeugleiste mit Filtern und Suche */
.mjc-g1-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 16px; }
.mjc-g1-tools .mjc-chips { margin: 0; }
.mjc-g1-search { min-width: 220px; padding: 9px 14px; border: 0; border-radius: 10px; background: var(--mj-surface); color: var(--mj-text); font: 13px var(--mj-mono); }
.mjc-g1-search:focus { outline: 2px solid var(--mj-brand); outline-offset: 1px; }
.mjc-g1-alert { margin: 0 0 18px; }
.mjc-g1-alert a { color: #fecaca; text-decoration: underline; }
.mjc-row[hidden] { display: none !important; }
/* Dienst: Technik & Hilfe */
.mjc-g1-tech { margin-bottom: 18px; }
.mjc-g1-tech .mjc-svc-acts { margin-top: 0; }
.mjc-g1-tech .mjc-note b { color: var(--mj-text); }
/* Server-Seite */
.mjc-g1-srv .mjp-power form { margin: 0; display: inline-flex; }
.mjc-g1-srv .mjp-power .mjc-btn[disabled] { opacity: .4; cursor: not-allowed; }
.mjc-g1-srv .mjp-view[hidden] { display: none !important; }
.mjc-g1-srv .mjp-tabs { margin-top: 22px; }
.mjc-g1-prog { display: grid; gap: 6px; }
.mjc-g1-err { color: #fca5a5; font-size: 13.5px; }
.mjc-g1-err a { color: #fecaca; text-decoration: underline; }
.mjc-g1-pw { margin-top: 16px; background: rgba(245, 158, 11, .10); }
.mjc-g1-pw code { font: 17px var(--mj-mono); color: var(--mj-text); }
.mjc-g1-os { font-size: 18px !important; line-height: 1.3; }
.mjc-g1-ov { margin-top: 16px; }
.mjc-g1-quick { margin-top: 16px; }
.mjc-g1-job { grid-template-columns: 4px minmax(0, 1fr) auto auto; }
.mjc-g1-job.is-err { --lc: #ef4444; }
.mjc-g1-job.is-busy { --lc: #f59e0b; }
/* Huelle fuer die Kern-Bausteine (servers.extras.*, zwicky.css-Karten) im v2-Look: Flaechen statt Linien */
.mjc-g1-x .card { padding: 20px 22px; border: 0; border-radius: 16px; background: var(--mj-surface); box-shadow: none; }
.mjc-g1-x .card + .card, .mjc-g1-x .grid-2 + .card, .mjc-g1-x .card + .grid-2 { margin-top: 16px; }
.mjc-g1-x h2 { margin: 0; font-size: 15px; font-weight: 700; letter-spacing: 0; }
.mjc-g1-x h3 { margin: 0; font-size: 13.5px; font-weight: 700; }
.mjc-g1-x .table, .mjc-g1-x .table th, .mjc-g1-x .table td { border: 0; }
.mjc-g1-x .table tbody tr:nth-child(odd) { background: rgba(255, 255, 255, .02); }
.mjc-g1-x .table th { color: var(--mj-muted-2); font: 11px var(--mj-mono); text-transform: uppercase; letter-spacing: .06em; }
.mjc-g1-x .muted { color: var(--mj-muted-2); }
@media (max-width: 760px) { .mjc-g1-x .grid-2, .mjc-g1-ov { grid-template-columns: minmax(0, 1fr); } }
/* === Ende Etappe G1 === */

/* === Kern Etappe G2: Kontodaten, Kontakte, Benutzer/Rechte, E-Mail-Verlauf, Sicherheit (resources/brands/mamjahn/views/account) === */
.mjc-acc-lead { max-width: 74ch; margin-top: 8px; }
.mjc-acc-lead a, .mjc-content .mj-note a { color: var(--mj-brand-light); }
.mjc-acc-note { margin-top: 22px; }
.mjc-verify { flex-wrap: wrap; }
.mjc-verify .mjc-ic { flex: 0 0 auto; width: 20px; height: 20px; color: var(--mj-warn); }
.mjc-verify form { margin: 0; }
.mjc-opt { margin-left: 4px; color: var(--mj-muted-2); font: 400 11px var(--mj-mono); text-transform: none; letter-spacing: 0; }
.mjc-mono-in { font-family: var(--mj-mono); letter-spacing: .02em; }
.mjc-app .mj-card h2 .mjc-ic { width: 18px; height: 18px; margin-right: 4px; vertical-align: -3px; color: var(--mj-brand); }
.mjc-app .mj-card h2 .mj-tag { margin-left: 8px; vertical-align: 2px; }
.mjc-acc-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; margin: 0 0 14px; font-size: 13.5px; }
.mjc-acc-dl dt { color: var(--mj-muted-2); font: 500 11px var(--mj-mono); letter-spacing: .06em; text-transform: uppercase; align-self: center; }
.mjc-acc-dl dd { margin: 0; color: var(--mj-text); overflow-wrap: anywhere; }
.mjc-acc-who { margin: 0 0 14px; padding: 0; list-style: none; display: grid; gap: 10px; font-size: 13px; }
.mjc-acc-who li { display: grid; gap: 2px; }
.mjc-acc-who b { color: var(--mj-text); overflow-wrap: anywhere; }
.mjc-acc-who span { color: var(--mj-muted-2); }
.mjc-acc-item { animation: mjcAccIn .35s ease both; }
@keyframes mjcAccIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mjc-acc-item { animation: none; } }
.mjc-acc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mjc-acc-perm { display: block; margin-top: 6px; color: var(--mj-text-2); font: 12px var(--mj-mono); }
.mjc-acc-role { width: auto; min-width: 140px; height: 38px; padding-top: 6px; padding-bottom: 6px; }
.mjc-content .mj-user-actions form { margin: 0; }
.mjc-acc-foot { margin-top: 16px; max-width: 80ch; }
.mjc-acc-err { color: #fca5a5 !important; }
.mjc-acc-wide { width: 100%; justify-content: center; margin-top: 8px; }
.mjc-acc-danger { max-width: 640px; }
.mjc-content .mj-perm .mj-checks { margin-bottom: 14px; }
.mjc-content .mj-perm .mj-perm-list { padding-left: 4px; }
.mjc-content .mj-perm [hidden] { display: none !important; }
.mjc-acc-filter { align-items: center; margin-top: 22px; }
.mjc-acc-filter a { padding: 7px 13px; border-radius: 999px; background: var(--mj-surface); color: var(--mj-muted); font-size: 13px; font-weight: 500; text-decoration: none; transition: background .15s, color .15s; }
.mjc-acc-filter a:hover { color: var(--mj-text); }
.mjc-acc-filter a[aria-pressed=true] { background: var(--mj-text); color: #000; }
.mjc-acc-q { width: 220px; max-width: 100%; height: 34px; margin-left: auto; border-radius: 999px; }
.mjc-mail-row { --lc: var(--mj-line-strong); }
.mjc-mail-row.is-billing { --lc: var(--mj-warn); }
.mjc-mail-row.is-tech { --lc: var(--mj-ok); }
.mjc-mail-row.is-tickets { --lc: var(--mj-brand); }
.mjc-mail-row.is-account { --lc: var(--mj-acc-care, #6366f1); }
.mjc-mail-h1 { font-size: clamp(1.6rem, 2.6vw, 2.3rem); overflow-wrap: anywhere; }
.mjc-mail-meta { margin-bottom: 18px; }
.mjc-mail-body { margin: 0 0 16px; padding: 18px 20px; border-radius: 12px; background: var(--mj-surface); color: var(--mj-text-2); font: 13px/1.65 var(--mj-mono); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 70vh; overflow: auto; }
.mjc-acc-codes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: 12px; }
.mjc-acc-codes span { padding: 8px 12px; border-radius: 10px; background: var(--mj-surface); color: var(--mj-text); font: 13px var(--mj-mono); text-align: center; }
.mjc-acc-2fa { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; margin-top: 18px; }
.mjc-acc-qr { padding: 12px; border-radius: 14px; background: #fff; line-height: 0; }
.mjc-acc-qr svg { width: 180px; height: 180px; }
.mjc-acc-2fa form { flex: 1 1 260px; }
.mjc-acc-more { margin-top: 12px; color: var(--mj-muted-2); font-size: 13px; }
.mjc-acc-more summary { cursor: pointer; color: var(--mj-brand-light); }
.mjc-acc-more p { margin: 8px 0 0; word-break: break-all; }
.mjc-acc-pk { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-radius: 12px; background: var(--mj-surface); }
.mjc-acc-pk b { display: block; color: var(--mj-text); }
.mjc-acc-pk small { display: block; margin-top: 2px; color: var(--mj-muted-2); font-size: 11.5px; }
.mjc-acc-pk form { margin: 0; }
.mjc-acc-pkadd { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.mjc-acc-pkadd .form-control { flex: 1 1 260px; width: auto; }
.mjc-verify-acts { margin-top: 6px; }
.mjc-verify-fix { margin-top: 18px; font-size: 14px; }
.mjc-verify-fix summary { cursor: pointer; color: var(--mj-brand-light, #60a5fa); }
.mjc-verify-fix form { margin-top: 12px; }
.mjc-verify-look { margin-top: 18px; }
.mjc-verify-look a { color: var(--mj-brand-light, #60a5fa); }
@media (max-width: 760px) { .mjc-acc-q { margin-left: 0; width: 100%; } }
/* === Ende Etappe G2 === */

/* === Kern Etappe G3: Freigaben, Partner, Reseller, Rechnungen/Guthaben/Zahlarten (resources/brands/mamjahn/views/{portal,billing,account}) – Ergaenzung zu v2 === */
.mjc-g3-list { display: grid; gap: 6px; margin-top: 18px; }
.mjc-g3-row { display: grid; grid-template-columns: var(--g3-cols, minmax(180px, 2fr) minmax(120px, 1fr) minmax(100px, 1fr) auto); align-items: center; gap: 10px 18px; padding: 14px 18px; border-radius: 12px; background: var(--mj-surface); color: var(--mj-text); font-size: 13.5px; transition: transform .2s ease, background .2s ease; }
a.mjc-g3-row:hover, a.mjc-g3-row:focus-visible { color: var(--mj-text); transform: translateX(2px); }
.mjc-g3-row.is-head { padding-top: 0; padding-bottom: 0; background: none; color: var(--mj-muted-2); font: 500 11px var(--mj-mono); letter-spacing: .08em; text-transform: uppercase; }
.mjc-g3-row b { font-weight: 650; }
.mjc-g3-row > span > b { display: block; }
.mjc-g3-row small { display: block; margin-top: 3px; color: var(--mj-muted-2); font: 12px var(--mj-mono); }
.mjc-g3-row .is-end { text-align: right; }
.mjc-g3-row .is-pos { color: var(--mj-ok, #22c55e); }
.mjc-g3-row .is-neg, .mjc-af-bal .is-neg { color: #fca5a5; }
.mjc-g3-row .mjc-sw { align-self: stretch; width: 4px; border-radius: 4px; background: var(--mj-brand); }
.mjc-g3-acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.mjc-g3-acts form { margin: 0; }
.mjc-g3-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mjc-g3-tags > span { padding: 3px 10px; border-radius: 999px; background: var(--mj-surface-3); color: var(--mj-text-2); font: 11.5px var(--mj-mono); }
.mjc-g3-tags > .is-ok { background: rgba(34, 197, 94, .12); color: #86efac; }
.mjc-g3-tags > .is-warn { background: rgba(245, 158, 11, .14); color: #fbbf24; }
.mjc-g3-tags > .is-err { background: rgba(239, 68, 68, .14); color: #fca5a5; }
.mjc-g3-tags small { margin: 0; }
.mjc-g3-wait { color: #fbbf24; }
.mjc-g3-badge { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: rgba(59, 130, 246, .16); color: var(--mj-brand-light); font: 600 10.5px var(--mj-mono); letter-spacing: .06em; text-transform: uppercase; vertical-align: middle; }
.mjc-h1 .mjc-g3-badge { font-size: 12px; }
.mjc-g3-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 20px; margin: 4px 0 14px; }
.mjc-g3-checks label { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: var(--mj-text-2); font-size: 14px; font-weight: 400; }
.mjc-g3-checks input { margin-top: 3px; accent-color: var(--mj-brand); }
.mjc-g3-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 4px 24px; max-width: 1100px; }
.mjc-g3-form .is-full { grid-column: 1 / -1; }
.mjc-g3-perm-edit { grid-column: 1 / -1; }
.mjc-g3-perm-edit summary { width: fit-content; color: var(--mj-brand-light); font-size: 13px; cursor: pointer; }
.mjc-g3-perm-edit form { margin-top: 12px; }
.mjc-g3-sub { display: grid; grid-column: 1 / -1; gap: 4px; padding-left: 2px; color: var(--mj-muted); font-size: 13px; }
.mjc-g3-inline { margin: 0; }
.mjc-g3-inline .form-control { max-width: 320px; }
.mjc-g3-empty { margin: 0; color: var(--mj-muted); }
.mjc-g3-pager { margin-top: 14px; }
.mjc-stat.is-warn b { color: #fbbf24; }
.mjc-af-method span small { display: block; margin-top: 2px; color: var(--mj-muted-2); font: 11px var(--mj-mono); }
/* Bewegung: Zeilen nacheinander einblenden; ruhig bei mj-calm und prefers-reduced-motion */
@keyframes mjcG3In { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.mjc-g3-list > .mjc-g3-row:not(.is-head) { animation: mjcG3In .35s ease both; animation-delay: calc(min(var(--i, 0), 20) * 30ms); }
.mj-calm .mjc-g3-list > .mjc-g3-row { animation: none; }
@media (prefers-reduced-motion: reduce) { .mjc-g3-list > .mjc-g3-row { animation: none; } }
@media (max-width: 760px) {
    .mjc-g3-row { grid-template-columns: minmax(0, 1fr) !important; }
    .mjc-g3-row.is-head { display: none; }
    .mjc-g3-row .is-end { text-align: left; }
    .mjc-g3-row .mjc-sw { display: none; }
    .mjc-g3-acts { justify-content: flex-start; }
}
/* === Ende Etappe G3 === */

/* === Kern Tarifwechsel: EINE Seite fuer alle Produkte (resources/brands/mamjahn/views/upgrade/*, Klassen mjc-upg-*) === */
.mjc-upg-lead { max-width: 900px; margin: 6px 0 0; color: var(--mj-text-2); font-size: 15px; line-height: 1.6; }
.mjc-upg-lead b { color: var(--mj-text); }
.mjc-upg-h2 { margin: 34px 0 12px; font: 600 13px var(--mj-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--mj-muted); }
.mjc-upg-now { display: flex; flex-wrap: wrap; gap: 10px 40px; margin: 22px 0 0; }
.mjc-upg-now > div { min-width: 130px; }
.mjc-upg-now dt { margin: 0 0 4px; color: var(--mj-muted-2); font: 500 11px var(--mj-mono); letter-spacing: .08em; text-transform: uppercase; }
.mjc-upg-now dd { margin: 0; color: var(--mj-text); font-size: 16px; font-weight: 600; }
.mjc-upg-now small, .mjc-upg-sum small { margin-left: 4px; color: var(--mj-muted-2); font: 400 12px var(--mj-mono); }
.mjc-upg-open { background: var(--mj-brand-a10, rgba(59, 130, 246, .10)); }
.mjc-upg-open.is-awaiting { background: rgba(245, 158, 11, .10); }
.mjc-upg-open p { color: var(--mj-text-2); line-height: 1.6; }
.mjc-upg-warn, .mjc-note.is-danger { color: #fca5a5; }
.mjc-upg-list { display: grid; gap: 6px; }
.mjc-upg-row { display: grid; grid-template-columns: minmax(200px, 2.2fr) minmax(120px, 1fr) minmax(90px, .8fr) minmax(140px, 1fr) minmax(130px, auto); align-items: center;
    gap: 10px 18px; padding: 16px 18px; border-radius: 12px; background: var(--mj-surface); color: var(--mj-text); font-size: 14px;
    transition: transform .2s ease, background .2s ease; animation: mjcUpgIn .35s ease both; animation-delay: calc(min(var(--i, 0), 20) * 35ms); }
.mjc-upg-row:not(.is-head):hover { transform: translateX(3px); background: var(--mj-surface-2); }
.mjc-upg-row.is-head { padding-top: 0; padding-bottom: 0; background: none; color: var(--mj-muted-2); font: 500 11px var(--mj-mono); letter-spacing: .08em; text-transform: uppercase; animation: none; }
.mjc-upg-row.is-off { opacity: .55; }
.mjc-upg-row small { display: block; margin-top: 3px; color: var(--mj-muted-2); font: 12px var(--mj-mono); }
.mjc-upg-name b { font-weight: 650; }
.mjc-upg-row.is-up .mjc-upg-delta { color: #fbbf24; }
.mjc-upg-row.is-down .mjc-upg-delta { color: var(--mj-ok, #22c55e); }
.mjc-upg-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font: 600 10.5px var(--mj-mono); letter-spacing: .06em; text-transform: uppercase; }
.mjc-upg-tag.is-up { background: var(--mj-brand-a15, rgba(59, 130, 246, .15)); color: var(--mj-brand-light, #60a5fa); }
.mjc-upg-tag.is-down { background: rgba(34, 197, 94, .12); color: #86efac; }
.mjc-upg-act { text-align: right; }
.mjc-upg-why { color: #fca5a5 !important; font-family: var(--mj-font) !important; }
.mjc-upg-rules { max-width: 900px; margin-top: 18px; }
.mjc-upg-title i { color: var(--mj-brand-light); font-style: normal; }
.mjc-upg-title span:last-child { color: var(--mj-brand-light); }
.mjc-upg-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: 28px 40px; align-items: start; }
.mjc-upg-cfg .mjc-upg-h2:first-child { margin-top: 0; }
.mjc-upg-group { margin: 0 0 18px; padding: 0; border: 0; }
.mjc-upg-group legend { margin: 0 0 8px; color: var(--mj-text); font-size: 14px; font-weight: 600; }
.mjc-upg-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.mjc-upg-choice { position: relative; display: block; margin: 0; padding: 14px 16px; border-radius: 12px; background: var(--mj-surface); cursor: pointer; transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.mjc-upg-choice:hover { transform: translateY(-1px); background: var(--mj-surface-2); }
.mjc-upg-choice input { position: absolute; opacity: 0; pointer-events: none; }
.mjc-upg-choice b { display: block; color: var(--mj-text); font-size: 14px; }
.mjc-upg-choice small { display: block; margin-top: 4px; color: var(--mj-muted); font: 12px/1.5 var(--mj-mono); }
.mjc-upg-choice:has(input:checked) { background: var(--mj-brand-a15, rgba(59, 130, 246, .15)); box-shadow: inset 0 0 0 1px var(--mj-brand); }
.mjc-upg-choice.is-danger:has(input:checked) { background: rgba(239, 68, 68, .14); box-shadow: inset 0 0 0 1px var(--mj-err, #ef4444); }
.mjc-upg-choice:has(input:focus-visible) { outline: 2px solid var(--mj-brand-light); outline-offset: 2px; }
.mjc-upg-choices.is-disk { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.mjc-upg-qty { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; color: var(--mj-muted); font: 13px var(--mj-mono); }
.mjc-upg-qty input { max-width: 110px; }
.mjc-upg-sum { position: sticky; top: 20px; padding: 22px; border-radius: 16px; background: var(--mj-surface); animation: mjcUpgIn .4s ease both; }
.mjc-upg-sum .mjc-upg-h2 { margin-top: 0; }
.mjc-upg-sum dl { display: grid; gap: 10px; margin: 0 0 14px; }
.mjc-upg-sum dl > div { display: flex; justify-content: space-between; gap: 12px; }
.mjc-upg-sum dt { color: var(--mj-muted); font-weight: 400; }
.mjc-upg-sum dd { margin: 0; color: var(--mj-text); text-align: right; }
.mjc-upg-sum dd.is-big { font-size: 20px; font-weight: 700; color: var(--mj-brand-light); }
.mjc-upg-sum dd.is-danger { color: #fca5a5; }
.mjc-upg-go { display: grid; gap: 12px; margin-top: 8px; }
.mjc-upg-wipe { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 10px; background: rgba(239, 68, 68, .12); color: #fecaca; font-size: 13.5px; font-weight: 400; }
.mjc-upg-wipe input { margin-top: 3px; accent-color: var(--mj-err, #ef4444); }
.mjc-upg-team { display: grid; gap: 8px; margin: 0; padding: 12px 14px; border: 0; border-radius: 10px; background: var(--mj-surface-3); }
.mjc-upg-team legend { float: left; margin: 0 0 4px; color: var(--mj-muted-2); font: 600 11px var(--mj-mono); letter-spacing: .08em; text-transform: uppercase; }
.mjc-upg-team label { display: flex; gap: 8px; margin: 0; clear: both; color: var(--mj-text-2); font-size: 13.5px; font-weight: 400; }
.mjc-upg-entry { margin-top: 12px; }
@keyframes mjcUpgIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.mj-calm .mjc-upg-row, .mj-calm .mjc-upg-sum { animation: none; }
@media (prefers-reduced-motion: reduce) { .mjc-upg-row, .mjc-upg-sum, .mjc-upg-choice { animation: none; transition: none; } }
@media (max-width: 980px) { .mjc-upg-grid { grid-template-columns: minmax(0, 1fr); } .mjc-upg-sum { position: static; } }
@media (max-width: 760px) {
    .mjc-upg-row { grid-template-columns: minmax(0, 1fr); }
    .mjc-upg-row.is-head { display: none; }
    .mjc-upg-act { text-align: left; }
}
/* === Ende Kern Tarifwechsel === */

/* === Kern Etappe I: Domains (resources/brands/mamjahn/views/domains/*, Klassen mjdm-*) – Suche, Bestellung, Kundenbereich === */
.mjdm { display: flex; flex-direction: column; gap: 44px; margin: 8px 0 64px; color: var(--mj-text, #fafafa); }
.mjdm-page { padding-top: 56px; padding-bottom: 32px; }
.mjdm-kick { margin: 0 0 10px; font: 500 12px var(--mj-mono, ui-monospace, monospace); letter-spacing: .1em; text-transform: uppercase; color: var(--mj-brand-light, #60a5fa); }
.mjdm-h1 { margin: 0 0 14px; font-size: clamp(2.1rem, 4.6vw, 3.6rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.04; }
.mjdm-lead { max-width: 760px; margin: 0; color: var(--mj-text-2, #d4d4d8); font-size: 16px; line-height: 1.65; }
.mjdm h2 { margin: 0 0 14px; font: 600 13px var(--mj-mono, ui-monospace, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--mj-muted, #a1a1aa); }
.mjdm p { line-height: 1.65; }
.mjdm .mono, .mjdm code { font-family: var(--mj-mono, ui-monospace, monospace); }
.mjdm-muted { color: var(--mj-muted, #a1a1aa); }
.mjdm-find { display: flex; flex-wrap: wrap; gap: 12px; max-width: 900px; }
.mjdm-find input { flex: 1 1 320px; min-width: 0; padding: 17px 20px; border: 0; border-radius: 14px; background: var(--mj-surface-3, #18181b); color: var(--mj-text, #fafafa);
    font: 500 18px var(--mj-mono, ui-monospace, monospace); outline: none; transition: box-shadow .2s ease; }
.mjdm-find input:focus { box-shadow: 0 0 0 2px var(--mj-brand, #3b82f6); }
.mjdm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 20px; border: 0; border-radius: 12px; background: var(--mj-surface-3, #18181b);
    color: var(--mj-text, #fafafa); font-weight: 600; font-size: 14px; text-decoration: none; cursor: pointer; transition: transform .15s ease, background .2s ease; }
.mjdm-btn:hover { transform: translateY(-1px); background: var(--mj-surface-2, #27272a); color: var(--mj-text, #fafafa); text-decoration: none; }
.mjdm-btn.is-pri { background: var(--mj-brand, #3b82f6); color: #fff; }
.mjdm-btn.is-pri:hover { background: var(--mj-brand-light, #60a5fa); color: #09090b; }
.mjdm-btn.is-danger:hover { background: rgba(239, 68, 68, .18); color: #fca5a5; }
.mjdm-btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.mjdm-find .mjdm-btn { padding: 17px 26px; font-size: 15px; }
.mjdm-alert { padding: 14px 18px; border-radius: 12px; background: rgba(245, 158, 11, .12); color: #fcd34d; }
.mjdm-alert.is-err { background: rgba(239, 68, 68, .12); color: #fca5a5; }
.mjdm-alert.is-ok { background: rgba(34, 197, 94, .12); color: #86efac; }
.mjdm-list { display: grid; gap: 8px; }
.mjdm-row { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(110px, 1fr) minmax(150px, 1fr) minmax(170px, auto); align-items: center; gap: 10px 22px;
    padding: 18px 22px; border-radius: 14px; background: var(--mj-surface, #0d0d10); animation: mjdmIn .4s ease both; animation-delay: calc(min(var(--i, 0), 20) * 40ms);
    transition: transform .2s ease, background .2s ease; color: inherit; text-decoration: none; }
a.mjdm-row:hover, .mjdm-row:hover { transform: translateX(3px); background: var(--mj-surface-2, #141418); color: inherit; text-decoration: none; }
.mjdm-row.is-main { padding: 26px 26px; background: var(--mj-surface-2, #141418); }
.mjdm-row.is-main .mjdm-name { font-size: 22px; }
.mjdm-row.is-head { padding-top: 0; padding-bottom: 0; background: none; color: var(--mj-muted-2, #8b8b96); font: 500 11px var(--mj-mono, ui-monospace, monospace);
    letter-spacing: .08em; text-transform: uppercase; animation: none; }
.mjdm-row.is-head:hover { transform: none; background: none; }
.mjdm-name { font: 600 16px var(--mj-mono, ui-monospace, monospace); word-break: break-all; }
.mjdm-row small, .mjdm-sub { display: block; margin-top: 3px; color: var(--mj-muted-2, #8b8b96); font: 12px var(--mj-mono, ui-monospace, monospace); }
.mjdm-price b { font-size: 16px; }
.mjdm-act { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.mjdm-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; background: var(--mj-surface-3, #18181b);
    font: 600 11.5px var(--mj-mono, ui-monospace, monospace); white-space: nowrap; color: var(--mj-text-2, #d4d4d8); }
.mjdm-pill.is-ok { background: rgba(34, 197, 94, .14); color: #4ade80; }
.mjdm-pill.is-wait { background: rgba(245, 158, 11, .14); color: #fbbf24; }
.mjdm-pill.is-err { background: rgba(239, 68, 68, .14); color: #f87171; }
.mjdm-prices { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.mjdm-tld { padding: 16px 18px; border-radius: 14px; background: var(--mj-surface, #0d0d10); animation: mjdmIn .4s ease both; animation-delay: calc(min(var(--i, 0), 30) * 25ms); }
.mjdm-tld b { display: block; margin-bottom: 6px; font: 700 18px var(--mj-mono, ui-monospace, monospace); color: var(--mj-text, #fafafa); }
.mjdm-tld span { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--mj-text-2, #d4d4d8); }
.mjdm-tld span em { font-style: normal; color: var(--mj-muted-2, #8b8b96); font-family: var(--mj-mono, ui-monospace, monospace); font-size: 12px; }
.mjdm-box { padding: 26px 28px; border-radius: 18px; background: var(--mj-surface, #0d0d10); }
.mjdm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.mjdm-kv { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 22px; margin: 0; font-size: 14px; }
.mjdm-kv dt { padding-top: 2px; color: var(--mj-muted-2, #8b8b96); font: 500 11.5px var(--mj-mono, ui-monospace, monospace); letter-spacing: .07em; text-transform: uppercase; }
.mjdm-kv dd { margin: 0; color: var(--mj-text, #fafafa); font-family: var(--mj-mono, ui-monospace, monospace); word-break: break-all; }
.mjdm-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px 16px; }
.mjdm-form .is-wide { grid-column: 1 / -1; }
.mjdm-l { display: block; margin: 0 0 7px; font: 500 11.5px var(--mj-mono, ui-monospace, monospace); letter-spacing: .06em; text-transform: uppercase; color: var(--mj-muted, #a1a1aa); }
.mjdm input[type=text], .mjdm input[type=email], .mjdm input[type=tel], .mjdm select, .mjdm textarea { width: 100%; padding: 11px 13px; border: 0; border-radius: 12px;
    background: var(--mj-surface-3, #18181b); color: var(--mj-text, #fafafa); font-size: 14px; }
.mjdm textarea { font-family: var(--mj-mono, ui-monospace, monospace); font-size: 13.5px; }
.mjdm-err { display: block; margin-top: 5px; color: #f87171; font-size: 12.5px; }
.mjdm-check { display: flex; gap: 11px; align-items: flex-start; margin: 0; color: var(--mj-text-2, #d4d4d8); font-size: 14px; line-height: 1.55; cursor: pointer; font-weight: 400; }
.mjdm-check input { margin-top: 4px; accent-color: var(--mj-brand, #3b82f6); }
.mjdm-radio { display: flex; flex-wrap: wrap; gap: 10px; }
.mjdm-radio label { display: flex; gap: 10px; align-items: flex-start; flex: 1 1 260px; padding: 14px 16px; border-radius: 12px; background: var(--mj-surface-3, #18181b);
    cursor: pointer; font-weight: 400; color: var(--mj-text-2, #d4d4d8); transition: box-shadow .2s ease; }
.mjdm-radio label:has(input:checked) { box-shadow: inset 0 0 0 2px var(--mj-brand, #3b82f6); }
.mjdm-radio input { margin-top: 4px; accent-color: var(--mj-brand, #3b82f6); }
.mjdm-sum { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 24px; padding: 22px 26px; border-radius: 16px; background: var(--mj-surface-2, #141418); }
.mjdm-sum b { font-size: 24px; }
.mjdm-code { display: inline-block; padding: 10px 14px; border-radius: 10px; background: var(--mj-surface-3, #18181b); font: 600 15px var(--mj-mono, ui-monospace, monospace);
    letter-spacing: .04em; user-select: all; word-break: break-all; }
.mjdm-inline { display: inline; margin: 0; }
@keyframes mjdmIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.mj-calm .mjdm-row, .mj-calm .mjdm-tld { animation: none; }
@media (prefers-reduced-motion: reduce) { .mjdm-row, .mjdm-tld { animation: none; transition: none; } }
@media (max-width: 900px) {
    .mjdm-row { grid-template-columns: minmax(0, 1fr); }
    .mjdm-row.is-head { display: none; }
    .mjdm-act { justify-content: flex-start; }
}
/* === Ende Kern Etappe I === */
/* Kern Tarifwechsel (Nachtrag): Merkmale des Ziels, wenn es keine Optionen gibt */
.mjc-upg-keys { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.mjc-upg-keys li { position: relative; padding: 12px 16px 12px 36px; border-radius: 12px; background: var(--mj-surface); color: var(--mj-text-2); font-size: 14px; animation: mjcUpgIn .35s ease both; }
.mjc-upg-keys li::before { content: '✓'; position: absolute; left: 16px; color: var(--mj-brand-light); font-family: var(--mj-mono); }
.mj-calm .mjc-upg-keys li { animation: none; }
@media (prefers-reduced-motion: reduce) { .mjc-upg-keys li { animation: none; } }
/* === Kern Live-Werte: Kacheln, Mini-Verlauf und SVG-Grafiken der Server-Seite (mj-live.js) === */
.mjc-lv-hint { margin: 0 0 12px; padding: 12px 16px; border-radius: 12px; background: rgba(245, 158, 11, .08); color: #fbbf24; font-size: 13.5px; }
.mjc-lv-hint[hidden] { display: none; }
.mjc-lv-up { color: var(--mj-muted, #a1a1aa); font: 500 12.5px var(--mj-mono, ui-monospace, monospace); }
.mjc-lv-g4 .mjp-gauge { align-content: start; }
.mjc-lv-g4 .mjp-gauge b { font-variant-numeric: tabular-nums; }
.mjc-lv-g4 .mjp-bar { margin-top: 4px; }
.mjc-lv-small { font: 11.5px var(--mj-mono, ui-monospace, monospace); color: var(--mj-muted-2, #8b8b96); }
.mjc-lv-spark { height: 54px; margin-top: 6px; overflow: hidden; }
.mjc-lv-spark svg { display: block; width: 100%; height: 54px; }
.is-lv-err .mjc-lv-g4 .mjp-gauge b, .is-lv-err .mjc-lv-spark { opacity: .45; transition: opacity .3s ease; }
.mjc-lv-note { margin-left: auto; }
.mjc-lv-card { position: relative; }
.mjc-lv-chart { height: 200px; cursor: crosshair; touch-action: pan-y; }
.mjc-lv-chart svg { display: block; width: 100%; height: 200px; overflow: visible; }
.mjc-lv-graphs[aria-busy=true] .mjc-lv-chart { opacity: .55; transition: opacity .2s ease; }
.mjc-lv-grid { stroke: rgba(255, 255, 255, .05); stroke-width: 1; }
.mjc-lv-ax { fill: var(--mj-muted-2, #8b8b96); font: 10.5px var(--mj-mono, ui-monospace, monospace); }
.mjc-lv-line { fill: none; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.mjc-lv-area { stroke: none; }
.mjc-lv-cross { stroke: rgba(255, 255, 255, .25); stroke-width: 1; }
.mjc-lv-dot { stroke: #0b0b0f; stroke-width: 1.5; }
.mjc-lv-share .mjp-meta { margin: 0 0 12px; }
.mjc-lv-graphs .mjp-tip { min-width: 170px; }
.mj-calm .mjc-lv-line { transition: none !important; }
@media (prefers-reduced-motion: reduce) { .mjc-lv-line, .mjc-lv-chart, .mjc-lv-spark { transition: none !important; } }
@media (max-width: 760px) { .mjc-lv-note { margin-left: 0; } }
/* === Ende Kern Live-Werte === */
/* === Kern Domain-Feld: Domain-Auswahl beim Konfigurieren (orders/_domain-field), Warenkorb/Kasse/Bestaetigung === */
.mj-dom-block .mj-dom-lead { margin: 0 0 12px; color: var(--mj-text-2, #d4d4d8); }
.mj-dom-row { display: flex; gap: 10px; align-items: stretch; margin-top: 14px; max-width: 640px; }
.mj-dom-row input { flex: 1 1 auto; min-width: 0; font-family: var(--mj-mono, ui-monospace, monospace); }
.mj-dom-row .btn { flex: 0 0 auto; }
.mj-dom-auth { display: grid; gap: 6px; margin-top: 10px; max-width: 640px; }
.mj-dom-auth[hidden], .mj-dom-note [hidden] { display: none; }
.mj-dom-auth input { font-family: var(--mj-mono, ui-monospace, monospace); }
.mj-dom-msg { min-height: 1.4em; margin: 10px 0 0; font: 500 13.5px var(--mj-mono, ui-monospace, monospace); color: var(--mj-muted, #a1a1aa); }
.mj-dom-msg.is-ok { color: var(--mj-ok, #4ade80); }
.mj-dom-msg.is-err { color: var(--mj-err, #f87171); }
.mj-dom-note { margin: 6px 0 0; color: var(--mj-muted-2, #8b8b96); font-size: 13px; max-width: 720px; }
.mj-dom-block .mj-pp-choice.is-off { opacity: .45; cursor: not-allowed; }
.mj-dom-line dd { font-family: var(--mj-mono, ui-monospace, monospace); }
.mj-dom-done > div > div + div { margin-top: 4px; }
@media (max-width: 560px) { .mj-dom-row { flex-direction: column; } }
/* === Ende Kern Domain-Feld === */

/* === Kern KVM-Börse (/kvm-boerse, site/kvm-boerse.blade.php) – Grundstil mj-bx-* kommt aus v2/css/site.css === */
.mj-bx-panel[hidden] { display: none !important; }
.mj-bx-price s [data-mj-net], .mj-bx-price b [data-mj-net] { font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; }
.mj-bx-price s [data-mj-net] { text-decoration: line-through; }
.mj-prodmenu-item--sub.mj-acc-vserver .fa-bolt { color: var(--mj-brand-light, #a78bfa); }
@media (max-width: 560px) { .mj-bx-head { align-items: flex-start; } .mj-bx-clock { width: 100%; justify-content: center; } }
/* === Ende Kern KVM-Börse === */
/* === Kern Monitoring: Reiter "Monitoring" der Server-Seite (servers/live/monitor, mj-monitor.js) === */
.mjc-mo-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 10px; }
.mjc-mo-state { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.mjc-mo-state b { color: var(--mj-text, #fafafa); font-size: 1.15rem; }
.mjc-mo-state small { color: var(--mj-muted, #a1a1aa); font: 12px var(--mj-mono, ui-monospace, monospace); }
.mjc-mo-dot { align-self: center; width: 10px; height: 10px; border-radius: 50%; background: var(--mj-muted-2, #8b8b96); }
.mjc-mo-state[data-s="up"] .mjc-mo-dot { background: var(--mj-ok, #22c55e); box-shadow: 0 0 0 4px rgba(34, 197, 94, .15); animation: mjcMoPulse 2.4s ease-in-out infinite; }
.mjc-mo-state[data-s="down"] .mjc-mo-dot { background: var(--mj-err, #ef4444); box-shadow: 0 0 0 4px rgba(239, 68, 68, .18); }
.mjc-mo-state[data-s="down"] b { color: #fca5a5; }
.mjc-mo-state[data-s="off"] .mjc-mo-dot { background: var(--mj-warn, #f59e0b); }
.mjc-mo-set { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; }
.mjc-mo-set > * { flex: none; }
.mjc-mo-set .input { width: auto; min-width: 0; max-width: 170px; }
.mjc-mo-port { max-width: 96px !important; font-family: var(--mj-mono, ui-monospace, monospace); }
.mjc-mo-port[hidden] { display: none; }
.mjc-mo-on { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--mj-text-2, #d4d4d8); font-size: 13.5px; font-weight: 500; cursor: pointer; }
.mjc-mo-on input { accent-color: var(--mj-brand, #3b82f6); }
.mjc-mo-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 14px 0; }
.mjc-mo-kpi { display: grid; gap: 4px; animation: mjcMoIn .35s ease both; }
.mjc-mo-kpi:nth-child(2) { animation-delay: .04s; } .mjc-mo-kpi:nth-child(3) { animation-delay: .08s; } .mjc-mo-kpi:nth-child(4) { animation-delay: .12s; }
.mjc-mo-kpi b { color: var(--mj-text, #fafafa); font-size: 1.5rem; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.mjc-mo-kpi small { color: var(--mj-muted, #a1a1aa); font-size: 12px; line-height: 1.45; }
.mjc-mo-kpi.is-warn b { color: #fbbf24; }
.mjc-mo-out { display: grid; gap: 6px; }
.mjc-mo-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; border-radius: 10px; background: var(--mj-surface-2, #141418); font: 12.5px var(--mj-mono, ui-monospace, monospace); color: var(--mj-text-2, #d4d4d8); }
.mjc-mo-row b { color: #fca5a5; font-weight: 600; }
.mjc-mo-row.is-open { box-shadow: inset 3px 0 0 var(--mj-err, #ef4444); }
.mjc-mo-empty[hidden], .mjc-mo [data-mo-chart][hidden] { display: none; }
.mjc-mo-bars { cursor: default; }
.mjc-mo-bar { transform-box: fill-box; transform-origin: center bottom; }
.mjc-mo-bar.is-in { animation: mjcMoBar .5s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes mjcMoBar { from { transform: scaleY(0); } to { transform: none; } }
@keyframes mjcMoIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes mjcMoPulse { 50% { box-shadow: 0 0 0 7px rgba(34, 197, 94, .06); } }
.mj-calm .mjc-mo-kpi, .mj-calm .mjc-mo-bar, .mj-calm .mjc-mo-dot { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .mjc-mo-kpi, .mjc-mo-bar, .mjc-mo-dot { animation: none !important; } }
@media (max-width: 560px) { .mjc-mo-set { width: 100%; } }
/* === Ende Kern Monitoring === */
/* === Kern Wissen: Wissensdatenbank (help/*, Website + Konsole), Vorschlaege beim Ticket, Hilfe-Suche Strg+K === */
.mjk { max-width: 1180px; }
.mjk-site { padding-top: 132px; padding-bottom: 96px; }
.mjk-site .mjk-kick { margin: 0 0 12px; color: var(--mj-brand-light, #a78bfa); font: 500 12px var(--mj-mono, ui-monospace, monospace); letter-spacing: .07em; text-transform: uppercase; }
.mjk-site .mjk-h1 { margin: 0; color: var(--mj-text, #fafafa); font-size: clamp(2.2rem, 4.4vw, 3.6rem); font-weight: 800; line-height: 1.05; letter-spacing: -.035em; text-wrap: balance; }
.mjk-lead { margin: 14px 0 0; max-width: 720px; color: var(--mj-muted, #a1a1aa); font-size: 15.5px; line-height: 1.6; }
.mjk-back { margin: 0 0 18px; }
.mjk-site .mjk-back { display: inline-flex; align-items: center; gap: 8px; padding: 0; background: none; color: var(--mj-muted-2, #8b8b96) !important; font: 500 13px var(--mj-mono, ui-monospace, monospace); text-decoration: none; }
.mjk-site .mjk-back:hover { color: var(--mj-text, #fafafa) !important; }
.mjk-site .mjk-back .mjc-ic, .mjk-search-ic .mjc-ic, .mjk-item-ic .mjc-ic, .mjk-cat-ic .mjc-ic, .mjk-help .mjc-ic { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mjk-site .mjk-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border: 0; border-radius: 10px; background: var(--mj-surface-3, #1c1c22); color: var(--mj-text, #fafafa) !important; font-size: 13.5px; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.mjk-site .mjk-btn:hover { transform: translateY(-1px); text-decoration: none; }
.mjk-site .mjk-btn--pri { background: var(--mj-brand, #7c3aed); color: #fff !important; }

.mjk-search { position: relative; display: flex; gap: 10px; max-width: 860px; margin: 30px 0 8px; }
.mjk-search-ic { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--mj-muted-2, #8b8b96); pointer-events: none; display: inline-flex; }
.mjk-search input { flex: 1 1 auto; min-width: 0; padding: 14px 18px 14px 46px; border: 0; border-radius: 14px; background: var(--mj-surface-2, #141418); color: var(--mj-text, #fafafa); font: 500 15px var(--mj-mono, ui-monospace, monospace); outline: none; transition: box-shadow .2s ease, background .2s ease; }
.mjk-search input:focus { background: var(--mj-surface-3, #1c1c22); box-shadow: 0 0 0 2px var(--mj-brand-a40, rgba(124, 58, 237, .4)); }
.mjk-search .mjk-btn { flex: 0 0 auto; padding-left: 22px; padding-right: 22px; }

.mjk-sec { margin-top: 44px; }
.mjk-h2 { margin: 0 0 16px; color: var(--mj-muted-2, #8b8b96); font: 500 12px var(--mj-mono, ui-monospace, monospace); letter-spacing: .08em; text-transform: uppercase; }
.mjk-count { margin: 0 0 12px; color: var(--mj-muted-2, #8b8b96); font: 500 13px var(--mj-mono, ui-monospace, monospace); }
.mjk-empty { margin: 18px 0 0; color: var(--mj-muted, #a1a1aa); }

.mjk-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.mjk-cat { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 16px; background: var(--mj-surface-2, #141418); color: var(--mj-text-2, #d4d4d8); text-decoration: none; transition: transform .2s ease, background .2s ease; }
.mjk-cat:hover { transform: translateY(-2px); background: var(--mj-surface-3, #1c1c22); color: var(--mj-text, #fafafa); text-decoration: none; }
.mjk-cat-ic { display: inline-grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; background: var(--mj-brand-a15, rgba(124, 58, 237, .15)); color: var(--mj-brand-light, #a78bfa); }
.mjk-cat-t { flex: 1 1 auto; min-width: 0; }
.mjk-cat-t b { display: block; color: var(--mj-text, #fafafa); font-size: 15px; }
.mjk-cat-t small { display: block; margin-top: 3px; color: var(--mj-muted-2, #8b8b96); font-size: 12.5px; line-height: 1.45; }
.mjk-cat-n { flex: 0 0 auto; color: var(--mj-muted-2, #8b8b96); font: 500 12px var(--mj-mono, ui-monospace, monospace); white-space: nowrap; }

.mjk-list { display: flex; flex-direction: column; gap: 4px; }
.mjk-item { display: flex; align-items: center; gap: 14px; padding: 12px 14px; margin: 0 -14px; border-radius: 12px; color: var(--mj-text-2, #d4d4d8); text-decoration: none; transition: background .15s ease; }
.mjk-item:hover { background: var(--mj-surface-2, #141418); color: var(--mj-text, #fafafa); text-decoration: none; }
.mjk-item-ic { display: inline-grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; background: var(--mj-surface-3, #1c1c22); color: var(--mj-brand-light, #a78bfa); }
.mjk-item-t { flex: 1 1 auto; min-width: 0; }
.mjk-item-t b { display: block; color: var(--mj-text, #fafafa); font-size: 14.5px; }
.mjk-item-t small { display: block; margin-top: 2px; overflow: hidden; color: var(--mj-muted-2, #8b8b96); font: 400 12.5px var(--mj-mono, ui-monospace, monospace); white-space: nowrap; text-overflow: ellipsis; }
.mjk-go { flex: 0 0 auto; color: var(--mj-muted-2, #8b8b96); font-family: var(--mj-mono, ui-monospace, monospace); transition: transform .15s ease, color .15s ease; }
.mjk-item:hover .mjk-go { transform: translateX(3px); color: var(--mj-brand-light, #a78bfa); }

.mjk-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; color: var(--mj-muted-2, #8b8b96); font: 500 12.5px var(--mj-mono, ui-monospace, monospace); }
.mjk-search + .mjk-meta, .mjk-meta { margin-top: 18px; }
.mjk-article { max-width: 860px; margin-top: 34px; color: var(--mj-text-2, #d4d4d8); font-size: 15.5px; line-height: 1.75; }
.mjk-article > :first-child { margin-top: 0; }
.mjk-article h2, .mjk-article h3, .mjk-article h4 { margin: 1.6em 0 .5em; color: var(--mj-text, #fafafa); font-weight: 800; letter-spacing: -.015em; }
.mjk-article h2 { font-size: 1.4rem; }
.mjk-article h3 { font-size: 1.12rem; }
.mjk-article p, .mjk-article ul, .mjk-article ol { margin: 0 0 1em; }
.mjk-article a { color: var(--mj-brand-light, #a78bfa); }
.mjk-article img { max-width: 100%; border-radius: 12px; }
.mjk-article code { padding: 2px 6px; border-radius: 6px; background: var(--mj-surface-3, #1c1c22); color: var(--mj-text, #fafafa); font: .9em var(--mj-mono, ui-monospace, monospace); }
.mjk-article pre { overflow-x: auto; padding: 16px 18px; border-radius: 12px; background: var(--mj-surface-2, #141418); }
.mjk-article pre code { padding: 0; background: none; }
.mjk-article blockquote { margin: 0 0 1em; padding: 12px 18px; border-radius: 12px; background: var(--mj-brand-a10, rgba(124, 58, 237, .1)); color: var(--mj-text-2, #d4d4d8); }
.mjk-article table { width: 100%; margin: 0 0 1em; border-collapse: separate; border-spacing: 0 4px; }
.mjk-article th, .mjk-article td { padding: 9px 12px; background: var(--mj-surface-2, #141418); text-align: left; }
.mjk-article th { color: var(--mj-text, #fafafa); font: 500 12.5px var(--mj-mono, ui-monospace, monospace); }
.mjk-article hr { height: 0; margin: 2em 0; border: 0; }

.mjk-vote { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; max-width: 860px; margin-top: 40px; padding: 18px 20px; border-radius: 16px; background: var(--mj-surface-2, #141418); }
.mjk-vote b { color: var(--mj-text, #fafafa); font-size: 14.5px; }
.mjk-vote-row { display: flex; gap: 8px; margin: 0; }
.mjk-vote-ok { margin: 0; color: var(--mj-ok, #4ade80); font: 500 13.5px var(--mj-mono, ui-monospace, monospace); }

.mjk-help { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 56px; color: var(--mj-muted, #a1a1aa); font-size: 14px; }
.mjk-help b { color: var(--mj-text, #fafafa); }
.mjk-help .mjk-btn, .mjk-help .mjc-btn { margin-left: auto; }

/* Vorschlaege beim neuen Ticket */
.mjk-suggest { margin: 0 0 18px; padding: 16px 18px; border-radius: 14px; background: var(--mj-brand-a10, rgba(124, 58, 237, .1)); animation: mjk-in .25s ease both; }
.mjk-suggest[hidden] { display: none; }
.mjk-suggest > b { display: block; color: var(--mj-text, #fafafa); font-size: 14px; }
.mjk-suggest > p { margin: 2px 0 10px; color: var(--mj-text-2, #d4d4d8); font-size: 13px; }
.mjk-suggest ul { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
.mjk-suggest a { display: block; padding: 8px 10px; margin: 0 -10px; border-radius: 10px; text-decoration: none; }
.mjk-suggest a:hover { background: rgba(255, 255, 255, .04); text-decoration: none; }
.mjk-suggest a b { display: block; color: var(--mj-text, #fafafa); font-size: 13.5px; }
.mjk-suggest a small { display: block; overflow: hidden; color: var(--mj-muted-2, #8b8b96); font: 12px var(--mj-mono, ui-monospace, monospace); white-space: nowrap; text-overflow: ellipsis; }

/* Bewegung: Kacheln und Zeilen gleiten nacheinander herein */
@keyframes mjk-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.mjk-cat, .mjk-item { animation: mjk-in .35s ease both; }
.mjk-cats > :nth-child(2), .mjk-list > :nth-child(2) { animation-delay: .04s; }
.mjk-cats > :nth-child(3), .mjk-list > :nth-child(3) { animation-delay: .08s; }
.mjk-cats > :nth-child(4), .mjk-list > :nth-child(4) { animation-delay: .12s; }
.mjk-cats > :nth-child(5), .mjk-list > :nth-child(5) { animation-delay: .16s; }
.mjk-cats > :nth-child(n+6), .mjk-list > :nth-child(n+6) { animation-delay: .2s; }
.mj-calm .mjk-cat, .mj-calm .mjk-item, .mj-calm .mjk-suggest { animation: none; }
@media (prefers-reduced-motion: reduce) { .mjk-cat, .mjk-item, .mjk-suggest { animation: none; } .mjk-cat:hover { transform: none; } }
@media (max-width: 640px) {
    .mjk-site { padding-top: 104px; }
    .mjk-search { flex-direction: column; }
    .mjk-help .mjk-btn, .mjk-help .mjc-btn { margin-left: 0; }
}
/* Grundform (andere Marken) */
.kb-article img { max-width: 100%; }
.kb-article pre { overflow-x: auto; }
/* === Ende Kern Wissen === */

/* === Kern Infoseiten (Etappe K: /status, /kontakt, Rechtstexte) === */
/* Honigtopf im Kontaktformular: fuer Menschen unsichtbar, fuer Bots ein normales Feld */
.mj-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
/* Geplante Wartungen auf /status: wie Vorfaelle, Abstand nach oben wie die Node-Reihe */
.mj-inc--maint { margin-bottom: 8px; }
.mj-inc--maint .mj-inc-row.is-open .mj-inc-meta span:first-of-type { color: var(--mj-warn, #f59e0b); }
/* === Ende Kern Infoseiten === */

/* === Kern /zahlung (Bezahlen & Abrechnung, Aufbau wie /fair-use) === */
/* Listen dort sind keine Verbote: Punkt in Markenfarbe statt rotem Kreuz */
.mj-pay .mj-fu-no li b::before { content: "\25CF"; color: var(--mj-brand); font-size: 9px; vertical-align: 2px; }
.mj-pay .mj-faq { margin: 0 0 22px; }
/* === Ende Kern /zahlung === */

/* === Kern Fair Use (Server-Seite: Hinweis oben rechts + Karte "Ressourcen", Vorbild mjc-pve.tpl) === */
.mjc-fu-card { margin-top: 18px; }
.mjc-fu-card h3 small { margin-left: 8px; font: 500 12px var(--mj-mono); }
.mjc-fu-card h3 small a { color: var(--mj-muted-2); }
.mjc-fu-card .mjp-res { margin: 4px 0 10px; max-width: 640px; }
/* === Ende Kern Fair Use === */

/* === Kern Optik Kundenbereich: Angleichung an den WHMCS-Kundenbereich von mam-jahn (Agent "Optik Kundenbereich") === */
/* Auswahl-Chips mit Radio (Kündigen: Zeitpunkt, API-Schlüssel: Rechte) – Radio unsichtbar, Zustand an der Pille, Tastatur-Fokus sichtbar */
.mj-kd .mj-chip, .mjc-sec .mjc-chips > label.mjc-chip { position: relative; cursor: pointer; }
.mj-kd .mj-chip input, .mjc-chips > label.mjc-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.mj-kd .mj-chip:has(input:checked) { border-color: var(--mj-brand); background: var(--mj-brand-a15); color: var(--mj-text); }
.mjc-chips > label.mjc-chip:has(input:checked) { background: var(--mj-surface-3); color: var(--mj-text); box-shadow: inset 0 0 0 1px var(--mj-brand); }
.mj-kd .mj-chip:has(input:focus-visible), .mjc-chips > label.mjc-chip:has(input:focus-visible) { outline: 2px solid var(--mj-brand-light); outline-offset: 2px; }
.mj-kd-label { display: block; margin-bottom: 8px; color: var(--mj-text-2); font-size: 13px; font-weight: 600; }
.mj-kd [hidden] { display: none !important; }
/* API-Schlüssel / SSH-Schlüssel / Aktivität im Konsolen-Look */
.mjc-api-gate { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; color: var(--mj-text-2); }
.mjc-api-gate li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.mjc-api-gate .mjc-st-t { min-width: 76px; }
.mjc-api-new { background: rgba(245, 158, 11, .08); }
.mjc-api-curl { margin: 12px 0 0; padding: 12px 14px; border-radius: 10px; background: var(--mj-surface-2); color: var(--mj-text-2); font-size: 12.5px; white-space: pre-wrap; word-break: break-all; }
.mjc-g3-row.is-off { opacity: .55; }
.mjc-g3-row .mjc-break { word-break: break-all; }
.mjc-g3-row .mjc-dot { display: inline-block; vertical-align: middle; margin-right: 4px; }
.mj-form .mj-note.is-err { color: #fca5a5; }
/* Rechnungsansicht (billing/invoice, wie viewinvoice.tpl): Marken-Logo als Text im Zahlungsempfänger, Art neben "Rechnungsposten" */
.mj-inv-logo { font-weight: 800; letter-spacing: -.01em; }
.mj-inv-logo i { font-style: normal; color: var(--mj-brand); }
.mj-inv-card h2 small { margin-left: 8px; color: var(--mj-muted-2); font: 500 12px var(--mj-mono); text-transform: none; letter-spacing: 0; }
@media print { .mj-inv-page { background: #fff; color: #000; } }
@media (max-width: 640px) { .mj-inv-top { flex-wrap: wrap; gap: 12px; } .mj-inv-tools { flex-wrap: wrap; gap: 8px; } }
/* Dienst-Seite: Kopf wie live (mjp-head) – auf dem Handy Knöpfe unter den Titel */
.mjc-svc-back + .mjl-band, .mjc-svc-back + .mjp-head { margin-top: 0; }
@media (max-width: 640px) { .mjp-head .mjp-power { width: 100%; } .mjp-title { overflow-wrap: anywhere; } }
/* Rückmeldungen (partials/flash: alert-ok / alert-err) wie live mj-notice: Fläche surface-2, farbiger Rand, ohne Bootstrap-Bunt */
/* block statt flex: Hinweise mit Code-Schnipseln/Links sind Fliesstext (flex machte aus jedem Teil eine Spalte) */
.mjc-app .alert.alert-ok, .mjc-app .alert.alert-err, .mjc-app .alert.alert-warn { display: block; margin: 0 0 18px; padding: 14px 18px;
    border: 1px solid var(--mj-line); border-radius: 16px; background: var(--mj-surface-2); color: var(--mj-text-2); font-size: 13.5px; }
.mjc-app .alert.alert-ok { border-color: rgba(34, 197, 94, .45); }
.mjc-app .alert.alert-err { border-color: rgba(239, 68, 68, .5); color: #fecaca; }
.mjc-app .alert.alert-warn { border-color: rgba(245, 158, 11, .45); }
.mjc-app .alert.alert-ok::before, .mjc-app .alert.alert-err::before { display: inline-block; width: 8px; height: 8px; margin: 0 10px 1px 0;
    border-radius: 50%; background: var(--mj-ok); content: ""; vertical-align: middle; }
.mjc-app .alert.alert-err::before { background: var(--mj-err); }
/* Bestätigungsdialog (zwicky.js zwDialog, data-confirm) im Look der Live-Rückfrage (mjp-modal): dunkle Box, runde Ecken, Konsolen-Knöpfe */
html.mj-v2 .zw-dialog { border-radius: 18px; background: var(--mj-surface-2); color: var(--mj-text); box-shadow: 0 30px 80px rgba(0, 0, 0, .7); }
html.mj-v2 .zw-dialog::backdrop { background: rgba(0, 0, 0, .65); }
html.mj-v2 .zw-dialog-body h2 { margin: 0; color: var(--mj-text); font: 600 1.15rem var(--mj-font); }
html.mj-v2 .zw-dialog-body p { margin: 0; color: var(--mj-muted); font-size: 14px; line-height: 1.6; }
html.mj-v2 .zw-dialog-mark { background: var(--mj-brand-a15); color: var(--mj-brand-light); }
html.mj-v2 .zw-dialog.is-danger .zw-dialog-mark { background: rgba(239, 68, 68, .14); color: #fca5a5; }
html.mj-v2 .zw-dialog-actions .btn { border-radius: 999px; font-weight: 600; }
html.mj-v2 .zw-dialog-actions .btn-ghost { border: 0; background: var(--mj-surface-3); color: var(--mj-text-2); }
/* === Ende Kern Optik Kundenbereich === */

/* === Kern Kundenbereich Lücken (Übersicht anheften, Server-Reiter, Webspace-Reiter, Bedienfelder, Glocke, Ticket-Markdown) === */
/* Übersicht: ausgeblendete Kachel nach "Lösen" in der Ansicht Angeheftet */
.mjc-tilew.is-gone { opacity: .35; transition: opacity .3s; }
.mjc-bars[hidden] { display: none; }
/* Kopf der Website: Glocke mit Liste wie live (Popover), ohne Bootstrap-JS */
.mj-bell-wrap { position: relative; }
.mj-bell-pop { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1050; width: min(340px, calc(100vw - 32px)); padding: 10px;
    border-radius: 16px; background: var(--mj-surface-2); box-shadow: 0 24px 60px rgba(0, 0, 0, .6); }
.mj-bell-pop[hidden] { display: none; }
.mj-bell-h { display: block; padding: 4px 12px 8px; color: var(--mj-muted); font: 600 11px var(--mj-mono); text-transform: uppercase; letter-spacing: .08em; }
.mj-bell-pop .client-alerts li { border: 0; }
.mj-bell-pop .client-alerts li a { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--mj-text-2); text-decoration: none; }
.mj-bell-pop .client-alerts li a:hover { background: var(--mj-surface-3); color: var(--mj-text); }
.mj-bell-pop .client-alerts li a i { margin-top: 2px; color: var(--mj-brand); }
.mj-bell-pop .client-alerts li.is-warn a i { color: var(--mj-warn, #f59e0b); }
.mj-bell-pop .client-alerts li.is-err a i { color: var(--mj-err, #ef4444); }
.mj-bell-pop .client-alerts li.is-ok a i { color: var(--mj-ok, #22c55e); }
.mj-bell-pop .client-alerts .message { margin: 0; font-size: 13.5px; line-height: 1.45; }
/* Server-Seite: Benachrichtigungen als Zeilen mit Haken rechts */
.mjp-row--al input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--mj-brand); justify-self: end; }
.mjp-row--al { cursor: pointer; }
/* Webspace: Einmal-Anmeldung als Formular-Knopf in Knopfreihen */
.mjw-sso { display: inline-flex; margin: 0; }
.mjm-acts { display: flex; flex-wrap: wrap; gap: 8px; }
/* Bedienfelder mit Reitern im Kern: Reiterleiste oben, kein doppelter Abstand */
.mjm > .mjp-tabs, .mjm .mjs > .mjp-tabs, .mjm .mjg > .mjp-tabs, .mjm .mj-mail > .mjp-tabs { margin-bottom: 16px; }
.mjm .mjs, .mjm .mjg { margin: 0; }
/* E-Mail-Bedienfeld (wie live mjmail/clientarea.tpl, dort als <style> im Modul) */
.mj-mail-bar { height: 10px; border-radius: 999px; background: var(--mj-surface-3, #18181b); overflow: hidden; }
.mj-mail-bar--small { height: 6px; width: 160px; max-width: 100%; }
.mj-mail-bar span { display: block; height: 100%; border-radius: inherit; background: var(--mj-brand, #3b82f6); }
.mj-mail-bar span.is-high { background: var(--mj-warn, #f59e0b); }
.mj-mail-bar span.is-full { background: var(--mj-err, #ef4444); }
.mj-mail-h { margin: 26px 0 10px; font-size: 1.05rem; }
.mjm-sec > .mj-mail-h:first-child { margin-top: 0; }
.mj-mail-note, .mj-mail-list small, .mj-mail-new small { color: var(--mj-muted, #a1a1aa); }
.mj-mail-note { font-size: 13px; margin: 0 0 12px; }
.mj-mail-list { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 10px; }
.mj-mail-list > li { display: grid; gap: 12px; padding: 14px 16px; border-radius: 14px; background: var(--mj-surface-2, #111113); }
.mj-mail-acc-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }
.mj-mail-acc-head > div:first-child { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.mj-mail-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; background: var(--mj-err, #ef4444); color: #fff; }
.mj-mail-acc-forms { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-end; }
.mj-mail-inline { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin: 0; }
.mj-mail-inline label, .mj-mail-new label { display: grid; gap: 4px; font-size: 12px; color: var(--mj-muted, #a1a1aa); margin: 0; }
.mj-mail-inline .form-control { min-width: 120px; }
.mj-mail-inline select.form-control { min-width: 260px; max-width: 100%; }
.mj-mail-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.mj-mail-actions form { margin: 0; }
.mj-mail-new { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: flex-end; padding: 14px 16px; border-radius: 14px; background: var(--mj-surface-2, #111113); margin-bottom: 8px; }
.mj-mail-new small { flex-basis: 100%; }
.mj-mail-addr { display: flex; align-items: center; gap: 6px; color: var(--mj-text, #fafafa); }
.mj-mail-addr .form-control { min-width: 160px; }
.mj-mail-dns-group { margin: 0 0 16px; }
.mj-mail-dns-group h5 { margin: 0 0 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.mj-mail-dns-group h5 small { display: block; margin-top: 2px; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--mj-muted, #a1a1aa); }
.mj-mail-dns { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mj-mail-dns > li { padding: 12px 14px; border-radius: 14px; background: var(--mj-surface-2, #111113); display: grid; gap: 8px; min-width: 0; }
.mj-mail-dns-head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.mj-mail-dns-type { flex: 0 0 auto; min-width: 54px; padding: 2px 8px; border-radius: 6px; text-align: center; font: 700 11px/1.6 var(--mj-mono); background: var(--mj-surface-3, #18181b); color: var(--mj-brand, #3b82f6); }
.mj-mail-dns-name { min-width: 0; font: 600 13px/1.4 var(--mj-mono); color: var(--mj-text, #fafafa); background: none; padding: 0; overflow-wrap: anywhere; }
.mj-mail-dns-fqdn { display: block; margin-top: -4px; color: var(--mj-muted, #a1a1aa); font: 11px/1.4 var(--mj-mono); overflow-wrap: anywhere; }
.mj-mail-dns-state { flex: 0 0 auto; padding-left: 8px; margin-left: auto; font-size: 12px; white-space: nowrap; color: var(--mj-muted, #a1a1aa); }
.mj-mail-dns > li.is-ok .mj-mail-dns-state { color: var(--mj-ok, #22c55e); }
.mj-mail-dns > li.is-miss .mj-mail-dns-state { color: var(--mj-err, #ef4444); }
.mj-mail-dns-val { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.mj-mail-dns-val code { flex: 1 1 auto; min-width: 0; padding: 8px 10px; border-radius: 10px; background: var(--mj-bg, #000); color: var(--mj-text, #e4e4e7); font: 12px/1.5 var(--mj-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.mj-mail-flash .mj-mail-secret { display: inline-block; margin: 6px 0; font-size: 15px; user-select: all; }
.mj-mail-flash small { display: block; }
/* Freigaben: Kontakte-Formulare nebeneinander */
.mjc-g3-cols { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); margin-top: 16px; }
.mjc-g3-cols .mjc-card h3 { margin-top: 0; }
[data-share-contacts] .mjc-list { margin-top: 12px; }
/* Tickets: Markdown (TicketText::html) im v2-Stil – Absätze, Listen, Code, Zitate, Tabellen */
.mj-md > :first-child { margin-top: 0; }
.mj-md > :last-child { margin-bottom: 0; }
.mj-md p { margin: 0 0 .75em; line-height: 1.6; }
.mj-md ul, .mj-md ol { margin: 0 0 .75em; padding-left: 1.4em; }
.mj-md li { margin: .2em 0; line-height: 1.55; }
.mj-md li > p { margin: 0; }
.mj-md h1, .mj-md h2, .mj-md h3, .mj-md h4 { margin: 1em 0 .4em; font: 600 1rem/1.35 var(--mj-font); color: var(--mj-text); }
.mj-md a { color: var(--mj-brand-light, #60a5fa); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.mj-md code { padding: 1px 6px; border-radius: 6px; background: var(--mj-surface-3, #18181b); color: var(--mj-text); font: .9em var(--mj-mono); overflow-wrap: anywhere; }
.mj-md pre { margin: 0 0 .75em; padding: 12px 14px; border-radius: 12px; background: var(--mj-bg, #000); overflow-x: auto; }
.mj-md pre code { padding: 0; background: none; font-size: 12.5px; line-height: 1.55; white-space: pre; overflow-wrap: normal; }
.mj-md blockquote { margin: 0 0 .75em; padding: 2px 0 2px 14px; border-left: 3px solid var(--mj-brand-a60, rgba(59, 130, 246, .6)); color: var(--mj-muted); }
.mj-md hr { height: 0; margin: 1.2em 0; border: 0; }   /* v2: keine Trennlinien, nur Abstand */
.mj-md table { width: 100%; margin: 0 0 .75em; border-collapse: collapse; font-size: 13px; }
.mj-md th, .mj-md td { padding: 6px 10px; text-align: left; background: var(--mj-surface-2); }
.mj-md th { color: var(--mj-muted); font: 600 11px var(--mj-mono); text-transform: uppercase; }
/* === Ende Kern Kundenbereich Lücken === */
/* === Kern Lücken klein === */
/* Server-Seite › Benachrichtigungen: Schwellwerte je Messwert (Name | Schwelle | Dauer | an) */
.mjp-thrs { margin-top: 16px; }
.mjp-row--thrs { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.mjp-row--thrs label { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; color: var(--mj-muted); font-size: 12.5px; }
.mjp-row--thrs .mjp-in, .mjp-thrs .mjp-thrs-rep { width: auto; min-width: 0; flex: 1 1 auto; padding: 8px 10px; background: var(--mj-surface-3, #18181b); font-size: 13px; }
.mjp-row--thrs .mjp-thrs-lim .mjp-in { max-width: 110px; }
.mjp-row--thrs input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--mj-brand); justify-self: end; }
.mjp-row--thrs.is-off > [data-thr-on] { opacity: 1; }
.mjp-thrs .mjp-thrs-rep { justify-self: end; max-width: 200px; }
.mjp-thrs-hot { color: var(--mj-warn, #f59e0b); }
@media (max-width: 720px) {
    .mjp-row--thrs { grid-template-columns: minmax(0, 1fr) auto; }
    .mjp-row--thrs > label { grid-column: 1 / -1; }
    .mjp-row--thrs > [data-thr-on] { grid-row: 1; grid-column: 2; }
}
/* Gameserver: Reiter Ressourcen / Netzwerk & Ports */
.mjg-res .mjp-res { margin: 4px 0 10px; max-width: 720px; }
.mjg-res .mjp-bar i.is-warn { background: var(--mj-warn, #f59e0b); }
.mjg-res .mjp-bar i.is-err { background: var(--mj-err, #ef4444); }
.mjg-feat { margin-top: 12px; max-width: 420px; }
.mjg-ago { color: var(--mj-muted-2); font: 11.5px var(--mj-mono); }
.mjg-net:has(> .mjg-n-dns) { grid-template-areas: "main list" "dns dns" "how how"; }
.mjg-net > .mjg-n-dns { grid-area: dns; }
.mjg-net > .mjg-n-main:first-child:nth-last-child(3) { grid-column: 1 / -1; }
@media (max-width: 900px) { .mjg-net:has(> .mjg-n-dns) { grid-template-areas: "main" "list" "dns" "how"; } }
.mjg-n-dns .mjc-btn { margin-top: 10px; }
.mjg-dns .mjg-pl-n { overflow-wrap: anywhere; }
/* === Ende Kern Lücken klein === */
