/**
 * Omnex Pages — pages/companies.css
 * Firma detay sayfası (#/companies/:id). Liste OxDataTable + statcards kullanır;
 * burada yalnız detay düzeni tanımlanır.
 */

.ox-firma-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ox-space-6);
  margin-bottom: var(--ox-space-6);
}

/* ================= Firma DETAY zengin kompozisyon (referans: omnex data-rich) ================= */

/* Varlık başlığı (hero): logo + ad + rozet + meta + aksiyon. PageHeader yerine geçer. */
.ox-entity-hero {
  display: flex;
  align-items: center;
  gap: var(--ox-space-5);
  flex-wrap: wrap;
  padding: var(--ox-space-5) var(--ox-space-6);
  background: var(--ox-surface);
  border: 1px solid var(--ox-border);
  border-radius: var(--ox-radius-lg);
  box-shadow: var(--ox-shadow-sm);
  margin-bottom: var(--ox-space-6);
}
.ox-entity-hero__logo {
  width: 68px; height: 68px; flex: none;
  display: grid; place-items: center;
  border-radius: var(--ox-radius-lg);
  border: 1px solid var(--ox-border);
  background: var(--ox-surface-2);
  color: var(--ox-fg-faint);
  overflow: hidden;
}
.ox-entity-hero__logo img { width: 100%; height: 100%; object-fit: contain; }
/* Firma detay hero: logo TIKLANABILIR (degistir) — profil-avatar deseni. overflow:visible ki
   edit rozeti kirpilmasin; gorsel radius'u miras alir. */
.ox-firma-hero__logo { position: relative; cursor: pointer; overflow: visible; transition: transform var(--ox-transition); }
.ox-firma-hero__logo:hover { transform: scale(1.04); }
.ox-firma-hero__logo img { border-radius: inherit; }
.ox-firma-hero__logoedit {
  position: absolute; right: -4px; bottom: -4px; z-index: 3;
  display: grid; place-items: center; width: 24px; height: 24px;
  border-radius: var(--ox-radius-full);
  background: var(--ox-primary); color: #fff;
  border: 2px solid var(--ox-surface); box-shadow: var(--ox-shadow-sm);
  transition: transform var(--ox-transition);
}
.ox-firma-hero__logo:hover .ox-firma-hero__logoedit { transform: scale(1.12); }
.ox-entity-hero__main { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 6px; }
.ox-entity-hero__name {
  display: flex; align-items: center; gap: var(--ox-space-3); flex-wrap: wrap;
  font-size: var(--ox-text-2xl);
  font-weight: var(--ox-weight-bold);
  letter-spacing: var(--ox-tracking-tight);
  line-height: 1.15;
}
.ox-entity-hero__meta {
  display: flex; align-items: center; gap: var(--ox-space-4); flex-wrap: wrap;
  color: var(--ox-fg-muted);
  font-size: var(--ox-text-sm);
}
.ox-entity-hero__meta span { display: inline-flex; align-items: center; gap: 5px; }
.ox-entity-hero__meta svg { color: var(--ox-fg-faint); }
.ox-entity-hero__actions { display: flex; gap: var(--ox-space-2); flex-wrap: wrap; margin-left: auto; }
@media (max-width: 640px) {
  .ox-entity-hero__actions { margin-left: 0; width: 100%; }
}

/* Detay kart başlığı: ikon + başlık solda, aksiyon sağda; alt çizgi. */
.ox-detail .ox-card__header {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--ox-space-3);
  padding: var(--ox-space-4) var(--ox-space-6);
  border-bottom: 1px solid var(--ox-border);
}
.ox-detail .ox-card__title {
  display: flex; align-items: center; gap: var(--ox-space-2);
  margin: 0;
  font-size: var(--ox-text-md);
  font-weight: var(--ox-weight-semibold);
}
.ox-detail .ox-card__title svg { color: var(--ox-fg-muted); }

