/*
 * Metin slaytı (v1.71.0) — panonun ve paneldeki editör önizlemesinin ORTAK stili.
 *
 * Tek dosya bilinçlidir (slide_caption.css emsali): pano (display_pano.html) ve
 * Slaytlar bölümü (admin_dashboard.html) bu dosyayı ve işaretlemeyi üreten
 * `js/slide_text_render.js`i birlikte yükler. İki kopya olsaydı idarecinin
 * editörde gördüğü ile panoda çizilen zamanla ayrışırdı.
 *
 * Ölçek ekranın değil SLAYT KUTUSUNUN birimiyle kurulur (`cqh`/`cqw`); kalan
 * taşmayı `data-fit-box` sözleşmesi küçülterek kapatır (yalnız küçültür: seçilen
 * boyut bir üst sınırdır). Seçenek anahtarları backend/constants/slide_text.py'dedir.
 *
 * ⚠️ Pano Tailwind (preflight) kullanır: liste işaretleri ve paragraf boşlukları
 * sıfırlanmıştır, burada AÇIKÇA geri verilir.
 * ⚠️ Bulanıklık / 3B efekt YOKTUR: GPU'suz akıllı tahtada kompozit efektler
 * sessizce başka bir şey çizer (CLAUDE.md, v1.53.5). Animasyonlar yalnız
 * opacity + transform kullanır.
 */

.slide-text-host {
    container-type: size;
}

.slide-text {
    position: absolute;
    inset: 0;
    display: flex;
    box-sizing: border-box;
    padding: 6% 7%;
    overflow: hidden;
    /* Ölçek tabanı: kutu birimi yoksa (eski tarayıcı) vh'ye düşer. */
    font-size: 3vh;
    font-size: min(5.6cqh, 3.4cqw);
}

.slide-text[data-size="sm"] { font-size: 2.3vh; font-size: min(4.2cqh, 2.6cqw); }
.slide-text[data-size="lg"] { font-size: 3.8vh; font-size: min(7.2cqh, 4.4cqw); }
.slide-text[data-size="xl"] { font-size: 4.8vh; font-size: min(9cqh, 5.6cqw); }
.slide-text[data-size="xxl"] { font-size: 6vh; font-size: min(11.5cqh, 7cqw); }

/* 9 noktalı hizalama */
.slide-text[data-anchor^="top-"] { align-items: flex-start; }
.slide-text[data-anchor^="middle-"] { align-items: center; }
.slide-text[data-anchor^="bottom-"] { align-items: flex-end; }
.slide-text[data-anchor$="-left"] { justify-content: flex-start; text-align: left; }
.slide-text[data-anchor$="-center"] { justify-content: center; text-align: center; }
.slide-text[data-anchor$="-right"] { justify-content: flex-end; text-align: right; }

/* Desenler — nötr gri, açık ve koyu zeminde birlikte görünür. */
.slide-text::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.slide-text[data-pattern="dots"]::before {
    background-image: radial-gradient(rgba(128, 128, 128, 0.28) 12%, transparent 14%);
    background-size: 1.6em 1.6em;
}
.slide-text[data-pattern="lines"]::before {
    background-image: repeating-linear-gradient(135deg, rgba(128, 128, 128, 0.16) 0 0.12em, transparent 0.12em 1em);
}
.slide-text[data-pattern="grid"]::before {
    background-image:
        linear-gradient(rgba(128, 128, 128, 0.18) 0.06em, transparent 0.06em),
        linear-gradient(90deg, rgba(128, 128, 128, 0.18) 0.06em, transparent 0.06em);
    background-size: 2em 2em;
}

.slide-text-block {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    max-width: 100%;
    font-size: calc(1em * var(--fit, 1));
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.slide-text[data-panel="shade"] .slide-text-block {
    background: rgba(15, 23, 42, 0.55);
    padding: 0.6em 0.9em;
    border-radius: 0.5em;
}
.slide-text[data-panel="frost"] .slide-text-block {
    background: rgba(255, 255, 255, 0.82);
    padding: 0.6em 0.9em;
    border-radius: 0.5em;
}

.slide-text-title {
    font-weight: 700;
    font-size: 1.55em;
    line-height: 1.12;
    letter-spacing: -0.01em;
}
.slide-text-title + .slide-text-body { margin-top: 0.45em; }

.slide-text-body p { margin: 0 0 0.35em; }
.slide-text-body p:last-child { margin-bottom: 0; }
.slide-text-body ul,
.slide-text-body ol {
    margin: 0.2em 0 0.35em;
    padding-left: 1.25em;
    text-align: left;
}
.slide-text-body ul { list-style: disc; }
.slide-text-body ol { list-style: decimal; }
.slide-text-body li { margin: 0.1em 0; }
.slide-text b { font-weight: 700; }
.slide-text i { font-style: italic; }
.slide-text u { text-decoration: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.12em; }
.slide-text s { text-decoration: line-through; }
.slide-text span[style*="background-color"] {
    padding: 0 0.15em;
    border-radius: 0.15em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* Giriş animasyonları: slayt aktifleşince (pano) ya da önizlemede oynatılınca. */
@keyframes slide-text-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes slide-text-rise { from { opacity: 0; transform: translateY(0.8em); } to { opacity: 1; transform: none; } }
@keyframes slide-text-zoom { from { opacity: 0; transform: scale(0.88); } to { opacity: 1; transform: none; } }

.carousel-item.active .slide-text[data-anim="fade"] .slide-text-block,
.slide-text-play .slide-text[data-anim="fade"] .slide-text-block {
    animation: slide-text-fade 0.9s ease-out both;
}
.carousel-item.active .slide-text[data-anim="rise"] .slide-text-block,
.slide-text-play .slide-text[data-anim="rise"] .slide-text-block {
    animation: slide-text-rise 0.9s ease-out both;
}
.carousel-item.active .slide-text[data-anim="zoom"] .slide-text-block,
.slide-text-play .slide-text[data-anim="zoom"] .slide-text-block {
    animation: slide-text-zoom 0.9s ease-out both;
}

@media (prefers-reduced-motion: reduce) {
    .slide-text .slide-text-block { animation: none !important; }
}

/* Panel editörü: boş düzenleme alanında yer tutucu (yalnız admin'de kullanılır). */
.slide-text-editable:empty::before {
    content: attr(data-placeholder);
    color: #94a3b8;
    font-weight: 400;
    pointer-events: none;
}
.slide-text-editable ul { list-style: disc; padding-left: 1.25em; }
.slide-text-editable ol { list-style: decimal; padding-left: 1.25em; }
