/* EmlakVideo — KampusV1 kmp drawer/tabstack deseni (kullanıcı UI tercihi). Bootstrap --bs-* değişkenleri üzerine. */
:root { --kmp-sb-w: 250px; --kmp-topbar-h: 52px; --kmp-ease: cubic-bezier(.4,0,.2,1); }

body { margin:0; }

/* Topbar */
.kmp-topbar { display:flex; align-items:center; gap:.6rem; padding:.5rem .9rem; min-height:var(--kmp-topbar-h); border-bottom:1px solid var(--bs-border-color); position:sticky; top:0; background:var(--bs-body-bg); z-index:1050; }
.kmp-brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; color:inherit; min-width:0; }
.kmp-brand__name { font-size:1rem; font-weight:700; color:var(--bs-emphasis-color); white-space:nowrap; }
.kmp-brand__sub { font-size:.72rem; font-weight:500; color:var(--bs-secondary-color); white-space:nowrap; }
.kmp-spacer { flex:1 1 auto; }
.kmp-userchip { display:flex; align-items:center; gap:.45rem; font-size:.82rem; color:var(--bs-secondary-color); }

/* Animasyonlu hamburger (mobilde açıkken X) */
.kmp-burger { flex:0 0 auto; width:38px; height:34px; display:inline-flex; align-items:center; justify-content:center; padding:0; cursor:pointer; color:var(--bs-body-color); background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.5rem; transition:background .18s, border-color .18s; }
.kmp-burger:hover { background:var(--bs-tertiary-bg); }
.kmp-burger:focus-visible { outline:2px solid var(--bs-primary); outline-offset:2px; }
.kmp-burger span, .kmp-burger span::before, .kmp-burger span::after { display:block; width:18px; height:2px; background:currentColor; border-radius:2px; transition:transform .3s var(--kmp-ease), opacity .2s var(--kmp-ease); }
.kmp-burger span { position:relative; }
.kmp-burger span::before { content:""; position:absolute; left:0; top:-6px; }
.kmp-burger span::after { content:""; position:absolute; left:0; top:6px; }

/* Gövde + ana içerik */
.kmp-body { display:flex; align-items:flex-start; position:relative; }
.kmp-main { flex:1 1 auto; min-width:0; padding:1.1rem 1.25rem; display:flex; flex-direction:column; min-height:calc(100vh - var(--kmp-topbar-h)); }
/* Dock-fill (ERP Standardı "uzun içerik", Y-097): .kmp-dock kökü olan sayfada kabuk viewport'a
   sabitlenir, grid kalan yüksekliği doldurur ve kaydırma grid'in İÇİNDE olur (sanallaştırma ön koşulu).
   Zincirin her halkası flex + min-height:0; biri eksikse yükseklik auto'ya düşer. */
.kmp-main:has(> .kmp-dock) { height:calc(100dvh - var(--kmp-topbar-h)); min-height:0; }
.kmp-dock, .kmp-dock-fill { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.kmp-dock > .kmp-grid--fill, .kmp-dock-fill > .kmp-grid--fill { flex:1 1 auto; height:auto; min-height:0; }
/* Kontür fiyatları: sabit işlem listeli ayar formu (veri tablosu değil) — İşlem · Kontür · Aktif ızgarası. */
.kmp-pricing { display:grid; grid-template-columns:minmax(0,1fr) 120px 70px; gap:.4rem .75rem; align-items:center; max-width:520px; }
.kmp-pricing-head, .kmp-pricing-row { display:contents; }
.kmp-pricing-head > span { padding-bottom:.25rem; border-bottom:1px solid var(--bs-border-color); font-weight:500; }
/* Sürüm künyesi — kabuğun son satırı (Y-096): kısa sayfada dibe oturur, uzun sayfada içerikle birlikte akar; position:fixed YOK. */
.kmp-foot { margin-top:auto; padding-top:1rem; display:flex; justify-content:flex-end; }
.kmp-kunye { font-size:.78rem; color:var(--bs-secondary-color); font-variant-numeric:tabular-nums; white-space:nowrap; }

/* Drawer panel */
.kmp-sidebar { flex:0 0 var(--kmp-sb-w); width:var(--kmp-sb-w); position:sticky; top:var(--kmp-topbar-h); height:calc(100vh - var(--kmp-topbar-h)); overflow:hidden; border-right:1px solid var(--bs-border-color); background:var(--bs-body-bg); transition:flex-basis .32s var(--kmp-ease), width .32s var(--kmp-ease), border-color .32s var(--kmp-ease); }
.kmp-sidebar__inner { width:var(--kmp-sb-w); height:100%; overflow-y:auto; overflow-x:hidden; padding-top:.5rem; transition:transform .32s var(--kmp-ease), opacity .32s var(--kmp-ease); }
.kmp-sidebar__head { display:none; align-items:center; justify-content:space-between; padding:.7rem .9rem; border-bottom:1px solid var(--bs-border-color); }
.kmp-sidebar__close { border:none; background:transparent; color:var(--bs-secondary-color); font-size:1.1rem; line-height:1; cursor:pointer; padding:.25rem .45rem; border-radius:.4rem; }
.kmp-navgroup { font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); padding:.8rem 1rem .25rem; }
.kmp-sidebar .nav-link { position:relative; display:flex; align-items:center; gap:.6rem; margin:.12rem .5rem; padding:.5rem .75rem; border-radius:.5rem; color:var(--bs-body-color); font-size:.9rem; text-decoration:none; transition:background .18s var(--kmp-ease), color .18s var(--kmp-ease), transform .18s var(--kmp-ease); }
.kmp-sidebar .nav-link:hover { background:var(--bs-tertiary-bg); transform:translateX(2px); }
.kmp-sidebar .nav-link.active { background:var(--bs-primary-bg-subtle); color:var(--bs-primary-text-emphasis); font-weight:600; }
.kmp-sidebar .nav-link.active::before { content:""; position:absolute; left:-.5rem; top:.35rem; bottom:.35rem; width:3px; border-radius:0 3px 3px 0; background:var(--bs-primary); }

