/* Timurg portal — yüzey katmanı (tek-dil sözleşmesi 2026-10-21):
   paylaşılan bileşenler o/web kanonundan gelir (/ds; card, table, list,
   alert, steps, hero, panel-head, btn, notfound__*, ok, form__*).
   Bu dosya YALNIZ portale özgü yüzey taşır; kanonda karşılığı olan
   yeniden-tanımlar SÖKÜLDÜ (portal-*, flash, plan-row, contact-info,
   hero__pitch, panel-head__user, notfound__link, mb/inline).
   Bekçi: prod-ready tasarım-dili denetimi (envanter ⊆ kanon∪yüzey). */
/* ═══ Portal bileşenleri, site tasarım sistemi (style.css/page.css) üzerine ═══
   İskelet (.page/.page__inner) ve formlar (.contact-form*) page.css'ten gelir;
   burada yalnız portal'a özgü bileşenler: fiyat kartı, panel sekmeleri,
   tablolar, durum çipleri, hızlı-işlem şeridi. */

/* ── Portal alt-başlık / durum ── */


/* panel-head/portal-tabs → o/web components.css (iki ürün ortak, tek kaynak) */


/* ── Tablolar ── */

/* ── Liste / durum çipleri ── */

/* ── Mobil ── */
@media (max-width: 768px) {
        .portal-form-row { flex-direction: column; align-items: stretch; }
    .portal-form-row .contact-form__field { min-width: 0; }
    }

/* ── Güvenlik (L2 security page) ── */
.sec-kpis {
    display: flex;
    gap: var(--gap);
    flex-wrap: wrap;
    margin: var(--sp-4) 0;
}
.sec-kpi {
    border: 1px solid var(--border);
    border-radius: var(--br-zero);
    padding: var(--sp-2) var(--sp-4);
    min-width: calc(var(--sp-6) * 4.5);
    background: var(--bg-deep, transparent);
}
.sec-kpi__label {
    display: block;
    font-size: var(--fs-body);
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .75;
}
.sec-kpi__value {
    display: block;
    font-size: var(--fs-h2);
    font-weight: 700;
    margin-top: var(--sp-1);
}
.sec-h2 {
    font-size: var(--fs-body);
    margin: var(--sp-4) 0 var(--sp-2);
}
.sec-chart {
    display: flex;
    align-items: flex-end;
    gap: calc(var(--border) * 2);
    height: calc(var(--sp-6) * 4);
    border: 1px solid var(--border);
    border-radius: var(--br-zero);
    padding: var(--sp-2);
    overflow: hidden;
}
.sec-chart__col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    position: relative;
}
.sec-chart__bar {
    width: 100%;
    background: var(--accent);
    border-radius: var(--br-zero);
    opacity: .85;
}
.sec-chart__lab {
    display: none; /* hover title taşır; kalabalıkta gizli */
}
@media (max-width: 768px) {
    .sec-kpi { min-width: calc(50% - var(--gap)); flex: 1 1 calc(50% - var(--gap)); }
}

/* sec-finding/sec-sev/sec-badge/sec-tabs/sec-fb-btn ailesi SÖKÜLDÜ (2026-10-25):
   hiçbir şablonda kullanılmıyordu (ölü kod) — bulgu görünümü o/web
   accordion + badge + dot--* elementleriyle inşa edilir. */

/* panel-head ailesi → o/web components.css */

/* badge ailesi → o/web components.css TEK OTORİTE (2026-10-25 söküldü:
   buradaki redefinition kanonu eziyordu — display/padding/height farklıydı). */

/* Ekosistem kart ızgarası */

/* ── Form tasarım dili (konsol) ─────────────────────────────────
   Native input/select/button koyu temada çiğ kalıyordu, tokens
   ailesiyle ferah, tutarlı form dili. Sınıfsız kullanımda bile
   kapsar (tablo içi satır formları). */
table input:not([type="hidden"]):not([type="submit"]),
.portal-panel input:not([type="hidden"]),
.portal-panel select,
form input:not([type="hidden"]):not([type="submit"]):not([class*="__"]),
form select:not([class*="__"]) {
    background: var(--bg-deep); color: var(--text-bright);
    border: 1px solid var(--accent-border); border-radius: var(--br-zero);
    padding: var(--sp-1) var(--sp-2); font: inherit; font-size: var(--fs-label);
    min-width: 0; max-width: 100%;
}
form input:focus:not([type="submit"]):not([class*="__"]),
form select:focus:not([class*="__"]) {
    outline: none; border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);
}
table input[type="number"] { width: calc(var(--sp-6) * 3.25); text-align: right; }
form input::placeholder { color: var(--text-dim); opacity: 1; }
form button:not([class]),
form input[type="submit"]:not([class]) {
    background: var(--accent); color: var(--bg-deep); border: none;
    border-radius: var(--br-zero); padding: var(--sp-2) 1rem; font: inherit; font-weight: 600;
    cursor: pointer; white-space: nowrap;
}
form button:not([class]):hover,
form input[type="submit"]:not([class]):hover { background: var(--accent-bright); }
form select:not([class*="__"]) {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, var(--text-dim) 50%),
        linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
    background-position: calc(100% - 16px) 55%, calc(100% - 11px) 55%;
    background-size: 5px 5px; background-repeat: no-repeat;
    padding-right: var(--sp-6);
}
/* Satır-içi form hizada tutucu (tablo hücrelerinde) */
table form { display: inline-flex; gap: var(--gap); align-items: center; flex-wrap: wrap; }

