/* ═══════════════════════════════════════════════════════════════
   CRONMANAGER × CASSIOPEIA – user.css  (v2 · Light + Dark Mode)
   Joomla 5 Child Template: cassiopeia_cronmanager
   Pfad: media/templates/site/cassiopeia_cronmanager/css/user.css
   Version: 2.0 | März 2026
═══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   1. MARKENFARBEN — modusunabhängig, niemals überschreiben
══════════════════════════════════════════════════════════════ */
:root {
  --cm-violet:   #c084fc;
  --cm-indigo:   #818cf8;
  --cm-sky:      #38bdf8;
  --cm-grad:     linear-gradient(135deg, #c084fc, #818cf8, #38bdf8);

  --cm-success:  #34d399;
  --cm-danger:   #f87171;
  --cm-warning:  #fbbf24;
  --cm-info:     #38bdf8;
}

/* ══════════════════════════════════════════════════════════════
   2. DARK MODE — Standard/Fallback
══════════════════════════════════════════════════════════════ */
:root,
.theme-dark {
  --cm-bg-deep:      #080812;
  --cm-bg-dark:      #0d0d1f;
  --cm-bg-card:      #12122a;
  --cm-bg-elevated:  #17173a;
  --cm-border:       #1e1e40;
  --cm-border-focus: #818cf8;

  --cm-text:         #f0f0ff;
  --cm-muted:        #8888bb;
  --cm-faint:        #44446a;

  /* Cassiopeia-Variablen */
  --cassiopeia-color-primary:        #818cf8;
  --cassiopeia-color-link:           #818cf8;
  --cassiopeia-color-hover:          #c084fc;
  --cassiopeia-color-gradient-start: #c084fc;
  --cassiopeia-color-gradient-end:   #38bdf8;
}

/* ══════════════════════════════════════════════════════════════
   3. LIGHT MODE — OS-Präferenz (ohne manuellen Override)
══════════════════════════════════════════════════════════════ */
@media (prefers-color-scheme: light) {
  :root:not(.theme-dark) {
    --cm-bg-deep:      #f4f4fb;
    --cm-bg-dark:      #ffffff;
    --cm-bg-card:      #ffffff;
    --cm-bg-elevated:  #f0f2ff;
    --cm-border:       #ddddf0;
    --cm-border-focus: #818cf8;

    --cm-text:         #1a1a2e;
    --cm-muted:        #5a5a80;
    --cm-faint:        #9090b8;

    --cassiopeia-color-primary:        #6366f1;
    --cassiopeia-color-link:           #6366f1;
    --cassiopeia-color-hover:          #a855f7;
    --cassiopeia-color-gradient-start: #a855f7;
    --cassiopeia-color-gradient-end:   #0ea5e9;
  }
}

/* ══════════════════════════════════════════════════════════════
   4. LIGHT MODE — manueller Toggle (.theme-light auf <body>)
══════════════════════════════════════════════════════════════ */
.theme-light {
  --cm-bg-deep:      #f4f4fb;
  --cm-bg-dark:      #ffffff;
  --cm-bg-card:      #ffffff;
  --cm-bg-elevated:  #f0f2ff;
  --cm-border:       #ddddf0;
  --cm-border-focus: #818cf8;

  --cm-text:         #1a1a2e;
  --cm-muted:        #5a5a80;
  --cm-faint:        #9090b8;

  --cassiopeia-color-primary:        #6366f1;
  --cassiopeia-color-link:           #6366f1;
  --cassiopeia-color-hover:          #a855f7;
  --cassiopeia-color-gradient-start: #a855f7;
  --cassiopeia-color-gradient-end:   #0ea5e9;
}

/* ══════════════════════════════════════════════════════════════
   5. BASIS
══════════════════════════════════════════════════════════════ */
body {
  background-color: var(--cm-bg-deep);
  color:            var(--cm-text);
  font-family:      'Outfit', system-ui, sans-serif;
  transition:       background-color .25s ease, color .25s ease;
}

/* ══════════════════════════════════════════════════════════════
   6. HEADER & NAVIGATION
══════════════════════════════════════════════════════════════ */
.container-header {
  background-color: var(--cm-bg-dark);
  background-image: none;
  border-bottom:    1px solid var(--cm-border);
  transition:       background-color .25s ease, border-color .25s ease;
}

/* Light Mode: leichter Schatten statt Border */
.theme-light .container-header,
@media (prefers-color-scheme: light) {
  :root:not(.theme-dark) .container-header {
    box-shadow: 0 1px 0 var(--cm-border), 0 2px 8px rgba(129,140,248,0.06);
  }
}

.container-header .mod-menu a,
.container-header .navbar-nav .nav-link {
  color:       var(--cm-muted);
  font-weight: 500;
  font-size:   14px;
  transition:  color .15s ease;
}
.container-header .mod-menu a:hover,
.container-header .navbar-nav .nav-link:hover,
.container-header .mod-menu .active > a {
  color: var(--cm-text);
}

.container-header .navbar-toggler {
  color:        var(--cm-indigo);
  border-color: var(--cm-border);
}
.theme-dark .container-header .navbar-toggler-icon {
  filter: invert(60%) sepia(60%) saturate(400%) hue-rotate(210deg);
}

.container-header .navbar-collapse {
  background-color: var(--cm-bg-card);
  border-top:       1px solid var(--cm-border);
  padding:          8px 0;
}

@media (min-width: 992px) {
  .container-header .header {
    display:               grid;
    grid-template-columns: auto 1fr auto;
    align-items:           center;
    gap:                   24px;
    padding:               14px 32px;
  }
  .container-header .navbar-brand { padding: 0; }
  .container-header .mod-menu {
    justify-content: center;
    gap:             4px;
  }
  .container-header .mod-menu .nav-link {
    padding:       6px 14px;
    border-radius: 8px;
    transition:    background .15s ease, color .15s ease;
  }
  .container-header .mod-menu .nav-link:hover {
    background: rgba(129,140,248,.1);
    color:      var(--cm-text);
  }
  .container-header .mod-menu .active .nav-link {
    background: rgba(129,140,248,.1);
    color:      var(--cm-text);
  }
}

/* ══════════════════════════════════════════════════════════════
   7. THEME TOGGLE BUTTON
══════════════════════════════════════════════════════════════ */
.cm-theme-toggle {
  width:         36px;
  height:        36px;
  border-radius: 8px;
  border:        1px solid var(--cm-border);
  background:    transparent;
  cursor:        pointer;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     16px;
  color:         var(--cm-muted);
  transition:    border-color .2s ease, background .2s ease;
  flex-shrink:   0;
}
.cm-theme-toggle:hover {
  border-color: var(--cm-indigo);
  background:   rgba(129,140,248,.08);
  color:        var(--cm-text);
}
/* Icon-Sichtbarkeit */
.theme-dark  .icon-sun  { display: inline; }
.theme-dark  .icon-moon { display: none; }
.theme-light .icon-sun  { display: none; }
.theme-light .icon-moon { display: inline; }

/* ══════════════════════════════════════════════════════════════
   8. FOOTER
══════════════════════════════════════════════════════════════ */
.container-footer {
  background-color: var(--cm-bg-dark);
  background-image: none;
  border-top:       1px solid var(--cm-border);
  color:            var(--cm-faint);
  transition:       background-color .25s ease;
}
.container-footer a       { color: var(--cm-muted); }
.container-footer a:hover { color: var(--cm-indigo); }

/* ══════════════════════════════════════════════════════════════
   9. CONTENT-BEREICH
══════════════════════════════════════════════════════════════ */
.container-component { background-color: transparent; }
.item-page, .blog, .category-list { color: var(--cm-text); }

.blog .items-leading .item,
.blog .items-row .item,
.blog .items-more li {
  background:    var(--cm-bg-card);
  border:        1px solid var(--cm-border);
  border-radius: 14px;
  padding:       28px;
  margin-bottom: 20px;
  transition:    background-color .25s ease, border-color .25s ease;
}
/* Light: Schatten statt starke Border */
.theme-light .blog .items-leading .item,
.theme-light .blog .items-row .item {
  box-shadow: 0 1px 4px rgba(129,140,248,0.07);
}

/* ══════════════════════════════════════════════════════════════
   10. TYPOGRAFIE
══════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color:          var(--cm-text);
  font-weight:    700;
  letter-spacing: -0.02em;
  transition:     color .25s ease;
}
p { color: var(--cm-muted); }

a, a:visited  { color: var(--cm-indigo); text-decoration: none; }
a:hover       { color: var(--cm-violet); text-decoration: underline; }

.page-header h1 {
  background:              var(--cm-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip:         text;
}

/* ══════════════════════════════════════════════════════════════
   11. BUTTONS
══════════════════════════════════════════════════════════════ */
.btn-primary {
  background:    var(--cm-grad);
  border:        none;
  color:         #fff;
  font-weight:   600;
  border-radius: 10px;
  padding:       10px 22px;
}
.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(135deg, #a855f7, #6366f1, #0ea5e9);
  border:     none;
  box-shadow: 0 0 20px rgba(129,140,248,.3);
  color:      #fff;
}

.btn-secondary {
  background:    rgba(129,140,248,.1);
  border:        1px solid rgba(129,140,248,.3);
  color:         var(--cm-indigo);
  border-radius: 10px;
  font-weight:   600;
}
.btn-secondary:hover {
  background: rgba(129,140,248,.18);
  color:      var(--cm-text);
}
/* Light: etwas stärkerer Kontrast */
.theme-light .btn-secondary {
  background: rgba(99,102,241,.08);
  border-color: rgba(99,102,241,.3);
}

.btn-outline-primary {
  border-color:  var(--cm-indigo);
  color:         var(--cm-indigo);
  border-radius: 10px;
}
.btn-outline-primary:hover {
  background:   rgba(129,140,248,.12);
  border-color: var(--cm-indigo);
  color:        var(--cm-indigo);
}

.btn-danger {
  background:    rgba(248,113,113,.1);
  border:        1px solid rgba(248,113,113,.3);
  color:         var(--cm-danger);
  border-radius: 10px;
}
.btn-danger:hover {
  background: rgba(248,113,113,.2);
}

/* ══════════════════════════════════════════════════════════════
   12. FORMULARE
══════════════════════════════════════════════════════════════ */
.form-control,
.form-select {
  background-color: var(--cm-bg-deep);
  border:           1px solid var(--cm-border);
  color:            var(--cm-text);
  border-radius:    10px;
  transition:       border-color .15s ease, box-shadow .15s ease,
                    background-color .25s ease;
}
.form-control:focus,
.form-select:focus {
  border-color:     var(--cm-border-focus);
  box-shadow:       0 0 0 3px rgba(129,140,248,.15);
  background-color: var(--cm-bg-deep);
  color:            var(--cm-text);
  outline:          none;
}
/* Light: Inputs auf weißem BG sichtbar abheben */
.theme-light .form-control,
.theme-light .form-select {
  background-color: var(--cm-bg-elevated);
}
.theme-light .form-control:focus,
.theme-light .form-select:focus {
  background-color: #ffffff;
}

::placeholder { color: var(--cm-faint); }
.form-label   { color: var(--cm-muted); font-size: 13px; font-weight: 500; }
.form-text    { color: var(--cm-faint); }

/* ══════════════════════════════════════════════════════════════
   13. CARDS & MODULE
══════════════════════════════════════════════════════════════ */
.card,
.sidebar-left .card,
.sidebar-right .card {
  background-color: var(--cm-bg-card);
  border:           1px solid var(--cm-border);
  border-radius:    14px;
  color:            var(--cm-text);
  transition:       background-color .25s ease, border-color .25s ease;
}
.card:hover {
  background-color: var(--cm-bg-elevated);
}
/* Light: Schatten für Tiefe */
.theme-light .card {
  box-shadow: 0 1px 4px rgba(129,140,248,0.07);
}
.theme-light .card:hover {
  box-shadow: 0 4px 16px rgba(129,140,248,0.12);
}

.card-header {
  background-color: transparent;
  border-bottom:    1px solid var(--cm-border);
  font-weight:      700;
  color:            var(--cm-text);
}
.card-body { color: var(--cm-muted); }

.moduletable > h3,
.moduletable > .module-title {
  font-size:      12px;
  font-weight:    700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color:          var(--cm-faint);
  margin-bottom:  12px;
}

/* ══════════════════════════════════════════════════════════════
   14. BREADCRUMBS
══════════════════════════════════════════════════════════════ */
.breadcrumb { background: transparent; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--cm-faint); }
.breadcrumb-item a      { color: var(--cm-indigo); }
.breadcrumb-item.active { color: var(--cm-muted); }

