/* ===========================================================================
   enterprise.css — enterprise.html (Enterprise yapilandirici)
   ---------------------------------------------------------------------------
   BAGIMLILIK SIRASI
     design-system.css  (token)  ->  motion.css  ->  components.css  ->  BU DOSYA
   components.css'ten SONRA yuklenir, boylece `.ds-*` uzerinde ince ayar
   yapabilir. Tasarim sisteminde karsiligi olan her sey once `.ds-*` ile
   kurulur; burada yalnizca sayfaya OZEL yerlesim ve durum kalir.

   HAM DEGER YOK
     Renk, tipografi, bosluk ve yaricap yalnizca design-system.css token'larindan
     gelir. Bu dosya tek bir hex yazmaz; kontrast denetimi (116/116) token
     ciftleri uzerinden yurudugu icin buraya renk gomulmesi denetimin
     goremeyecegi bir cift yaratirdi.

   CLS
     1) Menu bandi site-nav.css'te ayrilir (--snav-h).
     2) HERO BANDI burada ayrilir. i18n motoru sayfayi ilk boyamadan SONRA
        cevirir; baslik ve alt metin dile gore satir sayisi degistirince bandin
        ALTINDAKI her sey kayardi. Rezervasyon BANDA verilir, basliga veya alt
        metne degil (bkz. corporate-styles.css'teki ayni karar): baslik ile alt
        metin arasinda gorunur bosluk birakmaz.
     3) Ozet panelindeki tum sayilar HTML'de TABAN PLAN degerleriyle yazilidir;
        JavaScript ayni satirin metnini degistirir, kutu yaratmaz.

   HAREKET
     Bu dosya kendi anahtar kare animasyonunu tanimlamaz; `fx-*` sinifi da
     kullanmaz. Yalnizca gecisler (renk/golge/transform) vardir ve hepsi
     `prefers-reduced-motion: reduce` altinda kapatilir.
   =========================================================================== */

/* ------------------------------------------------------------------ sayfa */

body.ds {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
}

/* `hidden` niteligi yerlesim kurallarina yenilmesin. Ozet panelindeki liste ve
   notlar gorunurlugu bu nitelikle yonetiyor. */
.ent-shell [hidden],
.ent-summary [hidden] { display: none !important; }

.ent-shell {
    width: 100%;
    max-width: var(--container-content);
    margin-inline: auto;
    padding-inline: var(--space-5);
}

@media (max-width: 480px) {
    .ent-shell { padding-inline: var(--space-4); }
}

.ent-section {
    padding-block: var(--section-y-sm);
}

.ent-section-band {
    background: var(--bg-band);
    border-block-start: 1px solid var(--border);
}

.ent-section-title {
    margin: 0 0 var(--space-2);
    font-size: var(--step-3);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--text);
}

.ent-section-sub {
    margin: 0 0 var(--space-6);
    max-width: var(--measure);
    font-size: var(--step-0);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

/* ------------------------------------------------------------------- hero */

.ent-hero {
    padding-block: var(--fluid-8);
    background: var(--accent-soft);
    border-block-end: 1px solid var(--accent-soft-border);

    /* CLS rezervasyonu — asagidaki kirilim kurallarina bakin. */
    min-height: 420px;
    display: flex;
    align-items: center;
}

.ent-hero-inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.ent-hero-badge {
    margin: 0;
    align-self: flex-start;
    padding: var(--space-1) var(--space-3);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--accent-text);
    background: var(--surface);
    border: 1px solid var(--accent-soft-border);
    border-radius: var(--radius-full);
}

.ent-hero-title {
    margin: 0;
    max-width: 20ch;
    font-size: var(--step-5);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--text);
}

.ent-hero-sub {
    margin: 0;
    max-width: var(--measure);
    font-size: var(--step-1);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-hero-note {
    margin: 0;
    max-width: var(--measure);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-subtle);
}

.ent-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-block-start: var(--space-2);
}

/* Hero bandi yukseklik rezervasyonu.
   Degerler bes dilin (tr/en/de/es/fr) olculen en buyuk band yuksekligidir;
   band sabitlenince fazlalik mevcut dolgunun icinde kalir ve gorunmez. */
@media (max-width: 480px) {
    .ent-hero { min-height: 560px; }
}

@media (min-width: 481px) and (max-width: 767px) {
    .ent-hero { min-height: 500px; }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .ent-hero { min-height: 440px; }
}

@media (min-width: 1024px) {
    .ent-hero { min-height: 430px; }
}

/* ------------------------------------------------------------- taban plan */

.ent-base-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
    padding: var(--card-pad);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

@media (min-width: 768px) {
    .ent-base-card {
        grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
        align-items: start;
        gap: var(--space-8);
        padding: var(--card-pad-lg);
    }
}

