/**
 * NXTBYTE – einheitliche Website-Oberfläche (Shop, Panel, Auth, Footer)
 */
:root {
    --nxt-accent: #5b74d4;
    --nxt-accent-hover: #6a82df;
    --nxt-accent-soft: rgba(91, 116, 212, 0.16);
    --nxt-radius: 14px;
    --nxt-ok: #8dbf42;
    --nxt-warn: #e2a03f;
    --nxt-danger: #e7515a;
    --nxt-surface: #ffffff;
    --nxt-surface-2: #f1f5f9;
    --nxt-text: #0f172a;
    --nxt-muted: #64748b;
    --nxt-border: rgba(15, 23, 42, 0.1);
    --nxt-input: #ffffff;
}

html.nxt-ui-dark,
html.nxt-site-ui.nxt-ui-dark {
    --nxt-surface: #2c415c;
    --nxt-surface-2: #334866;
    --nxt-text: #f8fafc;
    --nxt-muted: #e8eef6;
    --nxt-border: rgba(220, 230, 244, 0.28);
    --nxt-input: #334866;
}

html.nxt-site-ui.nxt-ui-dark,
html.nxt-site-ui.nxt-ui-dark body,
html.nxt-site-ui.nxt-ui-dark .main-container,
html.nxt-site-ui.nxt-ui-dark #content.main-content {
    background: #121f33 !important;
}

html.nxt-site-ui.nxt-ui-dark .header.navbar,
html.nxt-site-ui.nxt-ui-dark .topbar-nav.header,
html.nxt-site-ui.nxt-ui-dark .header-container {
    background: #182a42 !important;
}

html.nxt-sale-theme {
    --nxt-accent: var(--sale-accent);
    --nxt-accent-hover: var(--sale-accent-hover);
    --nxt-accent-soft: var(--sale-accent-glow);
}

/* —— Header / Topbar —— */
html.nxt-site-ui .header.navbar,
html.nxt-site-ui .topbar-nav.header {
    border-bottom: 1px solid var(--nxt-border);
    backdrop-filter: blur(12px);
}

html.nxt-site-ui .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu {
    border-radius: var(--nxt-radius) !important;
    border: 1px solid var(--nxt-border) !important;
    box-shadow: none !important;
    background: var(--nxt-surface) !important;
    width: 268px !important;
    min-width: 268px !important;
    max-width: 268px !important;
    overflow: visible !important;
    z-index: 40;
}

html.nxt-site-ui .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu li a {
    white-space: nowrap;
}

html.nxt-site-ui .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu .sub-sub-submenu-list .sub-submenu,
html.nxt-site-ui .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu .sub-sub-submenu-list:hover ul.sub-submenu {
    top: 0 !important;
    left: calc(100% + 6px) !important;
    right: auto !important;
    width: 240px !important;
    min-width: 240px !important;
    max-width: 240px !important;
    background: var(--nxt-surface) !important;
    border: 1px solid var(--nxt-border) !important;
    border-radius: var(--nxt-radius) !important;
    box-shadow: none !important;
    z-index: 50;
}

html.nxt-site-ui.nxt-ui-dark .topbar-nav.header nav#topbar ul.menu-categories li.menu > a > div span,
html.nxt-site-ui.nxt-ui-dark .topbar-nav.header nav#topbar ul.menu-categories li.menu a > div svg:not(.feather-chevron-down),
html.nxt-site-ui.nxt-ui-dark .topbar-nav.header nav#topbar ul.menu-categories li.menu > a svg.feather-chevron-down,
html.nxt-site-ui.nxt-ui-dark .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu li a {
    color: #f1f5f9 !important;
}

html.nxt-site-ui.nxt-ui-dark .header.navbar .navbar-item .nav-link,
html.nxt-site-ui.nxt-ui-dark .header.navbar .dropdown-toggle,
html.nxt-site-ui.nxt-ui-dark .header.navbar .dropdown-item {
    color: #f1f5f9 !important;
}

html.nxt-site-ui .header.navbar .dropdown-menu,
html.nxt-site-ui .topbar-nav .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--nxt-border) !important;
    box-shadow: none !important;
}

html.nxt-site-ui .header.navbar .btn,
html.nxt-site-ui .navbar-item .btn {
    border-radius: 10px;
    box-shadow: none !important;
}

/* —— Buttons global —— */
html.nxt-site-ui .btn,
html.nxt-site-ui .nxt-btn {
    border-radius: 10px !important;
    font-weight: 600;
    box-shadow: none !important;
    transform: none !important;
}

