/* ═══════════════════════════════════════════════════════════════════════════ */
/* PLANVIGO FRONTEND ISOLATION                                               */
/* Schützt NUR den Plugin-Content-Bereich (#planvigo-page-wrapper)           */
/* Theme-Header (Navbar) und Footer bleiben komplett unberührt!              */
/* !important wird genutzt um JEDE Theme-CSS-Regel zu überstimmen            */
/* ═══════════════════════════════════════════════════════════════════════════ */

/* ── Plugin-Wrapper Basis ──────────────────────────────────────────────── */
#planvigo-page-wrapper {
    width: 100% !important;
    min-height: 70vh !important;
    margin-top: 80px !important; /* Platz für Sticky-Header lassen */
    padding: 0 !important;
    background: var(--pv-color-bg, #f8f8f8) !important;
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    line-height: 1.6 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: none !important;

    /* ── SCHUTZ: Navbar-Überdeckung verhindern ────────────────────────── */
    /* KEIN z-index auf dem Wrapper setzen! Ein z-index erzeugt einen     */
    /* Stacking-Context, der alle position:fixed Modals einsperrt.       */
    /* Stattdessen: Navbars werden per CSS auf niedrigen z-index gesetzt. */
    position: relative !important;
    overflow: visible !important;
}

/* ── SCHUTZ: Theme-Navbars, Sticky-Header, Fixed-Overlays blockieren ── */
/* Jedes fixed/sticky Element AUSSERHALB des Plugin-Wrappers wird unter   */
/* den Plugin-Content gedrückt, damit nichts den Inhalt verdecken kann.   */
/* WICHTIG: :not() verhindert, dass Plugin-eigene Elemente mit "header"   */
/* im Klassennamen (pv-card-header, modal-header etc.) betroffen werden.  */
body.planvigo-isolated-page header:not(#planvigo-page-wrapper header),
body.planvigo-isolated-page nav:not(#planvigo-page-wrapper nav),
body.planvigo-isolated-page .site-header:not(#planvigo-page-wrapper .site-header),
body.planvigo-isolated-page .site-navigation:not(#planvigo-page-wrapper .site-navigation),
body.planvigo-isolated-page .main-navigation:not(#planvigo-page-wrapper .main-navigation),
body.planvigo-isolated-page .primary-navigation:not(#planvigo-page-wrapper .primary-navigation),
body.planvigo-isolated-page .navbar:not(#planvigo-page-wrapper .navbar),
body.planvigo-isolated-page .wp-site-blocks > header {
    z-index: 5 !important;
}

/* Kein Theme-Element darf den Plugin-Content überlagern                  */
/* WICHTIG: Modals (.modal-overlay, .acceptance-modal-overlay) werden per */
/* JS auf document.body verschoben und MÜSSEN ausgenommen werden!         */
body.planvigo-isolated-page #planvigo-page-wrapper ~ *:not(.modal-overlay):not(.acceptance-modal-overlay):not([id*="Modal"]),
body.planvigo-isolated-page #planvigo-page-wrapper ~ *:not(.modal-overlay):not(.acceptance-modal-overlay):not([id*="Modal"]) * {
    z-index: auto;
}

/* Popups, Modals & Dropdowns — unabhängig ob im Wrapper oder auf body */
.modal-overlay,
.acceptance-modal-overlay,
#profileModal,
#playerAcceptanceModal,
#trainerAcceptanceModal,
#availabilityModal {
    z-index: 100000 !important;
}

#planvigo-page-wrapper .pv-modal,
#planvigo-page-wrapper .pv-dropdown,
#planvigo-page-wrapper .pv-popup,
#planvigo-page-wrapper [class*="dropdown-menu"],
#planvigo-page-wrapper [class*="popup"] {
    z-index: 100000 !important;
}

/* Stelle sicher, dass der Plugin-Content nie von Footern überlagert wird */
body.planvigo-isolated-page footer,
body.planvigo-isolated-page .site-footer,
body.planvigo-isolated-page .wp-site-blocks > footer {
    z-index: 1 !important;
    position: relative !important;
}

/* ── Basis-Reset für alle Elemente im Plugin-Wrapper ───────────────────── */
#planvigo-page-wrapper *,
#planvigo-page-wrapper *::before,
#planvigo-page-wrapper *::after {
    box-sizing: border-box !important;
}

/* ── Typografie: Keine Theme-Fonts im Plugin-Bereich ───────────────────── */
#planvigo-page-wrapper h1,
#planvigo-page-wrapper h2,
#planvigo-page-wrapper h3,
#planvigo-page-wrapper h4,
#planvigo-page-wrapper h5,
#planvigo-page-wrapper h6 {
    font-family: var(--pv-font-family-primary, "Poppins", sans-serif) !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    font-style: normal !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    margin-top: 0 !important;
}

#planvigo-page-wrapper p,
#planvigo-page-wrapper span:not(.dashicons),
#planvigo-page-wrapper div,
#planvigo-page-wrapper label,
#planvigo-page-wrapper li,
#planvigo-page-wrapper td,
#planvigo-page-wrapper th {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

/* ── Farben: Kein Theme darf Textfarben überschreiben ──────────────────── */
#planvigo-page-wrapper p,
#planvigo-page-wrapper li {
    color: var(--pv-color-text-primary, #1C1C1E) !important;
}

/* ── Dashicons: Font nicht überschreiben ───────────────────────────────── */
#planvigo-page-wrapper .dashicons,
#planvigo-page-wrapper .dashicons-before::before,
#planvigo-page-wrapper i.dashicons {
    font-family: dashicons !important;
}

/* ── Buttons: Vollständiger Schutz gegen Theme-Overrides ───────────────── */
/* Basis-Reset für ALLE Buttons im wrapper */
#planvigo-page-wrapper button,
#planvigo-page-wrapper input[type="submit"],
#planvigo-page-wrapper input[type="button"] {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    text-shadow: none !important;
    outline: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

/* .btn Basis */
#planvigo-page-wrapper .btn {
    padding: var(--pv-button-padding-vertical) var(--pv-button-padding-horizontal) !important;
    border-radius: var(--pv-button-border-radius) !important;
    font-weight: var(--pv-button-font-weight) !important;
    font-size: var(--pv-button-font-size) !important;
    font-family: var(--pv-button-font-family) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.4 !important;
}