.ent-base-price {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ent-base-amount {
    font-size: var(--step-4);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

.ent-base-note {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-base-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 640px) {
    .ent-base-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ent-base-list li {
    position: relative;
    padding-inline-start: var(--space-6);
    font-size: var(--step-0);
    line-height: var(--leading-normal);
    color: var(--text);
}

/* Onay isareti CSS ile cizilir: emoji glifi yedek yazi tipinden renkli emoji
   yazi tipine gecerken satir kutusunu buyutuyor ve olculebilir bir kayma
   birakiyor. Bu kutu sabit boyutlu. */
.ent-base-list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.45em;
    width: 10px;
    height: 6px;
    border-inline-start: 2px solid var(--accent-2-text);
    border-block-end: 2px solid var(--accent-2-text);
    transform: rotate(-45deg);
}

/* ---------------------------------------------------------------- yerlesim */

.ent-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-8);
    padding-block: var(--section-y-sm);
    align-items: start;
}

@media (min-width: 1024px) {
    .ent-layout {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
        gap: var(--space-10);
    }
}

/* --------------------------------------------------------- yapilandirici */

.ent-config { min-width: 0; }

.ent-group {
    margin: 0 0 var(--space-6);
    padding: var(--card-pad);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.ent-group-title {
    padding-inline: var(--space-2);
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--text);
}

.ent-group-hint {
    margin: var(--space-1) 0 var(--space-4);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-mod {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3) var(--space-4);
    padding-block: var(--space-4);
    border-block-start: 1px solid var(--border);
}

.ent-mod-text {
    flex: 1 1 16rem;
    min-width: 0;
}

.ent-mod-name {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-target);
    font-size: var(--step-0);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--text);
    cursor: pointer;
}

/* Onay kutulu modulde etiket `.ds-check`; yalnizca yazi agirligini alir. */
.ent-mod-check .ent-mod-name-text {
    font-size: var(--step-0);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--text);
}

.ent-mod-hint {
    margin: 0;
    max-width: 52ch;
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-mod-side {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2) var(--space-3);
    flex: 0 1 auto;
}

.ent-mod-price {
    font-size: var(--step-0);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--accent-text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ent-mod-price-quote {
    color: var(--text-muted);
    font-weight: var(--weight-medium);
}

.ent-mod-badge { white-space: nowrap; }

/* ------------------------------------------------ kota / kullanim bazli ucret

   Iki kutu ayni ayrimin iki yarisi ve bu yuzden BIRBIRINE KARSIT renklenir:
   .ent-quota  (bilgi/mavi)  kotadan DUSEN siniflar, mesaj basina ek ucret yok
   .ent-usage  (uyari/kehribar) kota DISI sinif, mesaj basina ayri ucret var
   Renk tek tasiyici degil: her iki kutunun ilk satiri farki yaziyla da soyler.
   Ikisi de tokendan gelir, kontrast denetimi bu ciftleri zaten olcuyor
   (--info-fg/--info-bg 7,85 · --warning-fg/--warning-bg 8,74; koyu temada
   11,46 ve 11,80). */

.ent-quota {
    margin-block-end: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background: var(--info-bg);
    border: 1px solid var(--info-border);
    border-radius: var(--radius-md);
}

.ent-quota-title {
    margin: 0 0 var(--space-1);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--info-fg);
}

.ent-quota-body {
    margin: 0;
    max-width: 64ch;
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--info-fg);
}

.ent-usage {
    margin-block-start: var(--space-3);
    max-width: 52ch;
    padding: var(--space-3) var(--space-4);
    background: var(--warning-bg);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-md);
}

.ent-usage-title {
    margin: 0 0 var(--space-1);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-snug);
    color: var(--warning-fg);
}

.ent-usage-lead {
    margin: 0 0 var(--space-3);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--warning-fg);
}

.ent-usage-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Ad solda, birim fiyat sagda; ikisi arasindaki bosluk esnek. Dar ekranda
   satir sarmaz, cunku her iki parca da kisa ve fiyat nowrap. */
.ent-usage-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
    color: var(--warning-fg);
}

.ent-usage-name { min-width: 0; }

