/* =========================================================
   GLOBAL FLEET & TRADE – ÖFFENTLICHE HAUPTBOXEN
   Abschließende, bewusst zuletzt geladene Schutzschicht.

   Ziel:
   - identischer deckender Hintergrund für alle großen /pages/-Boxen
   - keinerlei Durchscheinen des Seiten-Hintergrundbildes
   - vorhandene Goldrahmen, Zierecken, Abstände und Responsivität bleiben
   - ältere Regeln aus theme.css, pages.css, seo-pages.css und FAQ-Regeln
     können diese Hintergründe nicht mehr überschreiben
========================================================= */

:root {
    --gft-public-box-top: #102238;
    --gft-public-box-bottom: #091827;
    --gft-public-box-solid: #091827;
}

/* Alle tatsächlich verwendeten Hauptbox-Klassen – jeweils bewusst mit
   Seitenklasse + Rahmenklasse angesprochen, damit auch tiefere Altregeln
   sicher überstimmt werden. */
body .page-shell.news-page > .page-frame.news-frame,
body .page-shell.changelog-page > .page-frame.changelog-frame,
body .page-shell.faq-page > .page-frame.faq-frame,
body .page-shell.contact-page > .page-frame.contact-frame,
body .page-shell.download-page > .page-frame.download-frame,
body .page-shell.privacy-page > .page-frame.privacy-frame,
body .page-shell.legal-page > .page-frame.legal-frame,
body .page-shell.imprint-page > .page-frame.legal-frame,
body .page-shell.imprint-page > .page-frame.imprint-frame {
    background-image: linear-gradient(
        180deg,
        var(--gft-public-box-top) 0%,
        var(--gft-public-box-bottom) 100%
    ) !important;
    background-color: var(--gft-public-box-solid) !important;
    background-repeat: no-repeat !important;
    background-size: 100% 100% !important;
    background-position: center !important;
    background-attachment: scroll !important;
    background-blend-mode: normal !important;
}

/* Die globale Glanzebene aus theme.css war halbtransparent. Sie wird auf
   diesen Hauptboxen vollständig entfernt, damit auch optisch garantiert
   kein Motiv oder fremder Farbverlauf in der Box sichtbar bleibt. */
body .page-shell.news-page > .page-frame.news-frame::after,
body .page-shell.changelog-page > .page-frame.changelog-frame::after,
body .page-shell.faq-page > .page-frame.faq-frame::after,
body .page-shell.contact-page > .page-frame.contact-frame::after,
body .page-shell.download-page > .page-frame.download-frame::after,
body .page-shell.privacy-page > .page-frame.privacy-frame::after,
body .page-shell.legal-page > .page-frame.legal-frame::after,
body .page-shell.imprint-page > .page-frame.legal-frame::after,
body .page-shell.imprint-page > .page-frame.imprint-frame::after {
    background: none !important;
    opacity: 0 !important;
}

/* Sicherheitsnetz für ältere/abweichende Templates, falls eine Seite nur
   die Rahmenklasse trägt. Diese Regeln stehen absichtlich hinter den
   präzisen Selektoren. */
body .page-frame.news-frame,
body .page-frame.changelog-frame,
body .page-frame.faq-frame,
body .page-frame.contact-frame,
body .page-frame.download-frame,
body .page-frame.privacy-frame,
body .page-frame.legal-frame,
body .page-frame.imprint-frame {
    background-image: linear-gradient(
        180deg,
        var(--gft-public-box-top) 0%,
        var(--gft-public-box-bottom) 100%
    ) !important;
    background-color: var(--gft-public-box-solid) !important;
    background-repeat: no-repeat !important;
    background-size: 100% 100% !important;
    background-position: center !important;
    background-blend-mode: normal !important;
}

body .page-frame.news-frame::after,
body .page-frame.changelog-frame::after,
body .page-frame.faq-frame::after,
body .page-frame.contact-frame::after,
body .page-frame.download-frame::after,
body .page-frame.privacy-frame::after,
body .page-frame.legal-frame::after,
body .page-frame.imprint-frame::after {
    background: none !important;
    opacity: 0 !important;
}

