/**
 * Wendewerk GKV – UI Common
 * ============================================================
 * Gemeinsame Basis-Styles für alle Plugin-Module.
 * Setzt design-tokens.css voraus.
 * Astra/Spectra-sicher: kein font-family auf :root oder body,
 * nur innerhalb der Plugin-Wrapper-Klassen.
 */

/* Google Font: Inter (Astra lädt sie ggf. auch, doppelter Load
   schadet nicht – Browser-Cache verhindert zweiten Request) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* ================================================================
   Basis-Reset für alle Modul-Wrapper
   ================================================================ */

.wwe-gkv-editor,
.wwe-gkv-stellen,
.wwe-gkv-dateien,
.wwe-bw-verwalten,
.wwe-bw-public,
.wwg-kassenprofil,
.wwg-mitglied-werden,
.wwe-gkv-stats,
.wwg-bgm-public,
.wwg-aktionen-public,
.wwg-score,
.wwg-db,
.wwg-admin-switch,
.wwg-gs-import,
.wwg-version-shortcode {
    font-family: var(--wwg-font);
    font-size: var(--wwg-font-size-base);
    color: var(--wwg-color-text);
    line-height: var(--wwg-line-height);
    -webkit-font-smoothing: antialiased;
}

.wwe-gkv-editor *,
.wwe-gkv-stellen *,
.wwe-gkv-dateien *,
.wwe-bw-verwalten *,
.wwe-bw-public *,
.wwg-kassenprofil *,
.wwg-mitglied-werden *,
.wwe-gkv-stats *,
.wwg-bgm-public *,
.wwg-aktionen-public *,
.wwg-score *,
.wwg-db *,
.wwg-admin-switch *,
.wwg-gs-import * {
    box-sizing: border-box;
}

/* ================================================================
   Gemeinsamer Header-Block (alle Module)
   ================================================================ */

.wwe-gkv-stellen__header,
.wwe-gkv-dateien__header,
.wwe-bw-v__header,
.wwe-bw-pub__header,
.wwg-kassenprofil__header,
.wwg-kassenprofil__hero,
.wwg-mitglied-werden__header,
.wwe-gkv-stats__header,
.wwg-bgm-public__header,
.wwg-aktionen-public__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--wwg-space-6);
    padding: var(--wwg-space-6);
    margin-bottom: var(--wwg-space-5);
    background: var(--wwg-color-surface);
    border: var(--wwg-card-border);
    border-radius: var(--wwg-card-radius);
    box-shadow: var(--wwg-card-shadow);
}

/* Eyebrow -------------------------------------------------------- */

.wwe-gkv-stellen__eyebrow,
.wwe-gkv-dateien__eyebrow,
.wwe-bw-v__eyebrow,
.wwe-bw-pub__eyebrow,
.wwg-kassenprofil__eyebrow,
.wwg-mitglied-werden__eyebrow,
.wwe-gkv-stats__eyebrow,
.wwg-bgm-public__eyebrow,
.wwg-aktionen-public__eyebrow {
    margin: 0 0 var(--wwg-space-2);
    color: var(--wwg-color-primary);
    font-size: var(--wwg-font-size-xs);
    font-weight: var(--wwg-font-weight-bold);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

/* Titel ---------------------------------------------------------- */

.wwe-gkv-stellen__title,
.wwe-gkv-dateien__title,
.wwe-bw-v__title,
.wwe-bw-pub__title,
.wwg-kassenprofil__title,
.wwg-mitglied-werden__title,
.wwe-gkv-stats__title,
.wwg-bgm-public__title,
.wwg-aktionen-public__title {
    margin: 0 0 var(--wwg-space-2);
    color: var(--wwg-color-text);
    font-size: var(--wwg-font-size-2xl);
    font-weight: var(--wwg-font-weight-bold);
    line-height: 1.2;
}

/* Intro / Help --------------------------------------------------- */

.wwe-gkv-stellen__intro,
.wwe-gkv-stellen__help,
.wwe-gkv-dateien__help,
.wwe-bw-v__intro,
.wwe-bw-pub__intro,
.wwg-kassenprofil__intro,
.wwg-kassenprofil__hint,
.wwg-mitglied-werden__intro,
.wwe-gkv-stats__help,
.wwg-bgm-public__intro,
.wwg-aktionen-public__intro {
    margin: 0;
    color: var(--wwg-color-text-muted);
    font-size: var(--wwg-font-size-sm);
    line-height: 1.6;
}

/* Status-Reihe --------------------------------------------------- */

.wwe-gkv-stellen__status,
.wwe-gkv-dateien__status-badges,
.wwe-bw-v__status,
.wwe-bw-pub__status,
.wwg-kassenprofil__status,
.wwg-mitglied-werden__status,
.wwe-gkv-stats__status,
.wwg-bgm-public__status,
.wwg-aktionen-public__status {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wwg-space-2);
    align-content: flex-start;
    justify-content: flex-end;
}

/* ================================================================
   Badges / Pills
   ================================================================ */

.wwe-gkv-stellen__badge,
.wwe-gkv-dateien__badge,
.wwe-bw-v__badge,
.wwe-bw-pub__badge,
.wwg-kassenprofil__badge,
.wwg-mitglied-werden__badge,
.wwe-gkv-stats__badge,
.wwg-bgm-public__badge,
.wwg-aktionen-public__badge,
.wwe-gkv-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--wwg-btn-height);
    padding: 0 var(--wwg-space-4);
    border-radius: var(--wwg-radius-pill);
    background: var(--wwg-color-primary);
    color: var(--wwg-color-text-white);
    font-size: var(--wwg-font-size-sm);
    font-weight: var(--wwg-font-weight-semibold);
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
}