/* ── Ortak bileşenler (portal + zuluflu web) ───────────────────── */
table { width: 100%; border-collapse: collapse; margin: 0 0 1rem; }
table th, table td { text-align: left; padding: var(--sp-2) 0.6rem; border-bottom: 1px solid var(--accent-dark); }
table th { color: var(--text-dim); font-weight: 400; font-size: var(--fs-label); }
table td { color: var(--text-light); }
table tr:hover td { background: color-mix(in srgb, var(--accent) 5%, transparent); }
.mono { font-family: var(--fn-mono, monospace); }
.meta { display: grid; grid-template-columns: auto 1fr; gap: var(--gap); margin: 0 0 1rem; }
.meta dt { color: var(--text-dim); }
.meta dd { margin: 0; color: var(--text-bright); }
/* empty → o/web components.css (2026-10-25 söküldü: farklı padding/border gölgelemesi) */
/* .btn ailesi: o/web components.css TEK OTORİTE (sp-7 inline-flex ölçüsü).
   Buradaki eski kopya silindi, /ds/'i eziyordu (46px buton + hardcoded hex). */
/* form ailesi → o/web components.css TEK OTORİTE (2026-10-25: .form input
   redefinition söküldü — farklı padding/font-size/border gölgelemesi;
   font-size: var(--sp-4) SPACING token'ıydı — BUG). */

/* footer, zuluflu varyantı (portal footer__meta kullanır) */
.footer__brand p, .footer__copy { margin: 0; color: var(--text-dim); font-size: var(--fs-label); }
.footer__copy { color: var(--text-dim); }

/* ── Mobil (müşteri telefonu), tablo taşmaları ve form satırları ── */
@media (max-width: 768px) {
    table { display: block; overflow-x: auto; white-space: nowrap; }
    .portal-form-row { flex-direction: column; align-items: stretch; }
    .portal-form-row label { width: 100%; }
        dl.meta { grid-template-columns: 1fr; }
    dl.meta dd { text-align: left; }
}

/* ═══ Kayıp tanımların geri dönüşü (2026-10-12, sözlük göçü 3788cd0'da
   style.css 386→14 satır inerken düşmüşler; yeni token sözlüğüyle) ═══ */

.notfound__link:hover { border-color: var(--accent); }

/* Paket içeriği kutusu (k pipeline) + çok satırlı detail */

/* Yeni müşteri başlangıç kutusu (dashboard) */
.onboarding {
    margin: var(--sp-4) 0 var(--sp-5);
    padding: var(--sp-5) var(--sp-6);
    background: var(--surface-card);
    border: var(--border) solid var(--surface-line);
    border-radius: var(--br-zero);
}
.onboarding__steps li { margin: var(--sp-1) 0; line-height: var(--lh-body); }
.onboarding__steps code {
    background: var(--bg-deep);
    padding: var(--sp-1) var(--sp-2);
    border-radius: var(--br-zero);
    font-size: var(--fs-label);
    color: var(--accent-bright);
    word-break: break-all;
}
.onboarding__cta:hover { background: var(--accent-bright); }

/* ═══ Fatura sayfası (§11.8 — inline stiller BEM ailesine taşındı) ═══ */
.invoice { max-width: var(--reading); }
.invoice__bar { display: flex; justify-content: space-between; align-items: baseline; gap: var(--gap); flex-wrap: wrap; }
.invoice__head { display: flex; justify-content: space-between; gap: var(--gap); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.invoice__head-right { text-align: right; }
.invoice__brand { font-size: var(--fs-h3); font-weight: var(--fw-bold); letter-spacing: var(--ls-title); text-transform: uppercase; color: var(--text-bright); }
.invoice__tagline { margin: 0; }
.invoice__no { font-size: var(--fs-body); color: var(--text-bright); }
.invoice__amount { font-weight: var(--fw-bold); color: var(--gold); }
.invoice__note { margin: var(--sp-4) 0 0; text-align: center; }

/* Ürün detay kartı (§11.8/§6.2 — uzun metin card__meta KABI olamaz; blok aralığı) */
.product-detail > * + * { margin-top: var(--gap); }

/* §30.58 #7 seat-delta checkout — koltuk adedi girişi: kanon form__input
   üzerine genişlik-yalnız yüzey (dar sayısal alan; inline style yasak §11.8) */
.seat-input { display: inline-block; width: calc(var(--sp-6) * 6); }