/* ══════════════════════════════════════════════════════════════
   15. PAGINATION
══════════════════════════════════════════════════════════════ */
.pagination .page-link {
  background-color: var(--cm-bg-card);
  border-color:     var(--cm-border);
  color:            var(--cm-muted);
  border-radius:    8px;
  transition:       background-color .15s ease;
}
.pagination .page-link:hover {
  background-color: rgba(129,140,248,.12);
  color:            var(--cm-indigo);
}
.pagination .active .page-link {
  background: var(--cm-grad);
  border:     none;
  color:      #fff;
}

/* ══════════════════════════════════════════════════════════════
   16. ALERTS
══════════════════════════════════════════════════════════════ */
.alert-info    { background: rgba(129,140,248,.1);  border-color: rgba(129,140,248,.25); color: var(--cm-indigo); }
.alert-success { background: rgba(52,211,153,.08);  border-color: rgba(52,211,153,.2);   color: var(--cm-success); }
.alert-danger,
.alert-error   { background: rgba(248,113,113,.08); border-color: rgba(248,113,113,.2);  color: var(--cm-danger); }
.alert-warning { background: rgba(251,191,36,.08);  border-color: rgba(251,191,36,.2);   color: var(--cm-warning); }

/* Light: etwas stärkere Sättigung */
.theme-light .alert-info    { background: rgba(129,140,248,.07); }
.theme-light .alert-success { background: rgba(52,211,153,.06); }