.wwe-gkv-stellen__badge--soft,
.wwe-gkv-dateien__badge--soft,
.wwe-bw-v__badge--soft,
.wwe-bw-pub__badge--soft,
.wwg-kassenprofil__badge--soft,
.wwg-mitglied-werden__badge--soft,
.wwe-gkv-stats__badge--soft,
.wwg-bgm-public__badge--soft,
.wwg-aktionen-public__badge--soft,
.wwe-gkv-badge--soft {
    background: var(--wwg-color-primary-soft);
    color: var(--wwg-color-navy);
}

/* ================================================================
   Buttons
   ================================================================ */

.wwe-gkv-button,
.wwg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--wwg-space-2);
    height: var(--wwg-btn-height);
    padding: var(--wwg-btn-padding);
    border-radius: var(--wwg-btn-radius);
    background: var(--wwg-color-primary);
    color: var(--wwg-color-text-white) !important;
    font-family: var(--wwg-font);
    font-size: var(--wwg-btn-font-size);
    font-weight: var(--wwg-btn-font-weight);
    line-height: 1;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--wwg-transition), border-color var(--wwg-transition);
    -webkit-appearance: none;
    appearance: none;
}

.wwe-gkv-button:hover,
.wwg-btn:hover {
    background: var(--wwg-color-primary-dark);
    color: var(--wwg-color-text-white) !important;
}

.wwe-gkv-button:disabled,
.wwg-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.wwe-gkv-button--secondary,
.wwg-btn--secondary {
    background: transparent;
    color: var(--wwg-color-navy) !important;
    border-color: var(--wwg-color-border);
}

.wwe-gkv-button--secondary:hover,
.wwg-btn--secondary:hover {
    background: var(--wwg-color-surface-soft);
    border-color: var(--wwg-color-primary);
    color: var(--wwg-color-primary) !important;
}

.wwe-gkv-button--danger,
.wwg-btn--danger {
    background: var(--wwg-color-error);
}

.wwe-gkv-button--danger:hover,
.wwg-btn--danger:hover {
    background: #b91c1c;
}

/* ================================================================
   Alert / Meldungen
   ================================================================ */

.wwe-gkv-alert {
    padding: var(--wwg-space-4) var(--wwg-space-4);
    border-radius: var(--wwg-radius);
    font-size: var(--wwg-font-size-sm);
    font-weight: var(--wwg-font-weight-medium);
    line-height: 1.5;
    border: 1px solid transparent;
}

.wwe-gkv-alert--notice {
    background: var(--wwg-color-primary-soft);
    color: var(--wwg-color-navy);
    border-color: #bae6fd;
}

.wwe-gkv-alert--error {
    background: var(--wwg-color-error-soft);
    color: var(--wwg-color-error);
    border-color: #fecaca;
}

.wwe-gkv-alert--success {
    background: var(--wwg-color-success-soft);
    color: var(--wwg-color-success);
    border-color: #bbf7d0;
}

.wwe-gkv-alert--warning {
    background: var(--wwg-color-warning-soft);
    color: var(--wwg-color-warning);
    border-color: #fde68a;
}

/* ================================================================
   Statistiken-Modul: Token-Reset
   (überschreibt abweichende Farben aus statistiken.css)
   ================================================================ */

.wwe-gkv-stats {
    --wwg-border:   var(--wwg-color-border-soft);
    --wwg-bg:       var(--wwg-color-bg);
    --wwg-card:     var(--wwg-color-surface);
    --wwg-text:     var(--wwg-color-text);
    --wwg-muted:    var(--wwg-color-text-muted);
    --wwg-primary:  var(--wwg-color-primary);
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.wwe-gkv-stats__header {
    box-shadow: none !important;
}

.wwe-gkv-stats__period {
    border-radius: var(--wwg-radius-pill) !important;
}

.wwe-gkv-stats__period.is-active,
.wwe-gkv-stats__period[aria-pressed="true"] {
    background: var(--wwg-color-primary) !important;
    border-color: var(--wwg-color-primary) !important;
}

.wwe-gkv-stats__card,
.wwe-gkv-stats__panel,
.wwe-gkv-stats__mini-card,
.wwe-gkv-stats__highlight,
.wwe-gkv-stats__benchmark-item,
.wwe-gkv-stats__chart {
    border-radius: var(--wwg-card-radius) !important;
    box-shadow: none !important;
}

/* ================================================================
   Bewertungen: Token-Reset
   ================================================================ */

.wwe-bw-verwalten,
.wwe-bw-public {
    --wwg-primary:      var(--wwg-color-primary);
    --wwg-primary-dark: var(--wwg-color-navy-deep);
    --wwg-radius:       var(--wwg-radius);
    --wwg-shadow:       none;
}

/* ================================================================
   Utility
   ================================================================ */

.wwg-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ================================================================
   Responsive
   ================================================================ */

@media (max-width: 900px) {
    .wwe-gkv-stellen__header,
    .wwe-gkv-dateien__header,
    .wwe-bw-v__header,
    .wwe-bw-pub__header,
    .wwg-kassenprofil__header,
    .wwg-kassenprofil__hero,
    .wwg-mitglied-werden__header,
    .wwe-gkv-stats__header,
    .wwg-bgm-public__header,
    .wwg-aktionen-public__header {
        flex-direction: column;
        align-items: stretch;
    }

    .wwg-kassenprofil__status,
    .wwg-mitglied-werden__status,
    .wwe-gkv-stellen__status,
    .wwe-gkv-dateien__status-badges,
    .wwe-gkv-stats__status {
        justify-content: flex-start;
    }
}
