/**
 * CoreV2 — Sistem geneli UI/UX standardı
 * Kart boyutu, dönem tile'ları, mobil kaydırma, fake indirim, layout katmanları
 */
/* ── FOUC / ilk paint ── */
html:not(.cv2-css-ready) body {
    visibility: hidden;
}
html.cv2-css-ready body {
    visibility: visible;
}
html.cv2-css-ready.cv2-fonts-pending body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
#corev2-preloader {
    background: var(--cv2-surface-page, #fafbfc) !important;
}
[data-theme="dark"] #corev2-preloader {
    background: var(--cv2-surface-page, #0f172a) !important;
}
/* Fiyat flaşı — fx hazır olmadan gizleme yalnızca dönüşüm gerektiğinde */
html:not(.fx-ready) .cv2-fx-price[data-raw-amount] {
    opacity: 0;
    transition: opacity 0.15s ease;
}
html.fx-ready .cv2-fx-price[data-raw-amount],
html:not(.cv2-fx-active) [data-raw-amount],
html:not(.cv2-fx-active) [class*="-period-price"],
html:not(.cv2-fx-active) [class*="-original-price"] {
    opacity: 1 !important;
}
/* ── Standart kart boyutu (160×195) ── */
.cv2-period-grid [class*="-period-block"],
.cv2-listing-period-grid .cv2-listing-period-block {
    flex: 0 0 var(--cv2-card-width, 160px) !important;
    max-width: var(--cv2-card-width, 160px) !important;
    width: var(--cv2-card-width, 160px) !important;
    min-height: var(--cv2-card-height, 195px) !important;
    height: auto;
}
.sepethosting-period-block,
.sepetsunucu-period-block,
.sepetsms-period-block,
.sepetdomain-period-block,
.sepetsoftware-period-block,
.sepetozel-period-block {
    min-height: var(--cv2-card-height, 195px) !important;
}
/* ── Listing dönem tile'ları (sipariş referansı) ── */
.cv2-listing-period-wrap {
    width: 100%;
    max-width: min(100%, 880px);
    margin: 0 auto 24px;
    padding: 0 10px;
    box-sizing: border-box;
}
.cv2-listing-period-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 12px !important;
}
.cv2-listing-period-block {
    background: var(--header-action-gradient, #fff) !important;
    border: 1px solid var(--header-action-border, #e2e8f0) !important;
    border-radius: var(--cv2-radius-card, 18px) !important;
    padding: 18px 14px 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    cursor: pointer !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    transition: transform 0.3s ease, border-color 0.25s ease, box-shadow 0.3s ease !important;
    box-sizing: border-box !important;
}
.cv2-listing-period-block:hover {
    transform: translateY(-4px) scale(1.02);
    border-color: rgba(var(--CoreV2-primary-rgb, 59, 130, 246), 0.22) !important;
}
.cv2-listing-period-block.active {
    background: var(--CoreV2-primary-gradient, linear-gradient(135deg, #3b82f6, #1d4ed8)) !important;
    border-color: transparent !important;
    color: #fff !important;
    transform: translateY(-3px) scale(1.02);
}
.cv2-listing-period-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 12px;
}
.cv2-listing-period-title {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}
.cv2-listing-period-block.active .cv2-listing-period-title {
    color: #fff !important;
}
.cv2-listing-period-footer {
    border-top: 1px dashed rgba(var(--CoreV2-primary-rgb, 148, 163, 184), 0.12);
    padding: 10px;
    margin-top: auto;
}
.cv2-listing-select-indicator {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid var(--border-color, #e2e8f0);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    color: transparent;
    font-size: 12px;
    transition: all 0.25s ease;
}
.cv2-listing-period-block.active .cv2-listing-select-indicator {
    border-color: transparent;
    color: #fff !important;
    transform: scale(1.08);
}
.cv2-listing-period-block.active .cv2-listing-select-indicator i {
    color: #fff !important;
}
/* ── Fake indirim — tüm vitrinler ── */
.amount-discount,
.coreservercart-discount-badge,
[class*="-discount-badge"],
.pack .old-price,
.coreservercart-old-price,
.corecartpkts-old-price {
    display: inline-flex !important;
    visibility: visible !important;
}
.pack .old-price,
.coreservercart-old-price del,
.corecartpkts-old-price del,
[class*="-original-price"] {
    text-decoration: line-through !important;
    opacity: 0.65 !important;
}
.pack .amount-discount:empty,
.coreservercart-discount-badge:empty,
[class*="-discount-badge"]:empty {
    display: none !important;
}
/* ── Sunucu referans kartı — özellik köşeleri ── */
.coreservercart-more-list,
.coreservercard-detail-item,
.coreservercart-pack-image-area .coreservercart-more-list li,
.pack-features-grid .feature-box,
.feature-box.feature-image-box {
    border-radius: var(--cv2-radius-card-inner, 14px) !important;
}
.coreservercart-more-list li {
    border-radius: var(--cv2-radius-input, 10px) !important;
}
/* Tükendi etiketi — ortalanmış, yapışık değil */
.coreservercart-sunucustok {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    z-index: 60 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 8px 16px !important;
    margin: 0 !important;
    min-width: 0 !important;
    max-width: calc(100% - 24px) !important;
    white-space: nowrap !important;
    border-radius: var(--cv2-radius-chip, 9999px) !important;
    background: rgba(15, 23, 42, 0.82) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.28) !important;
    backdrop-filter: blur(8px) !important;
    pointer-events: none !important;
}
.coreservercart-server-item.out-of-stock::before,
.coreservercart-server-item.out-of-stock::after {
    content: none !important;
    display: none !important;
}
/* ── Mobil: tek kart kaydırma ── */
@media (max-width: 768px) {
    .vertical--packs,
    .packs-cards-track.carousel-enabled,
    .coreservercart-server-grid,
    .cnb-cards-carousel-track {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        gap: 12px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .vertical--packs::-webkit-scrollbar,
    .packs-cards-track::-webkit-scrollbar,
    .coreservercart-server-grid::-webkit-scrollbar {
        display: none !important;
    }
    .vertical--packs .pack-card-wrapper,
    .packs-cards-track.carousel-enabled > .pack-card-wrapper,
    .coreservercart-server-item,
    .cnb-cards-carousel-track .cnb-card,
    .cnb-cards-carousel-track .pack-card-wrapper {
        flex: 0 0 calc(100% - 32px) !important;
        width: calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;
        min-width: calc(100% - 32px) !important;
        scroll-snap-align: center !important;
    }
    /* Dönem tile mobil slider */
    .cv2-period-grid.cv2-period-mobile-slider,
    .cv2-listing-period-grid.cv2-period-mobile-slider {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        justify-content: flex-start !important;
        padding-bottom: 8px !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .cv2-period-grid.cv2-period-mobile-slider::-webkit-scrollbar,
    .cv2-listing-period-grid.cv2-period-mobile-slider::-webkit-scrollbar {
        display: none;
    }
    .cv2-period-grid.cv2-period-mobile-slider [class*="-period-block"],
    .cv2-listing-period-grid.cv2-period-mobile-slider .cv2-listing-period-block {
        flex: 0 0 calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;
        width: calc(100% - 32px) !important;
        scroll-snap-align: center !important;
    }
    /* Kampanya / sabit promo blokları mobilde görünür */
    .pack-card-wrapper--promo,
    .packs-slider-body--promo-slot-left .pack-card-wrapper--promo,
    .packs-slider-body--promo-slot-right .pack-card-wrapper--promo,
    .pack-countdown-banner,
    .pack-countdown,
    .ispark-fixed-block,
    [class*="promo-slot"],
    .cnb-card--promo {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-shrink: 0 !important;
    }
    .pack-carousel-pagination,
    .server-carousel-pagination,
    .ws-carousel-pagination {
        display: flex !important;
    }
}
/* ── Top bar + AI katmanları ── */
.CoreV2-topbar {
    position: relative !important;
    z-index: 10040 !important;
}
.CoreV2-header,
.CoreV2-main-header {
    z-index: 10050 !important;
}
#coreai-widget {
    z-index: 10030 !important;
}
#coreai-widget .cai-fab {
    bottom: max(20px, env(safe-area-inset-bottom, 0px)) !important;
}
.ai-order-assist {
    z-index: 10020 !important;
    bottom: max(88px, calc(20px + env(safe-area-inset-bottom, 0px))) !important;
}
body.cv2-has-order-ai #coreai-widget .cai-fab {
    bottom: max(148px, calc(88px + env(safe-area-inset-bottom, 0px))) !important;
}
/* ── Ortalanmış kart ızgaraları ── */
.cv2-period-grid,
.cv2-listing-period-grid,
.packs-cards-track:not(.carousel-enabled),
.coreservercart-server-grid {
    justify-content: center !important;
}
