/* ==========================================================
   Kiravia arayüzü · "Kurumsal lacivert" (tasarım B)
   Bootstrap 5.3 üzerine ince tema katmanı. Tüm firma sayfaları
   bu dosyayı kullanır; sınıflar "kv-" önekiyle başlar.
   Kılavuz: docs/tasarim/KILAVUZ.md
   ========================================================== */

/* ---------- Renkler ve ölçüler ---------- */
:root{
  --kv-navy:#0f1b3d;
  --kv-navy-2:#15244d;
  --kv-navy-hover:rgba(255,255,255,.06);
  --kv-navy-active:rgba(128,160,255,.15);
  --kv-navy-text:rgba(222,229,247,.76);
  --kv-navy-muted:rgba(222,229,247,.62);
  --kv-navy-line:rgba(255,255,255,.08);

  --kv-accent:#2f5bd8;
  --kv-accent-hover:#284fc2;
  --kv-accent-press:#2244a8;
  --kv-accent-50:#eef3fe;
  --kv-accent-100:#dce6fc;
  --kv-accent-light:#8eaeff;

  --kv-amber:#f4a523;
  --kv-amber-text:#8a4a00;
  --kv-amber-50:#fff6e3;
  --kv-amber-line:#f6dba4;

  --kv-red:#e0443b;
  --kv-red-text:#b3261e;
  --kv-red-50:#fef2f1;
  --kv-red-line:#f9d3cf;

  --kv-green:#1f9d5c;
  --kv-green-text:#0a6c3c;
  --kv-green-50:#ebf8f1;
  --kv-green-line:#c6ebd6;

  --kv-ink:#0d1628;
  --kv-text:#394357;
  --kv-muted:#687286;
  --kv-faint:#99a2b4;
  --kv-line:#e4e7ee;
  --kv-line-soft:#eef0f5;
  --kv-surface:#f6f7fa;
  --kv-hover:#fafbfd;

  --kv-radius:12px;
  --kv-shadow:0 1px 2px rgba(15,27,61,.05);
  --kv-shadow-lg:0 16px 40px -12px rgba(15,27,61,.22),0 4px 10px -4px rgba(15,27,61,.08);
  --kv-side-w:256px;
  --kv-top-h:64px;
  --kv-tabbar-h:64px;

  --bs-body-font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --bs-body-font-size:.875rem;
  --bs-body-line-height:1.5;
  --bs-body-color:var(--kv-text);
  --bs-body-bg:#fff;
  --bs-border-color:var(--kv-line);
  --bs-primary:#2f5bd8;
  --bs-primary-rgb:47,91,216;
  --bs-link-color:#2f5bd8;
  --bs-link-color-rgb:47,91,216;
  --bs-link-hover-color:#2244a8;
  --bs-link-hover-color-rgb:34,68,168;
  --bs-emphasis-color:var(--kv-ink);
  --bs-secondary-color:var(--kv-muted);
  --bs-heading-color:var(--kv-ink);
}

