/* Protez CRM — Apartman / NexLink kabuğu üzerine CRM bileşenleri */
html, body {
    font-family: var(--bs-body-font-family), "Segoe UI", system-ui, sans-serif;
}
.menu-label, .navbar-brand-text, .page-title, .card-title,
h1, h2, h3, h4, h5, h6, .form-label, .btn, .breadcrumb {
    font-family: inherit;
}
.material-symbols-outlined {
    font-family: "Material Symbols Outlined" !important;
    font-weight: normal;
    font-style: normal;
    font-size: 22px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    direction: ltr;
    -webkit-font-smoothing: antialiased;
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
.glass-card, .neo-card, .oscar-card {
    margin-bottom: var(--bs-gutter-x, 1.5rem);
    box-shadow: 0px 5px 10px rgba(2, 2, 76, 0.02);
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
}
.glass-card:not([class*="p-"]), .neo-card:not([class*="p-"]), .oscar-card:not([class*="p-"]) {
    padding: 1.25rem;
}

.btn-gold {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-btn-primary-hover, var(--bs-primary));
    --bs-btn-hover-border-color: var(--bs-btn-primary-hover, var(--bs-primary));
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-btn-primary-active, var(--bs-primary));
    --bs-btn-active-border-color: var(--bs-btn-primary-active, var(--bs-primary));
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
    color: #fff;
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.btn-gold:hover, .btn-gold:focus {
    color: #fff;
    background-color: var(--bs-btn-primary-hover, var(--bs-primary));
    border-color: var(--bs-btn-primary-hover, var(--bs-primary));
}
.btn-ghost {
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
}
.btn-ghost:hover { background: var(--bs-tertiary-bg, #f8f9fa); }
.app-header-start .dropdown-toggle::after {
    margin-left: 0.55rem;
    margin-right: 0;
}
.btn-soft {
    background: rgba(var(--bs-primary-rgb), .12);
    color: var(--bs-primary);
    border: 0;
}

.page-title {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0;
    color: var(--bs-heading-color, var(--bs-body-color));
}
.page-sub { color: var(--bs-secondary-color); font-size: .875rem; margin-top: .25rem; }
.section-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 1.25rem; flex-wrap: wrap;
}
.panel-head {
    display: flex; align-items: center; justify-content: flex-start;
    margin-bottom: 1rem; gap: 8px;
}
.panel-head > :first-child { margin-right: auto; min-width: 0; }
.panel-head h5, .panel-head h6 { margin: 0; font-size: 1.05rem; font-weight: 650; }
.panel-head .sub { font-size: .8rem; color: var(--bs-secondary-color); }
.panel-more {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex: 0 0 auto;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
    text-decoration: none;
    white-space: nowrap;
    line-height: 1;
}
.panel-more i { font-size: .95rem; line-height: 1; }
.panel-more:hover { color: var(--bs-primary); }
.card-tools { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; margin-left: 0; }
.card-ico {
    width: 34px; height: 34px; border: 0; background: transparent;
    border-radius: 9px; color: var(--bs-secondary-color); display: grid; place-items: center;
    padding: 0; cursor: pointer;
}
.card-ico:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }

.crm-kpi, .stat-card, .neo-kpi, .oscar-stat {
    padding: 1.25rem;
    min-height: 0;
}
.crm-kpi-top, .oscar-stat-top {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
}
.crm-kpi-title, .oscar-stat-title {
    font-size: .95rem; color: var(--bs-secondary-color); font-weight: 500; margin-bottom: .25rem;
    text-transform: none; letter-spacing: 0;
}
.crm-kpi-val, .oscar-stat-val, .stat-value, .neo-kpi-val {
    font-size: 1.75rem; font-weight: 700; letter-spacing: -.03em; margin: 0 0 .15rem;
    font-variant-numeric: tabular-nums; line-height: 1.15;
}
.crm-kpi-desc { font-size: .85rem; font-weight: 600; color: var(--bs-body-color); }
.crm-kpi-foot, .oscar-stat-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    font-size: .8rem; color: var(--bs-secondary-color); margin-top: .75rem;
    padding-top: .75rem; border-top: 1px solid var(--bs-border-color);
}
.crm-kpi-trend {
    font-size: .75rem; font-weight: 650; color: var(--bs-success);
    background: var(--bs-success-bg-subtle); border-radius: 8px; padding: 3px 8px;
}
.crm-kpi-trend.down { color: var(--bs-danger); background: var(--bs-danger-bg-subtle); }
.crm-kpi-ico, .neo-kpi-ico, .kpi-ico {
    width: 48px; height: 48px; border-radius: .65rem;
    display: grid; place-items: center; flex-shrink: 0; font-size: 1.25rem;
    background: var(--bs-primary-bg-subtle); color: var(--bs-primary);
    overflow: hidden;
}
.crm-kpi-ico i, .crm-kpi-ico .fi { font-size: 22px; line-height: 1; }
.crm-kpi-ico.t { background: var(--bs-primary-bg-subtle); color: var(--bs-primary); }
.crm-kpi-ico.b { background: var(--bs-info-bg-subtle); color: var(--bs-info); }
.crm-kpi-ico.p { background: var(--bs-success-bg-subtle); color: var(--bs-success); }
.crm-kpi-ico.y { background: var(--bs-warning-bg-subtle); color: var(--bs-warning); }

