/* ===================================================================
   VOQA Şantiye — Tasarım Sistemi (vanilla CSS, tek dosya)
   Grafit + çelik mavisi · çekmece sidebar · premium yüzeyler
   =================================================================== */

:root{
  /* ---- AÇIK TEMA (cool slate) ---- */
  --bg:        #e9edf3;
  --bg-2:      #eef1f6;
  --surface:   #ffffff;
  --surface-2: #f4f6fa;
  --surface-3: #eef1f6;
  --border:    #e0e5ee;
  --border-2:  #d3dae6;
  --text:      #161c28;
  --text-soft: #5a6779;
  --muted:     #97a2b3;

  /* Marka koyu yüzeyler (sidebar/koyu alanlar) */
  --ink:        #161b26;
  --ink-2:      #1f2632;
  --ink-soft:   #aeb8c8;
  --ink-line:   rgba(255,255,255,.07);

  /* Tek vurgu: çelik mavisi (metalik markaya uyumlu, ~70% sat) */
  --accent:     #3b62d6;
  --accent-2:   #5680ef;
  --accent-ink: #ffffff;
  --accent-bg:  #eaf0fd;

  /* Birincil aksiyon: grafit mürekkep */
  --btn:        #1d2430;
  --btn-2:      #2a3342;
  --btn-tx:     #ffffff;

  /* Durum (rafine) */
  --ok:#15a34a; --ok-bg:#e4f6ea;
  --warn:#d97a06; --warn-bg:#fdf0db;
  --danger:#e0444b; --danger-bg:#fdebec;
  --info:#3b62d6; --info-bg:#eaf0fd;
  --purple:#7257d4; --purple-bg:#eee9fb;
  --kira:#0d9488; --kira-bg:#d3f1ec;
  --d-bos:#5a9bd4; --d-bos-bg:#e2eefa;

  /* Radius ölçeği (içte sıkı, dışta yumuşak) */
  --r-xs:7px; --r-sm:10px; --r:14px; --r-lg:18px; --r-xl:24px;
  --radius:14px; --radius-sm:10px;

  /* Cool-tinted gölgeler */
  --shadow-xs:0 1px 2px rgba(28,42,71,.06);
  --shadow:0 2px 5px rgba(28,42,71,.07), 0 1px 2px rgba(28,42,71,.06);
  --shadow-md:0 6px 18px -4px rgba(28,42,71,.14), 0 2px 6px rgba(28,42,71,.07);
  --shadow-lg:0 22px 50px -12px rgba(20,30,55,.30), 0 6px 16px rgba(20,30,55,.10);
  --ring:0 0 0 3px rgba(59,98,214,.28);

  --font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --font-display: "Space Grotesk", var(--font);

  --header-h:64px; --sidebar-w:248px; --rail-w:70px; --icerik-max:1320px;
}

html[data-theme="dark"]{
  /* Daha siyah, yumuşak ve uyumlu koyu palet */
  --bg:#05070a; --bg-2:#070910; --surface:#0d1016; --surface-2:#13161f; --surface-3:#191d28;
  --border:#1c2029; --border-2:#262b37;
  --text:#dde3ec; --text-soft:#8b96a8; --muted:#5a6577;
  --ink:#070910; --ink-2:#10131c; --ink-soft:#909bad; --ink-line:rgba(255,255,255,.055);
  /* Yumuşatılmış çelik mavisi vurgu */
  --accent:#5c7ce0; --accent-2:#7d97ea; --accent-ink:#070910; --accent-bg:#141c30;
  --btn:#222a3a; --btn-2:#2d3650; --btn-tx:#eef2f8;
  /* Soft durum renkleri (koyu zemine uyumlu) */
  --ok:#3fb568; --ok-bg:#0e2418;
  --warn:#d9974a; --warn-bg:#251a0c;
  --danger:#e0656b; --danger-bg:#271417;
  --info:#5c7ce0; --info-bg:#141c30;
  --purple:#9785e0; --purple-bg:#1a1530;
  --kira:#2dd4bf; --kira-bg:#0c2a27;
  --d-bos:#5a9bd4; --d-bos-bg:#11233a;
  --shadow-xs:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.5);
  --shadow-md:0 8px 24px -6px rgba(0,0,0,.66);
  --shadow-lg:0 26px 60px -14px rgba(0,0,0,.78);
  --ring:0 0 0 3px rgba(92,124,224,.36);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); background:var(--bg); color:var(--text);
  font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background-image:
    radial-gradient(1200px 600px at 110% -10%, rgba(59,98,214,.05), transparent 60%),
    radial-gradient(900px 500px at -10% 0%, rgba(59,98,214,.04), transparent 55%);
  background-attachment:fixed;
}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{margin:0 0 .4em; font-family:var(--font-display); letter-spacing:-.01em}
img{max-width:100%}
::selection{background:var(--accent); color:#fff}
.num,.tabular{font-variant-numeric:tabular-nums}

/* ---------- HEADER (açık, premium) ---------- */
.header{
  position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:60;
  background:color-mix(in srgb, var(--surface) 88%, transparent);
  -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:14px; padding:0 16px 0 12px;
}
.header .marka{display:flex; align-items:center; gap:10px; padding:6px 8px; border-radius:var(--r-sm)}
.header .marka img{height:32px; width:auto; display:block}
.header .marka:hover{background:var(--surface-2)}
.header .santiye-secici{position:relative}
.header .santiye-secici::after{content:"▾"; position:absolute; right:11px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--muted); font-size:11px}
.header .santiye-secici select{
  appearance:none; -webkit-appearance:none;
  background:var(--surface-2); color:var(--text); border:1px solid var(--border-2);
  border-radius:var(--r-sm); padding:9px 30px 9px 13px; font-family:var(--font); font-size:13px; font-weight:600;
  min-width:190px; cursor:pointer; transition:border-color .15s, box-shadow .15s;
}
.header .santiye-secici select:hover{border-color:var(--accent)}
.header .santiye-secici select:focus{outline:none; box-shadow:var(--ring); border-color:var(--accent)}
.header .sag{margin-left:auto; display:flex; align-items:center; gap:8px}