/* Anahtar/değer ızgarası: etiket ÜSTTE (küçük büyük-harf), değer altta; 2 kolon. */
.ox-kv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ox-space-4) var(--ox-space-6);
  padding: var(--ox-space-5) var(--ox-space-6);
}
.ox-kv { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ox-kv--full { grid-column: 1 / -1; }
.ox-kv__k {
  font-size: var(--ox-text-xs);
  font-weight: var(--ox-weight-semibold);
  letter-spacing: var(--ox-tracking-label);
  text-transform: uppercase;
  color: var(--ox-fg-faint);
}
.ox-kv__v {
  font-size: var(--ox-text-sm);
  font-weight: var(--ox-weight-medium);
  overflow-wrap: anywhere;
}
@media (max-width: 560px) { .ox-kv-grid { grid-template-columns: 1fr; } }

/* Kullanıcı-detay hero avatarı (#/users/:id): baş-harf büyük + görsel kaplar + hover-önizleme. */
.ox-userdetail__av { font-size: var(--ox-text-2xl); font-weight: var(--ox-weight-bold); color: var(--ox-primary); cursor: zoom-in; }
.ox-userdetail__av img { width: 100%; height: 100%; object-fit: cover; }

/* Kıdem kartı (üyelikten bu yana) — sağ ray. Başlıklı normal kart (statcard DEĞİL);
   gövde padding'i .ox-card__body'den gelir. */
.ox-userdetail__sen { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ox-space-3); }
.ox-userdetail__senv { font-size: var(--ox-text-base); font-weight: var(--ox-weight-medium); color: var(--ox-fg); }
.ox-userdetail__senbadge { gap: 4px; }