/* ---------- Temel ---------- */
html{-webkit-text-size-adjust:100%}
body{background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11"}
a{text-decoration:none}
.ti{line-height:1}
.kv-num{font-variant-numeric:tabular-nums}
.kv-money{white-space:nowrap;font-variant-numeric:tabular-nums}
.kv-text-warn{color:var(--kv-amber-text);font-weight:600}
.kv-text-danger{color:var(--kv-red-text);font-weight:600}
.kv-text-ok{color:var(--kv-green-text);font-weight:600}
.text-muted{color:var(--kv-muted)!important}
.min-w-0{min-width:0}

/* klavye kullanıcıları için içeriğe atlama bağlantısı (yalnız odaklanınca görünür) */
.kv-skip:focus{position:fixed!important;top:10px;left:10px;z-index:1100;padding:10px 16px;border-radius:9px;background:#fff;color:var(--kv-accent);font-weight:600;box-shadow:var(--kv-shadow)}

/* ---------- Kenar menüsü ---------- */
.kv-sidebar{--bs-offcanvas-width:288px;--bs-offcanvas-bg:var(--kv-navy);--bs-offcanvas-color:var(--kv-navy-text);border-right:0!important}
.kv-side{display:flex;flex-direction:column;width:100%;height:100%;background:var(--kv-navy);color:var(--kv-navy-text);padding:18px 14px;overflow-y:auto}
@media (min-width:992px){
  .kv-sidebar{position:fixed;inset:0 auto 0 0;width:var(--kv-side-w);z-index:1030}
  .kv-shell{margin-left:var(--kv-side-w)}
}
/* $page_bare: kenar menüsü ve alt menü yok */
.kv-bare .kv-shell{margin-left:0;padding-bottom:0}
.kv-logo{width:30px;height:30px;flex:none;display:block}
.kv-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}
.kv-brand-name{font-weight:700;font-size:18px;letter-spacing:-.02em;color:#fff}
.kv-brand .btn-close{margin-left:auto;opacity:.6}
.kv-workspace{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid var(--kv-navy-line);color:#fff;margin-bottom:10px;transition:background .15s}
a.kv-workspace:hover{background:rgba(255,255,255,.08);color:#fff}
.kv-ws-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(140deg,#f7bd4c,#e8891c);color:#2b1a02;font-weight:700;font-size:12px;display:grid;place-items:center;flex:none}
.kv-ws-text{display:flex;flex-direction:column;line-height:1.25;min-width:0;flex:1}
.kv-ws-text strong{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-ws-text small{font-size:11.5px;color:var(--kv-navy-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.kv-nav{display:flex;flex-direction:column;gap:2px}
.kv-nav-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--kv-navy-muted);padding:18px 10px 6px}
.kv-nav-item{position:relative;display:flex;align-items:center}
.kv-nav-link{display:flex;align-items:center;gap:11px;flex:1;min-width:0;padding:8px 10px;border-radius:8px;color:var(--kv-navy-text);font-weight:500;font-size:14px;transition:background .15s,color .15s}
.kv-nav-link .ti{font-size:19px;color:rgba(222,229,247,.5);transition:color .15s}
.kv-nav-link:hover{background:var(--kv-navy-hover);color:#fff}
.kv-nav-link:hover .ti{color:rgba(222,229,247,.85)}
.kv-nav-link.active{background:var(--kv-navy-active);color:#fff}
.kv-nav-link.active .ti{color:var(--kv-accent-light)}
.kv-nav-link.active::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--kv-accent-light)}
.kv-nav-item.has-add .kv-nav-link{padding-right:40px}
.kv-nav-add{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--kv-navy-muted);font-size:15px;transition:background .15s,color .15s}
.kv-nav-add:hover{background:rgba(255,255,255,.1);color:#fff}
.kv-nav-add.active{color:#fff;background:rgba(255,255,255,.1)}
.kv-nav-count{margin-left:auto;font-size:11px;font-weight:700;background:var(--kv-amber);color:#2b1a02;border-radius:999px;padding:0 7px;line-height:18px}
.kv-side-foot{margin-top:auto;padding:16px 10px 0;font-size:12px;color:var(--kv-navy-muted);display:flex;align-items:center;gap:8px}
.kv-side-foot a{color:var(--kv-navy-muted)}
.kv-side-foot a:hover{color:#fff}
.kv-side-foot .ti{font-size:15px}

/* ---------- Üst çubuk ---------- */
.kv-topbar{position:sticky;top:0;z-index:1020;height:var(--kv-top-h);display:flex;align-items:center;gap:10px;padding:0 32px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--kv-line)}
.kv-crumbs{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--kv-muted);margin:0;padding:0;list-style:none;min-width:0}
.kv-crumbs li{white-space:nowrap}
.kv-crumbs li:last-child{overflow:hidden;text-overflow:ellipsis}
.kv-crumbs .ti{font-size:14px;color:var(--kv-faint)}
.kv-crumbs a{color:var(--kv-muted)}
.kv-crumbs a:hover{color:var(--kv-ink)}
.kv-crumbs [aria-current]{color:var(--kv-ink);font-weight:600}
.kv-top-brand{display:flex;align-items:center;gap:9px;color:var(--kv-ink);font-weight:650;font-size:15px;letter-spacing:-.01em;min-width:0}
.kv-top-brand .kv-logo{width:28px;height:28px}
.kv-top-brand:hover{color:var(--kv-ink)}
.kv-top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}
.kv-icon-btn{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid transparent;background:transparent;display:inline-grid;place-items:center;color:var(--kv-text);font-size:20px;padding:0;flex:none;transition:background .15s,border-color .15s}
.kv-icon-btn:hover,.kv-icon-btn[aria-expanded="true"]{background:var(--kv-surface);border-color:var(--kv-line);color:var(--kv-ink)}
.kv-icon-btn--sm{width:32px;height:32px;border-radius:8px;font-size:18px;color:var(--kv-muted)}
.kv-bell-count{position:absolute;top:3px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--kv-red);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;border:2px solid #fff;line-height:1}
.kv-top-sep{width:1px;height:24px;background:var(--kv-line);margin:0 6px}
.kv-user{display:flex;align-items:center;gap:10px;padding:3px 10px 3px 3px;border-radius:999px;border:1px solid transparent;background:none;color:var(--kv-ink);transition:background .15s}
.kv-user:hover,.kv-user[aria-expanded="true"]{background:var(--kv-surface);border-color:var(--kv-line)}
.kv-user-text{display:flex;flex-direction:column;line-height:1.2;text-align:left}
.kv-user-text strong{font-size:13.5px;font-weight:600;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-user-text small{font-size:12px;color:var(--kv-muted)}
.kv-user>.ti{color:var(--kv-faint);font-size:16px}

/* ---------- Avatarlar ve kişiler ---------- */
.kv-av{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-size:10.5px;font-weight:650;flex:none;letter-spacing:.02em;line-height:1}
.kv-av--xs{width:22px;height:22px;font-size:9px}
.kv-av--md{width:34px;height:34px;font-size:12.5px}
.kv-av-stack{display:inline-flex;flex:none}
.kv-av-stack .kv-av{box-shadow:0 0 0 2px #fff}
.kv-av-stack .kv-av+.kv-av{margin-left:-4px}
.kv-av-1{background:#e2e9fd;color:#23409e}
.kv-av-2{background:#f1e7fc;color:#6a2da0}
.kv-av-3{background:#ddf3ec;color:#0c6a52}
.kv-av-4{background:#fdefd8;color:#8a4a00}
.kv-av-5{background:#fde5ea;color:#a1233f}
.kv-av-6{background:#e6eaf1;color:#3a4559}
.kv-av-me{background:linear-gradient(140deg,#3f6ef0,#2144ae);color:#fff}
/* baş harfler data-initials ile CSS'ten basılır; DataTables hücresinin metnine (sıralama, arama) girmez */
.kv-av[data-initials]::before{content:attr(data-initials)}
.kv-person{display:inline-flex;align-items:center;gap:8px;color:var(--kv-ink);min-width:0;max-width:100%}
.kv-person>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.kv-person:hover{color:var(--kv-accent)}
.kv-person .ti{font-size:15px;color:var(--kv-faint)}
.kv-people{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}

/* ---------- İçerik ---------- */
.kv-content{padding:28px 32px 56px;max-width:1400px}
.kv-content--wide{max-width:none}
.kv-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.kv-page-head h1{font-size:26px;font-weight:700;letter-spacing:-.025em;color:var(--kv-ink);margin:0 0 4px}
.kv-page-head p{margin:0;color:var(--kv-muted);font-size:14px}
.kv-page-head .kv-badge{vertical-align:middle;margin-left:6px}
.kv-page-actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.kv-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--kv-muted);margin-bottom:6px}
.kv-back:hover{color:var(--kv-ink)}
.kv-back .ti{font-size:15px}

/* ---------- Düğmeler ---------- */
.btn{--bs-btn-font-weight:600;--bs-btn-font-size:14px;--bs-btn-padding-x:14px;--bs-btn-padding-y:8px;--bs-btn-border-radius:9px;--bs-btn-line-height:1.4;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.btn .ti{font-size:17px;margin-left:-2px}
.btn-sm{--bs-btn-font-size:13px;--bs-btn-padding-x:11px;--bs-btn-padding-y:5px;--bs-btn-border-radius:8px;gap:6px}
.btn-sm .ti{font-size:15px}
.btn-lg{--bs-btn-font-size:15px;--bs-btn-padding-x:18px;--bs-btn-padding-y:11px;--bs-btn-border-radius:10px}
.btn-primary{--bs-btn-bg:var(--kv-accent);--bs-btn-border-color:var(--kv-accent);--bs-btn-hover-bg:var(--kv-accent-hover);--bs-btn-hover-border-color:var(--kv-accent-hover);--bs-btn-active-bg:var(--kv-accent-press);--bs-btn-active-border-color:var(--kv-accent-press);--bs-btn-disabled-bg:var(--kv-accent);--bs-btn-disabled-border-color:var(--kv-accent);--bs-btn-focus-shadow-rgb:47,91,216;box-shadow:0 1px 2px rgba(15,27,61,.14),inset 0 1px 0 rgba(255,255,255,.14)}
.btn-soft{--bs-btn-bg:var(--kv-accent-50);--bs-btn-color:var(--kv-accent);--bs-btn-border-color:var(--kv-accent-100);--bs-btn-hover-bg:var(--kv-accent-100);--bs-btn-hover-color:var(--kv-accent-press);--bs-btn-hover-border-color:#c9d8fb;--bs-btn-active-bg:var(--kv-accent-100);--bs-btn-active-color:var(--kv-accent-press);--bs-btn-active-border-color:#c9d8fb;--bs-btn-disabled-bg:var(--kv-accent-50);--bs-btn-disabled-color:var(--kv-accent);--bs-btn-disabled-border-color:var(--kv-accent-100)}
.btn-quiet{--bs-btn-bg:#fff;--bs-btn-color:var(--kv-ink);--bs-btn-border-color:var(--kv-line);--bs-btn-hover-bg:var(--kv-surface);--bs-btn-hover-color:var(--kv-ink);--bs-btn-hover-border-color:#d3d8e2;--bs-btn-active-bg:#eef0f4;--bs-btn-active-color:var(--kv-ink);--bs-btn-active-border-color:#d3d8e2;--bs-btn-disabled-bg:#fff;--bs-btn-disabled-color:var(--kv-faint);--bs-btn-disabled-border-color:var(--kv-line);box-shadow:0 1px 2px rgba(15,27,61,.05)}
.btn-quiet .ti{color:var(--kv-muted)}
.btn-quiet.is-warn:hover{--bs-btn-hover-color:var(--kv-amber-text);--bs-btn-hover-bg:var(--kv-amber-50);--bs-btn-hover-border-color:var(--kv-amber-line)}
.btn-quiet.is-warn:hover .ti{color:var(--kv-amber-text)}
.btn-quiet.is-danger{--bs-btn-color:var(--kv-red-text)}
.btn-quiet.is-danger .ti{color:var(--kv-red-text)}
.btn-quiet.is-danger:hover{--bs-btn-hover-color:var(--kv-red-text);--bs-btn-hover-bg:var(--kv-red-50);--bs-btn-hover-border-color:var(--kv-red-line)}
.btn-danger{--bs-btn-bg:#d93a31;--bs-btn-border-color:#d93a31;--bs-btn-hover-bg:#c2322a;--bs-btn-hover-border-color:#c2322a;--bs-btn-active-bg:#a92b24;--bs-btn-active-border-color:#a92b24}
.btn-warning{--bs-btn-bg:var(--kv-amber);--bs-btn-border-color:var(--kv-amber);--bs-btn-color:#2b1a02;--bs-btn-hover-bg:#e69812;--bs-btn-hover-border-color:#e69812;--bs-btn-hover-color:#2b1a02;--bs-btn-active-bg:#d08810;--bs-btn-active-border-color:#d08810}
.btn-link{--bs-btn-color:var(--kv-accent);--bs-btn-hover-color:var(--kv-accent-press);text-decoration:none}
.kv-link{font-size:13px;font-weight:600;color:var(--kv-accent);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.kv-link:hover{color:var(--kv-accent-press)}
.kv-link .ti{font-size:15px;transition:transform .15s}
.kv-link:hover .ti{transform:translateX(2px)}

/* ---------- Kartlar ---------- */
.kv-card{background:#fff;border:1px solid var(--kv-line);border-radius:var(--kv-radius);box-shadow:var(--kv-shadow)}
.kv-card+.kv-card{margin-top:24px}
.kv-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px}
.kv-card-head h2{font-size:15px;font-weight:650;letter-spacing:-.01em;color:var(--kv-ink);margin:0}
.kv-card-head p{font-size:13px;color:var(--kv-muted);margin:3px 0 0}
.kv-card-head--line{border-bottom:1px solid var(--kv-line)}
.kv-card-body{padding:0 20px 20px}
.kv-card-head--line+.kv-card-body,.kv-card-body--pad{padding:20px}
.kv-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--kv-line);font-size:13px;color:var(--kv-muted);background:var(--kv-surface);border-radius:0 0 var(--kv-radius) var(--kv-radius);flex-wrap:wrap}
.kv-card-foot strong{color:var(--kv-ink);font-weight:650;font-size:14px}
.kv-card-foot--plain{background:#fff}
/* Açılır-kapanır kart başlığı (Bootstrap collapse) */
.kv-card-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:18px 20px;background:none;border:0;text-align:left;color:var(--kv-ink)}
.kv-card-toggle h2{font-size:15px;font-weight:650;letter-spacing:-.01em;margin:0}
.kv-card-toggle>.ti{font-size:18px;color:var(--kv-faint);transition:transform .2s}
.kv-card-toggle[aria-expanded="true"]>.ti{transform:rotate(180deg)}
.kv-card-toggle:hover{color:var(--kv-ink);background:var(--kv-hover);border-radius:var(--kv-radius)}

/* ---------- Özet kutuları ---------- */
.kv-stat{height:100%;display:flex;flex-direction:column;padding:18px 20px 16px;background:#fff;border:1px solid var(--kv-line);border-radius:var(--kv-radius);box-shadow:var(--kv-shadow);color:inherit;transition:border-color .15s,box-shadow .15s}
a.kv-stat:hover{border-color:#cfd6e4;box-shadow:0 4px 14px -6px rgba(15,27,61,.14);color:inherit}
.kv-stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.kv-stat-label{font-size:13px;font-weight:500;color:var(--kv-muted);min-width:0;flex:1}
.kv-stat-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--kv-surface);border:1px solid var(--kv-line-soft);color:#5b6579;font-size:17px;flex:none}
.kv-stat-icon.is-danger{background:var(--kv-red-50);border-color:var(--kv-red-line);color:var(--kv-red-text)}
.kv-stat-icon.is-ok{background:var(--kv-green-50);border-color:var(--kv-green-line);color:var(--kv-green-text)}
.kv-stat-value{font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--kv-ink);line-height:1.1;font-variant-numeric:tabular-nums}
.kv-stat-value--multi{font-size:22px;line-height:1.25}
.kv-stat-sub{margin-top:auto;padding-top:14px;font-size:13px;color:var(--kv-muted)}
.kv-legend{display:flex;gap:14px;flex-wrap:wrap}
.kv-legend span{display:inline-flex;align-items:center;gap:6px}
.kv-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;background:#cdd3de}
.kv-dot--accent{background:var(--kv-accent)}
.kv-dot--danger{background:var(--kv-red)}
.kv-dot--warn{background:var(--kv-amber)}
.kv-dot--gray{background:#aab2c1}
.kv-note{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.kv-note .ti{font-size:15px;flex:none}
.kv-note--warn{color:var(--kv-amber-text)}
.kv-note--warn .ti{color:#d98a0b}
.kv-note--danger{color:var(--kv-red-text)}
.kv-note--ok{color:var(--kv-green-text)}

/* ---------- İlerleme çubuğu (sözleşme süresi) ---------- */
.kv-meter{display:flex;height:6px;border-radius:999px;background:#e8ecf3;overflow:hidden;margin-bottom:9px}
.kv-meter>span{display:block;background:var(--kv-accent);border-radius:999px}
.kv-meter.is-warn{background:#fbe6c3}
.kv-meter.is-warn>span{background:var(--kv-amber)}
.kv-meter.is-danger{background:var(--kv-red-line)}
.kv-meter.is-danger>span{background:var(--kv-red)}
.kv-meter.is-muted>span{background:#aab2c1}
.kv-term .kv-meter{margin:8px 0 0;max-width:220px}
.kv-term-dates{display:flex;align-items:center;gap:6px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--kv-ink)}
.kv-term-dates .ti{color:var(--kv-faint);font-size:14px}
.kv-term-sub{font-size:12.5px;color:var(--kv-muted);margin-top:5px;white-space:nowrap}

/* ---------- Rozetler ----------
   Satırda en fazla bir renkli rozet: gecikme (danger) ya da süre dolumu (warn).
   Sıradan durumlar (Takipte, Aktif) "plain" ile renksiz gösterilir. */
.kv-badge{display:inline-flex;align-items:center;gap:6px;padding:1px 9px 1px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:20px;white-space:nowrap;border:1px solid transparent;vertical-align:middle}
.kv-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.kv-badge--danger{background:var(--kv-red-50);color:var(--kv-red-text);border-color:var(--kv-red-line)}
.kv-badge--warn{background:var(--kv-amber-50);color:var(--kv-amber-text);border-color:var(--kv-amber-line)}
.kv-badge--warn::before{background:var(--kv-amber)}
.kv-badge--ok{background:var(--kv-green-50);color:var(--kv-green-text);border-color:var(--kv-green-line)}
.kv-badge--info{background:var(--kv-accent-50);color:var(--kv-accent);border-color:var(--kv-accent-100)}
.kv-badge--muted{background:#f3f4f7;color:#566076;border-color:#e3e6ec}
.kv-badge--muted::before{background:#aab2c1}
.kv-badge--plain{background:#fff;color:var(--kv-text);border-color:var(--kv-line);font-weight:500}
.kv-badge--plain::before{background:#aab2c1}
.kv-badge--plain.is-off{color:var(--kv-muted)}
.kv-badge--plain.is-off::before{background:transparent;box-shadow:inset 0 0 0 1.5px #b3b9c6}
.kv-badges{display:flex;flex-wrap:wrap;gap:6px}
.kv-count{font-size:11.5px;font-weight:600;line-height:18px;padding:0 7px;border-radius:999px;background:var(--kv-surface);border:1px solid var(--kv-line);color:var(--kv-muted);font-variant-numeric:tabular-nums}

/* ---------- Anasayfa ızgarası ----------
   Masaüstünde iki sütun; dar ekranda sütunlar display:contents olur
   ve kartlar önem sırasına göre (kv-o-N) tek sütuna dizilir. */
.kv-dash{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.kv-dash-col{display:contents}
.kv-dash .kv-o-1{order:1}.kv-dash .kv-o-2{order:2}.kv-dash .kv-o-3{order:3}.kv-dash .kv-o-4{order:4}
.kv-dash .kv-card+.kv-card{margin-top:0}
@media (min-width:992px){.kv-dash{gap:24px}}
@media (min-width:1200px){
  .kv-dash{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
  .kv-dash-col{display:flex;flex-direction:column;gap:24px;min-width:0}
  .kv-dash-col>.kv-card:last-child:not(:only-child){flex:1}
}

/* ---------- Satır listeleri (anasayfa kartları) ---------- */
.kv-list{list-style:none;margin:0;padding:0}
.kv-row{display:grid;align-items:center;column-gap:16px;row-gap:10px;padding:14px 20px;border-top:1px solid var(--kv-line-soft);transition:background .12s}
.kv-row:hover{background:var(--kv-hover)}
.kv-row--overdue{grid-template-columns:40px minmax(0,1fr) 150px minmax(92px,auto) auto;grid-template-areas:"thumb main status amount action"}
.kv-row--vacant{grid-template-columns:40px minmax(0,1fr) minmax(110px,auto) auto;grid-template-areas:"thumb main amount action"}
.kv-thumb{grid-area:thumb;width:40px;height:40px;border-radius:10px;background:var(--kv-surface);border:1px solid var(--kv-line-soft);display:grid;place-items:center;color:#56617a;font-size:20px;flex:none}
.kv-thumb--sm{width:34px;height:34px;border-radius:9px;font-size:17px}
.kv-thumb--warn{background:var(--kv-amber-50);border-color:var(--kv-amber-line);color:#b86e04}
.kv-thumb--danger{background:var(--kv-red-50);border-color:var(--kv-red-line);color:var(--kv-red-text)}
.kv-main{grid-area:main;min-width:0}
.kv-title{display:block;font-weight:600;font-size:14px;color:var(--kv-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.kv-title:hover{color:var(--kv-accent)}
.kv-sub{display:flex;align-items:center;gap:7px;min-width:0;margin-top:3px;font-size:13px;color:var(--kv-muted)}
.kv-sub>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-sub .ti{font-size:14px;color:var(--kv-faint);flex:none}
.kv-status{grid-area:status;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.kv-status small{font-size:12px;color:var(--kv-muted);padding-left:2px}
.kv-amount{grid-area:amount;text-align:right;font-weight:650;font-size:14.5px;color:var(--kv-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.kv-amount small{display:block;font-size:12px;font-weight:500;color:var(--kv-muted)}
.kv-action{grid-area:action;display:flex;justify-content:flex-end}

/* Süresi dolan sözleşmeler */
.kv-expiry{padding:2px 20px 0}
.kv-expiry+.kv-expiry{margin-top:16px;padding-top:16px;border-top:1px solid var(--kv-line-soft)}
.kv-expiry-top{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"thumb main badge";align-items:center;column-gap:12px}
.kv-expiry-top .kv-badge{grid-area:badge}
.kv-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;padding:12px 14px;border-radius:10px;border:1px solid var(--kv-line-soft);background:var(--kv-surface)}
.kv-facts dt{font-size:12px;font-weight:500;color:var(--kv-muted);margin:0 0 2px}
.kv-facts dd{margin:0;font-weight:600;color:var(--kv-ink);font-variant-numeric:tabular-nums}
.kv-expiry-actions{display:flex;gap:8px;margin-top:12px}
.kv-expiry-actions .btn{flex:1 1 0;max-width:220px}
.kv-expiry-actions .btn:only-child{max-width:none}
.kv-hint{display:flex;gap:10px;margin:16px 20px 20px;padding:12px 0 0;border-top:1px solid var(--kv-line-soft);font-size:13px;color:var(--kv-muted);line-height:1.45}
.kv-hint .ti{font-size:17px;color:var(--kv-accent);flex:none;margin-top:1px}
.kv-hint p{margin:0}

/* Hızlı işlemler */
.kv-quick{display:flex;flex-direction:column;gap:2px;padding:0 10px 12px}
.kv-quick a{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;color:var(--kv-ink);font-weight:600;font-size:13.5px;line-height:1.3;transition:background .15s}
.kv-quick a small{display:block;font-weight:400;font-size:12.5px;color:var(--kv-muted);margin-top:1px}
.kv-quick a>.ti{margin-left:auto;color:var(--kv-faint);font-size:16px;transition:transform .15s,color .15s}
.kv-quick a:hover{background:var(--kv-surface)}
.kv-quick a:hover>.ti{color:var(--kv-accent);transform:translateX(2px)}
.kv-quick-ic{width:36px;height:36px;border-radius:10px;background:var(--kv-accent-50);color:var(--kv-accent);display:grid;place-items:center;font-size:18px;flex:none}

/* Anahtar-değer listesi (detay sayfaları) */
.kv-dl{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);margin:0}
.kv-dl>dt,.kv-dl>dd{padding:10px 0;border-top:1px solid var(--kv-line-soft);margin:0}
.kv-dl>dt:first-of-type,.kv-dl>dd:first-of-type{border-top:0}
.kv-dl>dt{font-weight:500;color:var(--kv-muted);font-size:13px;padding-right:12px}
.kv-dl>dd{color:var(--kv-ink);font-weight:500}

/* ---------- Açılır menüler ---------- */
.dropdown-menu{--bs-dropdown-border-color:var(--kv-line);--bs-dropdown-border-radius:12px;--bs-dropdown-font-size:14px;--bs-dropdown-color:var(--kv-text);--bs-dropdown-link-color:var(--kv-text);--bs-dropdown-link-hover-color:var(--kv-ink);--bs-dropdown-link-hover-bg:var(--kv-surface);--bs-dropdown-link-active-bg:var(--kv-accent-50);--bs-dropdown-link-active-color:var(--kv-accent);--bs-dropdown-item-padding-x:10px;--bs-dropdown-item-padding-y:7px;--bs-dropdown-padding-y:6px;--bs-dropdown-divider-margin-y:6px;--bs-dropdown-divider-bg:var(--kv-line-soft);--bs-dropdown-header-color:var(--kv-muted);padding:6px;box-shadow:var(--kv-shadow-lg);min-width:220px}
.dropdown-item{border-radius:8px;display:flex;align-items:center;gap:10px;font-weight:500;cursor:pointer}
.dropdown-item .ti{font-size:17px;color:var(--kv-faint)}
.dropdown-item:hover .ti{color:var(--kv-muted)}
.dropdown-item.is-warn,.dropdown-item.is-warn .ti{color:var(--kv-amber-text)}
.dropdown-item.is-warn:hover{background:var(--kv-amber-50);color:var(--kv-amber-text)}
.dropdown-item.is-danger,.dropdown-item.is-danger .ti{color:var(--kv-red-text)}
.dropdown-item.is-danger:hover{background:var(--kv-red-50);color:var(--kv-red-text)}
.kv-menu-tag{margin-left:auto;font-size:11px;font-weight:600;color:var(--kv-muted);background:var(--kv-surface);border:1px solid var(--kv-line);border-radius:6px;padding:0 6px;line-height:18px}
.kv-menu-head{padding:8px 10px 10px;display:flex;flex-direction:column;line-height:1.3}
.kv-menu-head strong{color:var(--kv-ink);font-weight:600}
.kv-menu-head small{color:var(--kv-muted);font-size:12.5px}
.kv-notif{width:340px;padding:0}
.kv-notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px}
.kv-notif-head strong{color:var(--kv-ink);font-weight:650}
.kv-notif-item{display:flex;gap:12px;padding:10px 16px;color:var(--kv-text);border-top:1px solid var(--kv-line-soft)}
.kv-notif-item:hover{background:var(--kv-surface);color:var(--kv-text)}
.kv-notif-ic{width:34px;height:34px;border-radius:9px;background:var(--kv-red-50);color:var(--kv-red-text);display:grid;place-items:center;font-size:17px;flex:none}
.kv-notif-item strong{display:block;color:var(--kv-ink);font-weight:600;font-size:13.5px}
.kv-notif-item span{font-size:12.5px;color:var(--kv-muted)}
.kv-notif-empty{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--kv-line-soft);font-size:13px;color:var(--kv-muted)}
.kv-notif-empty .ti{font-size:17px;color:var(--kv-green)}
.kv-notif-foot{display:block;text-align:center;padding:10px;border-top:1px solid var(--kv-line-soft);font-size:13px;font-weight:600;color:var(--kv-accent)}
/* ögeler dropdown-item (Bootstrap ok tuşlarıyla gezinir); görünüm kv-notif kurallarından */
.kv-notif .dropdown-item{border-radius:0;white-space:normal;align-items:flex-start}
.kv-notif .dropdown-item:focus,.kv-notif .dropdown-item:active{background:var(--kv-surface);color:var(--kv-text)}
.kv-notif .kv-notif-foot{justify-content:center;align-items:center}
.kv-notif .kv-notif-foot:hover,.kv-notif .kv-notif-foot:focus,.kv-notif .kv-notif-foot:active{color:var(--kv-accent)}
.kv-notif .kv-notif-ic{color:var(--kv-red-text);font-size:17px}
.kv-notif .kv-notif-ic .ti{color:inherit}

/* ---------- Alttan açılan sayfa (telefon) ---------- */
.kv-sheet{--bs-offcanvas-bg:#fff}
.kv-sheet.offcanvas-bottom{height:auto;max-height:88vh;border:0;border-radius:20px 20px 0 0;box-shadow:0 -12px 40px rgba(15,27,61,.18)}
.kv-grab{width:40px;height:5px;border-radius:3px;background:var(--kv-line);margin:10px auto 2px;flex:none}
.kv-sheet .offcanvas-body{padding:8px 12px calc(16px + env(safe-area-inset-bottom))}
.kv-sheet-head{display:flex;align-items:center;gap:12px;padding:6px 12px 14px;border-bottom:1px solid var(--kv-line-soft);margin-bottom:6px}
.kv-sheet-head strong{display:block;font-size:16px;line-height:1.3;color:var(--kv-ink)}
.kv-sheet-head small{display:block;color:var(--kv-muted);font-size:13px;margin-top:2px}
.kv-sheet-list{list-style:none;margin:0;padding:0}
.kv-sheet-list hr{margin:6px 12px;border-color:var(--kv-line-soft);opacity:1}
.kv-sheet-list .dropdown-item,.kv-sheet-item{display:flex;align-items:center;gap:14px;min-height:50px;padding:0 12px;border-radius:12px;color:var(--kv-ink);font-weight:600;font-size:15px;width:100%;border:0;background:none;text-align:left}
.kv-sheet-list .dropdown-item:hover,.kv-sheet-list .dropdown-item:active,.kv-sheet-item:hover,.kv-sheet-item:active{background:var(--kv-line-soft);color:var(--kv-ink)}
.kv-sheet-list .dropdown-item .ti,.kv-sheet-item>.ti{font-size:22px;color:var(--kv-muted);width:24px;text-align:center}
.kv-sheet-list .dropdown-item.is-warn,.kv-sheet-list .dropdown-item.is-warn .ti{color:var(--kv-amber-text)}
.kv-sheet-list .dropdown-item.is-danger,.kv-sheet-list .dropdown-item.is-danger .ti{color:var(--kv-red-text)}
.kv-sheet-list .kv-only-compact{display:list-item}
.kv-sheet-item .kv-sheet-sub{display:block;font-weight:400;font-size:13px;color:var(--kv-muted)}
.kv-sheet-cancel{margin:10px 4px 0;width:calc(100% - 8px);min-height:48px}

/* ---------- Sekmeler ---------- */
.kv-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--kv-line);overflow-x:auto;scrollbar-width:none}
.kv-tabs::-webkit-scrollbar{display:none}
.kv-tabs a,.kv-tabs button{position:relative;display:inline-flex;align-items:center;gap:8px;padding:14px 4px 13px;margin-right:16px;font-weight:600;font-size:14px;color:var(--kv-muted);background:none;border:0;white-space:nowrap}
.kv-tabs a:hover,.kv-tabs button:hover{color:var(--kv-ink)}
.kv-tabs .active{color:var(--kv-ink)}
.kv-tabs .active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--kv-accent)}
.kv-tabs .active .kv-count{background:var(--kv-accent-50);border-color:var(--kv-accent-100);color:var(--kv-accent)}
.kv-tabs .ti{font-size:17px}

/* ---------- Araç şeridi: arama + hızlı filtreler ---------- */
.kv-toolbar{display:flex;align-items:center;gap:10px 12px;padding:14px 20px;flex-wrap:wrap}
.kv-search{position:relative;flex:1 1 260px;max-width:340px}
.kv-search>.ti{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:17px;color:var(--kv-faint);pointer-events:none}
.kv-search .form-control{padding-left:38px}
.kv-search .form-control::-webkit-search-cancel-button{cursor:pointer}
.kv-chips{display:flex;gap:8px;min-width:0}
.kv-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--kv-line);background:#fff;font-size:13px;font-weight:500;color:var(--kv-text);white-space:nowrap;box-shadow:0 1px 2px rgba(15,27,61,.04);transition:background .15s,border-color .15s,color .15s}
.kv-chip:hover{border-color:#cfd6e2;background:var(--kv-surface)}
.kv-chip b{font-weight:650;color:var(--kv-ink);font-variant-numeric:tabular-nums}
.kv-chip[aria-pressed="true"]{border-color:#9db4f2;background:var(--kv-accent-50);color:var(--kv-accent)}
.kv-chip[aria-pressed="true"] b{color:var(--kv-accent)}
.kv-toolbar-meta{margin-left:auto;font-size:13px;color:var(--kv-muted);white-space:nowrap}

/* ---------- Tablolar ---------- */
.kv-table-wrap{overflow-x:auto}
.kv-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.kv-table thead th{padding:10px 14px;font-size:12px;font-weight:600;color:var(--kv-muted);background:var(--kv-surface);border-top:1px solid var(--kv-line);border-bottom:1px solid var(--kv-line);white-space:nowrap;text-align:left}
.kv-table thead th.text-end{text-align:right}
.kv-table tbody td{padding:14px;border-bottom:1px solid var(--kv-line-soft);vertical-align:middle}
.kv-table tr>*:first-child{padding-left:20px}
.kv-table tr>*:last-child{padding-right:16px}
.kv-table tbody tr{transition:background .12s}
.kv-table tbody tr:hover{background:var(--kv-hover)}
.kv-table tbody tr:last-child td{border-bottom:0}
.kv-table tbody tr.is-overdue>td:first-child{box-shadow:inset 3px 0 0 var(--kv-red)}
.kv-table tbody tr.is-muted{color:var(--kv-muted)}
.kv-table tfoot th,.kv-table tfoot td{padding:10px 14px;border-top:1px solid var(--kv-line);font-weight:600;color:var(--kv-ink);background:var(--kv-surface)}
.kv-table td.dataTables_empty{padding:40px 20px;text-align:center;color:var(--kv-muted)}
.kv-prop{display:flex;align-items:center;gap:12px;color:var(--kv-ink);font-weight:600;min-width:0}
a.kv-prop:hover{color:var(--kv-accent)}
.kv-cell-sub{font-size:12.5px;color:var(--kv-muted);margin-top:2px}
.kv-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.kv-row-actions--plain>.kv-row-menu{display:none}
.kv-only-compact{display:none}
/* Bootstrap .table kullanan basit tablolar da aynı görünsün */
.table{--bs-table-color:var(--kv-text);--bs-table-border-color:var(--kv-line-soft);--bs-table-hover-bg:var(--kv-hover);font-size:14px}
.table>thead>tr>th{font-size:12px;font-weight:600;color:var(--kv-muted);background:var(--kv-surface);border-bottom-color:var(--kv-line);white-space:nowrap}
.table>:not(caption)>*>*{padding:10px 14px}
.table-danger{--bs-table-bg:var(--kv-red-50);--bs-table-color:var(--kv-ink)}

/* DataTables: kendi arama kutusu ve sayfalama alt şeritte */
table.dataTable{margin:0!important}
table.dataTable.kv-table thead>tr>th.sorting,table.dataTable.kv-table thead>tr>th.sorting_asc,table.dataTable.kv-table thead>tr>th.sorting_desc{padding-right:26px}
table.dataTable.kv-table thead>tr>th.sorting_asc,table.dataTable.kv-table thead>tr>th.sorting_desc{color:var(--kv-ink)}
table.dataTable.kv-table thead>tr>th.sorting:before,table.dataTable.kv-table thead>tr>th.sorting:after,table.dataTable.kv-table thead>tr>th.sorting_asc:before,table.dataTable.kv-table thead>tr>th.sorting_asc:after,table.dataTable.kv-table thead>tr>th.sorting_desc:before,table.dataTable.kv-table thead>tr>th.sorting_desc:after{right:10px;font-size:.7em}
table.dataTable.kv-table thead>tr>th.sorting:before,table.dataTable.kv-table thead>tr>th.sorting:after{opacity:0;transition:opacity .15s}
table.dataTable.kv-table thead>tr>th.sorting:hover:before,table.dataTable.kv-table thead>tr>th.sorting:hover:after{opacity:.35}
table.dataTable.kv-table>tbody>tr.selected>*{box-shadow:none;color:inherit}
.kv-dt-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--kv-line);font-size:13px;color:var(--kv-muted)}
.kv-dt-foot .dataTables_info{padding:0!important}
.kv-dt-nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-left:auto}
.kv-dt-nav .dataTables_length label{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--kv-muted)}
.kv-dt-nav .dataTables_length select{width:auto;padding:4px 30px 4px 10px;font-size:13px;border-radius:8px}
.kv-dt-foot .pagination{margin:0!important;gap:6px;--bs-pagination-border-radius:8px;--bs-pagination-font-size:13px;--bs-pagination-padding-x:11px;--bs-pagination-padding-y:5px;--bs-pagination-color:var(--kv-ink);--bs-pagination-border-color:var(--kv-line);--bs-pagination-hover-bg:var(--kv-surface);--bs-pagination-hover-color:var(--kv-ink);--bs-pagination-hover-border-color:#d3d8e2;--bs-pagination-active-bg:var(--kv-accent-50);--bs-pagination-active-color:var(--kv-accent);--bs-pagination-active-border-color:#9db4f2;--bs-pagination-disabled-color:var(--kv-faint);--bs-pagination-disabled-bg:#fff;--bs-pagination-disabled-border-color:var(--kv-line);--bs-pagination-focus-box-shadow:0 0 0 3px rgba(47,91,216,.14)}
.kv-dt-foot .page-link{border-radius:8px!important;margin-left:0!important;font-weight:600}

/* ---------- Boş durum ---------- */
.kv-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 20px;text-align:center;color:var(--kv-muted);font-size:13.5px}
.kv-empty>.ti{font-size:28px;color:var(--kv-faint)}
.kv-empty>.ti.is-ok{color:var(--kv-green)}
.kv-empty p{margin:0;max-width:420px}
.kv-empty .btn{margin-top:8px}
.kv-card-head+.kv-empty{border-top:1px solid var(--kv-line-soft)}

/* Tek mesajlık sayfa (platform_message_page) */
.kv-message{padding:40px 32px;font-size:15px;color:var(--kv-text)}
.kv-message-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--kv-ink);margin:0 0 12px}
.kv-message p:last-child{margin-bottom:0}
.kv-message .btn{margin-top:4px}

/* ---------- Uyarı kutuları ---------- */
.alert{--bs-alert-border-radius:10px;--bs-alert-padding-x:14px;--bs-alert-padding-y:12px;--bs-alert-margin-bottom:16px;font-size:14px;line-height:1.45}
.kv-alert{display:flex;align-items:flex-start;gap:10px}
.kv-alert>.ti{font-size:19px;flex:none;margin-top:0}
.kv-alert>div{min-width:0;flex:1}
.kv-alert ul{margin:4px 0 0;padding-left:18px}
.alert-success{--bs-alert-color:var(--kv-green-text);--bs-alert-bg:var(--kv-green-50);--bs-alert-border-color:var(--kv-green-line);--bs-alert-link-color:var(--kv-green-text)}
.alert-danger{--bs-alert-color:var(--kv-red-text);--bs-alert-bg:var(--kv-red-50);--bs-alert-border-color:var(--kv-red-line);--bs-alert-link-color:var(--kv-red-text)}
.alert-warning{--bs-alert-color:var(--kv-amber-text);--bs-alert-bg:var(--kv-amber-50);--bs-alert-border-color:var(--kv-amber-line);--bs-alert-link-color:var(--kv-amber-text)}
.alert-info,.alert-primary{--bs-alert-color:#23409e;--bs-alert-bg:var(--kv-accent-50);--bs-alert-border-color:var(--kv-accent-100);--bs-alert-link-color:#23409e}
.alert-secondary,.alert-light{--bs-alert-color:var(--kv-text);--bs-alert-bg:var(--kv-surface);--bs-alert-border-color:var(--kv-line);--bs-alert-link-color:var(--kv-ink)}
.alert-link{font-weight:650}
.kv-flash{margin-bottom:20px}
.kv-flash .alert:last-child{margin-bottom:0}

/* ---------- Formlar ---------- */
.form-label,.col-form-label{font-size:13px;font-weight:600;color:var(--kv-ink);margin-bottom:6px}
.form-text{font-size:12.5px;color:var(--kv-muted);margin-top:5px}
.form-control,.form-select{border-color:var(--kv-line);border-radius:9px;font-size:14px;padding:8px 12px;color:var(--kv-ink);box-shadow:0 1px 2px rgba(15,27,61,.04)}
.form-select{padding-right:36px}
.form-control-sm,.form-select-sm{font-size:13px;padding:5px 10px;border-radius:8px}
.form-control-lg{font-size:16px;padding:11px 14px;border-radius:10px}
.form-control::placeholder{color:var(--kv-muted)}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:#8eaaf0;box-shadow:0 0 0 3px rgba(47,91,216,.14)}
.form-control:disabled,.form-control[readonly]{background:var(--kv-surface);color:var(--kv-text)}
.form-check-input{border-color:#c5ccd9}
.form-check-input:checked{background-color:var(--kv-accent);border-color:var(--kv-accent)}
.form-check-label{color:var(--kv-ink)}
.form-switch .form-check-input{width:2.2em}
.input-group-text{background:var(--kv-surface);border-color:var(--kv-line);color:var(--kv-muted);font-size:14px;border-radius:9px}
.was-validated .form-control:invalid,.form-control.is-invalid,.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--kv-red)}
.invalid-feedback{color:var(--kv-red-text);font-size:12.5px}
.form-control.is-invalid~.input-group-text{border-color:var(--kv-red);color:var(--kv-red-text)}
.kv-form-section{padding:20px;border-top:1px solid var(--kv-line-soft)}
.kv-form-section:first-child,input[type="hidden"]+.kv-form-section,.visually-hidden:first-child+.kv-form-section{border-top:0}
.kv-form-section>h3{font-size:14px;font-weight:650;color:var(--kv-ink);margin:0 0 4px}
.kv-form-section>p{font-size:13px;color:var(--kv-muted);margin:0 0 14px}
.kv-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--kv-line);background:var(--kv-surface);border-radius:0 0 var(--kv-radius) var(--kv-radius)}
.kv-form-actions .me-auto{margin-right:auto}
.btn:focus-visible,.kv-icon-btn:focus-visible,.kv-nav-link:focus-visible,a:focus-visible,.kv-chip:focus-visible{outline:2px solid var(--kv-accent);outline-offset:2px;box-shadow:none}
.kv-side a:focus-visible,.kv-side button:focus-visible{outline-color:var(--kv-accent-light)}

/* Ödeme penceresindeki ay seçimi */
.kv-check-list{border:1px solid var(--kv-line);border-radius:10px;max-height:260px;overflow-y:auto}
.kv-check-row{display:flex;align-items:center;gap:10px;padding:9px 12px;margin:0;border-top:1px solid var(--kv-line-soft);cursor:pointer}
.kv-check-row:first-child{border-top:0}
.kv-check-row:hover{background:var(--kv-hover)}
.kv-check-row .form-check-input{margin:0;flex:none}
.kv-check-row .kv-check-text{flex:1;min-width:0;color:var(--kv-ink)}
.kv-check-row .kv-check-text small{display:block;color:var(--kv-muted);font-size:12px}
.kv-check-row .kv-money{font-weight:600;color:var(--kv-ink)}
.kv-check-amount{flex:none;text-align:right;line-height:1.25}
.kv-check-amount small{display:block;font-size:12px;color:var(--kv-muted)}
.kv-check-row.is-late .kv-check-text{color:var(--kv-red-text)}
.kv-pay-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;margin-bottom:16px;border-radius:10px;background:var(--kv-surface);border:1px solid var(--kv-line-soft)}
.kv-pay-summary strong{color:var(--kv-ink)}

/* jQuery UI otomatik tamamlama (jquery-ui.css yerine) */
.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
.ui-front{z-index:1060}
.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;list-style:none;margin:4px 0 0;padding:6px;background:#fff;border:1px solid var(--kv-line);border-radius:12px;box-shadow:var(--kv-shadow-lg);max-height:320px;overflow-y:auto;overflow-x:hidden;font-size:14px}
.ui-autocomplete .ui-menu-item{margin:0;padding:0;list-style:none}
.ui-autocomplete .ui-menu-item-wrapper{display:block;padding:7px 10px;border-radius:8px;color:var(--kv-text);border:0;margin:0}
.ui-autocomplete .ui-menu-item-wrapper.ui-state-active{background:var(--kv-accent-50);color:var(--kv-accent);border:0;margin:0}

/* ---------- Pencereler (modal) ---------- */
.modal{--bs-modal-border-radius:16px;--bs-modal-inner-border-radius:15px;--bs-modal-border-color:transparent;--bs-modal-header-padding:18px 20px 14px;--bs-modal-padding:20px;--bs-modal-footer-gap:8px;--bs-modal-box-shadow:var(--kv-shadow-lg)}
.modal-content{box-shadow:var(--kv-shadow-lg)}
.modal-header{border-bottom:1px solid var(--kv-line-soft)}
.modal-title{font-size:16px;font-weight:650;color:var(--kv-ink);letter-spacing:-.01em}
.modal-footer{border-top:1px solid var(--kv-line);background:var(--kv-surface);padding:12px 16px;border-radius:0 0 15px 15px}
.modal-backdrop{--bs-backdrop-bg:#0f1b3d;--bs-backdrop-opacity:.45}
@media (max-width:575.98px){
  .modal-dialog{margin:12px}
}

/* ---------- Telefon alt menüsü ---------- */
.kv-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:1025;display:grid;grid-template-columns:repeat(5,1fr);align-items:start;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--kv-line);padding:6px 6px calc(8px + env(safe-area-inset-bottom))}
.kv-tab{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:500;line-height:1.3;color:var(--kv-muted);padding:4px 0;position:relative;background:none;border:0;width:100%;min-width:0}
.kv-tab>span:last-child{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-tab-ic{position:relative;height:24px;display:grid;place-items:center}
.kv-tab-ic .ti{font-size:22px}
.kv-tab.active{color:var(--kv-accent)}
.kv-tab--new{color:var(--kv-ink)}
.kv-tab-count{position:absolute;top:-4px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--kv-red);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;border:2px solid #fff;line-height:1}
.kv-tab-plus{position:absolute;left:50%;top:-24px;transform:translateX(-50%);width:46px;height:46px;border-radius:14px;background:var(--kv-accent);color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px -6px rgba(47,91,216,.6),0 0 0 4px #fff}
.kv-tab-plus .ti{font-size:24px}

/* ---------- İki adımlı doğrulama ---------- */
.code-input{font-size:1.6rem;text-align:center;letter-spacing:.3em;font-weight:600}
.qr-box{width:200px;max-width:100%;margin:0 auto;background:#fff}
.qr-box svg{width:100%;height:auto;display:block}
.totp-key{font-size:1rem;letter-spacing:.08em;user-select:all}
.recovery-codes{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.05rem;column-count:2;list-style:none;padding:0;margin:0}
.recovery-codes li{padding:.2rem 0}

/* ---------- Sözleşmeler listesi ---------- */
.kv-table--contracts .kv-c-kira{font-weight:650;color:var(--kv-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.kv-table--contracts .kv-c-kira small{display:none}
.kv-table--contracts .kv-c-durum .kv-badges{flex-direction:column;align-items:flex-start}

/* 1280–1439: tablo sığsın diye küçük görsel gizlenir ve "Detay" menüye geçer */
@media (min-width:1280px) and (max-width:1439.98px){
  .kv-table--contracts .kv-thumb--sm{display:none}
  .kv-table--contracts tbody td,.kv-table--contracts thead th{padding-left:10px;padding-right:10px}
  .kv-table--contracts tr>*:first-child{padding-left:20px}
  .kv-table--contracts tr>*:last-child{padding-right:14px}
  .kv-table--contracts .kv-row-actions>.btn{display:none}
  .kv-table--contracts .kv-row-actions--plain>.kv-row-menu{display:block}
  .kv-table--contracts .kv-row-actions--plain>.kv-row-print{display:none}
  .kv-table--contracts .kv-only-compact{display:list-item}
}

/* 1280 altı: satırlar karta dönüşür (aynı <table>, DataTables ile uyumlu) */
@media (max-width:1279.98px){
  .kv-table--contracts thead{display:none}
  .kv-table-wrap--contracts{overflow:visible}
  .kv-table--contracts{display:block}
  .kv-table--contracts tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px;border-top:1px solid var(--kv-line)}
  .kv-table--contracts tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mulk kira" "veren veren" "kiraci kiraci" "donem donem" "durum islem";grid-template-rows:auto auto auto 1fr auto;gap:9px 12px;padding:16px;border:1px solid var(--kv-line);border-radius:12px;background:#fff;box-shadow:var(--kv-shadow)}
  .kv-table--contracts tbody tr:hover{background:#fff}
  .kv-table--contracts tbody tr.is-overdue{box-shadow:inset 3px 0 0 var(--kv-red),var(--kv-shadow)}
  .kv-table--contracts tbody tr.is-overdue>td:first-child{box-shadow:none}
  .kv-table--contracts tbody td{display:block;padding:0!important;border:0}
  .kv-table--contracts td.dataTables_empty{grid-column:1/-1;padding:28px 0!important}
  .kv-table--contracts tbody tr:has(td.dataTables_empty){display:block;grid-column:1/-1}
  .kv-table--contracts .kv-c-mulk{grid-area:mulk;margin-bottom:3px;min-width:0}
  .kv-table--contracts .kv-c-kira{grid-area:kira;text-align:right!important;font-size:15px;line-height:1.2;align-self:start}
  .kv-table--contracts .kv-c-kira small{display:block;font-size:11.5px;font-weight:500;color:var(--kv-muted);margin-top:2px}
  .kv-table--contracts .kv-c-veren{grid-area:veren}
  .kv-table--contracts .kv-c-kiraci{grid-area:kiraci}
  .kv-table--contracts .kv-c-donem{grid-area:donem}
  .kv-table--contracts .kv-c-durum{grid-area:durum;align-self:end;margin-top:5px}
  .kv-table--contracts .kv-c-durum .kv-badges{flex-direction:row}
  .kv-table--contracts .kv-c-islem{grid-area:islem;align-self:end;margin-top:5px}
  .kv-table--contracts td[data-label]{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;align-content:start;column-gap:10px}
  .kv-table--contracts td[data-label]::before{content:attr(data-label);font-size:12.5px;color:var(--kv-muted);line-height:22px}
  .kv-table--contracts td[data-label] .kv-av{width:22px;height:22px;font-size:9.5px}
  .kv-table--contracts .kv-person{line-height:1.35}
  .kv-table--contracts .kv-person>span:last-child{white-space:normal}
  .kv-table--contracts .kv-term-dates{line-height:22px}
  .kv-table--contracts .kv-term .kv-meter{max-width:none}
}

/* ---------- Kart ızgarası (geniş tablolar) ----------
   <table class="kv-table kv-table--cards kv-table--grid">, sarmalayıcı: kv-table-wrap--grid.
   1280–1439: küçük görsel gizlenir, hücre dolguları daralır; 768–1279: satırlar iki sütunlu karta
   dönüşür (kv-c-title başlık, kv-c-end sağ üst, kv-c-islem altta); telefonda kv-table--cards tek sütun.
   Kartlardaki işlemler aynı hizada dursun diye tabloya özel grid-template-rows verilir. */
@media (min-width:1280px) and (max-width:1439.98px){
  .kv-table--grid .kv-thumb--sm{display:none}
  .kv-table--grid tbody td,.kv-table--grid thead th{padding-left:10px;padding-right:10px}
  .kv-table--grid tr>*:first-child{padding-left:20px}
  .kv-table--grid tr>*:last-child{padding-right:14px}
}
@media (min-width:768px) and (max-width:1279.98px){
  .kv-table--grid thead,.kv-table--grid tfoot{display:none}
  .kv-table-wrap--grid{overflow:visible}
  .kv-table--grid{display:block}
  .kv-table--grid tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px;border-top:1px solid var(--kv-line)}
  .kv-table--grid tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:16px;border:1px solid var(--kv-line);border-radius:12px;background:#fff;box-shadow:var(--kv-shadow)}
  .kv-table--grid tbody tr:hover{background:#fff}
  .kv-table--grid tbody tr.is-overdue{box-shadow:inset 3px 0 0 var(--kv-red),var(--kv-shadow)}
  .kv-table--grid tbody tr.is-overdue>td:first-child{box-shadow:none}
  .kv-table--grid tbody td{display:block;padding:0!important;border:0;grid-column:1/-1;min-width:0}
  .kv-table--grid td.kv-c-title{grid-column:1;margin-bottom:3px}
  .kv-table--grid td.kv-c-end{grid-column:2;grid-row:1;text-align:right!important;font-size:15px;line-height:1.2}
  .kv-table--grid td.kv-c-islem{display:flex;justify-content:flex-end;align-self:end;margin-top:5px}
  .kv-table--grid td[data-label]{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;column-gap:10px;text-align:left!important}
  .kv-table--grid td[data-label]::before{content:attr(data-label);font-size:12.5px;color:var(--kv-muted);line-height:22px}
  .kv-table--grid td[data-label]>.btn{justify-self:start}
  .kv-table--grid td.dataTables_empty{grid-column:1/-1;padding:28px 0!important}
  .kv-table--grid tbody tr:has(td.dataTables_empty){display:block;grid-column:1/-1;padding:0;border:0;box-shadow:none}
}

/* ---------- Genel kart görünümü (telefonda satır → kart) ----------
   <table class="kv-table kv-table--cards">; hücrelere data-label verilir.
   kv-c-title: kartın başlığı, kv-c-end: sağ üst (tutar vb.), kv-c-islem: alttaki işlemler. */
@media (max-width:767.98px){
  .kv-table--cards thead,.kv-table--cards tfoot{display:none}
  .kv-table--cards,.kv-table--cards tbody{display:block}
  .kv-table-wrap--cards{overflow:visible}
  .kv-table--cards tbody{border-top:1px solid var(--kv-line)}
  .kv-table--cards tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--kv-line)}
  .kv-table--cards tbody tr:last-child{border-bottom:0}
  .kv-table--cards tbody tr.is-overdue{box-shadow:inset 3px 0 0 var(--kv-red)}
  .kv-table--cards tbody tr.is-overdue>td:first-child{box-shadow:none}
  .kv-table--cards tbody td{display:block;padding:0!important;border:0;grid-column:1/-1;min-width:0}
  .kv-table--cards td.kv-c-title{grid-column:1;font-weight:600}
  .kv-table--cards td.kv-c-end{grid-column:2;grid-row:1;text-align:right!important}
  .kv-table--cards td.kv-c-islem{display:flex;justify-content:flex-end;margin-top:4px}
  .kv-table--cards td[data-label]{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:start;column-gap:10px}
  .kv-table--cards td[data-label]::before{content:attr(data-label);font-size:12.5px;color:var(--kv-muted);line-height:22px}
  .kv-table--cards td[data-label=""]{display:block}
  .kv-table--cards td[data-label=""]::before{display:none}
  .kv-table--cards td.dataTables_empty{padding:28px 0!important}
}

/* ---------- Duyarlı düzen ---------- */
@media (max-width:1199.98px){
  .kv-content{padding:24px 24px 48px}
  .kv-topbar{padding:0 24px}
}
@media (max-width:991.98px){
  .kv-topbar{padding:0 12px 0 8px;height:58px;gap:6px}
  .kv-shell{padding-bottom:calc(var(--kv-tabbar-h) + 12px + env(safe-area-inset-bottom))}
  .kv-content{padding:20px 16px 24px}
  .kv-page-head{align-items:flex-start;margin-bottom:18px}
  .kv-page-head h1{font-size:23px}
  .kv-page-head p{font-size:13.5px}
}
@media (max-width:767.98px){
  .kv-row--overdue{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"thumb main amount" ". status action";padding:14px 16px}
  .kv-row--vacant{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"thumb main amount" "thumb main action";row-gap:8px;align-items:start;padding:14px 16px}
  .kv-row--vacant .kv-thumb{align-self:start}
  .kv-status{flex-direction:row;align-items:center;gap:8px}
  .kv-status small{display:none}
  .kv-sub{align-items:flex-start}
  .kv-sub>span:last-child{white-space:normal}
  .kv-sub .kv-av-stack,.kv-sub>.kv-av,.kv-sub>.ti{margin-top:-1px}
  .kv-card-head{padding:16px 16px 12px}
  .kv-card-body{padding:0 16px 16px}
  .kv-card-head--line+.kv-card-body,.kv-card-body--pad{padding:16px}
  .kv-card-foot{padding:12px 16px}
  .kv-expiry{padding:2px 16px 0}
  .kv-hint{margin:14px 16px 16px}
  .kv-quick{padding:0 6px 10px}
  .kv-form-section{padding:16px}
  .kv-form-actions{padding:12px 16px}
  /* birden çok işlemli detay başlığı: ana düğme tam satır en üstte, diğerleri altında yan yana */
  .kv-page-head--detail{flex-direction:column;align-items:stretch}
  .kv-page-head--detail .kv-page-actions{justify-content:stretch}
  .kv-page-head--detail .kv-page-actions .btn{flex:1 1 auto}
  .kv-page-head--detail .kv-page-actions .btn-primary{order:-1;flex-basis:100%}
  .kv-dl{grid-template-columns:minmax(0,1fr)}
  .kv-dl>dt{padding-bottom:0}
  .kv-dl>dd{border-top:0;padding-top:2px}
  .kv-dl>dt:first-of-type{border-top:0}

  /* sekme şeridi de yatay kayar; sağ kenarda solarak devamı olduğunu gösterir (kv-chips ile aynı) */
  .kv-tabs{padding:0 32px 0 16px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
  .kv-tabs a,.kv-tabs button{margin-right:14px}
  .kv-toolbar{padding:12px 16px 14px}
  .kv-search{max-width:none;flex-basis:100%}
  /* filtre şeridi yatay kayar; sağ kenarda solarak devamı olduğunu gösterir */
  .kv-chips{overflow-x:auto;margin:0 -16px;padding:0 44px 2px 16px;scrollbar-width:none;width:calc(100% + 32px);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
  .kv-chips::-webkit-scrollbar{display:none}
  .kv-toolbar-meta{display:none}

  .kv-table--contracts tbody{grid-template-columns:minmax(0,1fr);gap:0;padding:0}
  .kv-table--contracts tbody tr{border:0;border-bottom:1px solid var(--kv-line);border-radius:0;box-shadow:none}
  .kv-table--contracts tbody tr.is-overdue{box-shadow:inset 3px 0 0 var(--kv-red)}
  .kv-table--contracts tbody tr:last-child{border-bottom:0}
  .kv-table--contracts .kv-c-mulk,.kv-table--contracts .kv-c-kira{padding:0}
  .kv-dt-foot{flex-direction:column;align-items:stretch;text-align:center;padding:12px 16px}
  .kv-dt-nav{margin:0;justify-content:center}
}
@media (max-width:575.98px){
  /* iOS Safari 16px altındaki alanlara odaklanınca sayfayı büyütür */
  .form-control,.form-select{font-size:16px}
  /* form düğmeleri: ana işlem tam satır en üstte, diğerleri (Sil, Vazgeç) altında yan yana */
  .kv-form-actions>*{flex:1 1 0}
  .kv-form-actions>.btn-primary{order:-1;flex-basis:100%}
  .kv-form-actions>.me-auto{margin-right:0!important}
  .kv-form-actions>span>.btn{width:100%}
  .kv-stat{padding:14px 14px 13px}
  .kv-stat-top{align-items:flex-start;margin-bottom:6px;gap:8px}
  .kv-stat-label{font-size:12.5px;line-height:1.3;padding-top:1px}
  .kv-stat-icon{width:28px;height:28px;font-size:15px;border-radius:8px}
  .kv-stat-value{font-size:23px}
  .kv-stat-value--multi{font-size:17px}
  .kv-stat-sub{font-size:12px;padding-top:10px;line-height:1.35}
  .kv-note{align-items:flex-start;gap:5px}
  .kv-note .ti{font-size:14px;margin-top:1px}
  .kv-legend{gap:10px}
  .kv-notif{width:calc(100vw - 24px)}
  .kv-expiry-actions .btn{max-width:none}
}

/* ---------- Dokunmatik ekranda dokunma alanları (en az 40px) ---------- */
/* küçük düğmelerin görünümü aynı kalır; dokunma alanı ::after ile büyütülür */
@media (pointer:coarse),(max-width:767.98px){
  .btn{min-height:40px}
  .btn-sm{min-height:36px}
  .kv-row-actions .btn-sm,.kv-action .btn-sm,.kv-expiry-actions .btn-sm{min-height:40px}
  .kv-icon-btn::after{content:"";position:absolute;inset:-1px}
  .kv-icon-btn--sm{position:relative}
  .kv-icon-btn--sm::after{content:"";position:absolute;inset:-6px}
  .kv-nav-add{width:34px;height:34px;right:2px}
  .kv-nav-item.has-add .kv-nav-link{padding-right:44px}
  .kv-nav-link{min-height:42px}
  .kv-chip{min-height:40px}
  .kv-dt-foot .page-link{min-width:40px;min-height:40px;display:grid;place-items:center}
  .kv-dt-nav .dataTables_length select{min-height:40px}
  .btn-close,.kv-brand .btn-close,.modal-header .btn-close{width:14px;height:14px;padding:13px;background-size:14px}
  .kv-back{position:relative}
  .kv-back::after{content:"";position:absolute;inset:-10px -8px}
  .kv-contact-tel,.kv-cl-tel{position:relative;min-height:28px}
  .kv-contact-tel::after,.kv-cl-tel::after{content:"";position:absolute;inset:-6px -4px}
}

/* ---------- Yazdırma ---------- */
@media print{
  .kv-sidebar,.kv-topbar,.kv-tabbar,.kv-page-actions,.kv-row-actions,.kv-toolbar,.kv-dt-foot,.kv-flash,.modal,.offcanvas,.no-print,.btn{display:none!important}
  .kv-shell{margin:0!important;padding:0!important}
  .kv-content{padding:0!important;max-width:none}
  .kv-card,.kv-stat{box-shadow:none;break-inside:avoid}
  body{background:#fff}
  a{color:inherit}
}

/* musteriler */
.kv-cl-tel{display:inline-flex;align-items:center;gap:6px;color:var(--kv-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.kv-cl-tel .ti{font-size:15px;color:var(--kv-faint)}
.kv-cl-tel:hover,.kv-cl-tel:hover .ti{color:var(--kv-accent)}
.kv-cl-name{display:flex;align-items:center;gap:12px}
.kv-cl-name>span:last-child{min-width:0;overflow-wrap:anywhere}
.kv-cl-name .kv-av{width:40px;height:40px;font-size:14px}
.kv-cl-refs .kv-empty{padding:20px 20px 24px}
@media (max-width:767.98px){
  .kv-table--clients td.kv-c-islem{grid-column:2;grid-row:1;margin-top:0;align-self:center}
}

/* kira-takibi */
.kv-table--follow .kv-prop{align-items:center}
.kv-contact{display:flex;align-items:center;gap:10px;min-width:0}
.kv-contact>.min-w-0{display:flex;flex-direction:column;align-items:flex-start;line-height:1.35}
.kv-contact-name{max-width:100%;color:var(--kv-ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-contact-name:hover{color:var(--kv-accent)}
.kv-contact-tel{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--kv-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.kv-contact-tel:hover{color:var(--kv-accent)}
.kv-contact-tel .ti{font-size:13px;color:var(--kv-faint)}
.kv-due{display:flex;flex-direction:column;align-items:flex-start;line-height:1.35}
.kv-due-month{color:var(--kv-ink);font-weight:500;white-space:nowrap}
.kv-due .kv-cell-sub{margin-top:1px;white-space:nowrap;font-variant-numeric:tabular-nums}
.kv-due-flag{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-top:7px}
.kv-due-flag small{font-size:12px;color:var(--kv-muted)}
.kv-table--follow td.text-end{color:var(--kv-ink);white-space:nowrap}
.kv-c-kalan strong{font-weight:650;color:var(--kv-ink)}
.kv-c-kalan strong.kv-text-danger{color:var(--kv-red-text)}
.kv-c-kalan small{display:block;font-size:12px;color:var(--kv-muted);margin-top:1px}
@media (min-width:768px) and (max-width:1279.98px){
  .kv-table--follow tbody tr{grid-template-rows:auto auto auto auto auto 1fr}
}
@media (max-width:1279.98px){
  .kv-table--follow td.kv-c-end{font-size:15px;line-height:1.25}
  .kv-table--follow td[data-label] .kv-av{width:26px;height:26px;font-size:10.5px}
  .kv-table--follow .kv-contact{gap:8px}
}
@media (max-width:767.98px){
  .kv-table--follow td.text-end[data-label]{text-align:left!important}
}

/* giris-sayfalari */
/* Giriş, kayıt, şifremi unuttum ve iki adımlı doğrulama (app/auth_head.php + app/auth_foot.php).
   Genişte solda lacivert tanıtım alanı, sağda form; telefonda yalnız form. */
.kv-auth{display:flex;min-height:100vh;min-height:100dvh;background:#fff}
.kv-auth-side{display:none}
@media (min-width:992px){
  .kv-auth-side{position:relative;display:flex;flex-direction:column;flex:0 0 42%;max-width:560px;padding:28px 44px 44px;overflow:hidden;color:var(--kv-navy-text);background:radial-gradient(90% 60% at 0% 100%,rgba(47,91,216,.34),transparent 70%),var(--kv-navy)}
}
.kv-auth-side .kv-brand{padding:0}
.kv-auth-pitch{position:relative;z-index:1;margin-top:auto;max-width:400px}
.kv-auth-pitch h2{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.2;color:#fff;margin:0 0 12px}
.kv-auth-pitch p{font-size:15px;line-height:1.55;margin:0}
.kv-auth-art{position:absolute;right:-72px;top:160px;width:400px;height:400px;color:#fff;opacity:.04;pointer-events:none}

.kv-auth-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:20px 16px calc(16px + env(safe-area-inset-bottom))}
.kv-auth-top{display:flex;align-items:center;gap:10px;min-width:0;font-weight:650;font-size:16px;letter-spacing:-.01em;color:var(--kv-ink)}
.kv-auth-top>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-auth-top .kv-logo{width:28px;height:28px}
.kv-auth-box{width:100%;max-width:400px;margin:32px auto}
.kv-auth-box--wide{max-width:520px}
@media (min-width:576px){
  .kv-auth-main{padding:24px 32px 20px}
  .kv-auth-box{margin:auto;padding:40px 0}
}
@media (min-width:992px){
  .kv-auth-main{padding:32px 48px 24px}
  .kv-auth-top{display:none}
}
.kv-auth-firm{display:none;align-items:center;gap:10px;min-width:0;margin-bottom:28px}
@media (min-width:992px){.kv-auth-firm{display:flex}}
.kv-auth-firm-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.kv-auth-firm-text strong{font-size:14px;font-weight:600;color:var(--kv-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-auth-firm-text small{font-size:12.5px;color:var(--kv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-auth-title{font-size:26px;font-weight:700;letter-spacing:-.025em;color:var(--kv-ink);margin:0 0 6px}
.kv-auth-lead{font-size:14px;color:var(--kv-muted);margin:0 0 24px;overflow-wrap:anywhere}
.kv-auth-lead>.ti{font-size:16px;color:var(--kv-faint);margin-right:6px;vertical-align:-3px}
.kv-auth-text,.kv-totp-text{color:var(--kv-text);margin:0 0 20px}
.kv-auth-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.kv-auth-label .kv-link{font-weight:500}
.kv-auth-or{display:flex;align-items:center;gap:12px;margin:18px 0;font-size:12.5px;color:var(--kv-muted)}
.kv-auth-or::before,.kv-auth-or::after{content:"";flex:1;height:1px;background:var(--kv-line)}
.btn-quiet.btn-google .ti{color:var(--kv-ink)}
.kv-auth-alt{margin:24px 0 0;text-align:center;font-size:14px;color:var(--kv-muted)}
.kv-auth-alt a{font-weight:600;white-space:nowrap}
.kv-auth-alt--split{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0}
.kv-auth-sep{margin:0 10px;color:var(--kv-faint)}
.kv-auth-note{display:flex;gap:12px;padding:14px 16px;margin-bottom:12px;border:1px solid var(--kv-line);border-radius:12px;background:var(--kv-surface);color:var(--kv-text)}
.kv-auth-note>.ti{font-size:20px;color:var(--kv-accent);flex:none;margin-top:1px}
.kv-auth-note p{margin:0}
.kv-auth-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-top:auto;font-size:12.5px}
.kv-auth-foot a{display:inline-flex;align-items:center;gap:5px;color:var(--kv-muted)}
.kv-auth-foot a:hover{color:var(--kv-ink)}
.kv-auth-foot .ti{font-size:15px}

/* İki adımlı doğrulama (lib/totp_views.php; yönetim panelinde de kullanılır) */
.kv-steps{list-style:none;counter-reset:kv-step;margin:0;padding:0}
.kv-steps>li{position:relative;counter-increment:kv-step;padding-left:40px;color:var(--kv-text)}
.kv-steps>li+li{margin-top:20px}
.kv-steps>li::before{content:counter(kv-step);position:absolute;left:0;top:-2px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:var(--kv-accent);background:var(--kv-accent-50);border:1px solid var(--kv-accent-100)}
.kv-steps-label{display:block;margin-bottom:10px}
.kv-qr{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:12px;padding:16px;border:1px solid var(--kv-line);border-radius:12px;background:var(--kv-surface);text-align:center}
.kv-qr .qr-box{width:188px;padding:6px;border:1px solid var(--kv-line);border-radius:10px}
.kv-qr p{margin:0;font-size:13px;color:var(--kv-muted)}
.kv-qr .totp-key{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:8px;background:#fff;border:1px solid var(--kv-line);color:var(--kv-ink);font-size:14px;font-weight:600;letter-spacing:.05em}
.kv-codes.recovery-codes{column-count:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:12px;border:1px solid var(--kv-line);border-radius:12px;background:var(--kv-surface)}
.kv-codes.recovery-codes li{padding:7px 4px;border-radius:8px;background:#fff;border:1px solid var(--kv-line-soft);color:var(--kv-ink);font-size:15px;font-weight:600;letter-spacing:.04em;text-align:center}
.kv-codes-actions{display:flex;gap:8px;margin-bottom:12px}
.kv-codes-actions .btn{flex:1 1 0}
.kv-totp-links{display:flex;flex-direction:column;align-items:center;gap:8px;margin:20px 0 0;font-size:13.5px;text-align:center}
.kv-totp-links a:not(.text-muted){font-weight:600}
@media (max-width:575.98px){
  .kv-auth-alt--split{flex-direction:column;align-items:center}
  .kv-auth-alt--split .kv-auth-sep{display:none}
}
@media print{
  .kv-auth-side,.kv-auth-top,.kv-auth-foot,.kv-totp-links{display:none!important}
  .kv-auth-box{margin:0;max-width:none}
  .kv-auth-firm{display:flex}
}

/* mulkler */
.kv-estate-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-table--estates .kv-prop .kv-cell-sub{font-weight:400}
.kv-table--estates .kv-c-adres{min-width:170px}
.kv-table--estates .kv-c-kira{font-weight:650;color:var(--kv-ink)}
.kv-table--estates .kv-c-kira small{display:none}
.kv-table--estates td.text-end{white-space:nowrap}
.kv-tenants{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.kv-cell-link{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--kv-accent);white-space:nowrap}
.kv-cell-link .ti{font-size:14px}
.kv-cell-link:hover{color:var(--kv-accent-press)}
.kv-row--history{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main status" "term term";align-items:start}
.kv-row--history .kv-term{grid-area:term}
.kv-row--history .kv-term .kv-meter{max-width:none}
.ui-autocomplete .kv-ac-person{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ui-autocomplete .kv-ac-person small{color:var(--kv-muted);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ui-autocomplete .kv-ac-person.ui-state-active small{color:inherit}
@media (min-width:768px) and (max-width:1279.98px){
  .kv-table--estates tbody tr{grid-template-rows:repeat(7,auto) 1fr}
}
@media (max-width:1279.98px){
  .kv-table--estates td.kv-c-kira small{display:block;font-size:11.5px;font-weight:500;color:var(--kv-muted);margin-top:2px}
}
@media (max-width:767.98px){
  .kv-table--estates td.kv-c-kira{font-size:15px;line-height:1.2}
  .kv-table--estates td.text-end[data-label]{text-align:left!important}
  .kv-table--estates td[data-label]>.btn{justify-self:start}
  .kv-row--history{padding:14px 16px}
}

/* kullanici-profil-hesap */
/* Kullanıcılar: yetki anahtarı. Düğmenin metni "Evet"/"Hayır" kalır, anahtar görünümü ::before/::after ile çizilir */
.kv-switch{position:relative;display:inline-flex;align-items:center;min-height:24px;padding:0 0 0 44px;margin:0;border:0;background:none;font-size:13px;font-weight:500;line-height:1.2;color:var(--kv-muted);white-space:nowrap;cursor:pointer}
.kv-switch::before{content:"";position:absolute;left:0;top:50%;width:34px;height:20px;margin-top:-10px;border-radius:999px;background:#d5dae3;transition:background .15s}
.kv-switch::after{content:"";position:absolute;left:3px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(15,27,61,.25);transition:transform .15s}
.kv-switch:hover::before{background:#c5ccd9}
.kv-switch[aria-pressed="true"]{color:var(--kv-ink)}
.kv-switch[aria-pressed="true"]::before{background:var(--kv-accent)}
.kv-switch[aria-pressed="true"]:hover::before{background:var(--kv-accent-hover)}
.kv-switch[aria-pressed="true"]::after{transform:translateX(14px)}
.kv-switch:disabled{cursor:progress;opacity:.6}
.kv-switch:focus-visible{outline:2px solid var(--kv-accent);outline-offset:3px;border-radius:999px}
.kv-user-cell{display:flex;align-items:center;gap:12px;min-width:0;max-width:340px}
.kv-user-name{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-weight:600;color:var(--kv-ink)}
.kv-user-cell .kv-cell-sub{font-weight:400}
.kv-login-methods{display:flex;flex-wrap:wrap;gap:4px 12px}
.kv-login-methods span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.kv-login-methods .ti{font-size:15px;color:var(--kv-faint)}
.kv-owner-note{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:13px}
.kv-badge--icon::before{display:none}
.kv-badge--icon .ti{font-size:13px;margin-left:-1px}
.kv-table tbody tr.is-pending>td:first-child{box-shadow:inset 3px 0 0 var(--kv-amber)}
/* Profil ve abonelik kartları */
.kv-card-head-main{display:flex;align-items:center;gap:12px;min-width:0}
.kv-switch-row{display:flex;align-items:flex-start;gap:12px;min-height:0;padding-left:0;margin-bottom:6px}
.kv-switch-row .form-check-input{float:none;flex:none;width:34px;height:20px;margin:0}
.kv-switch-row .form-check-label{font-weight:600;padding-top:1px}
.kv-switch-help{padding-left:46px}
.kv-form-note{display:flex;align-items:center;gap:6px}
.kv-form-note .ti{font-size:14px}
.kv-2fa-text{max-width:720px;color:var(--kv-text)}
.kv-2fa-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:16px;font-size:13.5px;color:var(--kv-text)}
.kv-2fa-meta span{display:inline-flex;align-items:center;gap:7px}
.kv-2fa-meta .ti{font-size:17px;color:var(--kv-faint)}
.kv-2fa-meta .kv-text-warn .ti{color:#d98a0b}
.kv-2fa-box{height:100%;padding:16px;border:1px solid var(--kv-line);border-radius:10px}
.kv-2fa-box h3{font-size:14px;font-weight:650;color:var(--kv-ink);margin:0 0 4px}
.kv-2fa-box p{font-size:13px;color:var(--kv-muted);margin:0 0 14px}
.kv-checklist{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:10px}
.kv-checklist li{display:flex;align-items:flex-start;gap:10px}
.kv-checklist .ti{font-size:18px;color:var(--kv-muted);flex:none;margin-top:1px}
.kv-export-action{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-size:13px;color:var(--kv-muted)}
.kv-firm-owner{margin-top:18px;padding-top:16px;border-top:1px solid var(--kv-line-soft)}
.kv-firm-owner .form-label{display:block;margin-bottom:8px}
.kv-card--danger{border-color:var(--kv-red-line)}
.kv-card--danger .kv-card-head h2{color:var(--kv-red-text)}
.kv-card--danger .kv-card-body>p{margin-bottom:14px}
.kv-deletion-note{align-items:flex-start;margin:0}
.kv-deletion-note .ti{margin-top:2px}
.kv-slug{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600;color:var(--kv-ink)}
.kv-admin-only{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.kv-admin-only p{flex:1 1 260px;margin:0}
/* Kullanıcılar tablosu 1200 altında sığmaz: satırlar karta döner (768–1199 iki sütun, telefonda tek sütun) */
@media (max-width:1199.98px){
  .kv-table--users thead{display:none}
  .kv-table--users,.kv-table--users tbody{display:block}
  .kv-table--users tbody{border-top:1px solid var(--kv-line)}
  .kv-table--users tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--kv-line)}
  .kv-table--users tbody tr:last-child{border-bottom:0}
  .kv-table--users tbody tr.is-pending{box-shadow:inset 3px 0 0 var(--kv-amber)}
  .kv-table--users tbody tr.is-pending>td:first-child{box-shadow:none}
  .kv-table--users tbody td{display:block;padding:0!important;border:0;grid-column:1/-1;min-width:0}
  .kv-table--users td.kv-c-title{grid-column:1;margin-bottom:4px}
  .kv-table--users td.kv-c-end{grid-column:2;grid-row:1}
  .kv-table--users td[data-label]{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:start;column-gap:10px}
  .kv-table--users td[data-label]::before{content:attr(data-label);font-size:12.5px;color:var(--kv-muted);line-height:22px}
  .kv-table--users td[data-label]>.kv-badge,.kv-table--users td[data-label]>.kv-switch{justify-self:start}
  .kv-user-cell{max-width:none}
}
@media (min-width:768px) and (max-width:1199.98px){
  .kv-table--users tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px}
  .kv-table--users tbody tr,.kv-table--users tbody tr:last-child{border:1px solid var(--kv-line);border-radius:12px;box-shadow:var(--kv-shadow);padding:16px}
  .kv-table--users tbody tr:hover{background:#fff}
  .kv-table--users tbody tr.is-pending{box-shadow:inset 3px 0 0 var(--kv-amber),var(--kv-shadow)}
}
@media (max-width:767.98px){
  .kv-2fa-box{padding:14px}
}
@media (max-width:575.98px){
  .kv-card-head-main>.kv-thumb{display:none}
}

/* sozlesme-formlari */
/* Sözleşme detayı (contracts.php?edit) ve sözleşme oluşturma formu (estates.php?rent) */
.kv-year-tag{min-width:64px;justify-content:center}
.kv-card-toggle p{font-size:13px;font-weight:400;color:var(--kv-muted);margin:3px 0 0}
.kv-icon-btn.is-danger:hover{background:var(--kv-red-50);border-color:var(--kv-red-line);color:var(--kv-red-text)}
.kv-more .ti{transition:transform .2s}
.kv-more[aria-expanded="true"] .ti{transform:rotate(180deg)}
.kv-more[aria-expanded="true"] .kv-more-closed,.kv-more[aria-expanded="false"] .kv-more-open{display:none}
.kv-pay-table tbody+tbody tr:first-child>td{border-top:1px solid var(--kv-line-soft)}
.kv-plan-table tbody td,.kv-plan-table thead th{padding-left:10px;padding-right:10px}
@media (max-width:767.98px){
  .kv-pay-table tbody tr{grid-template-columns:minmax(0,1fr) auto;align-items:start;row-gap:4px}
  .kv-pay-table td.kv-c-title{grid-column:1;grid-row:1}
  .kv-pay-table td.kv-c-end{grid-column:2;grid-row:1}
  .kv-pay-table td.kv-c-method{grid-column:1/-1;grid-row:2}
  .kv-pay-table td.kv-c-note{grid-column:1/-1;grid-row:3}
  .kv-pay-table td.kv-c-note:empty{display:none}
  .kv-pay-table td.kv-c-islem{grid-column:1/-1;grid-row:4;margin-top:2px}
  .kv-pay-table tbody+tbody tr:first-child>td{border-top:0}
}
.kv-pay-table td.kv-c-islem .kv-row-actions{flex-wrap:nowrap}

/* yonetim-paneli */
/* Platform yönetim paneli (platform/admin_head.php): firma uygulamasıyla aynı iskelet, "Yönetim" etiketiyle ayrılır. */
.kv-adm-tag{display:inline-flex;align-items:center;flex:none;padding:0 7px;border-radius:6px;font-size:11px;font-weight:650;line-height:20px;letter-spacing:.02em;color:var(--kv-accent);background:var(--kv-accent-50);border:1px solid var(--kv-accent-100)}
.kv-side .kv-adm-tag,.kv-auth-side .kv-adm-tag{color:#fff;background:rgba(128,160,255,.2);border-color:rgba(142,174,255,.35)}
.kv-auth-top .kv-adm-tag{overflow:visible}
.kv-adm-mark{background:linear-gradient(140deg,#5b83f5,#2f5bd8);color:#fff;font-size:17px}
.kv-tabbar--4{grid-template-columns:repeat(4,1fr)}
.kv-adm-code{display:inline-block;overflow-wrap:anywhere;font-size:12.5px;padding:1px 6px;border-radius:6px;background:var(--kv-surface);border:1px solid var(--kv-line);color:var(--kv-ink)}
.kv-adm-wrap{overflow-wrap:anywhere}
.kv-adm-email{white-space:nowrap}
.kv-adm-name{display:block;overflow-wrap:anywhere}
.kv-adm-action{font-weight:600;color:var(--kv-ink);overflow-wrap:anywhere}
.kv-adm-subject{font-weight:600;overflow-wrap:anywhere}
.kv-adm-mail{display:block;width:100%;height:420px;border:1px solid var(--kv-line-soft);border-radius:10px;background:#fff}
.kv-table--adm tbody tr.is-selected{background:var(--kv-accent-50)}
.kv-adm .kv-page-head h1{overflow-wrap:anywhere}
/* özet: firma satırları (ikon | ad | durum ve işlem) */
.kv-row--adm{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"thumb main aside"}
.kv-row--adm .kv-sub+.kv-sub{margin-top:2px}
.kv-adm-aside{grid-area:aside;display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}
.kv-adm-aside small{font-size:12.5px;color:var(--kv-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
/* firma detayı: solda bilgiler, sağda işlemler; dar ekranda önem sırasıyla tek sütun */
@media (min-width:1200px){
  .kv-dash--adm{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .kv-dash--adm .kv-dash-col>.kv-card:last-child:not(:only-child){flex:none}
}
.kv-dash--adm .kv-card+.kv-card{margin-top:0}
/* işlem düğmeli uyarı (silme talebi) */
.kv-adm-alert{align-items:center}
.kv-adm-alert>form{flex:none}
@media (max-width:767.98px){
  .kv-row--adm{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"thumb main" ". aside";padding:14px 16px}
  .kv-row--adm .kv-thumb{align-self:start}
  .kv-adm-aside{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px;text-align:left}
  .kv-row--adm .kv-sub>span:last-child{overflow-wrap:anywhere}
  .kv-table--adm td.kv-c-title{grid-row:1}
  .kv-table--adm td[data-label]:empty,.kv-table--adm td.kv-c-islem:empty{display:none}
  .kv-adm-email{white-space:normal;overflow-wrap:anywhere}
  .kv-adm-mail{height:360px}
}
@media (max-width:575.98px){
  .kv-adm-alert{flex-wrap:wrap;row-gap:10px}
  .kv-adm-alert>div{flex-basis:calc(100% - 29px)}
  .kv-adm-alert>form{margin-left:29px}
}

/* ==========================================================
   İşlem geçmişi, kişi formu ek alanları, IBAN değişiklikleri (G1)
   ========================================================== */
.kv-dash .kv-o-5{order:5}
/* form içindeki bilgi notu ve salt okunur değer */
.kv-hint--form{margin:14px 0 0}
.kv-hint--top{margin:16px 20px 4px;padding:0;border-top:0}
.kv-dl--form{grid-template-columns:minmax(80px,140px) minmax(0,1fr)}
.kv-dl--form>dt,.kv-dl--form>dd{padding:4px 0;border-top:0}
.kv-cl-mail a{color:var(--kv-ink);overflow-wrap:anywhere}
.kv-cl-mail a:hover{color:var(--kv-accent)}
/* anasayfa: değişen IBAN'lar */
.kv-row--iban{grid-template-columns:34px minmax(0,1fr);grid-template-areas:"thumb main";align-items:start;padding:12px 20px}
.kv-row--iban .kv-sub{margin-top:2px}
/* işlem geçmişi filtreleri */
.kv-filters{padding:16px 20px;border-bottom:1px solid var(--kv-line-soft)}
.kv-filters .form-label{font-size:12.5px;font-weight:600;color:var(--kv-muted);margin-bottom:4px}
.kv-filters-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kv-filters-note{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-top:12px;padding:8px 12px;border-radius:8px;background:var(--kv-accent-50);color:var(--kv-ink);font-size:13px}
.kv-filters-note .ti{color:var(--kv-accent);font-size:16px}
.kv-filters-note a{font-weight:600}
/* işlem geçmişi tablosu */
.kv-table--activity td{vertical-align:top}
.kv-act-rec{min-width:0}
.kv-act-rec a,.kv-act-rec>span:last-child{display:block;font-weight:600;color:var(--kv-ink);overflow-wrap:anywhere}
.kv-act-rec a:hover{color:var(--kv-accent)}
.kv-act-ent{display:block;font-size:12px;font-weight:500;color:var(--kv-muted)}
.kv-act-user{overflow-wrap:anywhere}
.kv-act-chg{min-width:260px}
.kv-chg-toggle{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 4px;border:0;background:none;color:var(--kv-accent);font-weight:600;font-size:13px}
.kv-chg-toggle .ti{font-size:15px;transition:transform .15s}
.kv-chg-toggle:not(.collapsed) .ti{transform:rotate(180deg)}
.kv-chg{display:grid;grid-template-columns:minmax(100px,160px) minmax(0,1fr) minmax(0,1fr);margin:4px 0 8px;border:1px solid var(--kv-line-soft);border-radius:8px;font-size:13px;overflow:hidden}
.kv-chg-row{display:contents}
.kv-chg-row>span{padding:6px 10px;border-top:1px solid var(--kv-line-soft);overflow-wrap:anywhere;min-width:0}
.kv-chg-head>span{border-top:0;background:var(--kv-surface);font-size:12px;font-weight:600;color:var(--kv-muted)}
.kv-chg-row>span:first-child{color:var(--kv-muted);font-weight:500}
.kv-chg-wide{grid-column:span 2}
.kv-chg-raw{margin:4px 0 8px;font-size:13px;color:var(--kv-muted);overflow-wrap:anywhere}
.kv-chg-ip{font-size:12px;color:var(--kv-faint);margin-bottom:6px}
/* sayfalama */
.kv-pager-nav{display:flex;align-items:center;gap:8px}
.kv-pager-page{font-variant-numeric:tabular-nums}
@media (max-width:767.98px){
  .kv-filters{padding:14px 16px}
  .kv-filters-actions .btn{flex:1 1 0;min-height:40px}
  .kv-filters-actions .kv-toolbar-meta{display:block;flex-basis:100%;margin-left:0;text-align:center}
  .kv-hint--top{margin:14px 16px 4px}
  .kv-row--iban{padding:12px 16px}
  .kv-table--activity td.kv-c-title{order:-1}
  .kv-table--activity td.kv-c-end{order:-1}
  .kv-act-chg{min-width:0}
  .kv-act-chg:has(.kv-act-none){display:none!important}
  .kv-chg{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .kv-chg-head{display:none}
  .kv-chg-row>span:first-child{grid-column:1/-1;padding-bottom:0;font-size:12px}
  .kv-chg-row>span+span{border-top:0}
  .kv-chg-row>span[data-k]::before{content:attr(data-k) ": ";color:var(--kv-faint);font-size:12px}
  .kv-chg-head+.kv-chg-row>span:first-child{border-top:0}
  .kv-pager{justify-content:center}
  .kv-pager-nav .btn{min-height:40px}
}

/* ==========================================================
   G2: TÜFE ile yasal artış ve yenileme
   ========================================================== */
/* hukuki notlar (app/yasal_metinler.php): uyarı kutularında ve kartlarda küçük yazı */
.kv-legal{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--kv-muted)}
.kv-legal p{margin:0}
.kv-legal p+p{margin-top:4px}
.alert .kv-legal{color:inherit;opacity:.9}
.kv-form-note{display:flex;align-items:flex-start;gap:6px;margin:8px 0 0;font-size:13px;color:var(--kv-accent-press,#23409e)}
.kv-form-note .ti{font-size:15px;flex:none;margin-top:1px}
.kv-radio-list{display:flex;flex-direction:column;gap:6px}
.kv-radio-list .form-check{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-height:32px;margin:0;padding-left:0}
.kv-radio-list .form-check-input{float:none;margin:0;flex:none}
.kv-radio-list .form-check-label{margin:0}
.kv-ff-month{width:auto;max-width:170px}
.kv-year-note{min-height:0;margin-top:3px;font-size:12px;color:var(--kv-muted)}
.kv-year-note:empty{display:none}
.kv-link--sm{margin-top:6px;font-size:12.5px}
.kv-expiry-note{margin:10px 0 0;font-size:12.5px;color:var(--kv-muted);line-height:1.45}

/* Kira artışları: yıl dönümü ve süre sonu satırları */
.kv-inc-intro p{margin:0}
.kv-inc-list>.kv-inc{padding:16px 20px;border-top:1px solid var(--kv-line-soft)}
.kv-inc-list>.kv-inc:first-child{border-top:0}
.kv-inc-top{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"thumb main badge";align-items:center;column-gap:12px}
.kv-inc-top .kv-badge{grid-area:badge}
.kv-facts--inc{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:12px}
.kv-inc--decide .kv-facts--inc{grid-template-columns:repeat(4,minmax(0,1fr))}
.kv-facts-sub{font-weight:500;color:var(--kv-muted);font-size:12px}
.kv-inc-cap dd{color:var(--kv-accent-press,#23409e)}
.kv-inc-label{margin:10px 0 0;font-size:13px;font-weight:500;color:var(--kv-text)}
.kv-inc-label.kv-text-warn{font-weight:600}
.kv-inc-entered{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:13.5px;font-weight:600;color:var(--kv-green-text)}
.kv-inc-entered .ti{font-size:16px}
.kv-inc-entered.is-warn{color:var(--kv-amber-text)}
.kv-inc-form{margin-top:12px}
.kv-inc-form .form-label{font-size:12.5px;font-weight:600;color:var(--kv-muted);margin-bottom:4px}
.kv-inc-inputs{display:flex;align-items:stretch;gap:8px;max-width:420px}
.kv-inc-inputs .input-group{flex:1 1 auto;min-width:0}
.kv-inc-inputs .btn{flex:none}
.kv-inc .kv-expiry-actions{margin-top:12px}
@media (max-width:991.98px){
  .kv-facts--inc,.kv-inc--decide .kv-facts--inc{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767.98px){
  .kv-inc-list>.kv-inc{padding:14px 16px}
  .kv-inc-inputs{max-width:none}
  .kv-inc-inputs .btn{min-height:40px}
  .kv-inc .kv-expiry-actions{flex-direction:column}
  .kv-inc .kv-expiry-actions .btn{max-width:none;min-height:40px}
  .kv-radio-list .form-check{min-height:40px}
}
.kv-dl .kv-term-sub{white-space:normal}
@media (max-width:767.98px){#datatbl_cpi td.kv-cpi-empty{display:none!important}}

/* ==========================================================
   G4: Yasal uyarılar ve vergi
   ========================================================== */
/* yan yana radyo seçenekleri (kefalet türü, girilen kira) */
.kv-radio-row{display:flex;flex-wrap:wrap;gap:4px 24px}
.kv-radio-row .form-check{display:flex;align-items:center;gap:8px;min-height:32px;margin:0;padding-left:0}
.kv-radio-row .form-check-input{float:none;margin:0;flex:none}
.kv-radio-row .form-check-label{margin:0}
#deposit_warning .alert{margin:0}
#currency_warning .alert{margin:0}
/* sözleşme detayı: vergi bilgisi kutusu */
.kv-tax-sub{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--kv-muted)}
.kv-tax-block+.kv-tax-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--kv-line-soft)}
.kv-tax-block .kv-dl{margin-bottom:0}
.kv-tax-block .alert{margin:10px 0 0}
.kv-tax-text{margin:8px 0 0;font-size:13px;color:var(--kv-text)}
.kv-tax-note{margin:0 20px 20px;padding-top:12px;border-top:1px solid var(--kv-line-soft);font-size:12.5px;color:var(--kv-muted)}
.kv-head-hint{display:inline-flex;align-items:center;gap:4px;min-height:40px;font-size:12.5px;color:var(--kv-muted);text-decoration:none}
.kv-head-hint:hover{color:var(--kv-accent)}
.kv-money-sub{display:block;font-size:12px;font-weight:500;color:var(--kv-muted)}
@media (max-width:767.98px){
  .kv-radio-row .form-check{min-height:40px}
  .kv-tax-note{margin:0 16px 16px}
}
#tax_info .kv-card-body{padding-bottom:14px}

/* ==========================================================
   G9a: İçe aktarma (public/import.php)
   ========================================================== */
.kv-thumb--ok{background:var(--kv-green-50);border-color:var(--kv-green-line);color:var(--kv-green-text)}
.kv-import-h{margin:0 0 14px;font-size:15px;font-weight:650;color:var(--kv-ink)}
.kv-import .kv-steps .btn{margin-top:2px}
.kv-import-upload{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:420px}
.kv-import-upload .form-label{margin:0}
.kv-import-upload .form-control{width:100%}
.kv-import-upload .form-text{margin:0}
.kv-import-foot{margin:12px 0 0;font-size:12.5px;color:var(--kv-muted)}
#import_columns tbody td{padding-top:9px;padding-bottom:9px}
#import_columns .kv-c-title{font-weight:600;color:var(--kv-ink);white-space:nowrap}
#import_columns tr.is-muted .kv-c-title{color:var(--kv-muted);font-weight:500}
.kv-imp-help{font-size:13px;color:var(--kv-muted)}
.kv-import-file{display:flex;align-items:center;gap:12px}
.kv-import-file h2,.kv-import-done h2{margin:0;font-size:16px;font-weight:650;color:var(--kv-ink)}
.kv-import-file p,.kv-import-done p{margin:2px 0 0;font-size:13px;color:var(--kv-muted)}
.kv-import-counts{margin:16px 0 10px;font-size:15px;font-weight:600;color:var(--kv-ink)}
.kv-import-cols{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kv-import-cols-label{font-size:13px;color:var(--kv-muted);margin-right:2px}
.kv-import-preview .alert{margin:14px 0 0}
.kv-import-toolbar{border-top:1px solid var(--kv-line-soft)}
.kv-import-toolbar .kv-chips{flex-wrap:wrap}
.kv-import-toolbar .kv-chip{min-height:36px}
.kv-table tbody tr.is-error>td:first-child{box-shadow:inset 3px 0 0 var(--kv-red)}
.kv-table--import tbody td{vertical-align:top}
.kv-table--import tbody tr[hidden]{display:none!important}
.kv-imp-line{width:1%;white-space:nowrap;color:var(--kv-muted)}
.kv-table--import td.kv-imp-nowrap{white-space:nowrap}
.kv-imp-msg{min-width:220px;font-size:13px}
.kv-imp-err,.kv-imp-note,.kv-imp-warn{display:flex;align-items:flex-start;gap:6px;line-height:1.4}
.kv-imp-err+div,.kv-imp-note+div,.kv-imp-warn+div{margin-top:4px}
.kv-imp-err{color:var(--kv-red-text)}
.kv-imp-note{color:var(--kv-muted)}
.kv-imp-warn{color:var(--kv-amber-text)}
.kv-imp-err .ti,.kv-imp-note .ti,.kv-imp-warn .ti{font-size:15px;flex:none;margin-top:1px}
.kv-import-skip{border-top:1px solid var(--kv-line)}
.kv-imp-err>div,.kv-imp-note>div,.kv-imp-warn>div{min-width:0}
.kv-imp-msg .kv-imp-legal{margin-top:3px;font-size:12px;line-height:1.45;color:var(--kv-muted)}
.kv-import-skip .form-check{min-height:28px;display:flex;align-items:center;gap:8px;padding-left:0}
.kv-import-skip .form-check-input{float:none;margin:0;flex:none}
.kv-import-skip .form-check-label{font-weight:600;color:var(--kv-ink)}
.kv-import-done{display:flex;align-items:flex-start;gap:12px}
.kv-import-links{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:16px 0 0;padding:0;font-size:14px}
.kv-import-links a{font-weight:500}
@media (max-width:767.98px){
  .kv-import-upload{max-width:none;align-items:stretch}
  .kv-import-upload .btn,.kv-import .kv-steps .btn{min-height:40px}
  .kv-import-toolbar .kv-chip{min-height:40px}
  .kv-table--cards tbody tr.is-error{box-shadow:inset 3px 0 0 var(--kv-red)}
  .kv-table--cards tbody tr.is-error>td:first-child{box-shadow:none}
  .kv-imp-msg{min-width:0}
  .kv-table--import td.kv-c-title{grid-row:1}
  .kv-table--import td.kv-imp-line{grid-row:2;text-align:left!important;width:auto}
  #import_columns .kv-c-title{white-space:normal}
  #import_columns tbody tr{padding:10px 0;gap:4px 12px}
  .kv-imp-help:empty{display:none!important}
  .kv-import-skip .form-check{min-height:40px}
}

/* tahsilat-belgeleri */
/* Makbuz, ekstre ve WhatsApp mesaj penceresi (ajax_reminder), Firma ayarları */
.kv-link-btn{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;color:var(--kv-accent);font:inherit;font-weight:600;cursor:pointer}
.kv-link-btn:hover{text-decoration:underline}
.kv-link-btn .ti{font-size:16px}
.alert .kv-link-btn.alert-link{color:inherit}
.kv-flash-links{display:inline-flex;flex-wrap:wrap;gap:4px 16px;margin-left:6px}
.kv-flash-links a{display:inline-flex;align-items:center;gap:4px}
.kv-flash-links .ti{font-size:16px}
.kv-iban-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:2px}
.kv-detail-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 16px}
.kv-wa-dialog{max-width:560px}
.kv-wa-head{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:14px;border-radius:10px;background:var(--kv-surface);border:1px solid var(--kv-line-soft)}
.kv-tabs--modal{padding:0;margin:4px 0 16px}
.kv-wa-text{font-size:14px;line-height:1.5}
.kv-wa-actions{display:flex;justify-content:flex-end;margin-top:14px}
.kv-wa-panes .kv-empty{padding:24px 0}
.wa_open.disabled{pointer-events:auto;cursor:not-allowed}
.kv-inc-wa{margin-left:8px}
.kv-inc-entered{flex-wrap:wrap}
.kv-action{gap:8px}
.kv-btn-icon{padding-left:9px;padding-right:9px}
.kv-btn-icon .ti{margin:0}
.kv-last-reminder{display:flex;align-items:center;gap:4px;font-size:12.5px}
.kv-last-reminder .ti{font-size:14px}
@media (max-width:767.98px){
  .kv-detail-actions{padding:0 16px 16px}
  .kv-detail-actions .btn{flex:1 1 auto;min-height:40px}
  .kv-wa-actions .btn{width:100%}
  .kv-flash-links{display:flex;margin:6px 0 0}
  .kv-link-btn,.kv-flash-links a{min-height:40px}
  .kv-btn-icon{min-width:40px}
  .kv-tabs--modal{padding:0 28px 0 0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  .kv-tabs--modal a{margin-right:10px;font-size:13.5px}
}

/* gider-depozito */
/* Giderler (expenses), sözleşme detayında Depozito ve Giderler kartları, Mal sahipleri (owners) */
.kv-exp-list>.kv-exp-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--kv-line-soft)}
.kv-card-head+.kv-exp-list>.kv-exp-item:first-child{border-top:1px solid var(--kv-line-soft)}
.kv-exp-item strong,.kv-exp-item a.fw-semibold{color:var(--kv-ink);font-weight:600;font-size:14px}
.kv-exp-item .kv-cell-sub{overflow-wrap:anywhere}
.kv-exp-amount{flex:none;font-weight:600;color:var(--kv-ink);white-space:nowrap}
.kv-detail-actions--foot{padding-top:14px;border-top:1px solid var(--kv-line-soft)}
.kv-card-foot+.kv-detail-actions--foot{border-top:0}
.kv-table--expenses td{vertical-align:top}
.kv-table--expenses .kv-c-title a{color:var(--kv-ink)}
.kv-table--expenses .kv-c-title a:hover{color:var(--kv-accent)}
.kv-exp-desc{max-width:280px;overflow-wrap:anywhere}
.kv-exp-status .btn{white-space:nowrap}
.kv-exp-open{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kv-exp-foot{align-items:flex-start}
.kv-exp-sums{display:flex;flex-wrap:wrap;gap:4px 18px}
.kv-exp-sums strong,.kv-exp-total strong{font-size:13.5px}
.kv-exp-total{white-space:nowrap}
#expense_form_box>.kv-card{margin-bottom:24px}
#expense_form .alert{margin:0}
.kv-dep-table td{vertical-align:top}
.kv-dep-form{padding:16px 20px 18px;border-top:1px solid var(--kv-line-soft)}
.kv-dep-form-title{margin:0 0 10px;font-size:13px;font-weight:650;color:var(--kv-ink)}
.kv-dep-form .form-label{font-size:12.5px;color:var(--kv-muted);margin-bottom:4px}
#deposit_card .alert{margin:12px 0 0}
#contract_expenses .kv-card-body .alert{margin:0}
.kv-owner-month{display:flex;align-items:center;gap:8px}
.kv-owner-month .form-control{width:auto;max-width:170px}
.kv-owner-shared{color:var(--kv-amber-text)}
.kv-table--owners .kv-person{font-weight:600}
.kv-table--owners td{vertical-align:top}
.kv-owner-dl+.kv-owner-dl{margin-top:14px;padding-top:6px;border-top:1px solid var(--kv-line)}
.kv-payout-legal{display:flex;gap:8px;margin:0 0 16px;padding:10px 12px;border-radius:10px;background:var(--kv-surface);border:1px solid var(--kv-line-soft);font-size:12.5px;line-height:1.5;color:var(--kv-muted)}
.kv-payout-legal .ti{font-size:16px;color:var(--kv-accent);flex:none;margin-top:1px}
.kv-payout-legal p{margin:0}
.kv-payout-legal.is-strong{background:var(--kv-amber-50);border-color:var(--kv-amber-line);color:var(--kv-amber-text);font-weight:500}
.kv-payout-legal.is-strong .ti{color:var(--kv-amber-text)}
@media (max-width:767.98px){
  .kv-exp-list>.kv-exp-item{padding:12px 16px}
  .kv-dep-form{padding:14px 16px 16px}
  .kv-dep-form .btn{width:100%;min-height:40px}
  .kv-exp-desc{max-width:none}
  .kv-exp-foot{flex-direction:column}
  .kv-toolbar--owners .kv-owner-month{flex-basis:100%}
  .kv-owner-month .form-control{flex:1 1 auto;max-width:none}
  .kv-owner-month .btn{min-height:40px}
  .kv-table--expenses td.kv-c-title,.kv-dep-table td.kv-c-title,.kv-table--owners td.kv-c-title{order:-1}
  .kv-table--owners td.text-end[data-label]{text-align:left!important}
  .kv-exp-status .btn{min-height:40px}
}

/* ==========================================================
   raporlar
   Raporlar (reports): grafik kartları ve altlarındaki tablolar; Mal sahipleri ekstre kartı.
   Grafik renkleri para birimini izler (currencies() sırası); paletin bitişik çiftleri renk körlüğü
   denetiminden geçti, 3:1 altı kalan yeşil için tablo görünümü her grafiğin altında.
   ========================================================== */
:root{
  --kv-chart-1:#2f5bd8;  /* TL (vurgu rengi) */
  --kv-chart-2:#e0701f;  /* USD */
  --kv-chart-3:#1baf7a;  /* EUR */
  --kv-chart-4:#8a5cd6;  /* CAD */
  --kv-chart-5:#d4507f;  /* GBP */
}
.kv-chart{position:relative;height:300px;padding:4px 20px 16px}
.kv-report-card .kv-table-wrap{border-top:1px solid var(--kv-line-soft)}
.kv-report-table thead th{border-top:0}
.kv-report-table tbody td{padding-top:10px;padding-bottom:10px}
.kv-report-table tr.is-current>td{background:var(--kv-accent-50)}
.kv-report-table .kv-cell-sub{white-space:nowrap}
.kv-report-now{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#fff;border:1px solid var(--kv-accent-100);color:var(--kv-accent);font-size:11px;font-weight:600;vertical-align:1px}
.kv-rate small{font-size:13px;font-weight:600;color:var(--kv-muted)}
.kv-rate-sep{color:var(--kv-faint);font-weight:400}
.kv-report-note{margin-top:20px}
.kv-owner-docs{display:grid;gap:14px}
.kv-owner-docs form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.kv-owner-docs .form-control,.kv-owner-docs .form-select{width:auto;min-width:150px}
@media (max-width:767.98px){
  .kv-chart{height:260px;padding:4px 12px 12px}
  .kv-report-table{font-size:13px}
  .kv-report-table thead th,.kv-report-table tbody td,.kv-report-table tfoot th,.kv-report-table tfoot td{padding:8px 10px}
  .kv-report-table tr>*:first-child{padding-left:16px}
  .kv-report-table tr>*:last-child{padding-right:16px}
  .kv-report-table .kv-cell-sub{white-space:normal;font-size:11.5px}
  .kv-report-now{margin-left:4px;padding:0 5px;font-size:10.5px}
  .kv-owner-docs form>div{flex:1 1 140px}
  .kv-owner-docs .form-control,.kv-owner-docs .form-select{width:100%;min-width:0}
  .kv-owner-docs .btn{min-height:40px;flex:1 1 100%}
}

/* ==========================================================
   mulk-karti
   Mülk kartı ve tarih takibi (G8): anasayfadaki "Yaklaşan tarihler" (sekmeli tarih satırları),
   "Bu hafta vadesi gelenler", yeni özet kutuları ve emlak vergisi bandı; mülk formu ve listesi.
   ========================================================== */
.kv-dash .kv-o-6{order:6}
/* ozet kutusu: "tahsil edilen / beklenen" ve birimli sayi */
.kv-stat-pair{white-space:nowrap}
.kv-stat-value--multi .kv-stat-pair{display:block}
.kv-stat-of{font-size:.62em;font-weight:600;letter-spacing:-.01em;color:var(--kv-muted)}
.kv-stat-of .kv-money{font-size:inherit}
.kv-stat-unit{font-size:15px;font-weight:600;letter-spacing:0;color:var(--kv-muted)}
.kv-stat-sub .kv-note+.kv-note{margin-top:4px}
/* emlak vergisi bandi (Mayis, Kasim) */
.kv-band{align-items:center}
.kv-band .btn-close{flex:none;margin-left:auto}
/* yaklasan tarihler */
.kv-dates{border-top:1px solid var(--kv-line-soft)}
.kv-dates>.kv-row:first-child{border-top:0}
.kv-row--date{grid-template-columns:46px minmax(0,1fr) auto;grid-template-areas:"tile main when";align-items:start}
.kv-date-tile{grid-area:tile;width:46px;height:46px;border-radius:10px;border:1px solid var(--kv-line-soft);background:var(--kv-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;color:var(--kv-ink)}
.kv-date-tile b{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.kv-date-tile small{margin-top:3px;font-size:11px;font-weight:600;color:var(--kv-muted);white-space:nowrap}
.kv-date-tile.is-warn{background:var(--kv-amber-50);border-color:var(--kv-amber-line);color:#8a5204}
.kv-date-tile.is-warn small{color:#a86607}
.kv-date-tile.is-danger{background:var(--kv-red-50);border-color:var(--kv-red-line);color:var(--kv-red-text)}
.kv-date-tile.is-danger small{color:var(--kv-red-text)}
.kv-date-label{margin:3px 0 0;font-size:13.5px;line-height:1.45;color:var(--kv-text)}
.kv-row--date .kv-sub{margin-top:5px}
.kv-date-when{grid-area:when;padding-top:1px}
.kv-date-notes{margin-top:6px}
.kv-date-notes summary{display:inline-flex;align-items:center;gap:5px;list-style:none;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--kv-accent)}
.kv-date-notes summary::-webkit-details-marker{display:none}
.kv-date-notes summary .ti{font-size:15px}
.kv-date-notes summary:hover{text-decoration:underline}
.kv-date-notes .kv-legal{margin-top:4px}
#upcoming_dates .kv-tabs{margin-top:-4px}
#upcoming_dates .kv-empty{border-top:0}
/* bu hafta vadesi gelenler */
.kv-row--week{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main amount" "action action";row-gap:8px}
.kv-row--week .kv-action{justify-content:flex-start}
@media (max-width:767.98px){
  .kv-row--date{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"tile main" "tile when";row-gap:8px;padding:14px 16px}
  .kv-date-tile{width:44px;height:44px}
  .kv-date-when{padding-top:0}
  .kv-row--week{padding:14px 16px}
  .kv-row--week .kv-action .btn{width:100%}
}
@media (pointer:coarse),(max-width:767.98px){
  .kv-date-notes summary{min-height:40px}
}
/* mulk listesi: tur, m2 ve DASK rozeti */
.kv-dask-badge{margin-top:6px}
.kv-table--estates .kv-c-tur{white-space:nowrap}
.kv-table--estates .kv-c-m2 .kv-cell-sub{display:block;white-space:nowrap}
/* tur ve m2 sutunlariyla mulk tablosu 1440-1599 arasinda sikisik duzende (kucuk gorsel gizli, dar dolgu),
   1280-1439 arasinda da (genel kart izgarasi gibi) iki sutunlu kartlara doner */
@media (min-width:1280px) and (max-width:1439.98px){
  .kv-table--estates thead{display:none}
  .kv-table-wrap--grid:has(.kv-table--estates){overflow:visible}
  .kv-table--estates{display:block}
  .kv-table--estates tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px;border-top:1px solid var(--kv-line)}
  .kv-table--estates tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:repeat(7,auto) 1fr;gap:9px 12px;padding:16px;border:1px solid var(--kv-line);border-radius:12px;background:#fff;box-shadow:var(--kv-shadow)}
  .kv-table--estates tbody tr:hover{background:#fff}
  .kv-table--estates tbody td{display:block;padding:0!important;border:0;grid-column:1/-1;min-width:0}
  .kv-table--estates td.kv-c-title{grid-column:1;margin-bottom:3px}
  .kv-table--estates td.kv-c-end{grid-column:2;grid-row:1;text-align:right!important;font-size:15px;line-height:1.2}
  .kv-table--estates td.kv-c-kira small{display:block;font-size:11.5px;font-weight:500;color:var(--kv-muted);margin-top:2px}
  .kv-table--estates td.kv-c-islem{display:flex;justify-content:flex-end;align-self:end;margin-top:5px}
  .kv-table--estates td[data-label]{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;column-gap:10px;text-align:left!important}
  .kv-table--estates td[data-label]::before{content:attr(data-label);font-size:12.5px;color:var(--kv-muted);line-height:22px}
  .kv-table--estates td[data-label]>.btn{justify-self:start}
  .kv-table--estates td.dataTables_empty{grid-column:1/-1;padding:28px 0!important}
  .kv-table--estates tbody tr:has(td.dataTables_empty){display:block;grid-column:1/-1;padding:0;border:0;box-shadow:none}
}
@media (min-width:1440px) and (max-width:1599.98px){
  .kv-table--estates .kv-thumb--sm{display:none}
  .kv-table--estates tbody td,.kv-table--estates thead th{padding-left:10px;padding-right:10px}
  .kv-table--estates tr>*:first-child{padding-left:20px}
  .kv-table--estates tr>*:last-child{padding-right:14px}
  .kv-table--estates .kv-c-adres{min-width:140px}
}

/* ==========================================================
   belgeler
   Belge saklama (G7): Belgeler sayfası (kota şeridi, yükleme formu, liste), mülk / sözleşme / müşteri
   detaylarındaki Belgeler kartı (app/documents_card.php) ve Firma ayarlarındaki ofis logosu.
   ========================================================== */
.kv-doc-quota{margin-bottom:24px}
.kv-doc-quota-body{display:flex;align-items:center;gap:14px;padding:16px 20px}
.kv-doc-quota-main{flex:1 1 auto;min-width:0}
.kv-doc-quota-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13.5px;color:var(--kv-ink)}
.kv-doc-quota-top strong{font-weight:600}
.kv-doc-quota .kv-meter{margin-bottom:7px}
.kv-doc-quota-sub{margin:0;font-size:12.5px;color:var(--kv-muted)}
#doc_upload_box>.kv-card{margin-bottom:24px}
.kv-doc-form .alert{margin:0 0 16px}
.kv-doc-pick{margin-top:6px}
.kv-table--docs td{vertical-align:middle}
.kv-doc-name{display:flex;align-items:center;gap:12px;min-width:0}
.kv-doc-title{font-weight:600;color:var(--kv-ink);overflow-wrap:anywhere}
a.kv-doc-title:hover{color:var(--kv-accent)}
.kv-doc-links a{display:block;overflow-wrap:anywhere}
.kv-doc-links a+a{margin-top:2px}
.kv-doc-list>.kv-doc-item{position:relative;display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 20px;border-top:1px solid var(--kv-line-soft)}
/* kartta belgeyi acan baglanti butun satiri kaplar (telefonda dokunma hedefi satirin kendisi) */
.kv-doc-item a.kv-doc-title::after{content:"";position:absolute;inset:0}
.kv-doc-item:hover{background:var(--kv-surface)}
.kv-doc-item .kv-cell-sub{overflow-wrap:anywhere}
.kv-doc-card-form{padding:14px 20px 18px;border-top:1px solid var(--kv-line-soft)}
.kv-doc-card-form .form-label{font-size:12.5px;color:var(--kv-muted);margin-bottom:4px}
.kv-doc-warn{display:flex;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--kv-amber-50);border:1px solid var(--kv-amber-line);color:var(--kv-amber-text);font-size:12.5px;line-height:1.5}
.kv-doc-warn .ti{font-size:16px;flex:none;margin-top:1px}
.kv-logo-preview{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:12px;border:1px solid var(--kv-line-soft);border-radius:10px;background:var(--kv-surface)}
.kv-logo-preview img{max-height:56px;max-width:180px;object-fit:contain;background:#fff;border-radius:6px}
.kv-logo-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
@media (max-width:767.98px){
  .kv-doc-quota-body{padding:14px 16px}
  .kv-doc-list>.kv-doc-item{padding:12px 16px}
  .kv-doc-card-form{padding:14px 16px 16px}
  .kv-doc-card-form .btn{width:100%;min-height:40px}
  .kv-table--docs td.kv-c-title{order:-1}
  .kv-table--docs td.text-end[data-label]{text-align:left!important}
  .kv-logo-preview{flex-wrap:wrap}
  .kv-logo-preview .btn,.kv-logo-actions .btn{min-height:40px}
}
/* yonetim paneli: firma basina belge kotasi */
.kv-quota-form{margin-top:10px;max-width:340px}
.kv-quota-form .form-label{font-size:12.5px;color:var(--kv-muted);margin-bottom:4px;font-weight:500}
.kv-quota-row{display:flex;flex-wrap:wrap;gap:8px}
.kv-quota-row .form-control{flex:1 1 130px;min-width:130px}
.kv-quota-form .btn{flex:none;min-height:40px}

/* ==========================================================
   Aylık süre: süre alanı, geçici kullanım kutusu, rozet
   ========================================================== */
.kv-season{margin-top:12px}
.kv-season .form-check{display:flex;align-items:flex-start;gap:8px;min-height:32px;margin:0;padding-left:0}
.kv-season .form-check-input{float:none;margin:3px 0 0;flex:none}
.kv-season .form-check-label{margin:0;font-weight:500}
.kv-season-note{margin-top:4px;padding-left:24px}
#seasonal_info .kv-legal{padding-left:21px}
#term_notes .alert{margin:0}
#term_notes .kv-legal:first-child{margin-top:0}
#term_notes .alert.d-none+.kv-legal{margin-top:0}
#term_drop_box .form-check{margin:0}
.kv-badge.kv-b-temp{margin-left:6px}
.kv-badges .kv-badge.kv-b-temp,.kv-status .kv-badge.kv-b-temp{margin-left:0}
.kv-inc-temp{margin-top:4px}
.kv-inc-temp .kv-badge.kv-b-temp{margin-left:0}
.kv-inc-optional{display:flex;align-items:center;gap:6px;color:var(--kv-accent-press,#23409e)}
.kv-inc-optional .ti{font-size:15px}
@media (max-width:767.98px){
  .kv-season .form-check{min-height:40px;padding:8px 0}
  .kv-season .form-check-input{width:20px;height:20px;margin-top:1px}
  .kv-season-note{padding-left:28px}
}
@media (max-width:575.98px){
  .price-year .kv-year-tag{min-width:0;padding-left:8px;padding-right:8px}
}

/* ==========================================================
   paketler
   Paket kartı (platform/plan_card.php): tanıtım, fiyatlar sayfası ve yönetim panelindeki önizleme.
   Yönetim paneli platform.css yüklemediği için kart kuralları bu dosyada.
   ========================================================== */
.kv-pf-plan{display:flex;flex-direction:column;height:100%;padding:24px;min-width:0}
.kv-pf-plan--featured{border-color:var(--kv-accent);box-shadow:0 0 0 1px var(--kv-accent),var(--kv-shadow-lg)}
.kv-pf-plan-badge{align-self:flex-start;max-width:100%;margin:0 0 12px;padding:3px 10px;border-radius:999px;background:var(--kv-accent);color:#fff;font-size:12px;font-weight:650;line-height:18px;letter-spacing:.01em;overflow-wrap:anywhere}
.kv-pf-plan-name{font-size:19px;line-height:1.3;font-weight:700;letter-spacing:-.02em;color:var(--kv-ink);margin:0;overflow-wrap:anywhere}
.kv-pf-plan-summary{font-size:14px;line-height:1.55;color:var(--kv-muted);margin:6px 0 0;overflow-wrap:anywhere}
.kv-pf-plan-price{margin:18px 0 0;padding:16px 0;border-top:1px solid var(--kv-line-soft);border-bottom:1px solid var(--kv-line-soft)}
.kv-pf-plan-main{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:8px;row-gap:2px;margin:0}
.kv-pf-plan-main strong{font-size:32px;line-height:1.15;font-weight:700;letter-spacing:-.03em;color:var(--kv-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kv-pf-plan-price.is-request .kv-pf-plan-main strong{font-size:20px;line-height:1.3;letter-spacing:-.01em}
.kv-pf-plan-unit{margin-left:-6px;font-size:15px;font-weight:600;color:var(--kv-muted)}
.kv-pf-plan-note{font-size:12.5px;font-weight:500;color:var(--kv-muted);overflow-wrap:anywhere}
.kv-pf-plan-alt{margin:8px 0 0;font-size:13.5px;line-height:1.5;color:var(--kv-text);overflow-wrap:anywhere}
.kv-pf-plan-alt .kv-pf-plan-note{margin-left:6px}
.kv-pf-plan-advantage{display:block;color:var(--kv-green-text);font-weight:600}
.kv-pf-plan-trial{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;font-size:13.5px;line-height:1.45;font-weight:500;color:var(--kv-ink)}
.kv-pf-plan-trial .ti{flex:none;font-size:17px;color:var(--kv-accent);margin-top:1px}
.kv-pf-plan-limits,.kv-pf-plan-feats{display:flex;flex-direction:column;gap:9px;list-style:none;margin:16px 0 0;padding:0}
.kv-pf-plan-limits li,.kv-pf-plan-feats li{display:flex;align-items:flex-start;gap:10px;min-width:0;font-size:14px;line-height:1.45;color:var(--kv-ink)}
.kv-pf-plan-limits li>span,.kv-pf-plan-feats li>span{min-width:0;overflow-wrap:anywhere}
.kv-pf-plan-limits .ti{flex:none;font-size:17px;color:var(--kv-muted);margin-top:1px}
.kv-pf-plan-feats{padding-top:14px;border-top:1px solid var(--kv-line-soft)}
.kv-pf-plan-feats .ti{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:13px;background:var(--kv-green-50);border:1px solid var(--kv-green-line);color:var(--kv-green-text)}
.kv-pf-plan-foot{margin-top:auto;padding-top:22px}
.kv-pf-plan-cta{width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
span.kv-pf-plan-cta{cursor:default}
.kv-pf-plan-cta-note{margin:8px 0 0;font-size:12.5px;line-height:1.45;color:var(--kv-muted);text-align:center}
@media (max-width:575.98px){
  .kv-pf-plan{padding:20px}
  .kv-pf-plan-main strong{font-size:28px}
}

/* yönetim paneli: Paketler sayfası */
.kv-plan-preview{position:sticky;top:calc(var(--kv-top-h) + 16px)}
.kv-plan-preview-label{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12.5px;font-weight:600;color:var(--kv-muted);text-transform:uppercase;letter-spacing:.04em}
.kv-plan-preview-label .ti{font-size:15px}
.kv-plan-edit{margin-bottom:24px}
.kv-plan-checks{display:flex;flex-direction:column;gap:6px}
.kv-plan-checks .form-check,.kv-plan-edit .kv-check{display:flex;align-items:flex-start;gap:8px;min-height:32px;margin:0;padding-left:0}
.kv-plan-checks .form-check-input,.kv-plan-edit .kv-check .form-check-input{float:none;margin:3px 0 0;flex:none}
.kv-plan-pos{flex:none;width:28px;height:28px;border-radius:8px;display:inline-grid;place-items:center;background:var(--kv-surface);border:1px solid var(--kv-line-soft);font-size:12.5px;font-weight:650;color:var(--kv-muted);font-variant-numeric:tabular-nums}
.kv-plan-title{display:flex;align-items:flex-start;gap:12px;min-width:200px}
.kv-table--plans td.kv-c-title .kv-adm-name{font-weight:600;color:var(--kv-ink)}
.kv-table--plans td.kv-c-title a.kv-adm-name:hover{color:var(--kv-accent)}
.kv-table--plans .kv-plan-limits-cell{min-width:180px}
.kv-plan-actions{flex-wrap:nowrap}
.kv-plan-actions .kv-icon-btn:disabled{opacity:.35;cursor:default}
.kv-plan-delete-why{margin-left:auto;padding-left:12px;font-size:12px;font-weight:500;color:var(--kv-muted)}
.kv-plan-delete:disabled{opacity:.6}
.kv-icon-btn.is-danger{color:var(--kv-red-text)}
.kv-icon-btn.is-danger:hover{background:var(--kv-red-50);border-color:var(--kv-red-line);color:var(--kv-red-text)}
.kv-faq-form{border-top:1px solid var(--kv-line-soft)}
.kv-faq-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}
.kv-faq-row{display:flex;align-items:flex-start;gap:16px;padding:14px 20px;border-top:1px solid var(--kv-line-soft)}
.kv-faq-row.is-selected{background:var(--kv-accent-50)}
.kv-faq-main{flex:1 1 auto;min-width:0}
.kv-faq-q{margin:0;font-weight:600;color:var(--kv-ink);overflow-wrap:anywhere}
.kv-faq-q .kv-badge{margin-left:6px;vertical-align:1px}
.kv-faq-a{margin-top:4px;font-size:13.5px;line-height:1.55;color:var(--kv-text);overflow-wrap:anywhere}
.kv-faq-a p{margin:0 0 6px}
.kv-faq-a p:last-child{margin-bottom:0}
.kv-faq-row-actions{flex:none;flex-wrap:nowrap}
.kv-faq-row-actions .kv-icon-btn:disabled{opacity:.35;cursor:default}
@media (max-width:1199.98px){
  .kv-plan-preview{position:static;max-width:440px}
}
@media (max-width:767.98px){
  .kv-table--plans td.kv-c-title{grid-column:1/-1}
  .kv-plan-title{min-width:0}
  .kv-table--plans td.kv-c-islem{justify-content:flex-start}
  .kv-plan-actions{flex-wrap:wrap;gap:6px}
  .kv-plan-actions .btn{min-height:40px}
  .kv-plan-checks .form-check,.kv-plan-edit .kv-check{min-height:40px;padding:8px 0}
  .kv-plan-checks .form-check-input,.kv-plan-edit .kv-check .form-check-input{width:20px;height:20px;margin-top:1px}
  .kv-faq-row{flex-direction:column;gap:10px;padding:14px 16px}
  .kv-faq-row-actions{flex-wrap:wrap;gap:6px}
  .kv-faq-row-actions .btn{min-height:40px}
  .kv-faq-actions .btn{flex:1 1 auto;min-height:40px}
}

/* yönetim paneli: firma detayında paket, kullanım ve yükseltme istekleri */
.kv-usage-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.kv-usage-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:13.5px;color:var(--kv-text)}
.kv-usage-top strong{font-weight:650;color:var(--kv-ink);text-align:right}
.kv-usage-top strong small{font-size:12px;font-weight:500;color:var(--kv-muted)}
.kv-usage-row .kv-meter{margin-bottom:4px}
.kv-usage-sub{margin:4px 0 0;font-size:12.5px;color:var(--kv-muted)}
.kv-usage-sub.kv-text-warn{color:var(--kv-amber-text)}
.kv-plan-missing{display:flex;gap:6px;align-items:flex-start;margin:0 0 12px}
.kv-plan-missing .ti{flex:none;font-size:16px;margin-top:2px}
.kv-small-label{font-size:12.5px;color:var(--kv-muted);margin-bottom:4px;font-weight:500}
.kv-approve-submit{display:flex;align-items:flex-end}
.kv-approve-submit .btn{min-height:38px}
.kv-req-list{list-style:none;margin:0;padding:0}
.kv-req{padding:14px 20px;border-top:1px solid var(--kv-line-soft)}
.kv-req:first-child{border-top:0}
.kv-req.is-open{background:var(--kv-amber-50)}
.kv-req-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-weight:600;color:var(--kv-ink)}
.kv-req .kv-dl--form{grid-template-columns:minmax(80px,120px) minmax(0,1fr);font-size:13px}
.kv-req-close{margin-top:10px}
.kv-req-close .btn{flex:none;min-height:40px}
.kv-req-note .ti,.kv-row--adm .kv-thumb .ti-arrow-big-up-lines{color:var(--kv-amber-text)}
@media (max-width:767.98px){
  .kv-req{padding:14px 16px}
  .kv-approve-submit .btn,#set_plan_form .btn{min-height:40px}
  #set_plan_form .btn{width:100%}
}

/* firma uygulaması: paket sınırları (Abonelik ve veriler, Kullanıcılar, sınır mesajları) */
.kv-plan-none{margin:0;font-size:13.5px;color:var(--kv-text)}
#paket .kv-usage-list{margin-top:14px}
#paket .kv-usage-sub a{font-weight:600}
.kv-plan-request>p.kv-note{display:flex;margin:0 0 4px;font-size:13px}
.kv-plan-request textarea{min-height:64px}
.kv-plan-request-actions{display:flex;justify-content:flex-end;margin-top:14px}
.kv-plan-users{display:flex;flex-direction:column;gap:6px;padding:0 20px 16px;font-size:13px}
.kv-plan-users .kv-note{display:flex;margin:0;font-weight:500}
.kv-plan-users .kv-note strong{font-weight:650}
.kv-plan-band .alert-link{white-space:nowrap}
@media (max-width:575.98px){
  .kv-plan-request-actions .btn{width:100%;min-height:44px}
  .kv-plan-users{padding:0 16px 14px}
}