/* .btn-primary */
#planvigo-page-wrapper .btn-primary {
    background: var(--pv-button-bg-color) !important;
    color: var(--pv-button-text-color) !important;
    border: none !important;
    box-shadow: none !important;
}

#planvigo-page-wrapper .btn-primary:hover {
    background: var(--pv-button-bg-color-hover) !important;
    box-shadow: var(--pv-shadow-primary-sm) !important;
    transform: translateY(-1px) !important;
    color: var(--pv-button-text-color) !important;
}

/* .btn-secondary */
#planvigo-page-wrapper .btn-secondary {
    background: #FFFFFF !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    border: 2px solid #E5E7EB !important;
    border-radius: var(--pv-button-border-radius, 10px) !important;
    box-shadow: none !important;
}

#planvigo-page-wrapper .btn-secondary:hover {
    background: #F9FAFB !important;
    border-color: #D1D5DB !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important;
}

/* .btn-danger */
#planvigo-page-wrapper .btn-danger {
    background: var(--pv-color-error, #ef4444) !important;
    color: #fff !important;
    border: none !important;
}

#planvigo-page-wrapper .btn-danger:hover {
    background: #d32f2f !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 8px rgba(239, 68, 68, 0.4) !important;
}

/* pv-btn / submit */
#planvigo-page-wrapper .pv-btn,
#planvigo-page-wrapper .pv-btn-submit {
    border-radius: 10px !important;
    border: none !important;
    box-shadow: none !important;
}

/* .acceptance-modal-close (✕) */
#planvigo-page-wrapper .acceptance-modal-close {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: #999 !important;
    font-size: 28px !important;
    padding: 8px !important;
    text-transform: none !important;
    text-shadow: none !important;
    letter-spacing: normal !important;
}

/* .modal-selected-slot-remove (×) */
#planvigo-page-wrapper .modal-selected-slot-remove {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: #999 !important;
    font-size: 1.3em !important;
    padding: 4px 8px !important;
    line-height: 1 !important;
    text-transform: none !important;
    text-shadow: none !important;
    letter-spacing: normal !important;
}

/* ── Inputs/Select: Kein Theme-Styling ─────────────────────────────────── */
#planvigo-page-wrapper input[type="text"],
#planvigo-page-wrapper input[type="email"],
#planvigo-page-wrapper input[type="password"],
#planvigo-page-wrapper input[type="number"],
#planvigo-page-wrapper input[type="tel"],
#planvigo-page-wrapper input[type="date"],
#planvigo-page-wrapper input[type="time"],
#planvigo-page-wrapper input[type="search"],
#planvigo-page-wrapper textarea,
#planvigo-page-wrapper select {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    font-size: 14px !important;
    border: 1px solid var(--pv-color-border, #D1D1D1) !important;
    border-radius: 8px !important;
    background: white !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    padding: 10px 14px !important;
    transition: border-color 0.2s ease !important;
}