.pipe-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 18px; }
.pipe-stat h3 { font-size: 1.25rem; font-weight: 700; margin: 0 0 4px; }
.pipe-stat span { font-size: .8rem; color: var(--bs-secondary-color); }
.pipe-stat.is-up h3 { color: var(--bs-success); }

.seg {
    display: inline-flex; background: var(--bs-tertiary-bg); border-radius: 10px; padding: 3px; border: 1px solid var(--bs-border-color);
}
.seg button, .seg .seg-btn {
    border: 0; background: transparent; color: var(--bs-secondary-color);
    font-size: 12px; font-weight: 650; padding: 6px 11px; border-radius: 8px;
}
.seg button.active, .seg .seg-btn.active {
    background: var(--bs-body-bg); color: var(--bs-body-color);
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
}

.badge-soft, .pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700;
    background: var(--bs-tertiary-bg); color: var(--bs-body-color);
}
.badge-ok, .pill-ok { background: var(--bs-success-bg-subtle); color: var(--bs-success); }
.badge-warn, .pill-warn { background: var(--bs-warning-bg-subtle); color: var(--bs-warning); }
.badge-danger, .pill-danger { background: var(--bs-danger-bg-subtle); color: var(--bs-danger); }
.badge-gold, .pill-info, .badge-info { background: var(--bs-primary-bg-subtle); color: var(--bs-primary); }
.pill-hold { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis, #b45309); }
.pill-pop { background: var(--bs-info-bg-subtle); color: var(--bs-info); }

.cust-card, .person-card {
    padding: 1.15rem; height: 100%; overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease; display: block;
}
.cust-card:hover, .person-card:hover { transform: translateY(-2px); }
.cust-card .meta, .person-card .meta { font-size: 13px; color: var(--bs-secondary-color); }
.person-card .person-top { display: none; }
.person-card .person-body { padding: 0; margin: 0; }

.cover {
    border-radius: 1rem; overflow: hidden;
    background: linear-gradient(135deg, var(--bs-primary) 0%, color-mix(in srgb, var(--bs-primary) 70%, #fff) 100%);
    color: #fff; padding: 26px; position: relative;
}
.nav-pills.crm-tabs { gap: 6px; flex-wrap: wrap; }
.nav-pills.crm-tabs .nav-link {
    border-radius: 999px; background: var(--bs-body-bg); color: var(--bs-secondary-color);
    border: 1px solid var(--bs-border-color); font-weight: 600; font-size: 13px; padding: 7px 13px;
}
.nav-pills.crm-tabs .nav-link.active { background: var(--bs-primary); color: #fff; border-color: var(--bs-primary); }

.timeline { position: relative; padding-left: 22px; }
.timeline::before {
    content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px;
    width: 2px; background: var(--bs-border-color);
}
.tl-item { position: relative; margin-bottom: 16px; }
.tl-item::before {
    content: ""; position: absolute; left: -20px; top: 16px;
    width: 10px; height: 10px; border-radius: 50%; background: var(--bs-primary);
    box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), .15);
}

.table-modern { width: 100%; }
.cell-title { font-weight: 700; }
.cell-sub { font-size: 12px; color: var(--bs-secondary-color); margin-top: 2px; }
.conf { display: flex; align-items: center; gap: 8px; min-width: 88px; }
.conf .bar { flex: 1; }
.bar { height: 6px; border-radius: 99px; background: var(--bs-tertiary-bg); overflow: hidden; border: 1px solid var(--bs-border-color); }
.bar > span { display: block; height: 100%; background: var(--bs-primary); border-radius: 99px; }

.auth-wrapper .img-fluid {
    width: min(78%, 560px);
    max-height: 78vh;
    object-fit: contain;
}
.password-wrapper { position: relative; }
.password-wrapper .password-input { padding-right: 2.75rem; }
.toggle-password {
    position: absolute; right: .75rem; top: 50%; transform: translateY(-50%);
    border: 0; background: transparent; color: var(--bs-secondary-color); padding: 0;
}
.toggle-password .open { display: none; }
.toggle-password[aria-pressed="true"] .open { display: inline; }
.toggle-password[aria-pressed="true"] .close { display: none; }

.empty-state { text-align: center; padding: 36px 16px; color: var(--bs-secondary-color); }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.photo-grid img { width: 100%; height: 120px; object-fit: cover; border-radius: 12px; }
.photo-cell { position: relative; }
.photo-cell .photo-del {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    margin: 0;
    width: auto;
}
.swipe-row { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
.swipe-row > * { scroll-snap-align: start; min-width: 220px; }

.list-row, .agent-row, .integ {
    display: flex; align-items: center; justify-content: flex-start;
    gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--bs-border-color);
    text-align: left;
}
.list-row:last-child, .agent-row:last-child, .integ:last-child { border-bottom: 0; }
.list-row .grow, .agent-row .grow, .integ .grow {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}
.integ .pill { flex-shrink: 0; margin-left: auto; }
.dash-feed {
    max-height: 280px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
}
.dash-feed .integ:last-child { border-bottom: 0; }
.dash-feed .integ .grow .fw-semibold,
.dash-feed .integ .grow .small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.stack-list { display: flex; flex-direction: column; }
.stack-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--bs-border-color);
    text-decoration: none;
    color: inherit;
    text-align: left;
}
.stack-item:last-child { border-bottom: 0; }
.stack-item:hover { color: inherit; }
.stack-item .grow {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}
.stack-item .grow .fw-semibold,
.stack-item .grow .small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.stack-item-meta {
    flex: 0 0 auto;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    max-width: 42%;
}
@media (max-width: 575.98px) {
    .stack-item { padding: 12px 0; gap: 10px; }
    .stack-item .avatar { width: 40px; height: 40px; min-width: 40px; font-size: 14px; }
    .stack-item-meta { max-width: 46%; }
}
@media (max-width: 1199.98px) {
    table.table-mobile-cards tbody td.tm-card-title,
    table.table-mobile-cards tbody td.tm-card-title a,
    table.table-mobile-cards tbody td.tm-card-title .cell-title {
        text-align: left !important;
    }
    table.table-mobile-cards tbody td .avatar-stack {
        justify-content: flex-end;
        margin-left: auto;
    }
}
.agent-row h6 { margin: 0; font-size: 14px; font-weight: 700; }