.menu-btn{
  display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px;
  border:1px solid transparent; border-radius:var(--r-sm); background:transparent; color:var(--text);
  cursor:pointer; transition:background .15s, border-color .15s;
}
.menu-btn:hover{background:var(--surface-2); border-color:var(--border)}
.menu-btn svg{width:21px; height:21px}

.ikon-btn{
  background:var(--surface-2); border:1px solid var(--border); color:var(--text-soft);
  width:42px; height:42px; border-radius:var(--r-sm); cursor:pointer; font-size:16px;
  display:flex; align-items:center; justify-content:center; transition:.15s;
}
.ikon-btn:hover{background:var(--surface-3); color:var(--text); border-color:var(--border-2)}
.ikon-btn:active{transform:translateY(1px)}

.profil-kart{position:relative}
.profil-kart .profil-buton{
  display:flex; align-items:center; gap:10px; cursor:pointer; padding:5px 10px 5px 6px; border-radius:999px;
  background:var(--surface-2); border:1px solid var(--border); transition:.15s;
}
.profil-kart .profil-buton:hover{border-color:var(--border-2); box-shadow:var(--shadow-xs)}
.profil-kart .avatar{
  width:32px; height:32px; border-radius:50%; color:#fff; font-weight:700; font-size:13px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(140deg, var(--accent-2), var(--accent));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.3);
}
.profil-kart .profil-bilgi{line-height:1.25; text-align:left}
.profil-kart .profil-bilgi .ad{font-size:13px; font-weight:700}
.profil-kart .profil-bilgi .rol{font-size:11px; color:var(--text-soft)}
.profil-kart .firma-logo{height:24px; max-width:54px; object-fit:contain}
.profil-menu{
  position:absolute; right:0; top:calc(100% + 10px); min-width:210px; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--r); box-shadow:var(--shadow-lg);
  padding:7px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:.16s;
}
.profil-menu.acik{opacity:1; visibility:visible; transform:none}
.profil-menu a{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:var(--r-sm); font-size:13.5px; font-weight:500}
.profil-menu a:hover{background:var(--surface-2)}
.profil-menu .ayrac{height:1px; background:var(--border); margin:6px 4px}

/* ---------- BİLDİRİM ZİLİ ---------- */
.bildirim-kart{position:relative}
.bildirim-rozet{position:absolute; top:-3px; right:-3px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:var(--danger); color:#fff; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid var(--surface)}
.bildirim-menu{position:absolute; right:0; top:calc(100% + 10px); width:360px; max-width:90vw; background:var(--surface); border:1px solid var(--border); border-radius:var(--r); box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(-6px); transition:.16s; overflow:hidden}
.bildirim-menu.acik{opacity:1; visibility:visible; transform:none}
.bildirim-bas{display:flex; align-items:center; justify-content:space-between; padding:13px 16px; border-bottom:1px solid var(--border); font-weight:700; font-size:14px}
.bildirim-liste{max-height:420px; overflow-y:auto}
.bildirim-satir{display:flex; gap:11px; padding:12px 16px; border-bottom:1px solid var(--border); align-items:flex-start}
.bildirim-satir:hover{background:var(--surface-2)}
.bildirim-satir .nokta{width:9px; height:9px; border-radius:50%; margin-top:5px; flex:none; background:var(--accent)}
.bildirim-satir.gecti .nokta{background:var(--danger)}
.bildirim-satir .ic{flex:1; min-width:0}
.bildirim-satir .bs{font-size:13px; font-weight:600; line-height:1.3}
.bildirim-satir .al{font-size:11.5px; color:var(--text-soft); margin-top:2px}
.bildirim-satir .tt{font-size:12.5px; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums}
.bildirim-bos{padding:30px 16px; text-align:center; color:var(--muted); font-size:13px}
.nag-kalem{padding:12px 0; border-bottom:1px solid var(--border)}
.nag-kalem:last-child{border-bottom:0}
.nag-kalem .bs{font-weight:700; font-size:15px; margin-bottom:3px}
.nag-kalem .meta{font-size:12.5px; color:var(--text-soft)}
.nag-kalem .tutar{display:inline-block; margin-top:6px; font-weight:700; color:var(--danger)}

/* ---------- SIDEBAR (açık ray — daralınca ikonlar kalır) ---------- */
.sidebar{
  position:fixed; top:var(--header-h); bottom:0; left:0; width:var(--rail-w); z-index:68;
  background:var(--surface); color:var(--text-soft); border-right:1px solid var(--border);
  overflow-x:hidden; overflow-y:auto; padding:12px 0 18px;
  transition:width .24s cubic-bezier(.4,0,.2,1), transform .24s cubic-bezier(.4,0,.2,1);
}
body.sb-acik .sidebar{width:var(--sidebar-w)}
.sidebar-bas{display:none}
.sidebar nav{padding:0 12px; display:flex; flex-direction:column; gap:3px}
.sidebar nav a{
  display:flex; align-items:center; gap:13px; height:44px; padding:0 13px; color:var(--text-soft);
  font-size:13.5px; font-weight:600; border-radius:var(--r-sm); position:relative; transition:.14s; white-space:nowrap;
}
.sidebar nav a svg{width:21px; height:21px; flex:none; opacity:.85; transition:.14s}
.sidebar nav a span{opacity:0; transition:opacity .18s; pointer-events:none}
body.sb-acik .sidebar nav a span{opacity:1; pointer-events:auto}
.sidebar nav a:hover{background:var(--surface-2); color:var(--text)}
.sidebar nav a:hover svg{opacity:1; color:var(--accent)}
.sidebar nav a.aktif{background:var(--accent-bg); color:var(--accent)}
.sidebar nav a.aktif svg{opacity:1; color:var(--accent)}
.sidebar nav a.aktif::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0; background:var(--accent)}
.sidebar .menu-ayrac{height:1px; background:var(--border); margin:11px 10px}
.sidebar .menu-baslik{font-size:10px; text-transform:uppercase; letter-spacing:.7px; color:var(--muted); padding:8px 14px 4px; font-weight:700; opacity:0; height:0; overflow:hidden; transition:.18s}
body.sb-acik .sidebar .menu-baslik{opacity:1; height:auto}
.sidebar .rozet{margin-left:auto; background:var(--danger); color:#fff; font-size:11px; border-radius:999px; padding:1px 8px; font-weight:700}
.sidebar nav a:not(.aktif) .rozet{position:absolute; top:7px; left:30px; margin:0; padding:0 5px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center}
body.sb-acik .sidebar nav a:not(.aktif) .rozet{position:static; top:auto; left:auto}
/* Ray modunda hover tooltip — JS ile body'ye eklenir (sidebar overflow kırpmasını aşar) */
.sb-ipucu{
  position:fixed; z-index:200; transform:translateY(-50%) scale(.96); transform-origin:left center;
  background:var(--ink); color:#fff; padding:6px 11px; border-radius:8px; font-size:12.5px; font-weight:600;
  white-space:nowrap; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transition:.12s; pointer-events:none;
}
.sb-ipucu.acik{opacity:1; visibility:visible; transform:translateY(-50%) scale(1)}

/* İnce, temaya uyumlu kaydırma çubuğu (gece modunda beyaz kalmasın) */
.sidebar{scrollbar-width:thin; scrollbar-color:var(--border) transparent}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:var(--border); border-radius:6px; border:2px solid transparent; background-clip:content-box}
.sidebar:hover::-webkit-scrollbar-thumb{background:var(--muted); background-clip:content-box}

