/*
YOPT_DEV_STAMP_START
{
  "title": "Frontend-App CSS",
  "short_description": "Styles für Dashboard, Sidebar und Frontend-App.",
  "development_status": "development",
  "phase_number": 13,
  "work_status": "development",
  "development_started": "2026-06-09",
  "last_file_modified": "2026-06-10 08:47:46",
  "plugin_affiliation": "yop-vereinssuite",
  "module_affiliation": "frontend-app",
  "function_affiliation": "frontend_app_styles",
  "subfunction_affiliation": "frontend_app_css",
  "release_date": "",
  "last_extension": "2026-06-10 08:47:46",
  "development_version": "0.1.0-foundation",
  "area_type": "design"
}
YOPT_DEV_STAMP_END
*/

/*
YOPT_FEATURE_STAMP_START
{
  "stamp_type": "feature",
  "stamp_version": "1.0.0",
  "file": "assets/css/modules/frontend-app.css",
  "plugin": "Vereinssuite",
  "project_id": "yop-vereinssuite",
  "module": {
    "name": "Frontend-App",
    "key": "frontend-app",
    "description": "Stellt den geschützten Frontend-Bereich des Vereinssuite-Plugins bereit."
  },
  "feature": {
    "name": "Frontend-App Oberfläche",
    "key": "frontend_app_ui",
    "type": "function",
    "description": "Stellt die erste moderne Oberfläche der Frontend-App dar.",
    "responsibility": "Diese Datei enthält das Styling für Sidebar, Dashboard-Karten und Schnellzugriffe."
  },
  "subfeature": {
    "name": "Frontend-App Oberfläche",
    "key": "frontend_app_ui",
    "description": "Stellt die erste moderne Oberfläche der Frontend-App dar."
  },
  "function_catalog": {
    "visible": false,
    "target": "developer",
    "title": "Frontend-App Oberfläche",
    "category": "Frontend-App",
    "short_text": "Funktionäre und berechtigte Benutzer erhalten einen geschützten Frontend-Bereich mit Dashboard und Modulnavigation.",
    "description": "Die Frontend-App bündelt Dashboard, Navigation und die wichtigsten Vereinssuite-Module in einem geschützten Bereich der Vereinswebsite.",
    "benefit": "Der Verein kann tägliche Verwaltungsarbeiten direkt im Frontend erledigen, ohne dass normale Benutzer Zugriff auf den WordPress-Adminbereich benötigen.",
    "sort_order": 5,
    "highlight": false,
    "show_in_backend": true,
    "show_in_frontend": true,
    "show_for_website_visitors": false,
    "show_for_customers": false,
    "show_for_developers": true,
    "show_for_interested_users": false
  },
  "technical_context": {
    "area": "design",
    "view_type": "dashboard",
    "execution_type": "page_render",
    "supports_ajax": false,
    "supports_rest_api": false,
    "supports_gutenberg": true,
    "supports_elementor": true
  },
  "user_context": {
    "user_roles": [
      "administrator",
      "club_manager"
    ],
    "permissions_required": [
      "manage_options"
    ]
  },
  "data_context": {
    "data_objects": [
      "Dashboard",
      "Mitglieder",
      "Beiträge",
      "Dokumente",
      "Aufgaben",
      "Sponsoren"
    ],
    "input_data": [
      "Frontend-Route",
      "Benutzerrolle"
    ],
    "output_data": [
      "Dashboard-Karten",
      "Frontend-Navigation",
      "Modulansicht"
    ],
    "related_database_tables": [
      "wp_yvm_members",
      "wp_yvm_fees",
      "wp_yvm_documents",
      "wp_yvm_tasks",
      "wp_yvm_sponsors"
    ]
  },
  "process_context": {
    "main_actions": [
      "Frontend-App anzeigen",
      "Dashboard laden",
      "Modulnavigation ausgeben",
      "Modulansichten einbetten"
    ],
    "dependencies": [
      "Mitgliederverwaltung",
      "Beitragsverwaltung",
      "Dokumentenverwaltung",
      "Aufgabenverwaltung",
      "Sponsorenverwaltung"
    ],
    "related_templates": [],
    "related_assets": [
      "assets/css/modules/frontend-app.css"
    ]
  },
  "security_context": {
    "security_requirements": [
      "Login prüfen",
      "Berechtigung prüfen",
      "Ausgaben escapen"
    ],
    "privacy_relevance": true,
    "privacy_notes": "Die Frontend-App zeigt vereinsinterne und personenbezogene Daten nur nach Anmeldung und Berechtigungsprüfung an."
  },
  "development_context": {
    "status": "development",
    "priority": "high",
    "phase_number": 13,
    "is_core_feature": true,
    "is_optional_feature": false,
    "is_pro_feature": false,
    "last_function_update": "2026-06-09",
    "notes": "Grundlage für spätere vollständige Frontend-Verwaltung ohne WordPress-Adminzugang."
  }
}
YOPT_FEATURE_STAMP_END
*/

.yvm-frontend-app {
    --yvm-bg: #f5f7fb;
    --yvm-card: #ffffff;
    --yvm-border: #dcdcde;
    --yvm-text: #1d2327;
    --yvm-muted: #646970;
    --yvm-primary: #2271b1;
    --yvm-primary-dark: #135e96;
    background: var(--yvm-bg);
    color: var(--yvm-text);
    border-radius: 18px;
    overflow: hidden;
    margin: 20px 0;
}

