/* Karadefter — "premium sade" katmanı (A yönü: açık, ferah, bankacılık hissi).
   app.css'in üzerine yüklenir; kaldırılırsa bir önceki sade görünüme dönülür. */

:root,
[data-bs-theme="light"] {
    --kd-bg: #f4f5f7;
    --kd-surface: #ffffff;
    --kd-surface-2: #f8f9fb;
    --kd-hover: #f2f4f7;
    --kd-border: #e7e9ee;
    --kd-text: #101828;
    --kd-muted: #667085;
    --kd-accent: #3d4ed8;
    --kd-accent-soft: #eef0fd;
    --kd-debt: #c2413f;
    --kd-debt-soft: #fdf1f0;
    --kd-pay: #0f7b55;
    --kd-pay-soft: #ecf7f2;
    --kd-warn: #b0620c;
    --kd-warn-soft: #fef5e7;
    --kd-btn-debt: #c2413f;
    --kd-btn-pay: #0f7b55;
    --kd-ink: #101828;
    --kd-ink-hover: #1d2939;
    --kd-radius: 16px;
    --kd-shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);
    --kd-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
    --kd-shadow-lg: 0 20px 40px -16px rgba(16, 24, 40, .22), 0 4px 12px -4px rgba(16, 24, 40, .08);
    --bs-primary-rgb: 61, 78, 216;
    --bs-link-color-rgb: 61, 78, 216;
    --bs-link-hover-color: #2c3aa8;
}

[data-bs-theme="dark"] {
    --kd-bg: #0d1015;
    --kd-surface: #151920;
    --kd-surface-2: #1a1f28;
    --kd-hover: #1f2530;
    --kd-border: #262d38;
    --kd-text: #e7e9ee;
    --kd-muted: #8d96a5;
    --kd-accent: #8f9dff;
    --kd-accent-soft: #1e2440;
    --kd-debt: #f08a86;
    --kd-debt-soft: #33201f;
    --kd-pay: #6fcfa2;
    --kd-pay-soft: #16291f;
    --kd-warn: #f1b66b;
    --kd-warn-soft: #2e2415;
    --kd-btn-debt: #b23b39;
    --kd-btn-pay: #11774f;
    --kd-ink: #e7e9ee;
    --kd-ink-hover: #ffffff;
    --kd-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);
    --kd-shadow: 0 1px 3px rgba(0, 0, 0, .4);
    --kd-shadow-lg: 0 24px 48px -16px rgba(0, 0, 0, .6);
    --bs-primary-rgb: 143, 157, 255;
    --bs-link-color-rgb: 143, 157, 255;
    --bs-link-hover-color: #b7c0ff;
}

body { font-size: 14px; letter-spacing: -.005em; }
::selection { background: color-mix(in srgb, var(--kd-accent) 22%, transparent); }