.sidebar-backdrop{position:fixed; inset:0; z-index:65; background:rgba(5,7,12,.5); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); opacity:0; visibility:hidden; transition:.22s}

/* ---------- İÇERİK (ray kadar boşluk; açılınca genişler) ---------- */
.icerik,.footer{transition:margin-left .24s cubic-bezier(.4,0,.2,1)}
.icerik{margin-top:var(--header-h); min-height:calc(100dvh - var(--header-h))}
.icerik-ic{max-width:none; width:100%; margin:0; padding:26px 30px 70px}
@media (min-width:1024px){
  .icerik,.footer{margin-left:var(--rail-w)}
  body.sb-acik .icerik,body.sb-acik .footer{margin-left:var(--sidebar-w)}
  .sidebar-backdrop{display:none}
}
@media (max-width:1023px){
  .sidebar{transform:translateX(-100%); width:var(--sidebar-w); box-shadow:var(--shadow-lg)}
  body.sb-acik .sidebar{transform:none}
  body.sb-acik .sidebar nav a span{opacity:1}
  .sidebar nav a::after{display:none}
  body.sb-acik .sidebar-backdrop{opacity:1; visibility:visible}
}
/* ---------- MOBİL HEADER (telefon) ---------- */
@media (max-width:760px){
  .header{gap:7px; padding:0 10px}
  /* Geniş wordmark logo mobilde taşmaya yol açıyor → gizle (marka footer + login'de) */
  .header .marka{display:none}
  .header .santiye-secici{flex:1; min-width:0; margin-left:2px}
  .header .santiye-secici select{min-width:0; width:100%; max-width:none; padding:9px 28px 9px 12px; font-size:13px}
  .header .santiye-secici::after{right:10px}
  .header .sag{gap:6px}
  .menu-btn{width:38px; height:38px}
  .menu-btn svg{width:20px; height:20px}
  .ikon-btn{width:38px; height:38px; font-size:15px}
  /* Profil: mobilde sadece avatar (ad/rol ve firma logosu gizli) */
  .profil-kart .profil-buton{padding:0; background:transparent; border:none}
  .profil-kart .profil-buton:hover{box-shadow:none}
  .profil-kart .profil-bilgi{display:none}
  .profil-kart .firma-logo{display:none}
  .profil-menu{right:0}
}
.sayfa-baslik{display:flex; align-items:center; gap:14px; margin-bottom:22px; flex-wrap:wrap}
.sayfa-baslik h1{font-size:25px; margin:0; font-weight:700; letter-spacing:-.02em}
.sayfa-baslik .sag{margin-left:auto; display:flex; gap:9px; flex-wrap:wrap}

/* ---------- FOOTER ---------- */
.footer{
  padding:20px 30px; border-top:1px solid var(--border); color:var(--text-soft); font-size:12.5px;
  display:flex; gap:18px; flex-wrap:wrap; align-items:center;
  background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-2) 50%, transparent));
}
.footer-marka{display:flex; align-items:center; gap:11px}
.footer-marka img{height:30px; opacity:.95}
.footer-marka-yazi{display:flex; flex-direction:column; line-height:1.3}
.footer-marka-yazi strong{font-size:13.5px; color:var(--text); font-weight:700; letter-spacing:-.01em}
.footer-marka-yazi span{font-size:11.5px; color:var(--muted)}
.footer-orta{flex:1; text-align:center; min-width:180px}
.footer-sag{display:flex; align-items:center; gap:12px}
.footer-sag a{color:var(--text-soft); text-decoration:none; font-weight:600; transition:color .14s}
.footer-sag a:hover{color:var(--accent)}
.footer-ayrac{width:1px; height:16px; background:var(--border)}
.surum-rozet{
  font-family:var(--font-mono, var(--font)); font-size:11.5px; font-weight:700; letter-spacing:.02em;
  color:var(--accent); background:var(--accent-bg); border:1px solid color-mix(in srgb, var(--accent) 26%, transparent);
  padding:3px 9px; border-radius:999px;
}
@media (max-width:760px){
  .footer{flex-direction:column; gap:12px; text-align:center; padding:18px}
  .footer-orta{order:3; flex:none}
}

/* ---------- KART / PANEL ---------- */
.card,.panel{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--shadow); padding:20px;
}
.card + .card,.panel + .panel{margin-top:16px}
.panel{border-radius:var(--r); padding:15px; box-shadow:var(--shadow-xs)}
.card-baslik{font-size:15.5px; font-weight:700; margin-bottom:16px; display:flex; align-items:center; gap:9px; letter-spacing:-.01em; font-family:var(--font-display)}
.card-baslik .sag{margin-left:auto; display:flex; gap:7px; align-items:center}

/* ---------- KPI ---------- */
.kpi-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(196px,1fr)); gap:16px; margin-bottom:22px}
.kpi{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--shadow); padding:18px 18px 16px; position:relative; overflow:hidden; transition:.18s;
}
.kpi::after{content:""; position:absolute; right:-30px; top:-30px; width:90px; height:90px; border-radius:50%;
  background:radial-gradient(circle, var(--accent-bg), transparent 70%); opacity:.7}