.ent-usage-rate {
    flex-shrink: 0;
    font-weight: var(--weight-semibold);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ent-usage-note {
    margin: var(--space-3) 0 0;
    font-size: var(--text-xs);
    line-height: var(--leading-normal);
    color: var(--warning-fg);
}

.ent-qty {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.ent-qty-word {
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--text-subtle);
}

.ent-qty-input {
    width: 6rem;
    text-align: end;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 480px) {
    .ent-mod-side {
        width: 100%;
        justify-content: space-between;
    }
    .ent-qty-input { width: 5.5rem; }
}

/* ------------------------------------------------------------------- ozet */

.ent-summary { min-width: 0; }

.ent-summary-inner {
    padding: var(--card-pad);
    background: var(--bg-elevated);
    border: 1px solid var(--accent-soft-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

@media (min-width: 1024px) {
    .ent-summary-inner {
        position: sticky;
        top: calc(var(--snav-h) + var(--space-4));
        max-height: calc(100vh - var(--snav-h) - var(--space-8));
        overflow-y: auto;
    }
}

.ent-summary-title {
    margin: 0 0 var(--space-4);
    font-size: var(--text-lg);
    font-weight: var(--weight-bold);
    line-height: var(--leading-snug);
    color: var(--text);
}

.ent-sum-live {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    border-radius: var(--radius-lg);
}

.ent-sum-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    margin: 0 0 var(--space-2);
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
}

.ent-sum-live .ent-sum-row { margin: 0; }

.ent-sum-label {
    color: var(--text-muted);
    min-width: 0;
}

.ent-sum-value {
    flex-shrink: 0;
    font-weight: var(--weight-semibold);
    color: var(--text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ent-sum-row-lead .ent-sum-label { color: var(--text); }

.ent-sum-row-lead .ent-sum-value {
    font-size: var(--text-xl);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
}

.ent-sum-value-save { color: var(--success-fg); }

/* Kullanim satiri iki toplamin ALTINDA ama onlarla ayni olcekte DEGIL: bir
   tutar tasimadigi icin toplam gorunumu almasi yanlis olurdu. Ayirici cizgi
   "bu ucuncu bir toplam degil" demenin gorsel karsiligi. */
.ent-sum-row-usage {
    padding-block-start: var(--space-2);
    border-block-start: 1px solid var(--accent-soft-border);
}

/* Uzun bilesik kelimeler (de: "Nutzungsabhaengige") dar panelde kutudan
   tasabiliyor; kelime bolunsun, satir bassin. */
.ent-sum-row-usage .ent-sum-label {
    color: var(--text);
    overflow-wrap: break-word;
}

.ent-sum-row-usage .ent-sum-value {
    font-size: var(--text-sm);
    white-space: normal;
    text-align: end;
}

.ent-sum-heading {
    margin: var(--space-6) 0 var(--space-3);
    padding-block-end: var(--space-2);
    border-block-end: 1px solid var(--border);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--text-muted);
}

.ent-sum-foot {
    margin: var(--space-2) 0 0;
    font-size: var(--text-xs);
    line-height: var(--leading-normal);
    color: var(--text-subtle);
}

.ent-sum-open { color: var(--text-muted); }

.ent-sum-empty {
    margin: 0;
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-sum-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ent-sum-list li {
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
    color: var(--text);
    overflow-wrap: break-word;
}

.ent-sum-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-block-start: var(--space-6);
}

/* ---------------------------------------------------------- teklif formu */

.ent-quote-shell {
    max-width: var(--container-md);
    margin-inline: auto;
}

.ent-quote-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
}

@media (min-width: 640px) {
    .ent-quote-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ent-quote-wide { grid-column: 1 / -1; }
}

.ent-quote-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-4);
    margin-block-start: var(--space-6);
}

.ent-quote-privacy {
    font-size: var(--text-sm);
    color: var(--accent-text);
}

.ent-quote-status {
    margin: var(--space-4) 0 0;
    font-size: var(--step-0);
    line-height: var(--leading-normal);
    color: var(--text-muted);
    min-height: 1.6em;   /* durum metni gelince alt bosluk buyumesin */
}

.ent-quote-status[data-state="success"] { color: var(--success-fg); }
.ent-quote-status[data-state="error"]   { color: var(--danger-fg); }

/* Bot tuzagi. `display: none` DEGIL: bazi botlar gizli alani atlar. Ekran
   disina alinir, klavye sirasindan cikarilir ve ekran okuyucudan gizlenir. */
.ent-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* ------------------------------------------------------- sozlesme notlari */

.ent-terms-shell { max-width: var(--container-md); margin-inline: auto; }

.ent-terms-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
}

.ent-terms-list li {
    position: relative;
    padding-inline-start: var(--space-5);
    font-size: var(--step-0);
    line-height: var(--leading-normal);
    color: var(--text-muted);
}

.ent-terms-list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.6em;
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    background: var(--accent-2-text);
}

.ent-terms-link {
    font-size: var(--step-0);
    font-weight: var(--weight-semibold);
    color: var(--accent-text);
}

/* -------------------------------------------------------------- hareket */

@media (prefers-reduced-motion: reduce) {
    .ent-mod,
    .ent-group,
    .ent-base-card,
    .ent-summary-inner,
    .ent-quote-status {
        transition: none !important;
    }
    .ent-summary-inner { scroll-behavior: auto; }
}