/* ---------- Kabuk ---------- */
.kd-sidebar { background: var(--kd-surface); border-right: 1px solid var(--kd-border); padding: 22px 14px; }
.kd-brand { font-size: 15.5px; font-weight: 700; letter-spacing: -.02em; padding: 0 8px 24px; }
.kd-brand-mark { width: 32px; height: 32px; border-radius: 10px; background: linear-gradient(135deg, #3d4ed8, #7a88ff); box-shadow: 0 4px 10px -2px rgba(61, 78, 216, .45); }
.kd-nav { gap: 2px; }
.kd-nav a { padding: 9px 12px; border-radius: 10px; font-weight: 500; color: var(--kd-muted); }
.kd-nav a i { font-size: 15.5px; }
.kd-nav a:hover { background: var(--kd-hover); color: var(--kd-text); }
.kd-nav a.active { background: var(--kd-accent-soft); color: var(--kd-accent); font-weight: 600; }
.kd-nav-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; opacity: 1; padding: 20px 12px 8px; }
.kd-sidebar-foot { padding-top: 16px; }
.kd-rates { background: var(--kd-surface-2); border: 1px solid var(--kd-border); border-radius: 12px; padding: 8px 6px; }
.kd-avatar { background: var(--kd-accent-soft); color: var(--kd-accent); }

.kd-topbar { padding: 26px 36px 16px; }
.kd-title h1 { font-size: 22px; font-weight: 700; letter-spacing: -.025em; }
.kd-subtitle { font-size: 12.5px; margin-top: 3px; }
.kd-content { padding: 6px 36px 40px; }

/* ---------- Kartlar ---------- */
.kd-card { border: 1px solid var(--kd-border); border-radius: var(--kd-radius); box-shadow: var(--kd-shadow); }
.kd-card-head { padding: 16px 22px; }
.kd-card-head h2 { font-size: 14.5px; font-weight: 650; letter-spacing: -.01em; }
.kd-card-body { padding: 22px; }

.kd-kpis { gap: 16px; }
.kd-kpi { border-radius: var(--kd-radius); padding: 20px 22px; box-shadow: var(--kd-shadow); }
.kd-kpi-label { font-size: 12px; font-weight: 500; }
.kd-kpi-value { font-size: 24px; font-weight: 700; letter-spacing: -.03em; margin-top: 6px; }
.kd-kpi-sub { font-size: 12px; margin-top: 4px; }

.kd-balance-hero .amount { font-size: 32px; font-weight: 700; letter-spacing: -.035em; }
.kd-balance-hero .label { font-size: 12px; font-weight: 500; }

/* ---------- Tablolar ---------- */
.kd-table th { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: 12px 18px; background: var(--kd-surface-2); }
.kd-table thead tr:first-child th:first-child { border-top-left-radius: var(--kd-radius); }
.kd-table thead tr:first-child th:last-child { border-top-right-radius: var(--kd-radius); }
.kd-table td { padding: 14px 18px; }
.kd-table tbody tr { transition: background .12s ease; }
.kd-table .t-main a { font-weight: 600; }

/* ---------- Çip, rozet, segment ---------- */
.kd-chip { border-radius: 999px; padding: 6px 14px; font-weight: 500; box-shadow: var(--kd-shadow-sm); }
.kd-chip.active { background: var(--kd-ink); color: var(--kd-surface); border-color: var(--kd-ink); box-shadow: none; }
.kd-badge { border-radius: 999px; padding: 3px 10px; font-weight: 600; }
.kd-seg { border-radius: 12px; padding: 4px; }
.kd-seg label, .kd-seg-link { border-radius: 9px; }
.kd-seg input:checked + label, .kd-seg-link.active { box-shadow: var(--kd-shadow); border: 0; }

/* ---------- Form ve düğmeler ---------- */
.form-control, .form-select { border-radius: 10px; padding: .6rem .85rem; box-shadow: var(--kd-shadow-sm); }
.form-control:focus, .form-select:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--kd-accent) 16%, transparent); }
.form-label { font-weight: 600; font-size: 12.5px; }
.btn { border-radius: 10px; font-weight: 600; transition: background .12s ease, box-shadow .12s ease, transform .06s ease; }
.btn:active { transform: translateY(1px); }
.btn-primary { --bs-btn-bg: var(--kd-ink); --bs-btn-border-color: var(--kd-ink); --bs-btn-hover-bg: var(--kd-ink-hover); --bs-btn-hover-border-color: var(--kd-ink-hover); --bs-btn-active-bg: var(--kd-ink); --bs-btn-color: var(--kd-surface); --bs-btn-hover-color: var(--kd-surface); box-shadow: var(--kd-shadow-sm); }
[data-bs-theme="dark"] .btn-primary { --bs-btn-bg: #e7e9ee; --bs-btn-border-color: #e7e9ee; --bs-btn-color: #0d1015; --bs-btn-hover-bg: #ffffff; --bs-btn-hover-color: #0d1015; }
.btn-soft { box-shadow: var(--kd-shadow-sm); }
.btn-debt, .btn-pay { box-shadow: var(--kd-shadow-sm); }
.btn-lg { border-radius: 12px; padding: .8rem 1.2rem; }
.kd-calc { border-radius: 14px; background: var(--kd-surface-2); }
.kd-calc .big { font-size: 26px; font-weight: 700; letter-spacing: -.03em; }

/* ---------- Bayi rozeti (baş harfler) ---------- */
.kd-av { width: 36px; height: 36px; border-radius: 11px; display: inline-grid; place-items: center; flex-shrink: 0; font-weight: 700; font-size: 12.5px; letter-spacing: -.02em; }
.kd-av.lg { width: 48px; height: 48px; border-radius: 14px; font-size: 15.5px; }
.kd-av-0 { background: #eef0fd; color: #3d4ed8; }
.kd-av-1 { background: #e9f7f1; color: #0f7b55; }
.kd-av-2 { background: #fef1e6; color: #b4530e; }
.kd-av-3 { background: #f5edfd; color: #7a3fd0; }
.kd-av-4 { background: #e7f5fb; color: #106b94; }
.kd-av-5 { background: #fdeef4; color: #b3326a; }
.kd-av-6 { background: #f0f4e6; color: #56731a; }
.kd-av-7 { background: #eff1f5; color: #475467; }
[data-bs-theme="dark"] .kd-av-0 { background: #232a52; color: #b3bcff; }
[data-bs-theme="dark"] .kd-av-1 { background: #173327; color: #86dcb3; }
[data-bs-theme="dark"] .kd-av-2 { background: #3a2716; color: #f5b67f; }
[data-bs-theme="dark"] .kd-av-3 { background: #2e2147; color: #c9a6ff; }
[data-bs-theme="dark"] .kd-av-4 { background: #15303d; color: #8fd0ef; }
[data-bs-theme="dark"] .kd-av-5 { background: #3b1d2b; color: #f59dc2; }
[data-bs-theme="dark"] .kd-av-6 { background: #283118; color: #bcd98a; }
[data-bs-theme="dark"] .kd-av-7 { background: #262c36; color: #c3cad6; }
.kd-name-cell { display: flex; align-items: center; gap: 12px; min-width: 0; }

/* ---------- Bildirimler (toast) ---------- */
.kd-toasts { position: fixed; top: 18px; right: 18px; z-index: 1090; display: flex; flex-direction: column; gap: 10px; width: min(400px, calc(100vw - 24px)); pointer-events: none; }
.kd-toast { pointer-events: auto; display: flex; gap: 12px; align-items: flex-start; background: var(--kd-surface); border: 1px solid var(--kd-border); border-radius: 14px; box-shadow: var(--kd-shadow-lg); padding: 14px 14px 14px 16px; font-size: 13px; animation: kd-toast-in .22s ease-out; }
.kd-toast.hide { animation: kd-toast-out .2s ease-in forwards; }
.kd-toast .kd-toast-icon { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; flex-shrink: 0; font-size: 14px; }
.kd-toast.success .kd-toast-icon { background: var(--kd-pay-soft); color: var(--kd-pay); }
.kd-toast.danger .kd-toast-icon { background: var(--kd-debt-soft); color: var(--kd-debt); }
.kd-toast.info .kd-toast-icon { background: var(--kd-accent-soft); color: var(--kd-accent); }
.kd-toast .kd-toast-body { flex: 1; min-width: 0; line-height: 1.45; padding-top: 3px; }
.kd-toast .btn-close { flex-shrink: 0; font-size: 10.5px; margin-top: 5px; }
@keyframes kd-toast-in { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes kd-toast-out { to { opacity: 0; transform: translateY(-6px); } }

/* ---------- Modal, açılır menü ---------- */
.modal-content { border-radius: 20px; border: 1px solid var(--kd-border); box-shadow: var(--kd-shadow-lg); }
.modal-header, .modal-footer { border-color: var(--kd-border); }
.modal-backdrop.show { opacity: .35; }
.dropdown-menu { border-radius: 14px; box-shadow: var(--kd-shadow-lg); padding: 6px; }
.dropdown-item { border-radius: 8px; padding: 8px 12px; font-size: 13px; }

/* ---------- Giriş ---------- */
.kd-login { background: radial-gradient(900px 500px at 50% -10%, color-mix(in srgb, var(--kd-accent) 12%, transparent), transparent 70%), var(--kd-bg); }
.kd-login-card { border-radius: 22px; box-shadow: var(--kd-shadow-lg); padding: 38px 34px; }
.kd-login-card .kd-brand-mark { width: 46px; height: 46px; border-radius: 14px; font-size: 19.5px; }
.kd-login-card h1 { letter-spacing: -.02em; }

/* ---------- Mobil ---------- */
@media (max-width: 991.98px) {
    .kd-topbar { padding: 14px 16px 10px; padding-top: calc(14px + env(safe-area-inset-top)); }
    .kd-title h1 { font-size: 18.5px; }
    .kd-content { padding: 4px 16px 24px; }
    .kd-fab { border-radius: 16px; background: linear-gradient(135deg, #3d4ed8, #6b7cff); box-shadow: 0 8px 18px -6px rgba(61, 78, 216, .55); }
    .kd-toasts { top: calc(10px + env(safe-area-inset-top)); right: 12px; left: 12px; width: auto; }
}
@media (max-width: 767.98px) {
    .kd-kpi { padding: 14px 16px; }
    .kd-kpi-value { font-size: 18.5px; }
    .kd-balance-hero .amount { font-size: 28px; }
    .kd-table.kd-stack-mobile tr { padding: 14px 16px; }
    .kd-av { width: 34px; height: 34px; border-radius: 10px; font-size: 12px; }
}

@media print {
    .kd-toasts { display: none !important; }
    .kd-card, .kd-kpi { box-shadow: none; }
}

/* v2.8.2 — renkli çerçeve: alacak/borç = kırmızı, tahsilat = yeşil (bir bakışta ayırt edilsin) */
:root, [data-bs-theme="light"] { --kd-debt-line: #e9a3a0; --kd-pay-line: #8fd0b3; }
[data-bs-theme="dark"] { --kd-debt-line: #7a3b39; --kd-pay-line: #2a6a4d; }
.kd-kpi.debt, .kd-card.kd-tone-debt, .kd-tone-debt .kd-card, .kd-sheet-action.debt { border: 1.5px solid var(--kd-debt-line); }
.kd-kpi.pay, .kd-card.kd-tone-pay, .kd-tone-pay .kd-card, .kd-sheet-action.payment { border: 1.5px solid var(--kd-pay-line); }
.kd-kpi.debt .kd-kpi-label, .kd-kpi.pay .kd-kpi-label { font-weight: 600; }
.kd-kpi.debt .kd-kpi-label { color: var(--kd-debt); }
.kd-kpi.pay .kd-kpi-label { color: var(--kd-pay); }
.kd-tone-debt .kd-seg-link.active { box-shadow: 0 0 0 1.5px var(--kd-debt-line); }
.kd-tone-pay .kd-seg-link.active { box-shadow: 0 0 0 1.5px var(--kd-pay-line); }

/* v2.8.3 — satır şeridi: borç satırı solda kırmızı, tahsilat satırı yeşil ince çizgi */
.kd-table tr.kd-row-debt td:first-child { box-shadow: inset 4px 0 0 var(--kd-debt); }
.kd-table tr.kd-row-pay td:first-child { box-shadow: inset 4px 0 0 var(--kd-pay); }
.kd-list li.kd-row-debt { box-shadow: inset 4px 0 0 var(--kd-debt); }
.kd-list li.kd-row-pay { box-shadow: inset 4px 0 0 var(--kd-pay); }
@media (max-width: 991.98px) {
    .kd-table.kd-stack-mobile tr.kd-row-debt td:first-child, .kd-table.kd-stack-mobile tr.kd-row-pay td:first-child { box-shadow: none; }
    .kd-table.kd-stack-mobile tr.kd-row-debt { box-shadow: inset 4px 0 0 var(--kd-debt); }
    .kd-table.kd-stack-mobile tr.kd-row-pay { box-shadow: inset 4px 0 0 var(--kd-pay); }
}

/* v2.8.3 — yazı boyutu bir kademe küçük (tüm px boyutları ×0.92; Bootstrap rem tabanı 15px) */
html { font-size: 15px; }
/* Telefonda giriş kutuları 16px kalsın: iOS küçük yazılı kutuya dokununca sayfayı büyütüyor */
@media (max-width: 991.98px) and (pointer: coarse) {
    .form-control, .form-select { font-size: 16px; }
}

/* v2.8.4 — koyu mod okunurluk: zemin/kutu/giriş alanı katmanları birbirinden ayrışsın, çerçeveler görünsün */
[data-bs-theme="dark"] {
    --kd-bg: #111418;
    --kd-surface: #1a1e25;
    --kd-surface-2: #222731;
    --kd-hover: #262c37;
    --kd-border: #313846;
    --kd-text: #eceef2;
    --kd-muted: #a0a8b6;
    --kd-input-bg: #12161c;
    --kd-input-border: #3f4858;
    --kd-debt-line: #9c4a47;
    --kd-pay-line: #37815f;
}
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select { background-color: var(--kd-input-bg); border-color: var(--kd-input-border); }
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus { background-color: var(--kd-input-bg); border-color: var(--kd-accent); }
[data-bs-theme="dark"] .form-control:disabled, [data-bs-theme="dark"] .form-select:disabled,
[data-bs-theme="dark"] .form-control[readonly] { background-color: var(--kd-surface-2); }
[data-bs-theme="dark"] .form-control::placeholder { color: #7f8898; opacity: 1; }
[data-bs-theme="dark"] .form-check-input { background-color: var(--kd-input-bg); border-color: #566073; }
[data-bs-theme="dark"] .kd-seg { background: var(--kd-input-bg); border-color: var(--kd-input-border); }
[data-bs-theme="dark"] .kd-seg input:checked + label,
[data-bs-theme="dark"] .kd-seg-link.active { background: #2e3542; color: var(--kd-text); }
[data-bs-theme="dark"] .kd-seg label, [data-bs-theme="dark"] .kd-seg-link { color: var(--kd-muted); }
[data-bs-theme="dark"] .kd-date { background: var(--kd-input-bg); border-color: var(--kd-input-border); }
[data-bs-theme="dark"] .kd-chip { border-color: var(--kd-input-border); }