html.nxt-site-ui .btn:hover,
html.nxt-site-ui .nxt-btn:hover,
html.nxt-site-ui .nxt-btn--primary:hover,
html.nxt-site-ui .nxt-product-card:hover {
    transform: none !important;
    box-shadow: none !important;
}

html.nxt-site-ui .btn-primary,
html.nxt-site-ui .nxt-btn--primary {
    background: var(--nxt-accent) !important;
    border-color: var(--nxt-accent) !important;
    color: #fff !important;
}

/* —— Formulare —— */
html.nxt-site-ui #content.main-content .form-control,
html.nxt-site-ui #content.main-content .custom-select,
html.nxt-site-ui #content.main-content textarea,
html.nxt-site-ui .auth-modern .form-control {
    border-radius: 10px;
}

html.nxt-site-ui #content.main-content input[type="file"]::file-selector-button {
    border: 1px solid var(--nxt-border);
    background: var(--nxt-accent-soft);
    color: var(--nxt-accent);
    border-radius: 8px;
    padding: 0.4rem 0.75rem;
    margin-right: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

/* —— Shop / öffentliche Karten —— */
html.nxt-site-ui .nxt-product-card,
html.nxt-site-ui .nxt-why-card,
html.nxt-site-ui .kvm-pkg-card,
html.nxt-site-ui .service-section,
html.nxt-site-ui .pageContentBox,
html.nxt-site-ui .contact-planbox {
    box-shadow: none !important;
    transform: none !important;
}

html.nxt-site-ui .nxt-product-card:hover,
html.nxt-site-ui .contact-planbox:hover,
html.nxt-site-ui .guthaben-payment-card:hover,
html.nxt-site-ui .recharge-bank-card:hover,
html.nxt-site-ui .rc-pay-row:hover,
html.nxt-site-ui .rc-bank-card:hover {
    transform: none !important;
    box-shadow: none !important;
}

html.nxt-site-ui.nxt-ui-dark .service-section,
html.nxt-site-ui.nxt-ui-dark .pageContentBox {
    background: var(--nxt-surface) !important;
    border: 1px solid var(--nxt-border) !important;
    border-radius: var(--nxt-radius) !important;
    color: var(--nxt-text);
}

/* Produktansichten: Statusleiste ohne Glow */
html.nxt-site-ui .ts-view-modern--dark .ts-hero-status,
html.nxt-site-ui .ts-view-modern:not(.ts-view-modern--dark) .ts-hero-status {
    background: var(--nxt-surface) !important;
    border: 1px solid var(--nxt-border) !important;
    border-left: 3px solid var(--nxt-ok) !important;
    box-shadow: none !important;
    color: var(--nxt-text) !important;
}

html.nxt-site-ui .ts-view-modern--dark.recharge-view-modern .recharge-panel,
html.nxt-site-ui .ts-view-modern--dark.recharge-view-modern .guthaben-payment-card {
    background: var(--nxt-surface) !important;
    border: 1px solid var(--nxt-border) !important;
    box-shadow: none !important;
}

/* Footer-CTAs flach */
html.nxt-site-ui .contact-planbox {
    background: var(--nxt-accent) !important;
    transform: none !important;
}

html.nxt-site-ui .footer-section {
    border-top: 1px solid var(--nxt-border);
}

/* Alerts */
html.nxt-site-ui .alert {
    border-radius: 12px;
    box-shadow: none !important;
}

/* Cookie / Modals */
html.nxt-site-ui .modal-content {
    border-radius: 14px;
    border: 1px solid var(--nxt-border);
    box-shadow: none !important;
}

html.nxt-site-ui.nxt-ui-dark .modal-content {
    background: var(--nxt-surface);
    color: var(--nxt-text);
}

html.nxt-site-ui.nxt-ui-dark .text-muted,
html.nxt-site-ui.nxt-ui-dark .text-muted.small,
html.nxt-site-ui.nxt-ui-dark small.text-muted,
html.nxt-site-ui.nxt-ui-dark .form-text,
html.nxt-site-ui.nxt-ui-dark .text-secondary,
html.nxt-site-ui.nxt-ui-dark .help-block,
html.nxt-site-ui.nxt-ui-dark .widget-activity-five .timeline-line .item-timeline .t-content p,
html.nxt-site-ui.nxt-ui-dark .widget-activity-five .widget-content .text-muted,
html.nxt-site-ui.nxt-ui-dark .dataTables_empty,
html.nxt-site-ui.nxt-ui-dark .page-header p,
html.nxt-site-ui.nxt-ui-dark .breadcrumb-one .breadcrumb-item {
    color: #e8eef6 !important;
}