/* ══════════════════════════════════════════════════════════════
   17. STATUS-BADGES (Job-Status — modusunabhängig)
══════════════════════════════════════════════════════════════ */
.badge-cm-success,
.badge-cm-running,
.badge-cm-failed,
.badge-cm-pending,
.badge-cm-disabled {
  font-family:  'JetBrains Mono', monospace;
  font-size:    11px;
  font-weight:  600;
  padding:      4px 10px;
  border-radius:6px;
}
.badge-cm-success  { background: rgba(52,211,153,.12);  color: #34d399; border: 1px solid rgba(52,211,153,.2); }
.badge-cm-running  { background: rgba(129,140,248,.12); color: #818cf8; border: 1px solid rgba(129,140,248,.2); }
.badge-cm-failed   { background: rgba(248,113,113,.12); color: #f87171; border: 1px solid rgba(248,113,113,.2); }
.badge-cm-pending  { background: rgba(251,191,36,.12);  color: #fbbf24; border: 1px solid rgba(251,191,36,.2); }
.badge-cm-disabled { background: rgba(100,100,150,.1);  color: #6666aa; border: 1px solid rgba(100,100,150,.2); }

/* ══════════════════════════════════════════════════════════════
   18. TABELLEN
══════════════════════════════════════════════════════════════ */
.table { color: var(--cm-text); }
.table th {
  color: var(--cm-faint); font-size: 11px; letter-spacing: .15em;
  text-transform: uppercase; font-family: 'JetBrains Mono', monospace;
  font-weight: 700; border-bottom: 1px solid var(--cm-border);
}
.table td {
  border-color: var(--cm-border);
  color:        var(--cm-muted);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(129,140,248,.03);
  color: var(--cm-muted);
}
.table-hover > tbody > tr:hover > * {
  background-color: rgba(129,140,248,.06);
  color: var(--cm-text);
}

/* ══════════════════════════════════════════════════════════════
   19. CODE / CRON-EXPRESSIONS
══════════════════════════════════════════════════════════════ */
code, pre, kbd, samp, .cron-expression {
  font-family:      'JetBrains Mono', monospace;
  font-size:        .88em;
  color:            #a5f3fc;
  background-color: rgba(56,189,248,.08);
  padding:          2px 8px;
  border-radius:    5px;
}
pre {
  padding: 16px 20px; border-radius: 10px;
  border:  1px solid var(--cm-border);
  overflow-x: auto; line-height: 1.7;
}
/* Light: etwas dunklerer Code-Hintergrund für Kontrast */
.theme-light code,
.theme-light pre,
.theme-light .cron-expression {
  background-color: rgba(99,102,241,.07);
  color:            #4f46e5;
}

/* ══════════════════════════════════════════════════════════════
   20. BACK TO TOP
══════════════════════════════════════════════════════════════ */
.back-to-top-link {
  background:    var(--cm-grad);
  color:         #fff;
  border-radius: 50%;
  border:        none;
}

/* ══════════════════════════════════════════════════════════════
   21. BRAND-HELFER-KLASSEN (Module Class im Joomla-Backend)
══════════════════════════════════════════════════════════════ */

/* cm-hero */
.cm-hero {
  background:    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(129,140,248,.15) 0%, transparent 70%);
  text-align:    center;
  padding:       80px 40px;
  border-bottom: 1px solid var(--cm-border);
}
.theme-light .cm-hero {
  background: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(129,140,248,.08) 0%, transparent 70%);
}
.cm-hero h1, .cm-hero h2 {
  background:              var(--cm-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip:         text;
  font-size:               clamp(32px, 5vw, 60px);
  font-weight:             800;
  letter-spacing:          -.04em;
}
.cm-hero p {
  color: var(--cm-muted); max-width: 540px;
  margin: 0 auto; font-weight: 300; font-size: 16px;
}

/* cm-card */
.cm-card {
  background:    var(--cm-bg-card);
  border:        1px solid var(--cm-border);
  border-radius: 14px;
  padding:       28px;
  transition:    background-color .25s ease;
}

/* cm-stat */
.cm-stat {
  background:    var(--cm-bg-card);
  border:        1px solid var(--cm-border);
  border-radius: 14px;
  padding:       20px 24px;
  text-align:    center;
}
.cm-stat .stat-value {
  display: block; font-size: 36px; font-weight: 800; letter-spacing: -0.03em;
  background: var(--cm-grad);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}
.cm-stat .stat-label {
  display: block; font-size: 12px; color: var(--cm-faint); margin-top: 4px; font-weight: 500;
}

/* cm-mono */
.cm-mono, .cm-mono * {
  font-family: 'JetBrains Mono', monospace;
  font-size:   13px; color: var(--cm-muted);
}

/* ══════════════════════════════════════════════════════════════
   22. THEME-TOGGLE JAVASCRIPT (als <script> in Custom-Modul)
══════════════════════════════════════════════════════════════

<button class="cm-theme-toggle" onclick="cmToggleTheme()" aria-label="Theme wechseln">
  <span class="icon-sun">☀️</span>
  <span class="icon-moon">🌙</span>
</button>

<script>
(function() {
  var saved  = localStorage.getItem('cm-theme');
  var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
  var theme  = saved || (prefersDark ? 'dark' : 'light');
  document.body.classList.add('theme-' + theme);
})();

function cmToggleTheme() {
  var isDark = document.body.classList.contains('theme-dark');
  document.body.classList.toggle('theme-dark',  !isDark);
  document.body.classList.toggle('theme-light',  isDark);
  localStorage.setItem('cm-theme', isDark ? 'light' : 'dark');
}
</script>

══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   23. RESPONSIVENESS
══════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .container-header { padding: 12px 16px; }
  .cm-hero          { padding: 48px 20px; }
  .cm-hero h1,
  .cm-hero h2       { font-size: 28px; }
  .blog .items-leading .item,
  .blog .items-row .item { padding: 20px; }
}

/* ═══════════════════════════════════════════════════
   PRODUCT PAGES – Article content styles
═══════════════════════════════════════════════════ */

/* Hero buttons */
.cm-hero-buttons {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px;
}
.cm-hero-buttons .btn {
  padding: 11px 26px; border-radius: 10px; font-weight: 600; font-size: 15px;
  text-decoration: none; transition: all .2s ease;
}
.cm-hero-buttons .btn-primary {
  background: #6366f1; border-color: #6366f1; color: #fff;
}
.cm-hero-buttons .btn-primary:hover,
.cm-hero-buttons .btn-primary:focus {
  background: #4f46e5; border-color: #4f46e5; color: #fff;
}

/* Badges */
.cm-badges {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 32px 0;
}
.cm-badge {
  background: rgba(129,140,248,.08); border: 1px solid rgba(129,140,248,.2);
  color: var(--cm-muted); padding: 4px 12px; border-radius: 20px;
  font-size: 12px; font-family: 'JetBrains Mono', monospace;
  font-weight: 600; letter-spacing: .05em;
}

/* Feature grid */
.cm-feature-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px; margin: 40px 0;
}
.cm-feature-card {
  background: var(--cm-bg-card); border: 1px solid var(--cm-border);
  border-radius: 14px; padding: 24px; transition: background-color .2s ease, border-color .2s ease;
}
.cm-feature-card:hover {
  background: var(--cm-bg-elevated); border-color: rgba(129,140,248,.35);
}
.cm-feature-icon { font-size: 28px; margin-bottom: 14px; }
.cm-feature-card h3 { font-size: 15px; font-weight: 700; color: var(--cm-text); margin: 0 0 8px; }
.cm-feature-card p { font-size: 14px; color: var(--cm-muted); margin: 0; font-weight: 300; line-height: 1.6; }
.theme-light .cm-feature-card { box-shadow: 0 1px 4px rgba(129,140,248,.07); }

/* Screenshot grid */
.cm-screenshot-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px; margin: 40px 0;
}
.cm-screenshot-placeholder {
  background: var(--cm-bg-card); border: 1px dashed var(--cm-border); border-radius: 12px;
  aspect-ratio: 16/10; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  color: var(--cm-faint); font-size: 13px; font-family: 'JetBrains Mono', monospace;
}
.cm-screenshot-placeholder svg { opacity: .3; width: 48px; height: 48px; }
.cm-screenshot-label { text-align: center; font-size: 12px; color: var(--cm-faint); margin-top: 8px; font-family: 'JetBrains Mono', monospace; }

/* Install cards */
.cm-install-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px; margin: 32px 0;
}
.cm-install-card { background: var(--cm-bg-card); border: 1px solid var(--cm-border); border-radius: 14px; padding: 24px; }
.cm-install-card .cm-install-badge {
  display: inline-block; background: var(--cm-grad); color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 6px; margin-bottom: 12px;
}
.cm-install-card h3 { font-size: 16px; margin: 0 0 8px; color: var(--cm-text); }
.cm-install-card p { font-size: 13px; color: var(--cm-muted); margin: 0 0 14px; font-weight: 300; }

/* Quickstart */
.cm-quickstart {
  background: var(--cm-bg-card); border: 1px solid var(--cm-border);
  border-radius: 14px; padding: 32px; text-align: center; margin: 48px 0;
}
.cm-quickstart h2 { font-size: 22px; margin: 0 0 16px; color: var(--cm-text); }
.cm-quickstart pre { text-align: left; font-size: 13px; margin: 0 0 16px; }
.cm-quickstart p { font-size: 14px; color: var(--cm-muted); margin: 0; }

/* Section title */
.cm-section-title { font-size: 24px; font-weight: 800; color: var(--cm-text); margin: 48px 0 24px; letter-spacing: -.03em; }
.cm-section-title span {
  background: var(--cm-grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}

/* Hide Joomla article chrome on product pages */
.item-page .page-header { display: none; }
.item-page .article-info { display: none; }

/* Language switcher */
.mod-languages ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 8px; }
.mod-languages ul li a {
  display: flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 8px;
  font-size: 12px; font-weight: 600; color: var(--cm-muted); text-decoration: none;
  border: 1px solid var(--cm-border); transition: all .15s ease;
}
.mod-languages ul li a:hover, .mod-languages ul li.lang-active a {
  color: var(--cm-text); border-color: var(--cm-indigo); background: rgba(129,140,248,.08);
}

@media (max-width: 767px) {
  .cm-feature-grid, .cm-install-grid, .cm-screenshot-grid { grid-template-columns: 1fr; }
  .cm-hero-buttons { flex-direction: column; align-items: center; }
  .cm-quickstart pre { font-size: 11px; overflow-x: auto; }
}