/* Giriş/oturum işlem geçmişi listesi. */
.ox-userdetail__hist { display: flex; flex-direction: column; }
.ox-userdetail__hrow { display: flex; align-items: center; gap: var(--ox-space-3); padding: var(--ox-space-3) var(--ox-space-6); border-bottom: 1px solid var(--ox-border); }
.ox-userdetail__hrow:last-child { border-bottom: 0; }
.ox-userdetail__hic { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: var(--ox-radius-full); background: var(--ox-primary-subtle, var(--ox-surface-2)); color: var(--ox-primary); }
.ox-userdetail__hmeta { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.3; }
.ox-userdetail__hmeta strong { font-size: var(--ox-text-sm); font-weight: var(--ox-weight-medium); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ox-userdetail__hmeta small { font-size: var(--ox-text-xs); color: var(--ox-fg-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ox-userdetail__htime { font-size: var(--ox-text-xs); color: var(--ox-fg-faint); flex-shrink: 0; }

/* Detay kartları: .ox-card gövdesinin kendi padding'i yok; başlık+içerik burada. */
.ox-firma-grid .ox-card__title,
.ox-firma-modules .ox-card__title {
  padding: var(--ox-space-4) var(--ox-space-6);
  border-bottom: 1px solid var(--ox-border);
  margin: 0;
}

/* Bilgi satırları (anahtar/değer) */
.ox-firma-info { padding: var(--ox-space-2) var(--ox-space-6) var(--ox-space-4); }
.ox-firma-info__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ox-space-4);
  padding: var(--ox-space-3) 0;
  border-bottom: 1px solid var(--ox-border);
}
.ox-firma-info__row:last-child { border-bottom: 0; }
.ox-firma-info__k { color: var(--ox-fg-muted); font-size: var(--ox-text-sm); }
.ox-firma-info__v { font-weight: var(--ox-weight-medium); text-align: right; }
/* Kimlik/slug çipi: STANDART font. <code> öğesi UA 'monospace' varsayar -> inherit ile ez
   (sayfada tek font: IBM Plex Sans; kullanıcı font tutarlılığı istedi). */
.ox-firma-id {
  font-family: inherit;
  font-size: var(--ox-text-xs);
  color: var(--ox-fg-faint);
  background: var(--ox-surface-2);
  padding: 2px 8px;
  border-radius: var(--ox-radius-sm);
  word-break: break-all;
}

/* Kişi listesi */
.ox-firma-people { padding: var(--ox-space-3) var(--ox-space-4) var(--ox-space-4); }
.ox-firma-person {
  display: flex;
  align-items: center;
  gap: var(--ox-space-3);
  padding: var(--ox-space-2) var(--ox-space-2);
  border-radius: var(--ox-radius-md);
}
.ox-firma-person:hover { background: var(--ox-surface-2); }
.ox-firma-person__av {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: var(--ox-radius-full);
  background: linear-gradient(135deg, var(--ox-primary), var(--ox-primary-active));
  color: var(--ox-primary-fg);
  font-size: var(--ox-text-sm);
  font-weight: var(--ox-weight-semibold);
}
.ox-firma-person__av img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.ox-firma-person__meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  line-height: 1.25;
}
.ox-firma-person__meta strong {
  font-size: var(--ox-text-sm);
  font-weight: var(--ox-weight-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ox-firma-person__meta small {
  font-size: var(--ox-text-xs);
  color: var(--ox-fg-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ox-firma-modules { margin-bottom: var(--ox-space-6); }
.ox-firma-modules .ox-empty { border: 0; }

.ox-f-muted { color: var(--ox-fg-muted); }

/* Sihirbaz: logo önizleme + özet */
.ox-firma-logo-prev {
  display: grid;
  place-items: center;
  min-height: 96px;
  padding: var(--ox-space-4);
  border: 1px dashed var(--ox-border-strong, var(--ox-border));
  border-radius: var(--ox-radius-md);
  background: var(--ox-surface-2);
  color: var(--ox-fg-faint);
  font-size: var(--ox-text-xs);
}
.ox-firma-logo-prev img {
  max-height: 120px;
  max-width: 100%;
  border-radius: var(--ox-radius-sm);
}
.ox-firma-summary .ox-firma-info { padding: 0; }
.ox-firma-summary .ox-firma-info__row:first-child { padding-top: 0; }

/* --- Lisans (B3.0): sayfa + firma detay kartı ortak --- */
.ox-license-layout {
  display: grid;
  grid-template-columns: minmax(300px, 380px) 1fr;
  gap: var(--ox-space-6);
  align-items: start;
}
/* Lisans kartı başlıkları da diğer kartlar gibi padding + alt çizgi alır
   (aksi halde başlık kenara yapışık ve gövdeyle hizasız kalır). */
.ox-license-current > .ox-card__title,
.ox-license-catalog > .ox-card__title {
  padding: var(--ox-space-4) var(--ox-space-6);
  border-bottom: 1px solid var(--ox-border);
  margin: 0;
}
.ox-license-current__body { padding: var(--ox-space-4) var(--ox-space-6) var(--ox-space-5); }
.ox-license-current .ox-firma-info,
.ox-firma-modules .ox-firma-info { padding-left: 0; padding-right: 0; }

.ox-license-plan { display: flex; align-items: center; gap: var(--ox-space-3); flex-wrap: wrap; }
.ox-license-plan__name {
  font-size: var(--ox-text-xl);
  font-weight: var(--ox-weight-bold);
  letter-spacing: var(--ox-tracking-tight);
}

.ox-license-seats { margin: var(--ox-space-3) 0; }
.ox-license-seats__head {
  display: flex; align-items: baseline; justify-content: space-between;
  font-size: var(--ox-text-sm); color: var(--ox-fg-muted); margin-bottom: 6px;
}
.ox-license-seats__head strong { color: var(--ox-fg); font-weight: var(--ox-weight-semibold); }
.ox-license-bar {
  height: 8px; border-radius: var(--ox-radius-full);
  background: var(--ox-surface-2); overflow: hidden;
}
.ox-license-bar > span {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--ox-primary), var(--ox-primary-active));
  border-radius: inherit;
  transition: width var(--ox-transition-slow);
}
/* Seat limiti dolduğunda uyarı rengi. */
.ox-license-bar.is-full > span { background: var(--ox-danger); }
/* 2026-09-29: eski .ox-license-grid / .ox-license-card kuralları kaldırıldı — şablon kartı UI kitin paket kartına taşındı
   (components/plancards.css, galeri #plancards); başka tüketicisi yoktu. */

@media (max-width: 860px) {
  .ox-license-layout { grid-template-columns: 1fr; }
}

/* --- Lisans motoru arayüzü (ADR-0050 L6): kullanım satırı, kalem düzenleyici, fiyat özeti, şablon kartı.
   Telefon kuralları YALNIZ html[data-device] ile (genişlik sorgusuyla karışmaz; hijyen 21). --- */
.ox-lic-usage { display: grid; gap: 6px; }
.ox-lic-usage + .ox-lic-usage { margin-top: var(--ox-space-3); }
.ox-lic-usage__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--ox-space-3);
  font-size: var(--ox-text-sm); color: var(--ox-fg-muted);
}
.ox-lic-usage__name { display: inline-flex; align-items: center; gap: var(--ox-space-2); min-width: 0; }
.ox-lic-usage__head strong { color: var(--ox-fg); font-weight: var(--ox-weight-semibold); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ox-license-bar.is-near > span { background: var(--ox-warning); }

.ox-lic-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ox-space-2) var(--ox-space-4); font-size: var(--ox-text-sm); color: var(--ox-fg-muted); }
.ox-lic-meta > span { display: inline-flex; align-items: center; gap: 6px; }
.ox-lic-note { margin: var(--ox-space-3) 0 0; padding: var(--ox-space-2) var(--ox-space-3); border-radius: var(--ox-radius-md); background: var(--ox-warning-subtle); color: var(--ox-fg); font-size: var(--ox-text-xs); }
.ox-lic-note--info { background: var(--ox-info-subtle); }