/* Scrim (mobil overlay) */
.kmp-scrim { position:fixed; inset:var(--kmp-topbar-h) 0 0 0; background:rgba(15,18,25,.45); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); opacity:0; visibility:hidden; transition:opacity .3s var(--kmp-ease), visibility .3s var(--kmp-ease); z-index:1040; }

/* Masaüstü: collapse = push */
@media (min-width: 992px) {
  .kmp-scrim { display:none; }
  html[data-drawer="closed"] .kmp-sidebar { flex-basis:0; width:0; border-right-color:transparent; }
  html[data-drawer="closed"] .kmp-sidebar__inner { transform:translateX(-24px); opacity:0; }
}
/* Mobil: soldan kayan overlay drawer + scrim */
@media (max-width: 991.98px) {
  .kmp-sidebar { position:fixed; top:var(--kmp-topbar-h); left:0; height:calc(100vh - var(--kmp-topbar-h)); width:min(82vw, 300px); flex-basis:auto; z-index:1045; border-right:none; border-radius:0 .9rem .9rem 0; box-shadow:.5rem 0 2.5rem rgba(0,0,0,.28); transform:translateX(-105%); transition:transform .34s var(--kmp-ease); }
  .kmp-sidebar__inner { width:100%; transform:none; opacity:1; }
  .kmp-sidebar__head { display:flex; }
  html[data-drawer="open"] .kmp-sidebar { transform:translateX(0); }
  html[data-drawer="open"] .kmp-scrim { opacity:1; visibility:visible; }
  html[data-drawer="open"] body { overflow:hidden; }
  html[data-drawer="open"] .kmp-burger span { background:transparent; }
  html[data-drawer="open"] .kmp-burger span::before { transform:translateY(6px) rotate(45deg); }
  html[data-drawer="open"] .kmp-burger span::after { transform:translateY(-6px) rotate(-45deg); }
}
@media (prefers-reduced-motion: reduce) {
  .kmp-sidebar, .kmp-sidebar__inner, .kmp-scrim, .kmp-burger span, .kmp-burger span::before, .kmp-burger span::after, .kmp-sidebar .nav-link { transition:none !important; }
}

/* Sabit-yükseklik sekmeli formlar (grid-stack) — kullanıcı tercihi: sekme değişince zıplama yok */
.kmp-tabstack { display:grid; }
.kmp-tabstack > * { grid-area:1 / 1; align-content:start; }
.kmp-tabstack > .kmp-tab-off { visibility:hidden; pointer-events:none; }

/* Giriş/Denied minimal ortalı kart */
.kmp-authwrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1.5rem; background:var(--bs-tertiary-bg); }
/* Kabuk dışı düzen (giriş/yetkisiz): kolon + yapışık künye (Y-096); kart alanı esner, künye son satır. */
.kmp-emptylayout { min-height:100dvh; display:flex; flex-direction:column; background:var(--bs-tertiary-bg); }
.kmp-emptylayout .kmp-authwrap { min-height:0; flex:1 1 auto; }
.kmp-foot--empty { justify-content:center; padding:.5rem 1rem 1rem; }
.kmp-authcard { width:min(400px,100%); background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:1rem; box-shadow:0 1rem 2.5rem rgba(0,0,0,.10); padding:1.75rem; }