.compare-wrap { position: relative; overflow: hidden; border-radius: 14px; }
.compare-wrap img { width: 100%; display: block; }
.compare-after { position: absolute; inset: 0 auto 0 0; width: 50%; overflow: hidden; }
.compare-after img { width: 200%; max-width: none; height: 100%; object-fit: cover; }
.compare-slider {
    position: absolute; top: 0; bottom: 0; left: 50%; width: 4px;
    background: #fff; transform: translateX(-50%); cursor: ew-resize;
}

.cd-hero-row {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.cd-hero-ava {
    width: 96px;
    height: 96px;
    border-radius: 1.25rem;
    object-fit: cover;
    flex-shrink: 0;
    border: 3px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}
.cd-hero-ava-fb {
    display: grid;
    place-items: center;
    background: var(--bs-primary);
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
}
.cd-fill { max-width: 280px; }
.cd-fill-bar { height: 8px; background: var(--bs-tertiary-bg); }
.quick-cust-group { flex-wrap: nowrap; }
.quick-cust-group > .select2-container {
    flex: 1 1 auto;
    width: 1% !important;
    min-width: 0;
}
.quick-cust-group > .select2-container .select2-selection--single {
    height: 100%;
    min-height: calc(1.5em + .75rem + 2px);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    display: flex;
    align-items: center;
}
.quick-cust-panel { background: var(--bs-tertiary-bg); }
.js-phone-input { letter-spacing: .03em; }
.cust-photo-btn {
    position: relative;
    overflow: hidden;
}
.cust-photo-btn input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    font-size: 16px;
}
.cust-photo-current {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: .85rem;
    border: 1px solid var(--bs-border-color);
    display: block;
}
.cd-fact {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--bs-border-color);
    border-radius: .85rem;
    background: var(--bs-body-bg);
    height: 100%;
}
.cd-strip {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
}
.cd-strip-item {
    position: relative;
    flex: 0 0 160px;
    display: block;
    border-radius: .85rem;
    overflow: hidden;
}
.cd-strip-item img {
    width: 160px;
    height: 120px;
    object-fit: cover;
    display: block;
}
.cd-strip-item span {
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: rgba(15, 23, 42, .72);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
}
.photo-cell a { position: relative; display: block; }
.photo-cap {
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: rgba(15, 23, 42, .72);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
}
.photo-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.photo-grid img { height: 160px; }
.cd-name { font-size: 20px; font-weight: 800; letter-spacing: -.03em; margin: 0; }
.cd-acts { display: flex; flex-wrap: wrap; gap: 14px; }
.cd-act {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    background: none; border: 0; color: var(--bs-body-color); padding: 0; min-width: 56px;
}
.cd-act .material-symbols-outlined, .cd-act i {
    width: 42px; height: 42px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color);
    font-size: 18px;
}
.cd-act small { font-size: 11px; font-weight: 650; color: var(--bs-secondary-color); }
.cd-qr { text-align: center; flex-shrink: 0; padding: 8px 10px; border: 1px solid var(--bs-border-color); border-radius: 12px; }
.cd-qr img { display: block; width: 88px; height: 88px; }
.cd-sheet { overflow: hidden; }
.cd-sheet-body { padding: 1.25rem; }
.cd-kpi-grid .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.cd-kpi-val {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    word-break: break-word;
}
.cd-kpi-ico {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
}
.cd-kpi-ico i { font-size: 22px; }
.cd-kpi-grid .border-top {
    margin-top: auto;
}
.cd-kpi-grid .border-top small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cd-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}
.cd-tabs .nav-link i { margin: 0; }
.cd-tab-short { display: none; }
.pf-ava {
    width: 112px;
    height: 112px;
    border-radius: 1.25rem;
    overflow: hidden;
    background: var(--bs-primary);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 800;
    border: 3px solid var(--bs-border-color);
}
.pf-ava img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cd-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin: 0; }
.cd-dl-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
    padding: 11px 0; border-bottom: 1px solid var(--bs-border-color); margin: 0;
}
.cd-dl-row dt { margin: 0; color: var(--bs-secondary-color); font-size: 13px; }
.cd-dl-row dd { margin: 0; font-size: 13.5px; font-weight: 700; text-align: right; }
.cd-side { background: var(--bs-tertiary-bg); border-radius: 14px; padding: 16px; }
.note-box { background: var(--bs-tertiary-bg); border-radius: 12px; padding: 14px; color: var(--bs-secondary-color); }
.note-item { padding: 12px 0 0; margin-top: 12px; border-top: 1px solid var(--bs-border-color); font-size: 13px; }