.yvm-frontend-shell {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    min-height: 680px;
}

.yvm-frontend-sidebar {
    background: #101828;
    color: #fff;
    padding: 22px;
}

.yvm-frontend-brand {
    display: grid;
    gap: 4px;
    margin-bottom: 22px;
}

.yvm-frontend-brand strong {
    font-size: 20px;
    line-height: 1.2;
}

.yvm-frontend-brand span {
    color: rgba(255,255,255,.68);
    font-size: 13px;
}

.yvm-frontend-nav {
    display: grid;
    gap: 8px;
}

.yvm-frontend-nav a {
    display: flex;
    gap: 10px;
    align-items: center;
    color: rgba(255,255,255,.82);
    text-decoration: none;
    border-radius: 12px;
    padding: 11px 12px;
    font-weight: 600;
}

.yvm-frontend-nav a:hover,
.yvm-frontend-nav a.is-active {
    background: rgba(255,255,255,.12);
    color: #fff;
}

.yvm-nav-icon {
    width: 24px;
    text-align: center;
}

.yvm-frontend-main {
    padding: 26px;
    min-width: 0;
}

.yvm-frontend-header {
    margin-bottom: 22px;
}

.yvm-frontend-header h1 {
    margin: 0 0 6px;
    font-size: 30px;
    line-height: 1.2;
}

.yvm-frontend-header p {
    margin: 0;
    color: var(--yvm-muted);
}

.yvm-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 16px;
}

.yvm-dashboard-card {
    background: var(--yvm-card);
    border: 1px solid var(--yvm-border);
    border-radius: 16px;
    padding: 18px;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .05);
}

.yvm-dashboard-card-title {
    display: block;
    color: var(--yvm-muted);
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
}

.yvm-dashboard-card strong {
    display: block;
    font-size: 32px;
    line-height: 1.1;
    margin-bottom: 8px;
}

.yvm-dashboard-card small {
    color: var(--yvm-muted);
}

.yvm-quick-actions {
    margin-top: 26px;
    background: var(--yvm-card);
    border: 1px solid var(--yvm-border);
    border-radius: 16px;
    padding: 20px;
}

.yvm-quick-actions h2 {
    margin-top: 0;
}

.yvm-quick-action-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.yvm-quick-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--yvm-primary);
    color: #fff;
    text-decoration: none;
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 700;
}

.yvm-quick-action:hover {
    background: var(--yvm-primary-dark);
    color: #fff;
}

.yvm-frontend-module .yvm-card,
.yvm-frontend-dashboard .yvm-card,
.yvm-login-card {
    background: var(--yvm-card);
}

.yvm-frontend-login {
    padding: 28px;
}

.yvm-login-card {
    max-width: 520px;
    margin: 0 auto;
    padding: 24px;
}

@media (max-width: 1200px) {
    .yvm-dashboard-grid {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }
}

@media (max-width: 860px) {
    .yvm-frontend-shell {
        grid-template-columns: 1fr;
    }

    .yvm-frontend-sidebar {
        padding: 16px;
    }

    .yvm-frontend-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yvm-frontend-main {
        padding: 18px;
    }

    .yvm-dashboard-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
 * Frontend-App Step 3: Breiten- und Testansicht-Fix
 * Zweck:
 * - WordPress-Theme-Contentbreite umgehen
 * - Vereinssuite-App groß genug für echte Tests darstellen
 * - Dashboard-Karten, Sidebar und Schnellzugriffe sauber anzeigen
 * ========================================================= */

.yvm-frontend-app {
    width: calc(100vw - 64px);
    max-width: 1480px;
    margin-left: 50%;
    margin-right: 0;
    transform: translateX(-50%);
    box-sizing: border-box;
}

.yvm-frontend-shell {
    grid-template-columns: 280px minmax(0, 1fr);
    width: 100%;
}

.yvm-frontend-main {
    overflow-x: auto;
}

.yvm-dashboard-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    width: 100%;
}

.yvm-dashboard-card {
    min-width: 0;
}

.yvm-dashboard-card strong {
    word-break: break-word;
}

.yvm-quick-actions {
    width: 100%;
    box-sizing: border-box;
}

.yvm-quick-action-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.yvm-quick-action {
    width: auto;
    min-width: 0;
    max-width: none;
    white-space: nowrap;
    line-height: 1.2;
    box-sizing: border-box;
}

.yvm-frontend-module .yvm-members-layout,
.yvm-frontend-module .yvm-fees-layout,
.yvm-frontend-module .yvm-documents-layout,
.yvm-frontend-module .yvm-tasks-layout,
.yvm-frontend-module .yvm-sponsors-layout {
    grid-template-columns: minmax(360px, 460px) minmax(0, 1fr);
    width: 100%;
}

.yvm-frontend-module table.widefat {
    min-width: 900px;
}

.yvm-frontend-module .yvm-card {
    overflow-x: auto;
}