.kpi .baslik{font-size:12.5px; color:var(--text-soft); margin-bottom:9px; font-weight:600; position:relative}
.kpi .deger{font-size:27px; font-weight:700; letter-spacing:-.025em; font-family:var(--font-display); font-variant-numeric:tabular-nums; line-height:1.05; position:relative}
.kpi .alt{font-size:11.5px; color:var(--muted); margin-top:5px; position:relative}
.kpi .deger::before{content:""; display:inline-block; width:8px; height:8px; border-radius:3px; margin-right:9px; vertical-align:middle; background:var(--accent); transform:translateY(-2px)}
.kpi.ok .deger{color:var(--ok)} .kpi.ok .deger::before{background:var(--ok)} .kpi.ok::after{background:radial-gradient(circle,var(--ok-bg),transparent 70%)}
.kpi.warn .deger{color:var(--warn)} .kpi.warn .deger::before{background:var(--warn)} .kpi.warn::after{background:radial-gradient(circle,var(--warn-bg),transparent 70%)}
.kpi.danger .deger{color:var(--danger)} .kpi.danger .deger::before{background:var(--danger)} .kpi.danger::after{background:radial-gradient(circle,var(--danger-bg),transparent 70%)}
.kpi.info .deger{color:var(--info)} .kpi.info .deger::before{background:var(--info)}
.kpi:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.kpi.tiklanabilir{cursor:pointer}

/* ---------- BUTON ---------- */
.btn,.btn-light,.btn-ghost,.btn-danger,.btn-ok{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:40px; padding:0 18px; border-radius:var(--r-sm); font-weight:600; font-size:13.5px;
  cursor:pointer; font-family:var(--font); border:1px solid transparent; transition:transform .12s, box-shadow .15s, background .15s, border-color .15s;
  text-decoration:none; white-space:nowrap; letter-spacing:-.01em;
}
.btn{background:linear-gradient(180deg, var(--btn-2), var(--btn)); color:var(--btn-tx); box-shadow:var(--shadow-xs), inset 0 1px 0 rgba(255,255,255,.08)}
.btn:hover{box-shadow:var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.08); transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-light{background:var(--surface); color:var(--text); border-color:var(--border-2); box-shadow:var(--shadow-xs)}
.btn-light:hover{background:var(--surface-2); border-color:var(--accent); transform:translateY(-1px)}
.btn-light:active{transform:translateY(0)}
.btn-ghost{background:transparent; color:var(--text-soft); border-color:var(--border)}
.btn-ghost:hover{background:var(--surface-2); color:var(--text)}
.btn-danger{background:var(--danger); color:#fff; box-shadow:var(--shadow-xs)}
.btn-danger:hover{filter:brightness(1.06); transform:translateY(-1px)}
.btn-ok{background:var(--ok); color:#fff; box-shadow:var(--shadow-xs)}
.btn-ok:hover{filter:brightness(1.06); transform:translateY(-1px)}
.btn:focus-visible,.btn-light:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible,.btn-ok:focus-visible,.ikon-btn:focus-visible,.menu-btn:focus-visible{outline:none; box-shadow:var(--ring)}
.btn-sm{height:33px; padding:0 13px; font-size:12.5px; border-radius:var(--r-xs)}
.btn-blok{width:100%}
.btn:disabled,.btn-light:disabled{opacity:.5; cursor:not-allowed; transform:none}
.btn-ikon{width:36px; height:36px; padding:0; border-radius:var(--r-sm); display:inline-flex; align-items:center; justify-content:center; background:var(--surface-2); border:1px solid var(--border); cursor:pointer; color:var(--text-soft); transition:.14s; font-size:14px}
.btn-ikon:hover{background:var(--surface-3); color:var(--text); border-color:var(--border-2); transform:translateY(-1px)}
.btn-ikon:active{transform:translateY(0)}
.btn-ikon.sil:hover{background:var(--danger-bg); color:var(--danger); border-color:var(--danger)}
.btn-ikon.duzenle:hover{background:var(--accent-bg); color:var(--accent); border-color:var(--accent)}
.btn-ikon-sm{width:30px; height:30px; font-size:13px; border-radius:var(--r-xs)}

/* ---------- TABLO ---------- */
.tablo-sar{overflow-x:auto; border-radius:var(--r); border:1px solid var(--border); background:var(--surface)}
table.table{width:100%; border-collapse:collapse; font-size:13px; background:var(--surface)}
table.table th,table.table td{padding:12px 14px; text-align:left; border-bottom:1px solid var(--border)}
table.table thead th{background:var(--surface-2); font-weight:600; color:var(--text-soft); white-space:nowrap; font-size:11px; text-transform:uppercase; letter-spacing:.5px; position:sticky; top:0}
table.table tbody tr{transition:background .12s}
table.table tbody tr:hover{background:var(--surface-2)}
table.table td.num,table.table th.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
table.table td.islem{text-align:right; white-space:nowrap}
table.table td.islem>*{vertical-align:middle}
table.table td.islem>*+*{margin-left:6px}
table.table tr:last-child td{border-bottom:0}
table.table tfoot th,table.table tfoot td{background:var(--surface-2); font-weight:700; border-top:2px solid var(--border-2)}
.bos-durum{text-align:center; color:var(--muted); padding:42px 16px; font-size:13.5px}
.bos-durum a{color:var(--accent); font-weight:600}

/* ---------- BADGE ---------- */
.badge{display:inline-flex; align-items:center; gap:5px; padding:4px 11px; border-radius:7px; font-size:11.5px; font-weight:600; letter-spacing:-.01em; line-height:1.3}
.badge::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.9}
.badge.ok{background:var(--ok-bg); color:var(--ok)}
.badge.warn{background:var(--warn-bg); color:var(--warn)}
.badge.danger{background:var(--danger-bg); color:var(--danger)}
.badge.info{background:var(--info-bg); color:var(--info)}
.badge.purple{background:var(--purple-bg); color:var(--purple)}
.badge.gri{background:var(--surface-3); color:var(--text-soft)}
.badge.gri::before{display:none}
.badge.available{background:var(--d-bos-bg); color:var(--d-bos)}
.badge.reserve{background:var(--warn-bg); color:var(--warn)}
.badge.offer{background:var(--info-bg); color:var(--info)}
.badge.sold{background:var(--danger-bg); color:var(--danger)}
.badge.barter{background:var(--purple-bg); color:var(--purple)}
.badge.kira,.badge.kirada{background:var(--kira-bg); color:var(--kira)}

/* ---------- FORM ---------- */
.form-grid{display:grid; gap:16px}
.form-grid.grid2{grid-template-columns:repeat(2,1fr)}
.form-grid.grid3{grid-template-columns:repeat(3,1fr)}
.form-grid.grid4{grid-template-columns:repeat(4,1fr)}
.alan{display:flex; flex-direction:column; gap:6px}
.alan.tam{grid-column:1/-1}
.alan label{font-size:12.5px; font-weight:600; color:var(--text-soft); letter-spacing:-.01em}
.alan label .zorunlu{color:var(--danger)}
.alan input,.alan select,.alan textarea{
  width:100%; padding:10px 13px; border:1px solid var(--border-2); border-radius:var(--r-sm);
  background:var(--surface); color:var(--text); font-family:var(--font); font-size:13.5px; transition:border-color .14s, box-shadow .14s;
}
/* Tek satırlık kontroller butonlarla aynı yükseklikte (40px) — filtre/araç çubuklarında hizalı dursun */
.alan input:not([type="checkbox"]):not([type="radio"]),.alan select{height:40px; padding-top:0; padding-bottom:0}
.alan input:hover,.alan select:hover,.alan textarea:hover{border-color:var(--muted)}
.alan input:focus,.alan select:focus,.alan textarea:focus{outline:none; border-color:var(--accent); box-shadow:var(--ring)}
.alan input:disabled,.alan select:disabled{background:var(--surface-2); color:var(--text-soft); cursor:not-allowed}
.alan textarea{resize:vertical; min-height:76px; height:auto}
/* Etiketsiz buton/inputları items-end satırlarda dikey hizala */
.flex.items-end{align-items:flex-end}
.gizli-etiket{visibility:hidden}
.alan .ipucu{font-size:11.5px; color:var(--muted)}
.alan input::placeholder{color:var(--muted)}
input[type="checkbox"],input[type="radio"]{width:auto; accent-color:var(--accent); width:16px; height:16px}

/* Select'lere özel ok + karanlık mod uyumu (tüm select'ler) */
select{color:var(--text); background-color:var(--surface)}
select option{color:var(--text); background:var(--surface)}
.alan select, select.secim{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right 11px center; padding-right:34px;
}
/* Tarih/ay girişlerinde takvim ikonu karanlık modda görünür olsun */
html[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="dark"] input[type="month"]::-webkit-calendar-picker-indicator{filter:invert(.7)}
/* Sayfa üstü küçük seçiciler (yıl, blok yön vb.) */
.secim{height:38px; padding:0 34px 0 12px; border:1px solid var(--border-2); border-radius:var(--r-sm);
  background-color:var(--surface); color:var(--text); font-family:var(--font); font-size:13px; cursor:pointer; transition:border-color .14s, box-shadow .14s}
.secim:hover{border-color:var(--muted)}
.secim:focus{outline:none; border-color:var(--accent); box-shadow:var(--ring)}
.secim-sm{height:34px; font-size:12px; padding:0 30px 0 10px}

/* Tablo hücrelerindeki ham input/select'leri cilala (blok, hakediş kalem, plan satırları) */
table.table td input:not([type="checkbox"]):not([type="radio"]),
table.table td select{
  width:100%; padding:8px 10px; border:1px solid var(--border-2); border-radius:var(--r-xs);
  background:var(--surface); color:var(--text); font-family:var(--font); font-size:13px;
  transition:border-color .14s, box-shadow .14s;
}
table.table td input:hover,table.table td select:hover{border-color:var(--muted)}
table.table td input:focus,table.table td select:focus{outline:none; border-color:var(--accent); box-shadow:var(--ring)}
table.table td select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none; padding-right:30px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right 9px center;
}
/* Dashed "ekle" butonu (satır/kayıt ekleme) */
.btn-ekle{display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 16px; border-radius:var(--r-sm);
  border:1.5px dashed var(--border-2); background:transparent; color:var(--accent); font-weight:600; font-size:13px; cursor:pointer; transition:.15s}