html.nxt-site-ui.nxt-ui-dark .dash-shared-meta {
    color: #e8eef6 !important;
}

html.nxt-site-ui.nxt-ui-dark ::placeholder {
    color: #e2e8f0 !important;
    opacity: 1 !important;
}
html.nxt-site-ui.nxt-ui-dark ::-webkit-input-placeholder {
    color: #e2e8f0 !important;
    opacity: 1 !important;
}
html.nxt-site-ui.nxt-ui-dark ::-moz-placeholder {
    color: #e2e8f0 !important;
    opacity: 1 !important;
}
html.nxt-site-ui.nxt-ui-dark :-ms-input-placeholder {
    color: #e2e8f0 !important;
}

html.nxt-site-ui.nxt-ui-dark #content.main-content .table thead th,
html.nxt-site-ui.nxt-ui-dark #content.main-content table.dataTable thead th {
    color: #e2e8f0 !important;
}

/* FAQ: Theme setzt Fragen/Links auf #888ea8 */
html.nxt-site-ui.nxt-ui-dark .fq-header-wrapper h1,
html.nxt-site-ui.nxt-ui-dark .fq-header-wrapper p,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper h3,
html.nxt-site-ui.nxt-ui-dark .faq .fq-tab-section h2 {
    color: #f1f5f9 !important;
}

html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li a,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li a:visited,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li svg {
    color: #e2e8f0 !important;
}

html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li a:hover,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li:hover,
html.nxt-site-ui.nxt-ui-dark .faq .fq-comman-question-wrapper ul li:hover svg {
    color: #93c5fd !important;
}

html.nxt-site-ui.nxt-ui-dark .faq .accordion .faq-q-title,
html.nxt-site-ui.nxt-ui-dark .faq .accordion .card-header,
html.nxt-site-ui.nxt-ui-dark .faq .accordion .card-header svg {
    color: #f1f5f9 !important;
}

html.nxt-site-ui.nxt-ui-dark .faq .accordion .card-body,
html.nxt-site-ui.nxt-ui-dark .faq .accordion .card-body p {
    color: #e2e8f0 !important;
}

html.nxt-site-ui.nxt-ui-dark .faq .accordion .card-body a {
    color: #93c5fd !important;
}

/* FAQ / Legal / Supportinfo */
html.nxt-site-ui .nxt-public .card,
html.nxt-site-ui section.white-bg .card {
    border-radius: var(--nxt-radius);
    border: 1px solid var(--nxt-border);
    box-shadow: none;
}

html.nxt-site-ui.nxt-ui-dark section.white-bg:not(.homepage-products-section):not(.partner-logos-bar) {
    background: #121f33 !important;
}

/* Sale-Partikel (Shop + Admin), unabhängig vom Theme-Ordner */
html.nxt-sale-theme .nxt-sale-fx,
html.nxt-admin-sale-theme .nxt-sale-fx,
html.nxt-sale-theme .nxt-sale-fx *,
html.nxt-admin-sale-theme .nxt-sale-fx * {
    pointer-events: none !important;
}

html.nxt-sale-theme .nxt-sale-fx,
html.nxt-admin-sale-theme .nxt-sale-fx {
    position: fixed;
    inset: 0;
    z-index: 1005;
    overflow: hidden;
}

html.nxt-sale-theme .nxt-sale-fx__p,
html.nxt-admin-sale-theme .nxt-sale-fx__p {
    position: absolute;
    top: -10vh;
    line-height: 1;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
    animation: nxt-sale-snow var(--dur, 14s) linear var(--delay, 0s) infinite;
    will-change: transform;
}

html.nxt-sale-theme .nxt-sale-fx__p.is-spin,
html.nxt-admin-sale-theme .nxt-sale-fx__p.is-spin { animation-name: nxt-sale-spin; }

html.nxt-sale-theme .nxt-sale-fx__p.is-sway,
html.nxt-admin-sale-theme .nxt-sale-fx__p.is-sway { animation-name: nxt-sale-sway; }

html.nxt-sale-theme .nxt-sale-fx__p.is-float,
html.nxt-admin-sale-theme .nxt-sale-fx__p.is-float { animation-name: nxt-sale-float; }