@media (max-width: 1200px) {
    .yvm-frontend-app {
        width: calc(100vw - 32px);
        max-width: none;
    }

    .yvm-frontend-shell {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .yvm-frontend-module .yvm-members-layout,
    .yvm-frontend-module .yvm-fees-layout,
    .yvm-frontend-module .yvm-documents-layout,
    .yvm-frontend-module .yvm-tasks-layout,
    .yvm-frontend-module .yvm-sponsors-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .yvm-frontend-app {
        width: calc(100vw - 20px);
        border-radius: 14px;
    }

    .yvm-frontend-shell {
        grid-template-columns: 1fr;
    }

    .yvm-frontend-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yvm-quick-action-grid {
        display: grid;
        grid-template-columns: 1fr;
    }

    .yvm-quick-action {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}


/* =========================================================
 * Frontend-App Step 4: Stabiler Layout-Fix für Theme-Breite
 * Zweck:
 * - verhindert abgeschnittene App links/rechts
 * - überschreibt zu enge WordPress-Theme-Container
 * - bereitet automatische Breitenkorrektur per JS vor
 * ========================================================= */

body:has(.yvm-frontend-app) main,
body:has(.yvm-frontend-app) .wp-site-blocks,
body:has(.yvm-frontend-app) .wp-site-blocks > *,
body:has(.yvm-frontend-app) .entry-content,
body:has(.yvm-frontend-app) .wp-block-post-content,
body:has(.yvm-frontend-app) .wp-block-group,
body:has(.yvm-frontend-app) .wp-block-template-part {
    overflow-x: visible !important;
}

.yvm-frontend-app {
    width: min(1280px, calc(100vw - 48px)) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    transform: none !important;
    box-sizing: border-box !important;
    clear: both !important;
}

.yvm-frontend-app.yvm-layout-ready {
    visibility: visible;
}

.yvm-frontend-shell {
    width: 100% !important;
    max-width: none !important;
}

.yvm-frontend-sidebar {
    min-width: 280px;
}

.yvm-frontend-main {
    min-width: 0;
    width: 100%;
    overflow-x: auto;
}

.yvm-dashboard-grid {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
}

.yvm-quick-action-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 12px !important;
}

.yvm-quick-action {
    width: auto !important;
    min-width: 180px;
    max-width: none !important;
    white-space: normal !important;
    text-align: center !important;
}

@media (max-width: 900px) {
    .yvm-frontend-app {
        width: calc(100vw - 20px) !important;
    }

    .yvm-frontend-sidebar {
        min-width: 0;
    }

    .yvm-frontend-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
 * Frontend-App Step 5: Aufgeräumtes App-Layout
 * Zweck:
 * - Sidebar und Content sauber trennen
 * - Dashboard optisch beruhigen
 * - Karten, Abstände und Schnellzugriffe kompakter darstellen
 * - alte Breiten-Hacks neutralisieren
 * ========================================================= */

.yvm-frontend-app {
    width: min(1320px, calc(100vw - 80px)) !important;
    max-width: 1320px !important;
    margin: 32px auto !important;
    transform: none !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    background: #f4f7fb !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 18px 55px rgba(15, 23, 42, 0.08) !important;
}

.yvm-frontend-shell {
    display: grid !important;
    grid-template-columns: 280px minmax(0, 1fr) !important;
    width: 100% !important;
    min-height: 620px !important;
    align-items: stretch !important;
}

.yvm-frontend-sidebar {
    position: relative !important;
    z-index: 2 !important;
    min-width: 280px !important;
    width: 280px !important;
    padding: 22px 18px !important;
    background: #101828 !important;
    border-radius: 18px 0 0 18px !important;
    box-sizing: border-box !important;
}

.yvm-frontend-main {
    position: relative !important;
    z-index: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
    padding: 28px 32px 34px 32px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

.yvm-frontend-brand {
    margin-bottom: 22px !important;
    padding: 0 2px 12px 2px !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

.yvm-frontend-brand strong {
    display: block !important;
    font-size: var(--yopt-font-size-module-title) !important;
    line-height: 1.15 !important;
    margin-bottom: 3px !important;
}

.yvm-frontend-brand span {
    display: block !important;
    font-size: var(--yopt-font-size-muted) !important;
    opacity: .75 !important;
}

.yvm-frontend-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
}

.yvm-frontend-nav a {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    border-radius: 11px !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.yvm-frontend-nav a.is-active {
    background: rgba(255,255,255,0.14) !important;
}

.yvm-nav-icon {
    width: 22px !important;
    min-width: 22px !important;
    text-align: center !important;
}

.yvm-frontend-header {
    margin: 0 0 22px 0 !important;
    padding: 0 !important;
}

.yvm-frontend-header h1 {
    margin: 0 0 6px 0 !important;
    font-size: var(--yopt-font-size-page-title) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.02em !important;
}

.yvm-frontend-header p {
    max-width: 620px !important;
    margin: 0 !important;
    font-size: var(--yopt-font-size-muted) !important;
    line-height: 1.4 !important;
    color: #667085 !important;
}

.yvm-dashboard-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 0 0 22px 0 !important;
}

.yvm-dashboard-card {
    min-height: 96px !important;
    padding: 14px 16px !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
    box-sizing: border-box !important;
}

.yvm-dashboard-card-title {
    display: block !important;
    min-height: 28px !important;
    margin: 0 0 6px 0 !important;
    font-size: var(--yopt-font-size-kpi-label) !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: #475467 !important;
}

.yvm-dashboard-card strong {
    display: block !important;
    margin: 0 0 6px 0 !important;
    font-size: var(--yopt-font-size-kpi-value) !important;
    line-height: 1.05 !important;
    font-weight: 800 !important;
    color: #101828 !important;
}

.yvm-dashboard-card small {
    display: block !important;
    font-size: var(--yopt-font-size-muted) !important;
    line-height: 1.35 !important;
    color: #667085 !important;
}

.yvm-quick-actions {
    margin: 0 !important;
    padding: 18px !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
    box-sizing: border-box !important;
}

.yvm-quick-actions h2 {
    margin: 0 0 14px 0 !important;
    font-size: var(--yopt-font-size-section-title) !important;
    line-height: 1.15 !important;
}

.yvm-quick-action-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
}

.yvm-quick-action {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: 34px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    font-size: var(--yopt-font-size-button) !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-align: center !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.yvm-frontend-module .yvm-members-layout,
.yvm-frontend-module .yvm-fees-layout,
.yvm-frontend-module .yvm-documents-layout,
.yvm-frontend-module .yvm-tasks-layout,
.yvm-frontend-module .yvm-sponsors-layout {
    display: grid !important;
    grid-template-columns: minmax(360px, 440px) minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: start !important;
    width: 100% !important;
}

.yvm-frontend-module .yvm-card {
    border-radius: 14px !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
}

.yvm-frontend-module table.widefat {
    min-width: 900px !important;
}

@media (max-width: 1180px) {
    .yvm-frontend-app {
        width: calc(100vw - 40px) !important;
    }

    .yvm-dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .yvm-quick-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .yvm-frontend-module .yvm-members-layout,
    .yvm-frontend-module .yvm-fees-layout,
    .yvm-frontend-module .yvm-documents-layout,
    .yvm-frontend-module .yvm-tasks-layout,
    .yvm-frontend-module .yvm-sponsors-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 860px) {
    .yvm-frontend-app {
        width: calc(100vw - 20px) !important;
        margin: 18px auto !important;
        border-radius: 14px !important;
    }

    .yvm-frontend-shell {
        grid-template-columns: 1fr !important;
    }

    .yvm-frontend-sidebar {
        width: 100% !important;
        min-width: 0 !important;
        border-radius: 14px 14px 0 0 !important;
    }

    .yvm-frontend-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .yvm-frontend-main {
        padding: 20px !important;
    }

    .yvm-dashboard-grid {
        grid-template-columns: 1fr !important;
    }

    .yvm-quick-action-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
 * Frontend-App Step 6: Standalone Vollbild-App
 * Zweck:
 * - WordPress-Theme optisch entfernen
 * - Frontend-App über die vollständige Seite anzeigen
 * - keine Theme-Header, keine Theme-Footer, keine Theme-Container
 * ========================================================= */

html:has(body.yvm-standalone-app-page),
body.yvm-standalone-app-page {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f4f7fb !important;
    overflow-x: hidden !important;
}

body.yvm-standalone-app-page {
    font-size: var(--yopt-font-size-base, 14px) !important;
    line-height: var(--yopt-line-height-base, 1.42) !important;
}

body.yvm-standalone-app-page .yvm-standalone-app-shell {
    width: 100vw !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f4f7fb !important;
    box-sizing: border-box !important;
}

body.yvm-standalone-app-page.admin-bar .yvm-standalone-app-shell {
    min-height: calc(100vh - 32px) !important;
    padding-top: 32px !important;
}

body.yvm-standalone-app-page .yvm-frontend-app {
    width: 100vw !important;
    max-width: none !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    left: auto !important;
    right: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #f4f7fb !important;
}

body.yvm-standalone-app-page.admin-bar .yvm-frontend-app {
    min-height: calc(100vh - 32px) !important;
}

body.yvm-standalone-app-page .yvm-frontend-shell {
    display: grid !important;
    grid-template-columns: 280px minmax(0, 1fr) !important;
    width: 100vw !important;
    max-width: none !important;
    min-height: 100vh !important;
    border-radius: 0 !important;
}

body.yvm-standalone-app-page.admin-bar .yvm-frontend-shell {
    min-height: calc(100vh - 32px) !important;
}

body.yvm-standalone-app-page .yvm-frontend-sidebar {
    width: 280px !important;
    min-width: 280px !important;
    min-height: 100% !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.yvm-standalone-app-page .yvm-frontend-main {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 100% !important;
    padding: 30px 34px 40px 34px !important;
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

body.yvm-standalone-app-page .yvm-dashboard-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.yvm-standalone-app-page .yvm-quick-action-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

body.yvm-standalone-app-page .yvm-frontend-module .yvm-members-layout,
body.yvm-standalone-app-page .yvm-frontend-module .yvm-fees-layout,
body.yvm-standalone-app-page .yvm-frontend-module .yvm-documents-layout,
body.yvm-standalone-app-page .yvm-frontend-module .yvm-tasks-layout,
body.yvm-standalone-app-page .yvm-frontend-module .yvm-sponsors-layout {
    grid-template-columns: minmax(360px, 440px) minmax(0, 1fr) !important;
}

@media (max-width: 1180px) {
    body.yvm-standalone-app-page .yvm-dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.yvm-standalone-app-page .yvm-quick-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.yvm-standalone-app-page .yvm-frontend-module .yvm-members-layout,
    body.yvm-standalone-app-page .yvm-frontend-module .yvm-fees-layout,
    body.yvm-standalone-app-page .yvm-frontend-module .yvm-documents-layout,
    body.yvm-standalone-app-page .yvm-frontend-module .yvm-tasks-layout,
    body.yvm-standalone-app-page .yvm-frontend-module .yvm-sponsors-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 860px) {
    body.yvm-standalone-app-page.admin-bar .yvm-standalone-app-shell {
        min-height: calc(100vh - 46px) !important;
        padding-top: 46px !important;
    }

    body.yvm-standalone-app-page.admin-bar .yvm-frontend-app,
    body.yvm-standalone-app-page.admin-bar .yvm-frontend-shell {
        min-height: calc(100vh - 46px) !important;
    }

    body.yvm-standalone-app-page .yvm-frontend-shell {
        grid-template-columns: 1fr !important;
    }

    body.yvm-standalone-app-page .yvm-frontend-sidebar {
        width: 100% !important;
        min-width: 0 !important;
        min-height: auto !important;
    }

    body.yvm-standalone-app-page .yvm-frontend-main {
        padding: 20px !important;
    }

    body.yvm-standalone-app-page .yvm-dashboard-grid,
    body.yvm-standalone-app-page .yvm-quick-action-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
 * Frontend-App Step 7: App-Kopfbereich / Benutzerleiste
 * Zweck:
 * - aktiver Bereich sichtbar
 * - Benutzer und Rolle sichtbar
 * - schneller Logout
 * - Link zurück zur Website
 * ========================================================= */

.yvm-app-topbar {
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) auto minmax(280px, 1fr) !important;
    align-items: center !important;
    gap: 18px !important;
    width: 100% !important;
    min-height: 58px !important;
    margin: 0 0 24px 0 !important;
    padding: 12px 16px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
    box-sizing: border-box !important;
}

.yvm-app-topbar-left {
    display: grid !important;
    gap: 2px !important;
    min-width: 0 !important;
}

.yvm-app-context-label {
    font-size: var(--yopt-font-size-meta) !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #667085 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

.yvm-app-current-view {
    font-size: var(--yopt-font-size-module-title) !important;
    line-height: 1.15 !important;
    color: #101828 !important;
}

.yvm-app-topbar-center {
    display: flex !important;
    justify-content: center !important;
    min-width: 0 !important;
}

.yvm-app-club-name {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 30px !important;
    padding: 7px 12px !important;
    border-radius: 999px !important;
    background: #f2f4f7 !important;
    color: #344054 !important;
    font-size: var(--yopt-font-size-text-small) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    max-width: 280px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.yvm-app-topbar-right {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
}

.yvm-app-userbox {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-width: 0 !important;
    padding: 0 10px 0 0 !important;
    border-right: 1px solid #e4e7ec !important;
}

.yvm-app-user-avatar {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 50% !important;
    background: #2271b1 !important;
    color: #ffffff !important;
    font-size: var(--yopt-font-size-card-title) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.yvm-app-user-data {
    display: grid !important;
    gap: 1px !important;
    min-width: 0 !important;
}

.yvm-app-user-data strong {
    max-width: 180px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: var(--yopt-font-size-text-small) !important;
    line-height: 1.15 !important;
    color: #101828 !important;
}

.yvm-app-user-data small {
    max-width: 180px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: var(--yopt-font-size-muted) !important;
    line-height: 1.15 !important;
    color: #667085 !important;
}

.yvm-app-topbar-link,
.yvm-app-topbar-logout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 32px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    font-size: var(--yopt-font-size-button) !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

.yvm-app-topbar-link {
    background: #f2f4f7 !important;
    color: #344054 !important;
}

.yvm-app-topbar-link:hover {
    background: #e4e7ec !important;
    color: #101828 !important;
}

.yvm-app-topbar-logout {
    background: #fee4e2 !important;
    color: #b42318 !important;
}

.yvm-app-topbar-logout:hover {
    background: #fecdca !important;
    color: #912018 !important;
}

body.yvm-standalone-app-page .yvm-app-topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
}

body.yvm-standalone-app-page.admin-bar .yvm-app-topbar {
    top: 0 !important;
}

@media (max-width: 1180px) {
    .yvm-app-topbar {
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }

    .yvm-app-topbar-center {
        justify-content: flex-start !important;
    }

    .yvm-app-topbar-right {
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }
}

@media (max-width: 680px) {
    .yvm-app-topbar {
        padding: 12px !important;
    }

    .yvm-app-userbox {
        width: 100% !important;
        border-right: 0 !important;
        padding-right: 0 !important;
    }

    .yvm-app-topbar-link,
    .yvm-app-topbar-logout {
        flex: 1 1 auto !important;
    }
}


/* =========================================================
 * Frontend-App Step 8: Klickbare Dashboard-Karten
 * Zweck:
 * - KPI-Karten als Navigation verwenden
 * - Dashboard für echte Tester schneller bedienbar machen
 * ========================================================= */

.yvm-dashboard-intro-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: -6px 0 14px 0 !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    background: #eef6ff !important;
    border: 1px solid #cfe7ff !important;
    color: #184e77 !important;
    box-sizing: border-box !important;
}

.yvm-dashboard-intro-actions span {
    font-size: var(--yopt-font-size-description) !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
}

.yvm-dashboard-card-clickable {
    display: block !important;
    color: inherit !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}

.yvm-dashboard-card-clickable:hover {
    transform: translateY(-2px) !important;
    border-color: #2271b1 !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.10) !important;
    color: inherit !important;
}

.yvm-dashboard-card-clickable:focus {
    outline: 2px solid #2271b1 !important;
    outline-offset: 2px !important;
}

.yvm-dashboard-card-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 10px !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #f2f4f7 !important;
    color: #344054 !important;
    font-size: var(--yopt-font-size-badge) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

.yvm-dashboard-card-clickable:hover .yvm-dashboard-card-action {
    background: #2271b1 !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-dashboard-card-clickable {
    min-height: 112px !important;
}


/* =========================================================
 * Frontend-App Step 9: Mein Profil
 * Zweck:
 * - Benutzerkonto anzeigen
 * - verknüpftes Mitgliedsprofil anzeigen
 * - Berechtigungen sichtbar machen
 * ========================================================= */

.yvm-profile-view {
    display: grid !important;
    gap: 18px !important;
}

.yvm-profile-hero {
    display: grid !important;
    grid-template-columns: 76px minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
    padding: 18px !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
}

.yvm-profile-avatar-large {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 76px !important;
    height: 76px !important;
    border-radius: 22px !important;
    background: #2271b1 !important;
    color: #ffffff !important;
    font-size: 30px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.yvm-profile-hero-content {
    min-width: 0 !important;
}

.yvm-profile-eyebrow {
    display: block !important;
    margin-bottom: 4px !important;
    font-size: var(--yopt-font-size-meta) !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #667085 !important;
}

.yvm-profile-hero h1 {
    margin: 0 0 4px 0 !important;
    font-size: var(--yopt-font-size-section-title) !important;
    line-height: 1.15 !important;
    color: #101828 !important;
}

.yvm-profile-hero p {
    margin: 0 0 10px 0 !important;
    font-size: var(--yopt-font-size-text-small) !important;
    color: #667085 !important;
}

.yvm-profile-role-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
}

.yvm-profile-role-pill {
    display: inline-flex !important;
    align-items: center !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #eef6ff !important;
    color: #184e77 !important;
    font-size: var(--yopt-font-size-badge) !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}

.yvm-profile-role-pill-muted {
    background: #f2f4f7 !important;
    color: #667085 !important;
}

.yvm-profile-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

.yvm-profile-card {
    padding: 18px !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
    box-sizing: border-box !important;
}

.yvm-profile-card-wide {
    grid-column: 1 / -1 !important;
}

.yvm-profile-card h2 {
    margin: 0 0 14px 0 !important;
    font-size: var(--yopt-font-size-card-title) !important;
    line-height: 1.25 !important;
    color: #101828 !important;
}

.yvm-profile-field-list {
    display: grid !important;
    gap: 8px !important;
}

.yvm-profile-field {
    display: grid !important;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    min-height: 36px !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
    background: #f8fafc !important;
    border: 1px solid #eef2f6 !important;
}

.yvm-profile-field span {
    font-size: var(--yopt-font-size-label) !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: #667085 !important;
}

.yvm-profile-field strong {
    min-width: 0 !important;
    font-size: var(--yopt-font-size-text-small) !important;
    line-height: 1.25 !important;
    color: #101828 !important;
    overflow-wrap: anywhere !important;
}

.yvm-profile-empty-state {
    display: grid !important;
    gap: 8px !important;
    padding: 16px !important;
    border-radius: 12px !important;
    background: #fff8e6 !important;
    border: 1px solid #ffe4a3 !important;
}

.yvm-profile-empty-state strong {
    font-size: var(--yopt-font-size-card-title) !important;
    color: #7a4b00 !important;
}

.yvm-profile-empty-state p {
    margin: 0 !important;
    font-size: var(--yopt-font-size-text-small) !important;
    color: #7a4b00 !important;
}

.yvm-profile-permission-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.yvm-profile-permission-pill {
    display: grid !important;
    gap: 3px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    border: 1px solid #d9dee8 !important;
    background: #f8fafc !important;
}

.yvm-profile-permission-pill strong {
    font-size: var(--yopt-font-size-text-small) !important;
    line-height: 1.25 !important;
    color: #101828 !important;
}

.yvm-profile-permission-pill small {
    font-size: var(--yopt-font-size-badge) !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}

.yvm-profile-permission-pill.is-allowed {
    background: #ecfdf3 !important;
    border-color: #abefc6 !important;
}

.yvm-profile-permission-pill.is-allowed small {
    color: #067647 !important;
}

.yvm-profile-permission-pill.is-denied {
    background: #f2f4f7 !important;
    border-color: #e4e7ec !important;
}

.yvm-profile-permission-pill.is-denied small {
    color: #667085 !important;
}

@media (max-width: 1180px) {
    .yvm-profile-grid {
        grid-template-columns: 1fr !important;
    }

    .yvm-profile-permission-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 680px) {
    .yvm-profile-hero {
        grid-template-columns: 1fr !important;
    }

    .yvm-profile-field {
        grid-template-columns: 1fr !important;
        gap: 3px !important;
    }

    .yvm-profile-permission-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
 * Vereinsprofil Step 2: App-Branding übernehmen
 * Zweck:
 * - Vereinsfarben aus dem Vereinsprofil in der Web-App verwenden
 * - Sidebar, aktive Navigation, Buttons, Avatare und Akzente angleichen
 * ========================================================= */

body.yvm-standalone-app-page {
    --yvm-app-primary: var(--yvm-app-primary, #2271b1);
    --yvm-app-secondary: var(--yvm-app-secondary, #101828);
}

body.yvm-standalone-app-page .yvm-frontend-sidebar {
    background: linear-gradient(180deg, var(--yvm-app-secondary, #101828) 0%, #101828 100%) !important;
}

body.yvm-standalone-app-page .yvm-frontend-nav a.is-active {
    background: var(--yvm-app-primary, #2271b1) !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-frontend-nav a:hover {
    background: rgba(255,255,255,0.12) !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-app-user-avatar,
body.yvm-standalone-app-page .yvm-profile-avatar-large {
    background: var(--yvm-app-primary, #2271b1) !important;
}

body.yvm-standalone-app-page .yvm-app-club-name {
    background: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 12%, #ffffff) !important;
    color: var(--yvm-app-secondary, #101828) !important;
}

body.yvm-standalone-app-page .yvm-dashboard-card-clickable:hover {
    border-color: var(--yvm-app-primary, #2271b1) !important;
}

body.yvm-standalone-app-page .yvm-dashboard-card-clickable:focus {
    outline-color: var(--yvm-app-primary, #2271b1) !important;
}

body.yvm-standalone-app-page .yvm-dashboard-card-clickable:hover .yvm-dashboard-card-action {
    background: var(--yvm-app-primary, #2271b1) !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-dashboard-intro-actions {
    background: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 10%, #ffffff) !important;
    border-color: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 22%, #ffffff) !important;
    color: var(--yvm-app-secondary, #101828) !important;
}

body.yvm-standalone-app-page .yvm-quick-action,
body.yvm-standalone-app-page .button-primary,
body.yvm-standalone-app-page .yvm-profile-empty-state .button-primary {
    background: var(--yvm-app-primary, #2271b1) !important;
    border-color: var(--yvm-app-primary, #2271b1) !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-quick-action:hover,
body.yvm-standalone-app-page .button-primary:hover,
body.yvm-standalone-app-page .yvm-profile-empty-state .button-primary:hover {
    filter: brightness(0.92) !important;
    color: #ffffff !important;
}

body.yvm-standalone-app-page .yvm-profile-role-pill,
body.yvm-standalone-app-page .yvm-user-role-pill,
body.yvm-standalone-app-page .yvm-linked-user-pill,
body.yvm-standalone-app-page .yvm-user-member-link-pill {
    background: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 12%, #ffffff) !important;
    color: var(--yvm-app-secondary, #101828) !important;
}

body.yvm-standalone-app-page .yvm-profile-permission-pill.is-allowed {
    border-color: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 35%, #ffffff) !important;
    background: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 9%, #ffffff) !important;
}

body.yvm-standalone-app-page .yvm-profile-permission-pill.is-allowed small {
    color: var(--yvm-app-primary, #2271b1) !important;
}

body.yvm-standalone-app-page input:focus,
body.yvm-standalone-app-page select:focus,
body.yvm-standalone-app-page textarea:focus {
    border-color: var(--yvm-app-primary, #2271b1) !important;
    box-shadow: 0 0 0 1px var(--yvm-app-primary, #2271b1) !important;
}

@supports not (background: color-mix(in srgb, #000 10%, #fff)) {
    body.yvm-standalone-app-page .yvm-app-club-name,
    body.yvm-standalone-app-page .yvm-dashboard-intro-actions,
    body.yvm-standalone-app-page .yvm-profile-role-pill,
    body.yvm-standalone-app-page .yvm-user-role-pill,
    body.yvm-standalone-app-page .yvm-linked-user-pill,
    body.yvm-standalone-app-page .yvm-user-member-link-pill,
    body.yvm-standalone-app-page .yvm-profile-permission-pill.is-allowed {
        background: #eef6ff !important;
    }
}


/* =========================================================
 * Vereinsprofil Step 3: Vereinslogo in der Web-App
 * Zweck:
 * - hochgeladenes Vereinslogo in Topbar und Sidebar anzeigen
 * - App-Branding vollständiger machen
 * ========================================================= */

body.yvm-standalone-app-page[style*="--yvm-app-logo-url"] .yvm-app-club-name {
    gap: 8px !important;
}

body.yvm-standalone-app-page[style*="--yvm-app-logo-url"] .yvm-app-club-name::before {
    content: "" !important;
    display: inline-flex !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    border-radius: 50% !important;
    background-color: #ffffff !important;
    background-image: var(--yvm-app-logo-url) !important;
    background-size: cover !important;
    background-position: center !important;
    box-shadow: 0 0 0 1px rgba(16, 24, 40, 0.10) !important;
}

body.yvm-standalone-app-page[style*="--yvm-app-logo-url"] .yvm-frontend-brand {
    position: relative !important;
    padding-top: 58px !important;
}

body.yvm-standalone-app-page[style*="--yvm-app-logo-url"] .yvm-frontend-brand::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 2px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
    background-color: #ffffff !important;
    background-image: var(--yvm-app-logo-url) !important;
    background-size: cover !important;
    background-position: center !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18) !important;
}


/* =========================================================
 * Frontend-App Step 10: Setup-Checkliste im Dashboard
 * Zweck:
 * - Einrichtungsstatus direkt sichtbar machen
 * - Tester schneller durch Grundkonfiguration führen
 * - Vereinsprofil, Logo, Benutzer, Mitglieder und Module prüfen
 * ========================================================= */

.yvm-setup-check-panel {
    display: grid !important;
    gap: 14px !important;
    margin: 0 0 22px 0 !important;
    padding: 18px !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    border: 1px solid #d9dee8 !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045) !important;
    box-sizing: border-box !important;
}

.yvm-setup-check-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 16px !important;
    align-items: center !important;
}

.yvm-setup-check-eyebrow {
    display: block !important;
    margin-bottom: 4px !important;
    font-size: var(--yopt-font-size-meta) !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #667085 !important;
}

.yvm-setup-check-header h2 {
    margin: 0 0 5px 0 !important;
    font-size: var(--yopt-font-size-section-title) !important;
    line-height: 1.15 !important;
    color: #101828 !important;
}

.yvm-setup-check-header p {
    margin: 0 !important;
    max-width: 720px !important;
    font-size: var(--yopt-font-size-text-small) !important;
    line-height: 1.4 !important;
    color: #667085 !important;
}

.yvm-setup-progress {
    display: grid !important;
    justify-items: end !important;
    gap: 3px !important;
    min-width: 120px !important;
}

.yvm-setup-progress strong {
    font-size: var(--yopt-font-size-big-progress-value) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: var(--yvm-app-primary, #2271b1) !important;
}

.yvm-setup-progress span {
    font-size: var(--yopt-font-size-meta) !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: #667085 !important;
}

.yvm-setup-progressbar {
    width: 100% !important;
    height: 8px !important;
    overflow: hidden !important;
    border-radius: 999px !important;
    background: #eef2f6 !important;
}

.yvm-setup-progressbar span {
    display: block !important;
    height: 100% !important;
    border-radius: 999px !important;
    background: var(--yvm-app-primary, #2271b1) !important;
}

.yvm-setup-check-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.yvm-setup-check-item {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
    min-height: 70px !important;
    padding: 12px !important;
    border-radius: 14px !important;
    border: 1px solid #e4e7ec !important;
    background: #f8fafc !important;
    box-sizing: border-box !important;
}

.yvm-setup-check-item.is-complete {
    background: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 8%, #ffffff) !important;
    border-color: color-mix(in srgb, var(--yvm-app-primary, #2271b1) 24%, #ffffff) !important;
}

.yvm-setup-check-item.is-open {
    background: #ffffff !important;
}

.yvm-setup-check-status {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

.yvm-setup-check-item.is-complete .yvm-setup-check-status {
    background: var(--yvm-app-primary, #2271b1) !important;
    color: #ffffff !important;
}

.yvm-setup-check-item.is-open .yvm-setup-check-status {
    background: #f2f4f7 !important;
    color: #667085 !important;
}

.yvm-setup-check-content {
    display: grid !important;
    gap: 3px !important;
    min-width: 0 !important;
}

.yvm-setup-check-content strong {
    font-size: var(--yopt-font-size-text-small) !important;
    line-height: 1.2 !important;
    color: #101828 !important;
}

.yvm-setup-check-content small {
    font-size: var(--yopt-font-size-muted) !important;
    line-height: 1.3 !important;
    color: #667085 !important;
}

.yvm-setup-check-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 28px !important;
    padding: 7px 10px !important;
    border-radius: 999px !important;
    background: var(--yvm-app-primary, #2271b1) !important;
    color: #ffffff !important;
    font-size: var(--yopt-font-size-badge) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

.yvm-setup-check-link:hover {
    filter: brightness(0.92) !important;
    color: #ffffff !important;
}

@supports not (background: color-mix(in srgb, #000 10%, #fff)) {
    .yvm-setup-check-item.is-complete {
        background: #eef6ff !important;
        border-color: #cfe7ff !important;
    }
}

@media (max-width: 1280px) {
    .yvm-setup-check-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    .yvm-setup-check-header {
        grid-template-columns: 1fr !important;
    }

    .yvm-setup-progress {
        justify-items: start !important;
    }

    .yvm-setup-check-grid {
        grid-template-columns: 1fr !important;
    }

    .yvm-setup-check-item {
        grid-template-columns: 28px minmax(0, 1fr) !important;
    }

    .yvm-setup-check-link {
        grid-column: 2 / 3 !important;
        justify-self: start !important;
    }
}