.perm-card { padding: 20px 20px 16px; height: 100%; }
.perm-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.perm-card-head h5 { font-size: 16px; font-weight: 800; }
.perm-full {
    background: var(--bs-tertiary-bg); border-radius: 12px; padding: 12px 14px;
    font-size: 13px; color: var(--bs-secondary-color); margin-bottom: 12px;
}
.perm-group-label {
    font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase;
    color: var(--bs-secondary-color); margin: 12px 0 8px;
}
.perm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.perm-chip {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 10px 12px; border-radius: 12px; border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg); cursor: pointer; margin: 0;
}
.perm-chip input { margin-top: 3px; accent-color: var(--bs-primary); }
.perm-chip strong { display: block; font-size: 13px; font-weight: 700; }
.perm-chip small { display: block; color: var(--bs-secondary-color); font-size: 11.5px; }
.perm-chip:has(input:checked) {
    background: rgba(var(--bs-primary-rgb), .12); border-color: transparent;
}
.perm-chip:has(input:checked) strong { color: var(--bs-primary); }
.perm-chip-full { grid-column: 1 / -1; }
.perm-card-foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--bs-border-color); }

.role-perm-group { margin-bottom: 1.15rem; }
.role-perm-group:last-child { margin-bottom: 0; }
.role-perm-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
    cursor: pointer;
}
.role-perm-item.is-on {
    border-color: rgba(var(--bs-primary-rgb), .35);
    background: rgba(var(--bs-primary-rgb), .06);
}
.role-perm-item .form-check-input {
    width: 2.2em;
    height: 1.15em;
    cursor: pointer;
}