/* =========================================================
   AUTH-BOXEN – LOGIN / REGISTRIERUNG
   Abschließender Tiefenfix: vollständig deckender Hintergrund.
   Erfasst sowohl die aktuelle Legacy-Struktur (.auth-panel)
   als auch die neuere Struktur (.auth-frame / .auth-card).
========================================================= */
body .loginscreen > .overlay > .auth-panel,
body .auth-page > .auth-frame,
body .auth-page > .auth-card,
body .start-city-page > .auth-frame,
body .start-city-page > .auth-card {
    background-image: linear-gradient(
        180deg,
        var(--gft-public-box-top) 0%,
        var(--gft-public-box-bottom) 100%
    ) !important;
    background-color: var(--gft-public-box-solid) !important;
    background-repeat: no-repeat !important;
    background-size: 100% 100% !important;
    background-position: center !important;
    background-attachment: scroll !important;
    background-blend-mode: normal !important;
    opacity: 1 !important;
    isolation: isolate;
}

/* Eventuelle halbtransparente Glanz-, Bild- oder Overlay-Ebenen innerhalb
   der Auth-Box ausschalten. Rahmen-Zierecken über ::before bleiben erhalten. */
body .loginscreen > .overlay > .auth-panel::after,
body .auth-page > .auth-frame::after,
body .auth-page > .auth-card::after,
body .start-city-page > .auth-frame::after,
body .start-city-page > .auth-card::after {
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* Sicherheitsnetz gegen tiefere Auth-Regeln und mobile Überschreibungen. */
@media (max-width: 900px) {
    body .loginscreen > .overlay > .auth-panel,
    body .auth-page > .auth-frame,
    body .auth-page > .auth-card,
    body .start-city-page > .auth-frame,
    body .start-city-page > .auth-card {
        background-image: linear-gradient(
            180deg,
            var(--gft-public-box-top) 0%,
            var(--gft-public-box-bottom) 100%
        ) !important;
        background-color: var(--gft-public-box-solid) !important;
        opacity: 1 !important;
    }
}

/* =========================================================
   NORMALE REGISTRIERUNG – NUR BOXENMODELL
   Das Formular, seine Felder, Aktionen und Funktionen bleiben unverändert.
   Diese Regeln gleichen ausschließlich Rahmen, Fläche, Breite, Innenabstand
   und responsive Boxdarstellung an Login und die übrigen öffentlichen Seiten an.
========================================================= */
body .page-shell.auth-page.register-page > .page-frame.auth-frame.register-frame {
    position: relative !important;
    width: min(820px, calc(100% - 48px)) !important;
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 46px 54px 42px !important;
    box-sizing: border-box !important;

    background-image: linear-gradient(
        180deg,
        var(--gft-public-box-top) 0%,
        var(--gft-public-box-bottom) 100%
    ) !important;
    background-color: var(--gft-public-box-solid) !important;
    background-repeat: no-repeat !important;
    background-size: 100% 100% !important;
    background-position: center !important;
    background-attachment: scroll !important;
    background-blend-mode: normal !important;
    opacity: 1 !important;

    border: 1px solid rgba(216,164,63,.72) !important;
    border-radius: 10px !important;
    box-shadow:
        0 28px 80px rgba(0,0,0,.48),
        inset 0 1px 0 rgba(255,255,255,.07),
        inset 0 0 55px rgba(96,165,250,.05) !important;
    overflow: hidden !important;
    isolation: isolate !important;
}

body .page-shell.auth-page.register-page > .page-frame.auth-frame.register-frame::after {
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

body .page-shell.auth-page.register-page > .page-frame.auth-frame.register-frame > .auth-content.register-content {
    position: relative !important;
    z-index: 3 !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
}

/* Tiefe Absicherung gegen ältere register-page-, auth-frame- und mobile Regeln. */
@media (max-width: 900px) {
    body .page-shell.auth-page.register-page > .page-frame.auth-frame.register-frame {
        width: 100% !important;
        max-width: 620px !important;
        margin: 0 auto !important;
        padding: 34px 24px 30px !important;
        box-sizing: border-box !important;
        background-image: linear-gradient(
            180deg,
            var(--gft-public-box-top) 0%,
            var(--gft-public-box-bottom) 100%
        ) !important;
        background-color: var(--gft-public-box-solid) !important;
        opacity: 1 !important;
    }
}

@media (max-width: 520px) {
    body .page-shell.auth-page.register-page > .page-frame.auth-frame.register-frame {
        width: 100% !important;
        max-width: 100% !important;
        padding: 30px 18px 26px !important;
        border-radius: 8px !important;
    }
}


/* =========================================================
   WARTUNGSMODUS – RESPONSIVER TIEFENFIX
   Nur die Wartungsseite. Überschreibt spätere/globalere H1-,
   Auth-, Register-Closed- und Mobile-Regeln zuverlässig.
========================================================= */
body .page-shell.maintenance-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

body .page-shell.maintenance-page > .maintenance-frame {
    width: min(760px, calc(100% - 32px)) !important;
    max-width: 760px !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body .maintenance-page .maintenance-head,
body .maintenance-page .maintenance-content,
body .maintenance-page .headline-with-icons,
body .maintenance-page .box-subline {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body .maintenance-page .headline-with-icons h1 {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto !important;
}

@media (max-width: 900px) {
    body .page-shell.maintenance-page {
        min-height: calc(100svh - var(--header-height)) !important;
        padding: 32px 14px 42px !important;
        align-items: flex-start !important;
    }

    body .page-shell.maintenance-page > .maintenance-frame {
        width: 100% !important;
        max-width: 680px !important;
        padding: 38px 24px 34px !important;
        margin: 0 auto !important;
    }

    body .maintenance-page .maintenance-head {
        margin-bottom: 28px !important;
    }

    body .maintenance-page .headline-with-icons {
        gap: 12px !important;
    }

    body .maintenance-page .headline-with-icons h1 {
        font-size: clamp(26px, 7vw, 38px) !important;
        line-height: 1.18 !important;
        letter-spacing: .08em !important;
        text-align: center !important;
    }

    body .maintenance-page .headline-icon {
        width: 24px !important;
        height: 24px !important;
        flex: 0 0 24px !important;
    }

    body .maintenance-page .box-subline {
        gap: 10px !important;
        margin-top: 14px !important;
    }

    body .maintenance-page .box-subline strong {
        min-width: 0 !important;
        font-size: 11px !important;
        line-height: 1.45 !important;
        letter-spacing: .16em !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    body .maintenance-page .box-subline span {
        width: 36px !important;
        flex: 0 1 36px !important;
    }

    body .maintenance-page .maintenance-head > p,
    body .maintenance-page .maintenance-content p,
    body .maintenance-page .register-closed-note {
        max-width: 100% !important;
        font-size: 16px !important;
        line-height: 1.65 !important;
        overflow-wrap: anywhere !important;
    }

    body .maintenance-page .register-closed-actions {
        width: 100% !important;
        margin-top: 28px !important;
    }

    body .maintenance-page .register-closed-login {
        width: 100% !important;
        max-width: 360px !important;
        min-width: 0 !important;
    }
}

@media (max-width: 520px) {
    body .page-shell.maintenance-page {
        padding: 24px 10px 34px !important;
    }

    body .page-shell.maintenance-page > .maintenance-frame {
        padding: 32px 16px 28px !important;
        border-radius: 8px !important;
    }

    body .maintenance-page .headline-with-icons {
        display: block !important;
    }

    body .maintenance-page .headline-icon {
        display: none !important;
    }

    body .maintenance-page .headline-with-icons h1 {
        width: 100% !important;
        font-size: clamp(24px, 8.2vw, 32px) !important;
        line-height: 1.2 !important;
        letter-spacing: .055em !important;
    }

    body .maintenance-page .box-subline span {
        display: none !important;
    }

    body .maintenance-page .box-subline strong {
        width: 100% !important;
        font-size: 10px !important;
        letter-spacing: .14em !important;
    }

    body .maintenance-page .maintenance-head > p,
    body .maintenance-page .maintenance-content p,
    body .maintenance-page .register-closed-note {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    body .maintenance-page .frame-corner {
        width: 30px !important;
        height: 30px !important;
    }
}

@media (max-width: 360px) {
    body .page-shell.maintenance-page > .maintenance-frame {
        padding-left: 13px !important;
        padding-right: 13px !important;
    }

    body .maintenance-page .headline-with-icons h1 {
        font-size: 23px !important;
        letter-spacing: .035em !important;
    }
}