.ox-lic-head {
  display: flex; align-items: center; gap: var(--ox-space-2) var(--ox-space-3); flex-wrap: wrap;
  padding: var(--ox-space-3) var(--ox-space-4); margin-bottom: var(--ox-space-4);
  border-radius: var(--ox-radius-md); background: var(--ox-surface-2); font-size: var(--ox-text-sm);
}
.ox-lic-head__name { font-weight: var(--ox-weight-semibold); color: var(--ox-fg); }
.ox-lic-head__meta { color: var(--ox-fg-muted); }

.ox-lic-sec {
  display: flex; align-items: center; gap: var(--ox-space-2);
  margin: var(--ox-space-6) 0 var(--ox-space-3);
  font-size: var(--ox-text-sm); font-weight: var(--ox-weight-semibold); color: var(--ox-fg);
}
.ox-lic-sec:first-child { margin-top: 0; }
.ox-lic-sec__hint { margin-left: auto; font-weight: var(--ox-weight-regular); font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }

.ox-lic-items,
.ox-lic-items__rows { display: grid; gap: var(--ox-space-2); }
.ox-lic-items__head,
.ox-lic-item {
  display: grid;
  grid-template-columns: minmax(150px, 1.5fr) minmax(90px, .8fr) minmax(130px, 1fr) minmax(90px, .8fr) minmax(96px, .8fr) 32px;
  gap: var(--ox-space-2) var(--ox-space-3);
  align-items: center;
}
.ox-lic-items__head { padding: 0 var(--ox-space-3); font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }
.ox-lic-items__head span:nth-child(5) { text-align: right; }
.ox-lic-item {
  padding: var(--ox-space-2) var(--ox-space-3);
  border: 1px solid var(--ox-border); border-radius: var(--ox-radius-md); background: var(--ox-surface);
}
.ox-lic-item.is-invalid { border-color: var(--ox-danger); }
.ox-lic-item__dim { display: flex; align-items: center; gap: var(--ox-space-2); min-width: 0; font-size: var(--ox-text-sm); font-weight: var(--ox-weight-semibold); color: var(--ox-fg); }
.ox-lic-item__dim small { display: block; font-weight: var(--ox-weight-regular); font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }
.ox-lic-item__lbl { display: none; margin-bottom: 2px; font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }
.ox-lic-item__total { text-align: right; font-size: var(--ox-text-sm); font-variant-numeric: tabular-nums; color: var(--ox-fg); }
.ox-lic-item__err { grid-column: 1 / -1; font-size: var(--ox-text-xs); color: var(--ox-danger); }
.ox-lic-item__err:empty { display: none; }
.ox-lic-items__add { display: flex; align-items: center; gap: var(--ox-space-2); flex-wrap: wrap; }
.ox-lic-items__add .ox-select { max-width: 340px; }
html[data-device="phone"] .ox-lic-items__head { display: none; }
html[data-device="phone"] .ox-lic-item { grid-template-columns: 1fr 1fr; }
html[data-device="phone"] .ox-lic-item__dim { grid-column: 1 / -1; }
html[data-device="phone"] .ox-lic-item__lbl { display: block; }
html[data-device="phone"] .ox-lic-item__total { grid-column: 1 / 2; text-align: left; }
html[data-device="phone"] .ox-lic-item__x { grid-column: 2 / 3; justify-self: end; }
html[data-device="phone"] .ox-lic-items__add .ox-select { max-width: none; }

.ox-lic-rate { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ox-space-2); }
.ox-lic-rate .ox-radio-card.is-disabled { opacity: .5; cursor: not-allowed; }
html[data-device="phone"] .ox-lic-rate { grid-template-columns: 1fr; }

/* Fiyat özeti (2026-09-29 yeniden düzen): solda aylık toplam (büyük) + yıllık; yabancı para biriminde sağda TL karşılığı +
   kur rozeti; altta önizleme notu. TL bölümü yoksa sol blok tüm genişliği alır. */