.btn-ekle:hover{border-color:var(--accent); background:var(--accent-bg)}
.satir-onay{display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:500}

/* ---------- TOOLBAR ---------- */
.toolbar{display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-bottom:18px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:16px; box-shadow:var(--shadow-xs)}
.toolbar .alan{min-width:150px}
.toolbar .sag{margin-left:auto; display:flex; gap:9px; align-items:flex-end}

/* ---------- MODAL ---------- */
.modal-backdrop{position:fixed; inset:0; background:rgba(13,18,28,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); z-index:90; display:none; align-items:flex-start; justify-content:center; padding:44px 16px; overflow-y:auto}
.modal-backdrop.acik{display:flex; animation:bdIn .18s ease}
@keyframes bdIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); width:100%; max-width:720px; max-height:calc(100dvh - 88px); display:flex; flex-direction:column; overflow:hidden; animation:modalIn .22s cubic-bezier(.34,1.3,.5,1)}
@keyframes modalIn{from{opacity:0; transform:translateY(14px) scale(.98)}to{opacity:1; transform:none}}
.modal--wide{max-width:1020px}
.modal-bas{display:flex; align-items:center; gap:10px; padding:18px 22px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--surface); z-index:2}
.modal-bas h3{margin:0; font-size:17px; font-weight:700}
.modal-bas .kapat{margin-left:auto; background:var(--surface-2); border:1px solid var(--border); font-size:18px; cursor:pointer; color:var(--text-soft); line-height:1; width:34px; height:34px; border-radius:var(--r-sm); transition:.14s}
.modal-bas .kapat:hover{background:var(--danger-bg); color:var(--danger); border-color:transparent}
.modal-govde{padding:22px; overflow-y:auto}
.modal-alt{padding:16px 22px; border-top:1px solid var(--border); display:flex; gap:10px; justify-content:flex-end; position:sticky; bottom:0; background:var(--surface); flex-wrap:wrap}