/* Yardımcılar */
.kmp-pagehead { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
.kmp-pagehead h1 { font-size:1.35rem; font-weight:700; margin:0; }
.kmp-balance { font-weight:700; color:var(--bs-primary); }

/* ---- Toast (kampusToast) — sağ üst yüzen yığın ---- */
.kmp-toaster { position:fixed; top:1rem; right:1rem; z-index:1100; display:flex; flex-direction:column; gap:.5rem; max-width:min(380px,92vw); pointer-events:none; }
.kmp-toast { pointer-events:auto; display:flex; align-items:flex-start; gap:.6rem; padding:.7rem .9rem; border-radius:.6rem;
  background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-left:4px solid var(--bs-primary);
  box-shadow:0 .5rem 1.5rem rgba(0,0,0,.18); font-size:.88rem; animation:kmpToastIn .22s var(--kmp-ease); }
.kmp-toast i.bi { font-size:1rem; line-height:1.3; color:var(--bs-primary); }
.kmp-toast--success { border-left-color:#16a34a; } .kmp-toast--success i.bi { color:#16a34a; }
.kmp-toast--danger  { border-left-color:#dc2626; } .kmp-toast--danger  i.bi { color:#dc2626; }
.kmp-toast--warn    { border-left-color:#d97706; } .kmp-toast--warn    i.bi { color:#d97706; }
.kmp-toast--info    { border-left-color:#0ea5e9; } .kmp-toast--info    i.bi { color:#0ea5e9; }
.kmp-toast.kmp-out  { animation:kmpToastOut .2s var(--kmp-ease) forwards; }
.kmp-toast__x { border:0; background:transparent; color:var(--bs-secondary-color); font-size:1.1rem; line-height:1; cursor:pointer; padding:0 .15rem; }
@keyframes kmpToastIn  { from{opacity:0; transform:translateX(16px)} to{opacity:1; transform:none} }
@keyframes kmpToastOut { from{opacity:1; transform:none} to{opacity:0; transform:translateX(16px)} }

/* Modal + onay diyaloğu: Kmp.Blazor (kmp-blazor.css) sağlar. */

@media (prefers-reduced-motion: reduce) {
  .kmp-toast, .kmp-toast.kmp-out { animation:none !important; }
}

/* ---- Görsel kırpma overlay'ı (kmpCropper) ---- */
.kmp-crop-backdrop { position:fixed; inset:0; background:rgba(15,18,25,.55); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); z-index:1095; }
.kmp-crop-box { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); width:min(680px,95vw); max-height:92vh;
  background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.75rem; box-shadow:0 1rem 3rem rgba(0,0,0,.4);
  z-index:1096; display:flex; flex-direction:column; }
.kmp-crop-head { display:flex; align-items:center; justify-content:space-between; padding:.7rem 1rem; border-bottom:1px solid var(--bs-border-color); font-weight:600; }
.kmp-crop-body { padding:1rem; overflow:hidden; background:var(--bs-tertiary-bg); }
.kmp-crop-body img { max-width:100%; display:block; max-height:60vh; }
.kmp-crop-foot { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; padding:.7rem 1rem; border-top:1px solid var(--bs-border-color); }

/* ============================================================
   Herkese açık ilan vitrini (PublicLayout + /vitrin)
   ============================================================ */
/* Blazor hata bandı global gizli (PublicLayout/EmptyLayout scoped CSS'i yok). Gerçek hatada
   framework inline style.display='block' set eder → bu kural ezilir, banner görünür. */
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; width:100%; z-index:1000; box-sizing:border-box;
  padding:.6rem 1.25rem .7rem; background:lightyellow; color-scheme:light only; box-shadow:0 -1px 2px rgba(0,0,0,.2); }
#blazor-error-ui .dismiss { cursor:pointer; position:absolute; right:.75rem; top:.5rem; }

.pub-shell { min-height:100dvh; display:flex; flex-direction:column; background:var(--bs-tertiary-bg); }
.pub-nav { position:sticky; top:0; z-index:1030; background:var(--bs-body-bg); border-bottom:1px solid var(--bs-border-color); box-shadow:0 1px 6px rgba(0,0,0,.04); }
.pub-nav__inner { max-width:1180px; margin:0 auto; padding:.6rem 1rem; display:flex; align-items:center; gap:.85rem; }
.pub-brand { display:flex; align-items:center; gap:.45rem; font-size:1.18rem; font-weight:600; color:var(--bs-primary); text-decoration:none; white-space:nowrap; }
.pub-brand i { font-size:1.3rem; }
.pub-brand strong { color:var(--bs-body-color); font-weight:800; }
.pub-navsearch { flex:1 1 auto; max-width:520px; position:relative; display:flex; align-items:center; }
.pub-navsearch i { position:absolute; left:.7rem; color:var(--bs-secondary-color); pointer-events:none; }
.pub-navsearch input { width:100%; padding:.5rem .8rem .5rem 2.1rem; border:1px solid var(--bs-border-color); border-radius:2rem; background:var(--bs-tertiary-bg); font-size:.92rem; }
.pub-navsearch input:focus { outline:none; border-color:var(--bs-primary); background:var(--bs-body-bg); box-shadow:0 0 0 .2rem rgba(13,110,253,.12); }
.pub-navlinks { display:flex; align-items:center; gap:.4rem; margin-left:auto; }
.pub-navlinks a { color:var(--bs-secondary-color); text-decoration:none; font-size:.9rem; padding:.4rem .55rem; border-radius:.5rem; }
.pub-navlinks a:hover { color:var(--bs-body-color); background:var(--bs-tertiary-bg); }
.pub-loginbtn { color:var(--bs-primary) !important; border:1px solid var(--bs-primary); font-weight:600; }
.pub-loginbtn:hover { background:var(--bs-primary) !important; color:#fff !important; }
.pub-main { flex:1 1 auto; width:100%; max-width:1180px; margin:0 auto; padding:1.1rem 1rem 2.5rem; }
.pub-foot { border-top:1px solid var(--bs-border-color); background:var(--bs-body-bg); }
.pub-foot__inner { max-width:1180px; margin:0 auto; padding:1rem; display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between; font-size:.82rem; color:var(--bs-secondary-color); }
.pub-foot__inner a { color:var(--bs-primary); text-decoration:none; }

/* ---- Filtre çubuğu ---- */
.pub-filters { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.85rem; padding:.85rem; margin-bottom:1rem; box-shadow:0 1px 4px rgba(0,0,0,.03); }
.pub-filters__row { display:flex; flex-wrap:wrap; gap:.6rem; }
.pub-filters__row + .pub-filters__row { margin-top:.6rem; }
.pub-f { display:flex; flex-direction:column; gap:.2rem; min-width:120px; }
.pub-f--grow { flex:1 1 220px; }
.pub-f label { font-size:.72rem; font-weight:600; color:var(--bs-secondary-color); text-transform:uppercase; letter-spacing:.03em; }
.pub-f input, .pub-f select { padding:.42rem .6rem; border:1px solid var(--bs-border-color); border-radius:.5rem; background:var(--bs-body-bg); font-size:.9rem; color:var(--bs-body-color); }
.pub-f input:focus, .pub-f select:focus { outline:none; border-color:var(--bs-primary); box-shadow:0 0 0 .2rem rgba(13,110,253,.1); }
.pub-f--actions { flex-direction:row; align-items:flex-end; gap:.4rem; margin-left:auto; }

.pub-resulthead { display:flex; align-items:baseline; gap:.6rem; margin:.2rem .2rem 1rem; }
.pub-count { font-size:1rem; color:var(--bs-body-color); }
.pub-count strong { color:var(--bs-primary); font-size:1.15rem; }
.pub-agencybanner { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between; align-items:center; background:var(--bs-primary-bg-subtle); border:1px solid var(--bs-primary-border-subtle); color:var(--bs-primary-text-emphasis); border-radius:.6rem; padding:.5rem .85rem; margin-bottom:.85rem; font-size:.9rem; }
.pub-agencybanner a { color:inherit; text-decoration:none; font-weight:600; }

.pub-empty { text-align:center; padding:3rem 1rem; color:var(--bs-secondary-color); }
.pub-empty i { font-size:2.4rem; opacity:.5; display:block; margin-bottom:.6rem; }

/* ---- Kart ızgarası ---- */
.pub-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(235px, 1fr)); gap:1rem; }
.pub-card { display:flex; flex-direction:column; background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.8rem; overflow:hidden; text-decoration:none; color:inherit; transition:transform .18s cubic-bezier(.4,0,.2,1), box-shadow .18s; }
.pub-card:hover { transform:translateY(-3px); box-shadow:0 .6rem 1.4rem rgba(0,0,0,.12); border-color:var(--bs-primary-border-subtle); }
.pub-card__img { position:relative; aspect-ratio:4/3; background:var(--bs-tertiary-bg); overflow:hidden; }
.pub-card__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pub-card__noimg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--bs-border-color); font-size:2.6rem; }
.pub-card__deal { position:absolute; top:.5rem; left:.5rem; background:var(--bs-primary); color:#fff; font-size:.72rem; font-weight:600; padding:.15rem .5rem; border-radius:.4rem; }
.pub-card__deal.is-rent { background:#0d9488; }
.pub-card__count { position:absolute; bottom:.5rem; right:.5rem; background:rgba(0,0,0,.6); color:#fff; font-size:.72rem; padding:.12rem .45rem; border-radius:.4rem; }
.pub-card__drop { position:absolute; bottom:.5rem; left:.5rem; background:var(--bs-danger); color:#fff; font-size:.7rem; font-weight:600; padding:.12rem .45rem; border-radius:.4rem; }
.pub-card__body { padding:.65rem .75rem .8rem; display:flex; flex-direction:column; gap:.25rem; }
.pub-card__price { font-size:1.08rem; font-weight:800; color:var(--bs-body-color); }
.pub-card__title { font-size:.86rem; line-height:1.25; color:var(--bs-secondary-color); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.1em; }
.pub-card__meta { display:flex; flex-wrap:wrap; gap:.5rem; font-size:.76rem; color:var(--bs-secondary-color); }
.pub-card__meta i { opacity:.7; }
.pub-card__loc { font-size:.78rem; color:var(--bs-secondary-color); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pub-card__agency { font-size:.74rem; color:var(--bs-tertiary-color); border-top:1px dashed var(--bs-border-color); padding-top:.35rem; margin-top:.15rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ---- Sayfalama ---- */
.pub-pager { display:flex; gap:.35rem; justify-content:center; margin:1.6rem 0 .5rem; flex-wrap:wrap; }
.pub-pager__btn { min-width:2.2rem; height:2.2rem; display:inline-flex; align-items:center; justify-content:center; padding:0 .55rem; border:1px solid var(--bs-border-color); border-radius:.5rem; background:var(--bs-body-bg); color:var(--bs-body-color); text-decoration:none; font-size:.9rem; }
.pub-pager__btn:hover { border-color:var(--bs-primary); color:var(--bs-primary); }
.pub-pager__btn.is-active { background:var(--bs-primary); border-color:var(--bs-primary); color:#fff; font-weight:600; }

/* ---- Detay ---- */
.pub-crumb { display:flex; gap:.4rem; align-items:center; font-size:.85rem; color:var(--bs-secondary-color); margin-bottom:.8rem; }
.pub-crumb a { color:var(--bs-primary); text-decoration:none; }
.pub-crumb span:last-child { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:50vw; }

.pub-detail { display:grid; grid-template-columns:1fr; grid-template-areas:"gallery" "side" "body"; gap:1rem; }
.pd-gallery { grid-area:gallery; }
.pd-side { grid-area:side; display:flex; flex-direction:column; gap:.8rem; }
.pd-body { grid-area:body; display:flex; flex-direction:column; gap:1rem; }

.pd-hero { position:relative; aspect-ratio:4/3; max-height:58vh; background:#0f1115; border-radius:.85rem; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.pd-hero img { width:100%; height:100%; object-fit:contain; }
.pd-hero.is-empty { flex-direction:column; gap:.4rem; color:#666; font-size:2.6rem; background:var(--bs-tertiary-bg); }
.pd-hero.is-empty span { font-size:.9rem; }
.pd-hero__drop { position:absolute; top:.7rem; left:.7rem; background:var(--bs-danger); color:#fff; font-size:.8rem; font-weight:600; padding:.2rem .6rem; border-radius:.45rem; }
.pd-hero__pos { position:absolute; bottom:.7rem; right:.7rem; background:rgba(0,0,0,.6); color:#fff; font-size:.78rem; padding:.15rem .5rem; border-radius:.4rem; }
.pd-thumbs { display:flex; gap:.5rem; overflow-x:auto; padding:.55rem .1rem .2rem; scrollbar-width:thin; }
.pd-thumb { flex:0 0 auto; width:88px; height:64px; border-radius:.5rem; overflow:hidden; border:2px solid transparent; opacity:.65; transition:opacity .15s; }
.pd-thumb img { width:100%; height:100%; object-fit:cover; }
.pd-thumb:hover { opacity:1; }
.pd-thumb.is-active { border-color:var(--bs-primary); opacity:1; }

.pd-summary { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.85rem; padding:1rem; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.pub-badges { display:flex; align-items:center; gap:.4rem; margin-bottom:.55rem; }
.pd-price { font-size:1.6rem; font-weight:800; color:var(--bs-primary); line-height:1.1; display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; }
.pd-price__old { font-size:1rem; font-weight:500; color:var(--bs-secondary-color); text-decoration:line-through; }
.pd-title { font-size:1.12rem; font-weight:700; line-height:1.3; margin:.5rem 0 .35rem; }
.pd-loc { color:var(--bs-secondary-color); font-size:.9rem; }
.pd-quick { display:flex; flex-wrap:wrap; gap:.5rem .9rem; margin-top:.7rem; padding-top:.7rem; border-top:1px solid var(--bs-border-color); font-size:.85rem; }
.pd-quick i { color:var(--bs-primary); }

.pd-contact { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.85rem; padding:1rem; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.pd-contact__head { display:flex; align-items:center; gap:.7rem; margin-bottom:.8rem; }
.pd-contact__logo { width:50px; height:50px; border-radius:.55rem; object-fit:contain; background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); flex:0 0 auto; }
.pd-contact__logo--ph { display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--bs-secondary-color); }
.pd-contact__name { font-weight:700; font-size:1rem; line-height:1.2; }
.pd-contact__btns { display:flex; flex-direction:column; gap:.5rem; }
.pd-source { display:block; text-align:center; margin-top:.6rem; font-size:.86rem; color:var(--bs-primary); text-decoration:none; }
.pd-source:hover { text-decoration:underline; }
.pd-contact__addr { margin-top:.7rem; padding-top:.7rem; border-top:1px solid var(--bs-border-color); font-size:.82rem; color:var(--bs-secondary-color); }

.pub-morelink { display:block; text-align:center; background:var(--bs-body-bg); border:1px dashed var(--bs-border-color); border-radius:.7rem; padding:.7rem; text-decoration:none; color:var(--bs-primary); font-size:.88rem; font-weight:600; }
.pub-morelink:hover { background:var(--bs-tertiary-bg); }

.pd-card { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.85rem; padding:1rem 1.1rem 1.15rem; box-shadow:0 1px 4px rgba(0,0,0,.03); }
.pd-card__title { font-size:1.02rem; font-weight:700; margin:0 0 .75rem; display:flex; align-items:center; gap:.45rem; }
.pd-card__title i { color:var(--bs-primary); }

.pub-specs { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:.55rem; }
.pub-spec { display:flex; align-items:center; gap:.5rem; background:var(--bs-tertiary-bg); border-radius:.55rem; padding:.5rem .7rem; }
.pub-spec i { font-size:1.05rem; color:var(--bs-primary); }
.pub-spec__l { font-size:.72rem; color:var(--bs-secondary-color); }
.pub-spec__v { font-weight:600; font-size:.88rem; margin-left:auto; }
.pub-attrs { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px,1fr)); gap:.1rem .9rem; }
.pub-attr { display:flex; justify-content:space-between; gap:.6rem; padding:.45rem 0; border-bottom:1px dashed var(--bs-border-color); font-size:.88rem; }
.pub-attr__l { color:var(--bs-secondary-color); }
.pub-attr__v { font-weight:600; text-align:right; }
.pub-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.pub-chip { background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); border-radius:2rem; padding:.25rem .75rem; font-size:.82rem; }
.pub-desc { white-space:pre-line; line-height:1.65; color:var(--bs-body-color); font-size:.94rem; }
.pub-map { width:100%; height:300px; border:1px solid var(--bs-border-color); border-radius:.6rem; }

/* Mobil yapışkan iletişim çubuğu */
.pd-callbar { position:fixed; bottom:0; left:0; right:0; z-index:1031; display:flex; align-items:center; gap:.5rem;
  background:var(--bs-body-bg); border-top:1px solid var(--bs-border-color); box-shadow:0 -2px 10px rgba(0,0,0,.08); padding:.55rem .8rem; }
.pd-callbar__price { font-weight:800; color:var(--bs-primary); font-size:.95rem; white-space:nowrap; }

@media (min-width:900px) {
  .pub-detail { grid-template-columns:minmax(0,1fr) 340px; grid-template-areas:"gallery side" "body side"; gap:1.2rem 1.4rem; align-items:start; }
  .pd-side { position:sticky; top:5rem; max-height:calc(100dvh - 6rem); overflow:auto; }
  .pd-callbar { display:none; }
}
@media (max-width:899px) {
  .pub-detail { padding-bottom:3.5rem; }
}
@media (max-width:575px) {
  .pub-nav__inner { flex-wrap:wrap; }
  .pub-navsearch { order:3; flex-basis:100%; max-width:none; }
  .pub-f--actions { width:100%; }
  .pub-f--actions .btn { flex:1; }
  .pd-price { font-size:1.4rem; }
  .pd-hero { max-height:46vh; }
}
@media (prefers-reduced-motion: reduce) {
  .pub-card, .pd-thumb { transition:none; }
}

/* ============================================================
   İlan editörü (IlanEditor) — iki sütun + canlı önizleme paneli
   ============================================================ */
.ed-grid { display:grid; grid-template-columns:1fr; gap:1rem; align-items:start; }
.ed-main { min-width:0; }
.ed-side { display:flex; flex-direction:column; gap:.8rem; }

.ed-tabs .nav-link { display:inline-flex; align-items:center; gap:.4rem; }
.ed-tabs .nav-link i { opacity:.85; }

.ed-preview { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.85rem; overflow:hidden; box-shadow:0 1px 6px rgba(0,0,0,.05); }
.ed-preview__img { position:relative; aspect-ratio:4/3; background:var(--bs-tertiary-bg); }
.ed-preview__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ed-preview__ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--bs-border-color); font-size:2.4rem; }
.ed-preview__deal { position:absolute; top:.5rem; left:.5rem; background:var(--bs-primary); color:#fff; font-size:.72rem; font-weight:600; padding:.15rem .5rem; border-radius:.4rem; }
.ed-preview__deal.is-rent { background:#0d9488; }
.ed-preview__count { position:absolute; bottom:.5rem; right:.5rem; background:rgba(0,0,0,.6); color:#fff; font-size:.72rem; padding:.12rem .45rem; border-radius:.4rem; }
.ed-preview__body { padding:.75rem .85rem; display:flex; flex-direction:column; gap:.35rem; }
.ed-preview__price { font-size:1.25rem; font-weight:800; color:var(--bs-primary); line-height:1.1; }
.ed-preview__title { font-size:.9rem; line-height:1.3; color:var(--bs-body-color); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ed-preview__meta { display:flex; flex-wrap:wrap; gap:.3rem; }
.ed-preview__loc { font-size:.8rem; color:var(--bs-secondary-color); }
.ed-preview__actions { display:flex; flex-direction:column; gap:.5rem; padding:.85rem; border-top:1px solid var(--bs-border-color); }
.ed-tips { display:flex; gap:.55rem; align-items:flex-start; background:var(--bs-primary-bg-subtle); border:1px solid var(--bs-primary-border-subtle); color:var(--bs-primary-text-emphasis); border-radius:.7rem; padding:.7rem .85rem; font-size:.82rem; line-height:1.45; }
.ed-tips i { font-size:1rem; margin-top:.1rem; }
.ed-tips a { color:inherit; font-weight:600; }

@media (min-width:992px) {
  .ed-grid { grid-template-columns:minmax(0,1fr) 300px; gap:1.2rem; }
  .ed-side { position:sticky; top:1rem; }
}

/* ---- Foto sıralama (sürükle-bırak) ---- */
.ed-photo { position:relative; border-radius:.55rem; overflow:hidden; border:2px solid var(--bs-border-color); cursor:grab; aspect-ratio:4/3; background:var(--bs-tertiary-bg); transition:border-color .15s, box-shadow .15s, transform .12s; }
.ed-photo:active { cursor:grabbing; }
.ed-photo img { width:100%; height:100%; object-fit:cover; display:block; -webkit-user-drag:none; user-select:none; pointer-events:none; }
.ed-photo.is-cover { border-color:var(--bs-primary); }
.ed-photo.is-dragging { opacity:.45; }
.ed-photo.is-over { border-color:var(--bs-primary); box-shadow:0 0 0 3px var(--bs-primary-bg-subtle); transform:scale(1.02); }
.ed-photo__cover { position:absolute; top:.3rem; left:.3rem; background:var(--bs-primary); color:#fff; font-size:.68rem; font-weight:600; padding:.1rem .4rem; border-radius:.35rem; pointer-events:none; }
.ed-photo__num { position:absolute; bottom:.3rem; left:.3rem; background:rgba(0,0,0,.6); color:#fff; font-size:.66rem; min-width:1.1rem; text-align:center; padding:.02rem .3rem; border-radius:.3rem; pointer-events:none; }
.ed-photo__tools { position:absolute; top:.3rem; right:.3rem; display:flex; gap:.25rem; opacity:0; transition:opacity .15s; }
.ed-photo:hover .ed-photo__tools, .ed-photo:focus-within .ed-photo__tools { opacity:1; }
.ed-photo__tools .btn { --bs-btn-padding-y:.05rem; --bs-btn-padding-x:.35rem; --bs-btn-font-size:.75rem; line-height:1.2; }
@media (hover:none) { .ed-photo__tools { opacity:1; } } /* dokunmatik: butonlar hep görünür */

/* ---- Vitrin hero + şehir çipleri + konum satırı ---- */
.pub-hero { background:linear-gradient(135deg, var(--bs-primary-bg-subtle), var(--bs-body-bg)); border:1px solid var(--bs-border-color); border-radius:1rem; padding:1.3rem 1.3rem 1.1rem; margin-bottom:1.1rem; }
.pub-hero__title { font-size:1.6rem; font-weight:800; margin:0 0 .25rem; letter-spacing:-.02em; }
.pub-hero__sub { color:var(--bs-secondary-color); font-size:.95rem; margin:0 0 .9rem; }
.pub-hero__sub strong { color:var(--bs-primary); }
.pub-cities { display:flex; flex-wrap:wrap; gap:.5rem; }
.pub-city { display:inline-flex; align-items:center; gap:.4rem; background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:2rem; padding:.4rem .85rem; text-decoration:none; color:var(--bs-body-color); font-size:.9rem; font-weight:600; transition:border-color .15s, background .15s, transform .12s; }
.pub-city:hover { border-color:var(--bs-primary); transform:translateY(-1px); }
.pub-city.is-active { background:var(--bs-primary); border-color:var(--bs-primary); color:#fff; }
.pub-city span { font-size:.74rem; font-weight:700; background:var(--bs-tertiary-bg); color:var(--bs-secondary-color); border-radius:1rem; padding:.05rem .45rem; min-width:1.4rem; text-align:center; }
.pub-city.is-active span { background:rgba(255,255,255,.25); color:#fff; }

.pd-locrow { display:flex; align-items:center; gap:.5rem; font-size:1rem; font-weight:600; color:var(--bs-body-color); background:var(--bs-tertiary-bg); border-radius:.6rem; padding:.6rem .8rem; margin-bottom:.75rem; }
.pd-locrow i { color:var(--bs-danger); font-size:1.1rem; }

@media (max-width:575px) {
  .pub-hero__title { font-size:1.3rem; }
  .pub-cities { gap:.4rem; }
  .pub-city { padding:.35rem .7rem; font-size:.85rem; }
}

/* ---- Vitrin detay: ilan videoları + dil seçimi ---- */
.pd-videos { border-color:var(--bs-primary-border-subtle); }
.pd-vlangs { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.75rem; }
.pd-vlang { display:inline-flex; align-items:center; gap:.35rem; background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); border-radius:2rem; padding:.3rem .8rem; text-decoration:none; color:var(--bs-body-color); font-size:.85rem; font-weight:600; }
.pd-vlang:hover { border-color:var(--bs-primary); }
.pd-vlang.is-active { background:var(--bs-primary); border-color:var(--bs-primary); color:#fff; }
.pd-video { display:flex; flex-direction:column; align-items:center; }
.pd-video video { width:100%; max-height:72vh; border-radius:.7rem; background:#000; display:block; }
.pd-video.is-short video { max-width:min(380px, 100%); } /* dikey 9:16 — taşmasın */
.pd-video__meta { display:flex; gap:.4rem; margin-top:.5rem; }

/* ---- Admin panel kısayol kartları ---- */
.kmp-adcard { transition:transform .15s, box-shadow .15s, border-color .15s; color:inherit; }
.kmp-adcard:hover { transform:translateY(-2px); box-shadow:0 .5rem 1.2rem rgba(0,0,0,.1); border-color:var(--bs-primary-border-subtle); }
.kmp-adcard__ic { width:2.6rem; height:2.6rem; border-radius:.7rem; display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:.6rem; }

/* ---- Eklenti kurulum adımları ---- */
.kmp-howto { margin:0; padding-left:1.2rem; }
.kmp-howto li { margin-bottom:.4rem; line-height:1.5; }
.kmp-howto code { background:var(--bs-tertiary-bg); padding:.05rem .35rem; border-radius:.3rem; font-size:.86em; }
/* Kmp.Blazor 1.4.8 (Y-262) hücre-içi .btn dolgusunu kendisi sıfırlar; satır-içi input-group (parola sıfırlama) kapsam dışı → burada. */
.kmp-grid-table td .input-group-sm > .form-control, .kmp-grid-table td .input-group-sm > .btn { padding-top:0; padding-bottom:0; line-height:1.25; min-height:0; }