.ox-lic-sum {
  display: grid; gap: var(--ox-space-3); margin-top: var(--ox-space-4);
  padding: var(--ox-space-4) var(--ox-space-5);
  border: 1px solid var(--ox-border); border-radius: var(--ox-radius-lg); background: var(--ox-surface-2);
}
.ox-lic-sum__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ox-space-5); }
.ox-lic-sum__grid > :only-child { grid-column: 1 / -1; }
.ox-lic-sum__main,
.ox-lic-sum__try { display: grid; align-content: start; gap: 6px; min-width: 0; }
.ox-lic-sum__try { padding-left: var(--ox-space-5); border-left: 1px solid var(--ox-border); }
.ox-lic-sum__label {
  font-size: var(--ox-text-xs); font-weight: var(--ox-weight-semibold); letter-spacing: .04em;
  text-transform: uppercase; color: var(--ox-fg-muted);
}
.ox-lic-sum__total { font-size: var(--ox-text-2xl); font-weight: var(--ox-weight-bold); line-height: 1.15; color: var(--ox-fg); font-variant-numeric: tabular-nums; }
.ox-lic-sum__sub { font-size: var(--ox-text-sm); color: var(--ox-fg-muted); }
.ox-lic-sum__sub b,
.ox-lic-sum__pair b { font-weight: var(--ox-weight-semibold); color: var(--ox-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ox-lic-sum__pair { display: flex; justify-content: space-between; gap: var(--ox-space-3); font-size: var(--ox-text-sm); color: var(--ox-fg-muted); }
.ox-lic-sum__rate {
  display: inline-flex; align-items: center; gap: 6px; justify-self: start; margin-top: 2px; padding: 3px 10px;
  border: 1px solid var(--ox-border); border-radius: var(--ox-radius-full); background: var(--ox-surface);
  font-size: var(--ox-text-xs); color: var(--ox-fg-muted);
}
.ox-lic-sum__note {
  display: flex; align-items: center; gap: 6px; padding-top: var(--ox-space-3);
  border-top: 1px dashed var(--ox-border); font-size: var(--ox-text-xs); color: var(--ox-fg-faint);
}
.ox-lic-sum__note .ox-icon,
.ox-lic-sum__rate .ox-icon { flex-shrink: 0; }
.ox-lic-sum.is-invalid .ox-lic-sum__note { padding-top: 0; border-top: 0; color: var(--ox-danger); }
html[data-device="phone"] .ox-lic-sum { padding: var(--ox-space-3) var(--ox-space-4); }
html[data-device="phone"] .ox-lic-sum__grid { grid-template-columns: minmax(0, 1fr); gap: var(--ox-space-3); }
html[data-device="phone"] .ox-lic-sum__try { padding: var(--ox-space-3) 0 0; border-top: 1px solid var(--ox-border); border-left: 0; }

.ox-lic-price { width: 100%; border-collapse: collapse; font-size: var(--ox-text-sm); }
.ox-lic-price th,
.ox-lic-price td { padding: 6px var(--ox-space-2); border-bottom: 1px solid var(--ox-border); text-align: left; }
.ox-lic-price th { font-weight: var(--ox-weight-medium); font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }
.ox-lic-price .is-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ox-lic-price tfoot td { border-bottom: 0; font-weight: var(--ox-weight-semibold); }

/* Şablon kartları: UI kit paket kartı (components/plancards.css); burada yalnız kart bölümü içindeki kenar boşluğu. */
.ox-lic-plans { padding: var(--ox-space-5) var(--ox-space-6) var(--ox-space-6); }
html[data-device="phone"] .ox-lic-plans { padding: var(--ox-space-3); }

.ox-lic-tplpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--ox-space-3); }
.ox-lic-tplpick .ox-radio-card { height: 100%; }
.ox-lic-tplpick .ox-radio-card:has(input:checked) { border-color: var(--ox-primary); box-shadow: 0 0 0 1px var(--ox-primary) inset; }
.ox-lic-tplpick__limits { margin-top: 4px; font-size: var(--ox-text-xs); color: var(--ox-fg-muted); }

@media (max-width: 720px) {
  .ox-firma-grid { grid-template-columns: 1fr; }
}

/* Dealer affiliation remains visible when search/pagination excludes its parent row. */
.ox-firma-child-name { position: relative; padding-inline-start: var(--ox-space-5); }
.ox-firma-child-name::before { content: "↳"; position: absolute; inset-inline-start: 0; }