/* ---------- POPUP MOD SEÇİCİ (Satış/Kira) ---------- */
.sp-mod-secici{display:flex; gap:6px; background:var(--surface-2); padding:5px; border-radius:var(--r-sm); border:1px solid var(--border); margin-bottom:6px}
.sp-mod-btn{flex:1; height:38px; border:0; background:transparent; color:var(--text-soft); font-weight:600; font-size:13.5px; border-radius:var(--r-xs); cursor:pointer; font-family:var(--font); transition:.15s; display:flex; align-items:center; justify-content:center; gap:7px}
.sp-mod-btn:hover{color:var(--text)}
.sp-mod-btn.aktif{background:var(--surface); color:var(--text); box-shadow:var(--shadow-xs)}
.sp-mod-btn[data-mod="kira"].aktif{color:var(--kira)}

/* ---------- TOAST ---------- */
.toast-kap{position:fixed; right:20px; bottom:20px; z-index:120; display:flex; flex-direction:column; gap:10px}
.toast{background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:var(--r-sm); box-shadow:var(--shadow-lg); padding:13px 17px; min-width:250px; max-width:370px; font-size:13.5px; font-weight:500; animation:toastGir .26s cubic-bezier(.34,1.3,.5,1)}
.toast.success{border-left-color:var(--ok)} .toast.error{border-left-color:var(--danger)}
.toast.info{border-left-color:var(--info)} .toast.warn{border-left-color:var(--warn)}
@keyframes toastGir{from{opacity:0; transform:translateX(20px)}to{opacity:1; transform:none}}

/* ---------- FLASH ---------- */
.flash{padding:13px 16px; border-radius:var(--r-sm); margin-bottom:16px; font-size:13.5px; font-weight:500; display:flex; align-items:center; gap:10px; border:1px solid transparent}
.flash::before{font-size:15px}
.flash.success{background:var(--ok-bg); color:var(--ok)} .flash.success::before{content:"✓"}
.flash.error{background:var(--danger-bg); color:var(--danger)} .flash.error::before{content:"!"}
.flash.info{background:var(--info-bg); color:var(--info)} .flash.info::before{content:"i"}
.flash.warn{background:var(--warn-bg); color:var(--warn)} .flash.warn::before{content:"!"}