.staff-card { padding: 18px; height: 100%; }
.staff-meta {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px;
    margin: 16px 0 14px; padding-top: 14px; border-top: 1px solid var(--bs-border-color);
}
.staff-meta span { display: block; font-size: 11px; color: var(--bs-secondary-color); font-weight: 650; }
.staff-meta strong { font-size: 13.5px; }
.staff-actions { display: flex; gap: 8px; }

.def-nav-group { margin-bottom: 0.85rem; }
.def-nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.55rem 0.7rem;
    border-radius: 0.65rem;
    color: var(--bs-body-color);
    font-weight: 600;
    font-size: 0.875rem;
}
.def-nav-item:hover { background: var(--bs-tertiary-bg); }
.def-nav-item.active {
    background: rgba(var(--bs-primary-rgb), .12);
    color: var(--bs-primary);
}
.def-panel { display: none; }
.def-panel.is-active { display: block; }
.def-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 42px;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}
.def-row .btn-icon {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
@media (max-width: 575.98px) {
    .def-row {
        grid-template-columns: minmax(0, 1fr) 42px;
        grid-template-areas: "label del" "code del";
    }
    .def-row .form-control:not(.def-code) { grid-area: label; }
    .def-row .def-code { grid-area: code; }
    .def-row .def-remove { grid-area: del; align-self: start; }
}

.po-head, .po-line { display: flex; align-items: center; gap: 10px; }
.po-head {
    font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase;
    color: var(--bs-secondary-color); padding: 0 0 8px; border-bottom: 1px solid var(--bs-border-color); margin-bottom: 10px;
}
.po-line { padding: 8px 0; border-bottom: 1px dashed var(--bs-border-color); }
.po-line:last-child { border-bottom: 0; }
.po-col-qty, .po-col-price { width: 110px; flex-shrink: 0; }
.po-col-vat { width: 88px; flex-shrink: 0; }
.po-col-del { width: 52px; flex-shrink: 0; text-align: right; }
.po-total { text-align: right; }
.po-total strong { display: block; font-size: 20px; font-weight: 800; }

.avatar.tone-a { background: var(--bs-primary-bg-subtle); color: var(--bs-primary); }
.avatar.tone-b { background: var(--bs-info-bg-subtle); color: var(--bs-info); }
.avatar.tone-c { background: var(--bs-warning-bg-subtle); color: var(--bs-warning); }
.avatar.tone-d { background: var(--bs-success-bg-subtle); color: var(--bs-success); }
.avatar-stack { display: flex; }
.avatar-stack .avatar { margin-left: -8px; border: 2px solid var(--bs-body-bg); }
.avatar-stack .avatar:first-child { margin-left: 0; }

#calendar { min-height: 560px; }
#calendar .fc-header-toolbar { margin-bottom: 1rem; }
#calendar .fc-timegrid-slot { height: 2.6em; }
#calendar .fc-timegrid-axis-cushion,
#calendar .fc-timegrid-slot-label-cushion { font-size: .75rem; color: var(--bs-secondary-color); }
#calendar .fc-event { border: 0; border-radius: 8px; box-shadow: none; }
#calendar .fc-timegrid-event { padding: 4px 6px; min-height: 2.2em; }
#calendar .fc-timegrid-event .fc-event-main,
#calendar .fc-daygrid-event .fc-event-main { overflow: hidden; }
#calendar .fc-busy-tag {
    display: block;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.2;
    opacity: .9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#calendar .fc-busy-name {
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#calendar .fc-busy-svc { font-size: 11px; opacity: .85; }
#calendar .fc-busy-booked { background: #5955D1 !important; color: #fff !important; }
#calendar .fc-busy-done { background: #16a34a !important; color: #fff !important; }
#calendar .fc-busy-cancel { background: #94a3b8 !important; color: #fff !important; opacity: .7; }
.cal-legend { font-size: 12px; color: var(--bs-secondary-color); }
.cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal-dot { width: 10px; height: 10px; border-radius: 999px; display: inline-block; }
.cal-dot.is-free { background: #e2e8f0; border: 1px solid #cbd5e1; }
.cal-dot.is-busy { background: #5955D1; }
.cal-dot.is-done { background: #16a34a; }
.cal-dot.is-off { background: #cbd5e1; }

.backup-row { padding: 1rem 1.25rem; }
.backup-row:hover { background: var(--bs-tertiary-bg); }
.backup-type { display: block; margin: 0; cursor: pointer; }
.backup-type input { position: absolute; opacity: 0; pointer-events: none; }
.backup-type-card {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 1rem 1.1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
    transition: border-color .15s ease, background .15s ease;
}
.backup-type input:checked + .backup-type-card {
    border-color: rgba(var(--bs-primary-rgb), .45);
    background: rgba(var(--bs-primary-rgb), .08);
}
.backup-type input:focus-visible + .backup-type-card {
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .2);
}
.doc-type .backup-type-card {
    padding: .75rem .9rem;
    min-height: 76px;
    align-items: flex-start;
}
.todo-row { padding: 1rem 1.25rem; }
.todo-row:hover { background: var(--bs-tertiary-bg); }
.todo-row .form-check-input { width: 1.15rem; height: 1.15rem; cursor: pointer; }

.rem-row { padding: 1rem 1.25rem; }
.rem-row:hover { background: var(--bs-tertiary-bg); }
.rem-kpi-trigger { cursor: pointer; }
.rem-kpi { transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
.rem-kpi-trigger:hover .rem-kpi,
.rem-kpi.is-active { transform: translateY(-2px); }
.rem-kpi.is-active { box-shadow: 0 .125rem .5rem rgba(var(--bs-primary-rgb), .12); }
.ntf-row-unread {
    background: rgba(var(--bs-primary-rgb), 0.04);
}
.ntf-row .ntf-open:hover .fw-semibold {
    color: var(--bs-primary);
}
.card-header-pills .nav-link {
    color: var(--bs-secondary-color);
    font-weight: 600;
    font-size: .875rem;
}
.card-header-pills .nav-link.active {
    background: var(--bs-primary);
    color: #fff;
}
.card-header-pills .nav-link.active .badge {
    background: rgba(255,255,255,.2) !important;
    color: #fff !important;
}

@media (max-width: 767.98px) {
    .cd-dl { grid-template-columns: 1fr; }
    .cd-hero-ava { width: 72px; height: 72px; }
    .cd-hero-row { flex-wrap: wrap; }
    .cd-sheet-body { padding: 16px; }
    .cd-qr { display: none; }
    .pipe-stats { grid-template-columns: 1fr; }
    .cd-kpi-grid .card-body { padding: 0.8rem 0.85rem 0.7rem; }
    .cd-kpi-grid .card-title {
        font-size: 0.72rem;
        line-height: 1.25;
    }
    .cd-kpi-val {
        font-size: 1.05rem;
        min-height: 2.4em;
        display: flex;
        align-items: flex-end;
    }
    .cd-kpi-ico {
        width: 32px;
        height: 32px;
    }
    .cd-kpi-ico i { font-size: 16px; }
    .cd-sheet > .card-header {
        padding: 0.7rem;
        background: var(--bs-tertiary-bg);
        border-bottom: 0;
    }
    .cd-tabs {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.45rem;
        flex-wrap: unset !important;
        overflow: visible !important;
        width: 100%;
        margin: 0 0 1rem;
    }
    .cd-sheet .cd-tabs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin: 0;
    }
    .cd-tabs .nav-item {
        width: 100%;
        min-width: 0;
        margin: 0;
    }
    .cd-tabs .nav-link {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.28rem;
        width: 100%;
        min-height: 4.4rem;
        padding: 0.45rem 0.2rem;
        border-radius: 0.85rem;
        border: 1px solid var(--bs-border-color);
        background: var(--bs-body-bg);
        color: var(--bs-body-color);
        font-size: 0.72rem;
        font-weight: 650;
        line-height: 1.15;
        white-space: normal;
        text-align: center;
    }
    .cd-tabs .nav-link i {
        font-size: 1.15rem;
        line-height: 1;
        color: var(--bs-primary);
    }
    .cd-tabs .nav-link.active {
        background: var(--bs-primary) !important;
        border-color: var(--bs-primary);
        color: #fff !important;
    }
    .cd-tabs .nav-link.active i { color: #fff; }
    .cd-sheet .cd-tab-full { display: none; }
    .cd-sheet .cd-tab-short { display: block; }
    .card-header-pills:not(.cd-tabs) {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 0.45rem;
        flex-wrap: unset !important;
        overflow: visible !important;
        width: 100%;
        margin: 0;
    }
    .card-header-pills:not(.cd-tabs) .nav-item {
        width: 100%;
        min-width: 0;
        margin: 0;
    }
    .card-header-pills:not(.cd-tabs) .nav-item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
    .card-header-pills:not(.cd-tabs) .nav-link {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 0.3rem;
        padding: 0.5rem 0.45rem;
        border-radius: 0.7rem;
        border: 1px solid var(--bs-border-color);
        background: var(--bs-body-bg);
        color: var(--bs-body-color);
        font-size: 0.78rem;
        white-space: nowrap;
    }
    .card-header-pills:not(.cd-tabs) .nav-link.active {
        background: var(--bs-primary);
        border-color: var(--bs-primary);
        color: #fff;
    }
    .po-line { flex-wrap: wrap; }
    .po-col-qty, .po-col-price, .po-col-vat { width: calc(33.33% - 8px); }
    .perm-grid { grid-template-columns: 1fr; }
}

/* DataTables — hiza, taşma ve arama kutusu */
.glass-card .table-responsive,
.card .table-responsive,
.glass-card .dataTables_wrapper,
.card .dataTables_wrapper {
    overflow-x: visible;
}
.dataTables_wrapper {
    width: 100%;
    font-family: inherit;
}
.dataTables_wrapper > .row {
    --bs-gutter-x: 0.75rem;
    margin-left: 0;
    margin-right: 0;
}
.dataTables_length,
.dataTables_filter {
    margin-bottom: 0;
    float: none !important;
    text-align: left;
}
.dataTables_length label,
.dataTables_filter label {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin: 0 !important;
    white-space: nowrap;
    font-weight: 500;
    font-family: inherit;
}
.dataTables_length select {
    width: auto !important;
    min-width: 4.5rem;
    display: inline-block !important;
    min-height: 38px !important;
    padding: 0.4rem 1.75rem 0.4rem 0.65rem !important;
}
.dataTables_filter input {
    margin-left: 0 !important;
    min-height: 38px !important;
    height: 38px !important;
    width: 220px !important;
    max-width: 100%;
    display: inline-block !important;
    vertical-align: middle;
}
.dataTables_info,
.dataTables_paginate {
    padding-top: 0 !important;
    font-family: inherit;
}
.dataTables_paginate .pagination {
    margin-bottom: 0;
}
.dataTables_empty {
    text-align: center !important;
    padding: 2.5rem 1rem !important;
    color: var(--bs-secondary-color);
}
table.dataTable {
    width: 100% !important;
    margin: 0 !important;
}
@media (max-width: 1199.98px) {
    .glass-card .table-responsive,
    .card .table-responsive,
    .glass-card .dataTables_wrapper,
    .card .dataTables_wrapper {
        overflow-x: visible !important;
    }
    .dataTables_filter,
    .dataTables_length {
        width: 100%;
        margin-bottom: 0.75rem;
    }
    .dataTables_filter input {
        width: 100% !important;
    }
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td.dt-card-title .d-flex {
        display: flex !important;
        text-align: left;
    }
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td.dt-card-title .d-flex > * {
        max-width: none;
        text-align: left;
    }
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td.dt-card-actions .btn {
        flex: 0 0 auto;
    }
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td[data-label=""]::before,
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td:not([data-label])::before {
        display: none !important;
        flex: 0 0 0 !important;
        width: 0 !important;
        max-width: 0 !important;
        content: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td.dt-card-title,
    .dataTables_wrapper table.dataTable.dt-mobile-cards tbody td.dt-card-title > * {
        max-width: 100% !important;
        width: 100% !important;
        text-align: left !important;
        justify-content: flex-start !important;
    }
}
@media (max-width: 767.98px) {
    .dataTables_info,
    .dataTables_paginate {
        width: 100%;
        justify-content: center !important;
        margin-bottom: 0.75rem;
    }
}

.app-navbar-tabs {
    display: flex;
    flex-direction: column;
}
.app-navbar-tabs-scroll {
    flex: 1 1 auto;
    min-height: 0;
}
.app-navbar-tabs > .logout-item {
    flex: 0 0 auto;
    margin-top: auto;
    margin-bottom: 0;
    width: 100%;
    display: flex;
    justify-content: center;
}

/* Mobilde global gutter sıfırlaması col-6 kartları yapıştırıyor; g-2/g-3 aralığını geri ver */
@media (max-width: 1199.98px) {
    .app-wrapper .row.g-2,
    .app-wrapper .row.g-3,
    .app-wrapper .row.gx-2,
    .app-wrapper .row.gx-3 {
        --bs-gutter-x: 0.75rem !important;
        margin-left: calc(var(--bs-gutter-x) * -0.5) !important;
        margin-right: calc(var(--bs-gutter-x) * -0.5) !important;
    }
    .app-wrapper .row.g-2 > [class*="col"],
    .app-wrapper .row.g-2 > *,
    .app-wrapper .row.g-3 > [class*="col"],
    .app-wrapper .row.g-3 > *,
    .app-wrapper .row.gx-2 > [class*="col"],
    .app-wrapper .row.gx-2 > *,
    .app-wrapper .row.gx-3 > [class*="col"],
    .app-wrapper .row.gx-3 > * {
        padding-left: calc(var(--bs-gutter-x) * 0.5) !important;
        padding-right: calc(var(--bs-gutter-x) * 0.5) !important;
    }
}

/* Form modal-body+footer sarmalayınca Bootstrap scrollable kırılıyor; alt butonlar ekran dışında kalıyor */
.modal-dialog-scrollable {
    height: calc(100dvh - 2rem);
    max-height: calc(100dvh - 2rem);
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.modal-dialog-scrollable .modal-content {
    max-height: 100%;
    overflow: hidden;
}
.modal-dialog-scrollable .modal-content > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer,
.modal-dialog-scrollable .modal-content > form > .modal-footer {
    flex: 0 0 auto;
}
.modal-dialog-scrollable .modal-body,
.modal-dialog-scrollable .modal-content > form > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 575.98px) {
    .modal-dialog-scrollable {
        height: calc(100dvh - 1rem);
        max-height: calc(100dvh - 1rem);
        margin-top: 0.5rem;
        margin-bottom: 0.5rem;
    }
}

/* Mobil modal z-index 100075; takvim onun üstünde açılsın */
.flatpickr-calendar,
.flatpickr-calendar.open {
    z-index: 100120 !important;
}

.wa-pick {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--bs-body-bg);
    overflow: hidden;
}
.wa-pick-toolbar {
    padding: 0.75rem 0.9rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg, rgba(var(--bs-primary-rgb), .04));
}
.wa-pick-list {
    max-height: 320px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.wa-pick-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.9rem;
    margin: 0;
    border-bottom: 1px solid var(--bs-border-color);
    cursor: pointer;
}
.wa-pick-item:last-child { border-bottom: 0; }
.wa-pick-item:hover { background: var(--bs-tertiary-bg, rgba(var(--bs-primary-rgb), .06)); }
.wa-pick-item.is-off { display: none !important; }
.wa-pick-item .form-check-input { flex-shrink: 0; margin-top: 0; }
.wa-pick-empty { display: none; }
.wa-pick-empty.is-show { display: block; }

/* PWA yükleme çubuğu */
.pwa-install-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px));
  pointer-events: none;
}
.pwa-install-card {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 520px;
  margin: 0 auto;
  padding: 14px 14px 14px 12px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 40px rgba(15, 23, 42, .18);
  border: 1px solid rgba(89, 85, 209, .12);
  position: relative;
}
[data-bs-theme="dark"] .pwa-install-card {
  background: #1E1E1E;
  border-color: rgba(255,255,255,.08);
}
.pwa-install-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(89, 85, 209, .12);
  color: #5955D1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.pwa-install-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pwa-install-body strong {
  font-size: .95rem;
  line-height: 1.2;
}
.pwa-install-body span {
  font-size: .78rem;
  color: #64748b;
  line-height: 1.3;
}
.pwa-install-btn {
  border: 0;
  border-radius: 999px;
  background: #5955D1;
  color: #fff;
  font-weight: 600;
  font-size: .875rem;
  padding: .55rem 1rem;
  white-space: nowrap;
}
.pwa-install-close {
  position: absolute;
  top: 6px;
  right: 8px;
  border: 0;
  background: transparent;
  color: #94a3b8;
  font-size: 1.25rem;
  line-height: 1;
  padding: 2px 6px;
}
.pwa-install-help {
  pointer-events: auto;
  max-width: 520px;
  margin: 8px auto 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: .82rem;
  color: #334155;
}
.pwa-install-help ol {
  margin: 0;
  padding-left: 1.2rem;
}
.pwa-install-help p { margin: 0; }
@media (min-width: 992px) {
  .pwa-install-bar { display: none; }
}