html.nxt-sale-theme .nxt-sale-fx__p.is-snow,
html.nxt-admin-sale-theme .nxt-sale-fx__p.is-snow { animation-name: nxt-sale-snow; }

@keyframes nxt-sale-snow {
    from { transform: translate3d(0, -8vh, 0); }
    to { transform: translate3d(var(--drift, 20px), 115vh, 0); }
}
@keyframes nxt-sale-spin {
    from { transform: translate3d(0, -8vh, 0) rotate(0deg); }
    to { transform: translate3d(var(--drift, 20px), 115vh, 0) rotate(360deg); }
}
@keyframes nxt-sale-sway {
    from { transform: translate3d(0, -8vh, 0) rotate(-25deg); }
    50% { transform: translate3d(calc(var(--drift, 20px) * 0.55), 52vh, 0) rotate(28deg); }
    to { transform: translate3d(var(--drift, 20px), 115vh, 0) rotate(-18deg); }
}
@keyframes nxt-sale-float {
    from { transform: translate3d(0, -8vh, 0) scale(0.85); }
    to { transform: translate3d(var(--drift, 20px), 115vh, 0) scale(1.08); }
}

html.nxt-site-ui.nxt-ui-dark #content.main-content code,
html.nxt-site-ui.nxt-ui-dark #content.main-content kbd,
html.nxt-site-ui.nxt-ui-dark .modal code,
html.nxt-site-ui.nxt-ui-dark .modal kbd {
    background: color-mix(in srgb, var(--nxt-accent, #4361ee) 28%, #1a2744) !important;
    border: 1px solid color-mix(in srgb, var(--nxt-accent, #4361ee) 50%, transparent) !important;
    color: #f8fafc !important;
}

html.nxt-site-ui.nxt-ui-dark .dropdown-menu,
html.nxt-site-ui.nxt-ui-dark .bootstrap-select .dropdown-menu,
html.nxt-site-ui.nxt-ui-dark .select2-dropdown {
    background: #1a2744 !important;
    color: #f8fafc !important;
}

html.nxt-site-ui.nxt-ui-dark .dropdown-item,
html.nxt-site-ui.nxt-ui-dark .select2-results__option {
    color: #f8fafc !important;
}

html.nxt-site-ui.nxt-ui-dark .dropdown-item:hover,
html.nxt-site-ui.nxt-ui-dark .dropdown-item:focus,
html.nxt-site-ui.nxt-ui-dark .dropdown-item.active,
html.nxt-site-ui.nxt-ui-dark .dropdown-item:hover a,
html.nxt-site-ui.nxt-ui-dark .dropdown-item a:hover,
html.nxt-site-ui.nxt-ui-dark .select2-results__option--highlighted,
html.nxt-site-ui.nxt-ui-dark .select2-results__option[aria-selected="true"],
html.nxt-site-ui.nxt-ui-dark .topbar-nav.header nav#topbar ul.menu-categories li.menu .submenu li:hover > a,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item:hover,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a:hover {
    background: var(--nxt-accent, #4361ee) !important;
    color: #fff !important;
}

html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a span,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a i {
    color: #f8fafc !important;
}

html.nxt-site-ui.nxt-ui-dark .dropdown-item:hover a,
html.nxt-site-ui.nxt-ui-dark .dropdown-item:hover a span,
html.nxt-site-ui.nxt-ui-dark .dropdown-item:hover a i,
html.nxt-site-ui.nxt-ui-dark .dropdown-item a:hover,
html.nxt-site-ui.nxt-ui-dark .dropdown-item a:hover span,
html.nxt-site-ui.nxt-ui-dark .dropdown-item a:hover i,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item:hover a,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item:hover a span,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item:hover a i,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a:hover,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a:hover span,
html.nxt-site-ui.nxt-ui-dark .navbar .navbar-item .nav-item.user-profile-dropdown .dropdown-menu .dropdown-item a:hover i {
    color: #fff !important;
}

html.nxt-site-ui.nxt-ui-dark select,
html.nxt-site-ui.nxt-ui-dark .custom-select,
html.nxt-site-ui.nxt-ui-dark select.form-control {
    background: #1a2744 !important;
    color: #f8fafc !important;
}

html.nxt-site-ui.nxt-ui-dark select option {
    background: #1a2744 !important;
    color: #f8fafc !important;
}

/* Rollenfarbe: Kunde + Admin identisch (Farbe kommt inline aus roles.color) */
.nxt-role-badge {
    border-radius: 999px;
    font-weight: 700;
    border: 1px solid transparent;
}