/* ---------- AUTH ---------- */
.auth-sayfa{min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:24px; position:relative; overflow:hidden;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(59,98,214,.14), transparent 60%),
    radial-gradient(700px 500px at 10% 110%, rgba(59,98,214,.10), transparent 60%),
    linear-gradient(160deg, var(--bg), var(--bg-2));
}
.auth-sayfa::before{content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:radial-gradient(currentColor 1px, transparent 1px); background-size:26px 26px; color:rgba(120,135,165,.10)}
html[data-theme="dark"] .auth-sayfa{background:radial-gradient(900px 500px at 80% -10%, rgba(86,128,239,.18), transparent 60%), linear-gradient(160deg, #0a0d13, #0e131d)}
.auth-kart{width:100%; max-width:430px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); box-shadow:var(--shadow-lg); padding:38px 34px; position:relative; z-index:1}
.auth-logo{display:flex; flex-direction:column; align-items:center; gap:8px; margin-bottom:26px}
.auth-logo img{height:54px; display:block}
.auth-logo .logo-chip{display:inline-flex}
.auth-logo .baslik{font-size:18px; font-weight:700; font-family:var(--font-display); letter-spacing:-.01em; margin-top:6px}
.auth-logo .alt{font-size:13px; color:var(--text-soft); font-weight:500}
.auth-kart .auth-tema{position:absolute; top:16px; right:16px}
.auth-alt-link{text-align:center; margin-top:20px; font-size:13px; color:var(--text-soft)}
.auth-alt-link a{color:var(--accent); font-weight:600}

/* ---------- SATIŞ HARİTASI — KAT GRID (referans tasarım) ---------- */
.kat-grid{display:flex; flex-direction:column; gap:0; border:1px solid var(--border-2); border-radius:var(--r); overflow:hidden}
.kat-satir{display:flex; align-items:stretch; border-bottom:1px solid var(--border-2)}
.kat-satir:last-child{border-bottom:0}
.kat-label{flex:none; width:96px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px;
  background:var(--ink); color:#fff; letter-spacing:-.01em; text-align:center; padding:8px}
.kat-daireler{flex:1; display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px; padding:8px; background:var(--surface-2)}
.daire-kart{position:relative; background:var(--surface); border:2px solid var(--border); border-radius:var(--r-sm);
  padding:14px 12px 10px; text-align:center; cursor:pointer; transition:transform .12s, box-shadow .14s, border-color .14s; min-height:74px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px}
.daire-kart[onclick]:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.daire-kart[onclick]:active{transform:translateY(0)}
.daire-kart:focus-visible{outline:none; box-shadow:var(--ring)}
.daire-kart .dno{font-size:20px; font-weight:800; letter-spacing:-.02em; font-family:var(--font-display); line-height:1}
.daire-kart .dmeta{font-size:11px; font-weight:600; color:var(--text-soft); background:var(--surface-2); border:1px solid var(--border);
  border-radius:30px; padding:2px 9px; line-height:1.4}
.daire-kart .dnokta{position:absolute; top:9px; right:9px; width:13px; height:13px; border-radius:50%; box-shadow:0 0 0 3px var(--surface)}
.daire-kart.dukkan{grid-column:1/-1}
.daire-kart.d-available{background:var(--d-bos-bg); border-color:color-mix(in srgb,var(--d-bos) 40%,transparent)}
.daire-kart.d-available .dnokta{background:var(--d-bos)}
.daire-kart.d-reserve{background:var(--warn-bg); border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.daire-kart.d-reserve .dnokta{background:var(--warn)}
.daire-kart.d-offer{background:#efe9fd; border-color:#c4b5fd}
.daire-kart.d-offer .dnokta{background:#8b5cf6}
html[data-theme="dark"] .daire-kart.d-offer{background:#1c1633; border-color:#3a2d5c}
.daire-kart.d-sold{background:var(--danger-bg); border-color:color-mix(in srgb,var(--danger) 40%,transparent)}
.daire-kart.d-sold .dnokta{background:var(--danger)}
.daire-kart.d-barter{background:var(--purple-bg); border-color:color-mix(in srgb,var(--purple) 40%,transparent)}
.daire-kart.d-barter .dnokta{background:var(--purple)}
.daire-kart.d-kirada{background:var(--kira-bg); border-color:color-mix(in srgb,var(--kira) 40%,transparent)}
.daire-kart.d-kirada .dnokta{background:var(--kira)}
.daire-kart.kapici{background:repeating-linear-gradient(45deg,var(--surface-3),var(--surface-3) 8px,var(--surface-2) 8px,var(--surface-2) 16px);
  border-color:var(--border-2); border-style:dashed; cursor:default}
.daire-kart.kapici .dno{color:var(--text-soft)}
.daire-kart.soluk{opacity:.2; filter:grayscale(.6)}
@media (max-width:680px){ .kat-label{width:62px; font-size:12px} .kat-daireler{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))} .daire-kart .dno{font-size:17px} }

/* ---------- BİNA SVG (eski — kalan) ---------- */
.bina-alani{display:flex; justify-content:center; padding:14px; overflow-x:auto; background:
  linear-gradient(var(--surface-2),var(--surface-2)) padding-box,
  radial-gradient(700px 360px at 50% 0%, var(--accent-bg), transparent 70%); border-radius:var(--r); border:1px solid var(--border)}
.bina-svg{max-width:100%; height:auto; max-height:660px; user-select:none}
.bina-svg .daire-modul.tiklanir{cursor:pointer; transition:transform .14s cubic-bezier(.34,1.3,.5,1), filter .14s}
.bina-svg .daire-modul.tiklanir:hover{transform:translateY(-3px) scale(1.04); filter:drop-shadow(0 6px 12px rgba(20,30,55,.35))}
.bina-svg .daire-modul.tiklanir:focus{outline:none}
.bina-svg .daire-modul.tiklanir:focus .cam{stroke:var(--accent); stroke-width:3}
.bina-svg .daire-modul.pasif{opacity:.85}
.bina-svg .daire-modul.soluk{opacity:.16; filter:grayscale(1)}
.bina-svg .daire-no{font-size:10px; font-weight:700; fill:var(--text-soft); font-family:var(--font)}
.bina-svg .kat-no{font-size:11px; font-weight:700; fill:var(--muted); font-family:var(--font)}
.bina-svg .blok-ad{font-size:13px; font-weight:700; fill:var(--text); font-family:var(--font-display); letter-spacing:-.01em}
.blok-btn{display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 16px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text-soft); border-radius:999px; font-family:var(--font); font-size:13px; font-weight:600;
  cursor:pointer; transition:.15s; box-shadow:var(--shadow-xs)}
.blok-btn:hover{border-color:var(--accent); color:var(--accent); background:var(--accent-bg)}
.blok-btn.aktif{background:linear-gradient(180deg,var(--accent-2),var(--accent)); color:#fff; border-color:transparent; box-shadow:var(--shadow-md)}
#blokSecici{gap:8px}
.bina-tooltip{position:fixed; z-index:110; transform:translate(-50%,-100%); background:var(--ink); color:#fff;
  padding:8px 12px; border-radius:9px; font-size:12px; line-height:1.45; pointer-events:none; box-shadow:var(--shadow-lg); white-space:nowrap; display:none; border:1px solid var(--ink-line)}
.bina-tooltip::after{content:""; position:absolute; left:50%; bottom:-5px; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--ink)}

/* ---------- YARDIMCI ---------- */
.text-soft{color:var(--text-soft)} .muted{color:var(--muted)}
.text-ok{color:var(--ok)} .text-danger{color:var(--danger)} .text-warn{color:var(--warn)}
.right{text-align:right} .center{text-align:center}
.mt0{margin-top:0} .mt8{margin-top:8px} .mt16{margin-top:16px} .mt24{margin-top:24px}
.mb0{margin-bottom:0} .mb8{margin-bottom:8px} .mb16{margin-bottom:16px}
.gap8{gap:8px} .flex{display:flex} .flex-between{display:flex; justify-content:space-between; align-items:center}
.flex-wrap{flex-wrap:wrap} .items-center{align-items:center} .w100{width:100%}
.legend{display:flex; gap:15px; flex-wrap:wrap; font-size:12.5px; align-items:center}
.legend .lg{display:inline-flex; align-items:center; gap:7px; color:var(--text-soft); font-weight:500}
.legend .nokta{width:11px; height:11px; border-radius:4px; display:inline-block}
.foto-galeri{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px}
.foto-kart{position:relative; aspect-ratio:4/3; border-radius:var(--r-sm); overflow:hidden; border:1px solid var(--border); background:var(--surface-2)}
.foto-kart img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s}
.foto-kart:hover img{transform:scale(1.05)}
.foto-kart .foto-sil{position:absolute; top:5px; right:5px; width:24px; height:24px; border-radius:50%; border:none; background:rgba(224,68,75,.92); color:#fff; font-size:15px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(0,0,0,.3)}
.foto-kart .foto-sil:hover{background:var(--danger)}
.ozet-cip{display:inline-flex; align-items:center; gap:5px; background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:5px 12px; font-size:12px; color:var(--text-soft); font-weight:600; white-space:nowrap}
.ozet-cip b{color:var(--text); font-variant-numeric:tabular-nums}
.istatistik-serit{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; margin-bottom:18px}
.istatistik-serit .ist{background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:13px 16px; font-size:12.5px; color:var(--text-soft); font-weight:600; box-shadow:var(--shadow-xs)}
.istatistik-serit .ist b{font-size:22px; display:block; color:var(--text); font-family:var(--font-display); font-variant-numeric:tabular-nums; letter-spacing:-.02em; margin-bottom:2px}

/* ---------- MOBİL ---------- */
@media (max-width:780px){
  :root{--header-h:58px}
  .icerik-ic{padding:18px 16px 60px}
  .header .santiye-secici select{min-width:130px}
  .form-grid.grid2,.form-grid.grid3,.form-grid.grid4{grid-template-columns:1fr}
  .profil-kart .profil-bilgi{display:none}
  .sayfa-baslik h1{font-size:21px}
}

/* ============ YAN PANEL (SPLIT): liste solda kalır, panel sağda açılır ============ */
.modal-backdrop.yan{ inset:var(--header-h) 0 0 0; background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;
  padding:0; align-items:stretch; justify-content:flex-end; overflow:visible; pointer-events:none }
.modal-backdrop.yan.acik{ animation:none }
.modal-backdrop.yan .modal{ pointer-events:auto; width:min(640px,46vw); max-width:none; height:100%; max-height:100%;
  border-radius:0; border-top:0; border-right:0; border-bottom:0; box-shadow:-14px 0 44px rgba(13,18,28,.20); animation:yanIn .22s ease }
@keyframes yanIn{ from{ transform:translateX(48px); opacity:.3 } to{ transform:none; opacity:1 } }
body.yan-acik .icerik{ margin-right:min(640px,46vw); transition:margin-right .2s ease }
/* dar panelde formlar 2 sütuna insin */
.modal-backdrop.yan .form-grid.grid4{ grid-template-columns:repeat(2,1fr) }
.modal-backdrop.yan .form-grid.grid3{ grid-template-columns:repeat(2,1fr) }
@media (max-width:1023px){
  .modal-backdrop.yan{ inset:0 }
  .modal-backdrop.yan .modal{ width:100% }
  body.yan-acik .icerik{ margin-right:0 }
}

/* ============ BİNA GÖRÜNÜMÜ (apartman cephesi gibi) ============ */
.harita-gorunum{ display:inline-flex; border:1px solid var(--border-2); border-radius:var(--r-sm); overflow:hidden }
.harita-gorunum button{ border:0; background:var(--surface); color:var(--text-soft); padding:8px 14px; font-size:12.5px; font-weight:600; cursor:pointer }
.harita-gorunum button.aktif{ background:var(--accent); color:#fff }
#haritaAlani.bina-modu .blok-grid{ max-width:540px; margin-left:auto; margin-right:auto }
#haritaAlani.bina-modu .kat-grid{ position:relative; margin-top:34px; border-width:0; border-radius:0; background:linear-gradient(180deg,#cfd6e0,#b9c2d0); padding:10px 12px 0; box-shadow:0 18px 40px rgba(13,18,28,.18) }
html[data-theme="dark"] #haritaAlani.bina-modu .kat-grid{ background:linear-gradient(180deg,#2a3344,#1c2330) }
/* Çatı */
#haritaAlani.bina-modu .kat-grid::before{ content:""; position:absolute; top:-26px; left:-14px; right:-14px; height:28px;
  background:linear-gradient(180deg,#5b6675,#3d4655); clip-path:polygon(14% 100%, 26% 0, 74% 0, 86% 100%) }
html[data-theme="dark"] #haritaAlani.bina-modu .kat-grid::before{ background:linear-gradient(180deg,#3a4456,#222a38) }
#haritaAlani.bina-modu .kat-satir{ border-bottom:3px solid rgba(0,0,0,.10) }
#haritaAlani.bina-modu .kat-label{ width:46px; font-size:11px; background:#9aa6b6; color:#1b2230 }
#haritaAlani.bina-modu .kat-daireler{ grid-template-columns:repeat(auto-fit,minmax(62px,1fr)); gap:7px; padding:9px 4px; background:transparent }
#haritaAlani.bina-modu .daire-kart{ aspect-ratio:3/4; padding:6px 4px; border-width:2px; border-radius:4px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.35) }
#haritaAlani.bina-modu .daire-kart .dno{ font-size:13px }
#haritaAlani.bina-modu .daire-kart .dmeta{ display:none }
#haritaAlani.bina-modu .daire-kart .dnokta{ width:9px; height:9px; top:5px; right:5px }
/* Zemin/giriş şeridi */
#haritaAlani.bina-modu .kat-grid::after{ content:"GİRİŞ"; display:block; text-align:center; font-size:10px; font-weight:700; letter-spacing:2px;
  color:#fff; background:#3d4655; padding:6px; margin:0 -12px; }

/* ============ GENEL YAN PANEL (iframe) — formlar/detay sağdan açılır ============ */
.panel-govde{ background:var(--bg); }
.panel-govde .panel-ic{ padding:18px 20px 40px; max-width:none }
#yanPanel{ position:fixed; top:var(--header-h); right:0; bottom:0; width:min(760px,54vw); z-index:95;
  background:var(--surface); border-left:1px solid var(--border); box-shadow:-16px 0 50px rgba(13,18,28,.22);
  transform:translateX(101%); transition:transform .24s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column }
#yanPanel.acik{ transform:none }
#yanPanel .yp-bas{ display:flex; align-items:center; gap:10px; height:48px; padding:0 12px 0 16px; border-bottom:1px solid var(--border); background:var(--surface-2); flex:none }
#yanPanel .yp-bas b{ font-size:14px; font-weight:700 }
#yanPanel .yp-bas .yp-kapat{ margin-left:auto; width:34px; height:34px; border-radius:var(--r-sm); border:1px solid var(--border); background:var(--surface); color:var(--text-soft); font-size:18px; cursor:pointer; transition:.14s }
#yanPanel .yp-bas .yp-kapat:hover{ background:var(--danger-bg); color:var(--danger); border-color:transparent }
#yanPanel iframe{ flex:1; width:100%; border:0; background:var(--bg) }
#yanPanel .yp-yukleniyor{ position:absolute; inset:48px 0 0 0; display:flex; align-items:center; justify-content:center; color:var(--text-soft); font-size:13px; pointer-events:none; opacity:0; transition:opacity .15s }
#yanPanel.yukleniyor .yp-yukleniyor{ opacity:1 }
body.yanpanel-acik .icerik{ margin-right:min(760px,54vw); transition:margin-right .22s ease }
@media (max-width:1023px){
  #yanPanel{ width:100%; top:0 }
  body.yanpanel-acik .icerik{ margin-right:0 }
}