#planvigo-page-wrapper input:focus,
#planvigo-page-wrapper textarea:focus,
#planvigo-page-wrapper select:focus {
    border-color: var(--pv-color-accent, #FF785F) !important;
    box-shadow: 0 0 0 3px rgba(255, 120, 95, 0.1) !important;
    outline: none !important;
}

/* ── Links im Plugin-Bereich ───────────────────────────────────────────── */
#planvigo-page-wrapper a {
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

/* ── Tabellen ──────────────────────────────────────────────────────────── */
#planvigo-page-wrapper table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

#planvigo-page-wrapper th,
#planvigo-page-wrapper td {
    text-align: left !important;
    vertical-align: middle !important;
}

/* ── Listen ────────────────────────────────────────────────────────────── */
#planvigo-page-wrapper ul,
#planvigo-page-wrapper ol {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ── Images ────────────────────────────────────────────────────────────── */
#planvigo-page-wrapper img {
    max-width: 100% !important;
    height: auto !important;
}

/* ── Gutenberg-Wrapper NUR innerhalb Plugin-Bereich neutralisieren ─────── */
#planvigo-page-wrapper .wp-block-post-content,
#planvigo-page-wrapper .wp-block-group,
#planvigo-page-wrapper .is-layout-constrained,
#planvigo-page-wrapper .is-layout-flow,
#planvigo-page-wrapper .entry-content,
#planvigo-page-wrapper .page-content {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── Seiten-Titel verstecken (Plugin hat eigene) ── nur im Wrapper ─────── */
#planvigo-page-wrapper .wp-block-post-title,
#planvigo-page-wrapper .entry-title,
#planvigo-page-wrapper .page-title {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* PLUGIN MODAL ISOLATION                                                    */
/* Modals leben auf document.body (per JS verschoben) — AUSSERHALB des       */
/* #planvigo-page-wrapper. Deshalb hier eigene Isolation nötig.              */
/*                                                                           */
/* Technik: :is() mit IDs gibt Spezifität 1,0,x — schlägt praktisch alle    */
/* Theme-Regeln, auch solche mit !important + niedriger Spezifität.         */
/* Für zukünftige Modals: data-pv-modal Attribut hinzufügen → auto-Schutz   */
/* ═══════════════════════════════════════════════════════════════════════════ */

/* Interner Alias: alle bekannten Modal-IDs + data-pv-modal für zukünftige  */
/* Spezifität: 1,0,0 (ID) — unschlagbar in der Praxis                       */

/* ── Box-sizing ──────────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) *,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) *::before,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) *::after {
    box-sizing: border-box !important;
}

/* ── z-index: Modals immer ganz oben ─────────────────────────────────────── */
#playerAcceptanceModal,
#trainerAcceptanceModal,
#availabilityModal,
#profileModal,
#logoutFeedbackModal,
[data-pv-modal] {
    z-index: 100000 !important;
}

/* ── Basis-Typografie ────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    line-height: 1.5 !important;
}

/* ── Überschriften ───────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h1,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h2,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h3,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h4,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h5,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) h6 {
    font-family: var(--pv-font-family-primary, "Poppins", sans-serif) !important;
    font-style: normal !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.3 !important;
    margin-top: 0 !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
}

/* ── Fließtext-Elemente ──────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) p,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) span:not(.dashicons),
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) div,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) label,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) li {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) button,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) input[type="button"],
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) input[type="submit"] {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    text-shadow: none !important;
    cursor: pointer !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
}

/* ── Eingabefelder ───────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal])
    input:not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]):not([type="range"]),
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) select,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) textarea {
    font-family: var(--pv-font-family-secondary, "Inter", sans-serif) !important;
    font-size: 14px !important;
    color: var(--pv-color-text-primary, #1C1C1E) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

/* ── Links ───────────────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) a {
    text-decoration: none !important;
    letter-spacing: normal !important;
}

/* ── Listen ──────────────────────────────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) ul,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) ol {
    list-style: none !important;
}

/* ── Dashicons: Font-Family schützen ─────────────────────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) .dashicons,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) .dashicons-before::before,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) i.dashicons {
    font-family: dashicons !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

/* ── Gutenberg/Theme-Wrapper im Modal neutralisieren ────────────────────── */
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) .wp-block-post-content,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) .is-layout-constrained,
:is(#playerAcceptanceModal, #trainerAcceptanceModal, #availabilityModal,
    #profileModal, #logoutFeedbackModal, [data-pv-modal]) .entry-content {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
