/* Finproman - Custom Styles (Tabler.io overrides) */

/* ══════════════════════════════════════════════════
   GLOBAL SETTINGS & OVAL KENARLAR
   ══════════════════════════════════════════════════ */
:root {
    --tblr-font-sans-serif: "Inter Var", Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
    --tblr-body-font-family: var(--tblr-font-sans-serif);
    --tblr-border-radius: 8px;
    --tblr-border-radius-sm: 4px;
    --tblr-border-radius-lg: 12px;
    --tblr-card-border-radius: 8px;
}

body {
    font-family: var(--tblr-font-sans-serif);
    font-feature-settings: "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Oval Kenarlar (Rounded Corners) ── */
.card {
    border-radius: var(--tblr-card-border-radius);
    overflow: hidden;
    box-shadow: 0 0 4px rgba(0,0,0,.04);
    border: 1px solid rgba(98,105,118,.16);
    transition: box-shadow 0.2s ease;
}

.modal-content { border-radius: var(--tblr-border-radius-lg); overflow: hidden; }
.btn { border-radius: var(--tblr-border-radius); }
.form-control, .form-select { border-radius: var(--tblr-border-radius); }
.input-group > :first-child { border-radius: var(--tblr-border-radius) 0 0 var(--tblr-border-radius) !important; }
.input-group > :last-child { border-radius: 0 var(--tblr-border-radius) var(--tblr-border-radius) 0 !important; }
.badge { border-radius: var(--tblr-border-radius-lg); padding: .35em .65em; }

/* Badge kontrast duzeltmesi — acik arka plan + koyu yazi (Tabler -lt stili) */
.badge.bg-lime-lt, .label-badge.bg-lime-lt           { background-color: #d4edbc !important; color: #3b6212 !important; }
.badge.bg-green-lt, .label-badge.bg-green-lt         { background-color: #d5f0d8 !important; color: #1a6928 !important; }
.badge.bg-success-lt, .label-badge.bg-success-lt     { background-color: #d5f0d8 !important; color: #1a6928 !important; }
.badge.bg-cyan-lt, .label-badge.bg-cyan-lt           { background-color: #d1ecf1 !important; color: #0c5460 !important; }
.badge.bg-azure-lt, .label-badge.bg-azure-lt         { background-color: #d6e8f7 !important; color: #1a5089 !important; }
.badge.bg-blue-lt, .label-badge.bg-blue-lt           { background-color: #d2e1f5 !important; color: #14447a !important; }
.badge.bg-info-lt, .label-badge.bg-info-lt           { background-color: #d6e8f7 !important; color: #1a5089 !important; }
.badge.bg-indigo-lt, .label-badge.bg-indigo-lt       { background-color: #dbd8f7 !important; color: #2b3ea8 !important; }
.badge.bg-purple-lt, .label-badge.bg-purple-lt       { background-color: #ecd4f2 !important; color: #7a2490 !important; }
.badge.bg-pink-lt, .label-badge.bg-pink-lt           { background-color: #f5d0df !important; color: #9c1e4e !important; }
.badge.bg-red-lt, .label-badge.bg-red-lt             { background-color: #f5d2d2 !important; color: #9c2323 !important; }
.badge.bg-danger-lt, .label-badge.bg-danger-lt       { background-color: #f5d2d2 !important; color: #9c2323 !important; }
.badge.bg-orange-lt, .label-badge.bg-orange-lt       { background-color: #fde0c8 !important; color: #b34e00 !important; }
.badge.bg-warning-lt, .label-badge.bg-warning-lt     { background-color: #fdf0cc !important; color: #a67400 !important; }
.badge.bg-yellow-lt, .label-badge.bg-yellow-lt       { background-color: #fdf0cc !important; color: #a67400 !important; }
.badge.bg-secondary-lt, .label-badge.bg-secondary-lt { background-color: #e2e4e7 !important; color: #3d4450 !important; }
.badge.bg-primary-lt, .label-badge.bg-primary-lt     { background-color: #d2e1f5 !important; color: #14447a !important; }

/* -lt olmayan duz badge'ler icin beyaz yazi (bg-red, bg-green, bg-blue vb.) */
.badge.bg-red, .badge.bg-green, .badge.bg-blue, .badge.bg-purple,
.badge.bg-cyan, .badge.bg-indigo, .badge.bg-orange, .badge.bg-pink,
.badge.bg-azure, .badge.bg-lime, .badge.bg-danger, .badge.bg-success,
.badge.bg-info, .badge.bg-primary, .badge.bg-secondary,
.badge.bg-dark { color: #fff !important; }
/* Sari/warning badge'ler koyu yazi ile daha okunur */
.badge.bg-yellow, .badge.bg-warning { color: #614700 !important; }

/* ── Etiket Desen Stilleri (label-pattern-*) — kalin & belirgin ── */
[class*="label-pattern-"] { background-repeat: repeat !important; }

/* 1. Capraz kalin cizgiler */
.label-pattern-stripes {
    background-image: repeating-linear-gradient(
        -45deg,
        transparent 0px, transparent 3px,
        rgba(255,255,255,.55) 3px, rgba(255,255,255,.55) 6px,
        transparent 6px, transparent 9px) !important;
    background-size: auto !important;
}

/* 2. Zigzag / chevron */
.label-pattern-zigzag {
    background-image:
        linear-gradient(135deg, rgba(255,255,255,.45) 25%, transparent 25%),
        linear-gradient(225deg, rgba(255,255,255,.45) 25%, transparent 25%),
        linear-gradient(45deg, rgba(255,255,255,.45) 25%, transparent 25%),
        linear-gradient(315deg, rgba(255,255,255,.45) 25%, transparent 25%) !important;
    background-size: 12px 6px !important;
    background-position: 0 0, 6px 0, 6px 3px, 0 3px !important;
}

/* 3. Yatay kalin cizgiler */
.label-pattern-crosshatch {
    background-image: repeating-linear-gradient(
        0deg,
        transparent 0px, transparent 3px,
        rgba(255,255,255,.5) 3px, rgba(255,255,255,.5) 6px) !important;
    background-size: auto !important;
}

/* 4. Buyuk noktalar */
.label-pattern-dots {
    background-image:
        radial-gradient(circle, rgba(255,255,255,.6) 2.5px, transparent 2.5px) !important;
    background-size: 8px 8px !important;
    background-position: 2px 2px !important;
}

/* 5. Dalga / S-egri */
.label-pattern-waves {
    background-image:
        url("data:image/svg+xml,%3Csvg width='16' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 4c2.67-3 5.33-3 8 0s5.33 3 8 0' fill='none' stroke='rgba(255,255,255,0.55)' stroke-width='2'/%3E%3C/svg%3E") !important;
    background-size: 16px 8px !important;
}

/* 6. Baklava / checkerboard */
.label-pattern-diamonds {
    background-image:
        linear-gradient(45deg, rgba(255,255,255,.4) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.4) 75%),
        linear-gradient(45deg, rgba(255,255,255,.4) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.4) 75%) !important;
    background-size: 10px 10px !important;
    background-position: 0 0, 5px 5px !important;
}

/* 7. Kesikli cizgiler */
.label-pattern-hearts {
    background-image: repeating-linear-gradient(
        90deg,
        rgba(255,255,255,.5) 0px, rgba(255,255,255,.5) 4px,
        transparent 4px, transparent 7px) !important;
    background-size: auto 3px !important;
    background-position: 0 50% !important;
    background-repeat: repeat-x !important;
}

/* 8. Izgara / grid */
.label-pattern-grid {
    background-image:
        linear-gradient(rgba(255,255,255,.45) 2px, transparent 2px),
        linear-gradient(90deg, rgba(255,255,255,.45) 2px, transparent 2px) !important;
    background-size: 8px 8px !important;
}

/* ── Etiket Chip (solda desen kutusu + sagda text) ── */
.label-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 4px;
    border-radius: 6px;
    background: rgba(0,0,0,.04);
    border: 1px solid rgba(0,0,0,.08);
}
.label-chip-lg { padding: 4px 14px 4px 5px; }
.label-chip-lg .label-chip-swatch { width: 22px; height: 22px; border-radius: 5px; }
.label-chip-lg .label-chip-text { font-size: .8125rem; }
.label-chip-swatch {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    flex-shrink: 0;
}
.label-chip-text {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #2d3748;
    line-height: 1.2;
}
[data-bs-theme="dark"] .label-chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
[data-bs-theme="dark"] .label-chip-text { color: #e2e8f0; }

/* ── Renk/Desen Secim Kutulari ── */
.color-pick-box {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px 4px 4px;
    border-radius: 6px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: transform .1s, box-shadow .15s;
    background: rgba(0,0,0,.03);
}
.color-pick-box:hover { transform: scale(1.03); background: rgba(0,0,0,.06); }
.color-pick-box.selected { border-color: var(--tblr-primary); box-shadow: 0 0 0 2px rgba(32,107,196,.3); }
.color-pick-swatch {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    flex-shrink: 0;
}
.color-pick-name {
    font-size: .6875rem;
    font-weight: 600;
    color: #4a5568;
    white-space: nowrap;
}
[data-bs-theme="dark"] .color-pick-box { background: rgba(255,255,255,.05); }
[data-bs-theme="dark"] .color-pick-box:hover { background: rgba(255,255,255,.1); }
[data-bs-theme="dark"] .color-pick-name { color: #a0aec0; }

/* Eski desen onizleme kutulari (geriye uyumluluk) */
.pattern-preview-box {
    width: 100%; height: 28px; border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    font-size: .6875rem; font-weight: 600; color: #fff;
    cursor: pointer; transition: transform .1s, box-shadow .15s;
    border: 2px solid transparent;
}
.pattern-preview-box:hover { transform: scale(1.05); }
.pattern-preview-box.selected { border-color: var(--tblr-primary); box-shadow: 0 0 0 2px rgba(32,107,196,.4); }

.alert { border-radius: var(--tblr-border-radius); }
.table-responsive { border-radius: inherit; }
.avatar { border-radius: var(--tblr-border-radius-lg); }
.page-link { border-radius: var(--tblr-border-radius-sm) !important; }
.dropdown-menu { border-radius: var(--tblr-border-radius); overflow: hidden; box-shadow: 0 4px 24px rgba(0,0,0,.12); }
.toast { border-radius: var(--tblr-border-radius); }
.nav-tabs .nav-link { border-radius: var(--tblr-border-radius) var(--tblr-border-radius) 0 0; }
.progress { border-radius: var(--tblr-border-radius); }
.list-group-item:first-child { border-top-left-radius: var(--tblr-border-radius); border-top-right-radius: var(--tblr-border-radius); }
.list-group-item:last-child { border-bottom-left-radius: var(--tblr-border-radius); border-bottom-right-radius: var(--tblr-border-radius); }

/* ══════════════════════════════════════════════════
   PAGE LAYOUT & STRUCTURE
   ══════════════════════════════════════════════════ */
.page-body { padding: 1.5rem 0; }

.page-header .page-pretitle {
    font-size: .625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tblr-secondary);
}

/* Breadcrumb */
.breadcrumb { margin-bottom: 0; font-size: .75rem; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--tblr-secondary); }
.breadcrumb-item a { color: var(--tblr-secondary); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--tblr-primary); }
.breadcrumb-item.active { color: var(--tblr-body-color); }

/* ══════════════════════════════════════════════════
   TABLE IMPROVEMENTS
   ══════════════════════════════════════════════════ */
.table th {
    font-size: .625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tblr-secondary);
    border-bottom-width: 1px;
}

.table td { vertical-align: middle; }

.table-hover tbody tr:hover {
    background-color: rgba(var(--tblr-primary-rgb), .04);
}

/* Action buttons in tables */
.btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--tblr-secondary);
    border-radius: var(--tblr-border-radius);
    transition: color .2s, background .2s;
    cursor: pointer;
}
.btn-action:hover { color: var(--tblr-primary); background: rgba(var(--tblr-primary-rgb), .08); }
.btn-action.text-danger:hover { color: var(--tblr-danger); background: rgba(var(--tblr-danger-rgb), .08); }

.btn-action .icon { width: 1rem; height: 1rem; stroke-width: 2; }

/* ══════════════════════════════════════════════════
   CARD ENHANCEMENTS
   ══════════════════════════════════════════════════ */
.card-status-top {
    height: 3px;
    border-radius: var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0;
}

.card-status-start {
    width: 3px;
    border-radius: var(--tblr-card-border-radius) 0 0 var(--tblr-card-border-radius);
}

/* Card stamp watermark */
.card-stamp {
    position: absolute;
    top: 0;
    right: 0;
    width: 6rem;
    height: 6rem;
    overflow: hidden;
    pointer-events: none;
}
.card-stamp-icon {
    position: absolute;
    right: -.5rem;
    top: -.5rem;
    color: var(--tblr-secondary);
    opacity: .1;
    width: 5rem;
    height: 5rem;
}

/* Section divider for forms */
.section-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1.5rem 0;
    color: var(--tblr-secondary);
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.section-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--tblr-border-color);
}
.section-divider .icon {
    width: 1.25rem;
    height: 1.25rem;
    stroke-width: 1.5;
}

/* Empty state */
.empty { text-align: center; padding: 3rem 1rem; }
.empty-icon { margin-bottom: 1rem; }
.empty-icon .icon { width: 3rem; height: 3rem; color: var(--tblr-secondary); stroke-width: 1.5; }
.empty-title { font-size: 1.25rem; font-weight: 600; line-height: 1.4; }
.empty-subtitle { margin-top: .25rem; color: var(--tblr-secondary); }
.empty-action { margin-top: 1.5rem; }

/* ══════════════════════════════════════════════════
   RIBBON STYLES
   ══════════════════════════════════════════════════ */
.ribbon {
    position: absolute;
    top: .75rem;
    right: -.25rem;
    z-index: 1;
    padding: .25rem .75rem;
    font-size: .625rem;
    font-weight: 600;
    line-height: 1.5rem;
    color: #fff;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--tblr-primary);
    border-radius: var(--tblr-border-radius) 0 var(--tblr-border-radius) var(--tblr-border-radius);
}

.ribbon::before {
    position: absolute;
    right: 0;
    bottom: 100%;
    width: .25rem;
    height: .25rem;
    content: "";
    border: .125rem solid;
    border-color: inherit;
    border-top-color: transparent;
    border-right-color: transparent;
}

.ribbon.bg-red { background: var(--tblr-red) !important; border-color: var(--tblr-red); }
.ribbon.bg-green { background: var(--tblr-green) !important; border-color: var(--tblr-green); }
.ribbon.bg-yellow { background: var(--tblr-yellow) !important; border-color: var(--tblr-yellow); }
.ribbon.bg-blue { background: var(--tblr-blue) !important; border-color: var(--tblr-blue); }
.ribbon.bg-cyan { background: var(--tblr-cyan) !important; border-color: var(--tblr-cyan); }

.ribbon-top {
    top: -.25rem;
    right: .75rem;
    width: 2rem;
    padding: .5rem 0;
    border-radius: 0 0 var(--tblr-border-radius) var(--tblr-border-radius);
}

.ribbon-top::before {
    top: 0;
    right: 100%;
    bottom: auto;
    border-color: inherit;
    border-top-color: transparent;
    border-left-color: transparent;
}

/* ══════════════════════════════════════════════════
   PLACEHOLDER / SKELETON LOADING
   ══════════════════════════════════════════════════ */
.placeholder-glow .placeholder {
    animation: placeholder-glow 2s ease-in-out infinite;
    border-radius: var(--tblr-border-radius);
}

@keyframes placeholder-glow {
    50% { opacity: .2; }
}

/* Skeleton card */
.skeleton-card .placeholder {
    border-radius: var(--tblr-border-radius-sm);
}

/* ══════════════════════════════════════════════════
   STEPS
   ══════════════════════════════════════════════════ */
.steps {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
}

.step-item {
    position: relative;
    flex: 1 1 0;
    min-height: 1rem;
    margin-top: 0;
    color: inherit;
    text-align: center;
    cursor: default;
    padding-top: 1.5rem;
}

.step-item::before {
    position: absolute;
    top: .5rem;
    left: calc(50% + .75rem);
    width: calc(100% - 1.5rem);
    height: 2px;
    content: "";
    background: var(--tblr-border-color);
}

.step-item:last-child::before { display: none; }

.step-item::after {
    position: absolute;
    top: .125rem;
    left: 50%;
    z-index: 1;
    width: .75rem;
    height: .75rem;
    content: "";
    border-radius: 50%;
    background: var(--tblr-bg-surface);
    border: 2px solid var(--tblr-border-color);
    transform: translateX(-50%);
}

.step-item.active::after {
    border-color: var(--tblr-primary);
    background: var(--tblr-primary);
}

.step-item.active ~ .step-item::after { border-color: var(--tblr-border-color); }

.steps-green .step-item.active::after { border-color: var(--tblr-green); background: var(--tblr-green); }
.steps-blue .step-item.active::after { border-color: var(--tblr-blue); background: var(--tblr-blue); }
.steps-red .step-item.active::after { border-color: var(--tblr-red); background: var(--tblr-red); }

/* ══════════════════════════════════════════════════
   DARK MODE
   ══════════════════════════════════════════════════ */
[data-bs-theme="dark"] body,
[data-bs-theme="dark"] .page-wrapper,
[data-bs-theme="dark"] .card {
    transition: background-color 0.2s ease, color 0.2s ease;
}

[data-bs-theme="dark"] .card {
    border-color: rgba(255,255,255,.08);
    box-shadow: 0 0 4px rgba(0,0,0,.2);
}

[data-bs-theme="dark"] .section-divider::after { background: rgba(255,255,255,.1); }
[data-bs-theme="dark"] tr.row-estimated { background-color: rgba(255,243,205,.1) !important; }

/* ══════════════════════════════════════════════════
   DROPDOWN & NAV
   ══════════════════════════════════════════════════ */
.dropdown-item-icon {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: .5rem;
    color: var(--tblr-secondary);
    opacity: .7;
}

.nav-link-icon + .nav-link-title { margin-left: 0; }

/* ══════════════════════════════════════════════════
   ACTIVITY / TIMELINE
   ══════════════════════════════════════════════════ */
.activity { list-style: none; padding: 0; margin: 0; }

.activity-item {
    position: relative;
    padding: .5rem 0 .5rem 2rem;
}

.activity-item::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: .75rem;
    width: 2px;
    content: "";
    background: var(--tblr-border-color);
}

.activity-item:last-child::before { display: none; }

.activity-item .activity-icon {
    position: absolute;
    top: .5rem;
    left: 0;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-size: .75rem;
    z-index: 1;
}

/* ══════════════════════════════════════════════════
   DATAGRID (key-value layout)
   ══════════════════════════════════════════════════ */
.datagrid {
    --tblr-datagrid-item-width: 15rem;
    display: grid;
    grid-gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(var(--tblr-datagrid-item-width), 1fr));
}

.datagrid-title {
    font-size: .625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1rem;
    color: var(--tblr-secondary);
    margin-bottom: .25rem;
}

.datagrid-content {
    font-size: .875rem;
    line-height: 1.25rem;
}

.sparkline {
    display: inline-block;
    height: 1.25rem;
    vertical-align: text-bottom;
}

/* ══════════════════════════════════════════════════
   FORM STYLES
   ══════════════════════════════════════════════════ */
.form-label {
    font-size: .875rem;
    font-weight: 500;
    margin-bottom: .375rem;
}

.form-label.required::after {
    content: " *";
    color: var(--tblr-danger);
}
.form-control.is-invalid, .form-select.is-invalid {
    border-color: var(--tblr-danger) !important;
    box-shadow: 0 0 0 .25rem rgba(var(--tblr-danger-rgb), .15);
}
.invalid-feedback {
    display: none;
    font-size: .75rem;
    color: var(--tblr-danger);
    margin-top: .25rem;
}
.is-invalid ~ .invalid-feedback { display: block; }

.form-text { font-size: .75rem; color: var(--tblr-secondary); margin-top: .25rem; }

.form-fieldset {
    padding: 1rem;
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    background: rgba(var(--tblr-primary-rgb), .01);
}

/* Input icon */
.input-icon { position: relative; }
.input-icon .input-icon-addon {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    color: var(--tblr-secondary);
    pointer-events: none;
}
.input-icon .input-icon-addon .icon { width: 1.125rem; height: 1.125rem; stroke-width: 1.5; }
.input-icon .form-control { padding-left: 2.5rem; }

/* Validation styles */
.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; }
.invalid { outline: 1px solid #e50000; }
.validation-message { color: #e50000; font-size: 0.875rem; }

/* ══════════════════════════════════════════════════
   BLAZOR ERROR BOUNDARY
   ══════════════════════════════════════════════════ */
.blazor-error-boundary {
    background: #b32121;
    padding: 1rem;
    color: white;
    border-radius: var(--tblr-border-radius);
}

.blazor-error-boundary::after { content: "Bir hata olustu."; }

/* ══════════════════════════════════════════════════
   DATAGRID SEARCH
   ══════════════════════════════════════════════════ */
.datagrid-search { max-width: 300px; }
.cursor-pointer { cursor: pointer; }
.sortable:hover { background-color: rgba(0,0,0,.03); }

/* ══════════════════════════════════════════════════
   PIPELINE BOARD — Jira-Style Kanban
   ══════════════════════════════════════════════════ */

/* ── Container ── */
#kanban-container {
    padding: 0;
    background: #f4f5f7;
    border-radius: 8px;
    flex: 1;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
}
#kanban-container::-webkit-scrollbar { height: 8px; }
#kanban-container::-webkit-scrollbar-track { background: transparent; }
#kanban-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,.18); border-radius: 99px; }
#kanban-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.3); }
[data-bs-theme="dark"] #kanban-container { background: #1a1f2e; }

#kanban-container .kanban-container {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px;
    overflow: visible !important;
    padding: 12px 8px 16px;
    width: max-content !important;
    min-width: 100%;
    height: 100%;
    align-items: flex-start;
}

/* ── Sutun ── */
#kanban-container .kanban-board {
    min-width: 272px !important;
    max-width: 300px;
    flex-shrink: 0;
    background: #f0f1f4;
    border: 1px solid rgba(0,0,0,.05);
    border-radius: 10px;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    box-shadow: none;
    transition: background .2s, min-width .3s, max-width .3s;
}
#kanban-container .kanban-board:hover { background: #e8eaed; }
[data-bs-theme="dark"] #kanban-container .kanban-board { background: #22283a; border-color: rgba(255,255,255,.06); }
[data-bs-theme="dark"] #kanban-container .kanban-board:hover { background: #2a3148; }

/* ── Collapse / Minimize ── */
#kanban-container .kanban-board.kb-collapsed {
    min-width: 42px !important;
    max-width: 42px !important;
    overflow: hidden !important;
    height: auto;
    max-height: none;
}
#kanban-container .kanban-board.kb-collapsed .kanban-drag {
    min-height: 60px;
    opacity: 0;
    transition: opacity .2s, background .2s;
    overflow: hidden;
}
#kanban-container .kanban-board.kb-collapsed .kanban-drag .kanban-item { display: none; }
#kanban-container .kanban-board.kb-collapsed .kanban-drag.drag-over-active {
    opacity: 1;
    background: rgba(32, 107, 196, .12);
    border: 2px dashed rgba(32, 107, 196, .4);
    border-radius: 8px;
}
#kanban-container .kanban-board.kb-collapsed .kanban-board-header {
    padding: 12px 0;
    border-bottom: none;
}
#kanban-container .kanban-board.kb-collapsed .kanban-title-board {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 4px 0;
}
#kanban-container .kanban-board.kb-collapsed .kb-hdr-dot {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
}
#kanban-container .kanban-board.kb-collapsed .kb-hdr-name {
    writing-mode: vertical-lr;
    text-orientation: mixed;
    font-size: .65rem;
    white-space: nowrap;
    letter-spacing: .06em;
}
#kanban-container .kanban-board.kb-collapsed .kb-hdr-cnt {
    font-size: .6rem;
    padding: 0 5px;
    line-height: 18px;
    min-width: 18px;
}

/* ── Context Menu (Sag Tik) ── */
.kb-ctx-menu {
    position: absolute;
    z-index: 9999;
    background: var(--tblr-bg-surface, #fff);
    border: 1px solid var(--tblr-border-color, #e6e7e9);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
    padding: 4px 0;
    min-width: 190px;
    animation: ctxFadeIn .12s ease-out;
}
@keyframes ctxFadeIn { from { opacity:0; transform:scale(.95); } to { opacity:1; transform:scale(1); } }
.kb-ctx-menu button {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    border: none;
    background: none;
    padding: 7px 14px;
    font-size: .82rem;
    color: var(--tblr-body-color, #1e293b);
    cursor: pointer;
    transition: background .1s;
    text-align: left;
}
.kb-ctx-menu button:hover { background: var(--tblr-active-bg, #f1f5f9); }
.kb-ctx-menu button.text-success { color: #2fb344; }
.kb-ctx-menu button.text-success:hover { background: #2fb34410; }
.kb-ctx-menu button.text-danger { color: #d63939; }
.kb-ctx-menu button.text-danger:hover { background: #d6393910; }
.kb-ctx-menu button.text-warning { color: #f59f00; }
.kb-ctx-menu button.text-warning:hover { background: #f59f0010; }
.kb-ctx-divider {
    height: 1px;
    background: var(--tblr-border-color, #e6e7e9);
    margin: 4px 0;
}
[data-bs-theme="dark"] .kb-ctx-menu { background: #1e2740; border-color: #2a3148; }
[data-bs-theme="dark"] .kb-ctx-menu button:hover { background: #2a3148; }

/* ── Sutun Header ── */
#kanban-container .kanban-board-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 10px 12px 8px;
    border-bottom: 1px solid rgba(0,0,0,.05);
    background: transparent;
    cursor: pointer;
    position: relative;
    user-select: none;
    border-radius: 10px 10px 0 0;
    transition: background .15s;
}
#kanban-container .kanban-title-board {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 1;
    min-width: 0;
}
#kanban-container .kanban-board-header:hover {
    background: rgba(0,0,0,.04);
}
[data-bs-theme="dark"] #kanban-container .kanban-board-header {
    border-bottom-color: rgba(255,255,255,.08);
}
/* Renkli ust bar kaldirildi — yerine header'da dot kullaniliyor */

.kb-hdr-name {
    flex: 1;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #5e6c84;
}
[data-bs-theme="dark"] .kb-hdr-name { color: #9fadbc; }

.kb-hdr-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: rgba(116,184,22,.15);
    color: #74b816;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s, transform .15s;
}
.kb-hdr-add:hover {
    background: rgba(116,184,22,.3);
    transform: scale(1.15);
}
[data-bs-theme="dark"] .kb-hdr-add { background: rgba(116,184,22,.2); }
[data-bs-theme="dark"] .kb-hdr-add:hover { background: rgba(116,184,22,.4); }

.kb-hdr-cnt {
    font-size: .7rem;
    font-weight: 700;
    color: #5e6c84;
    background: rgba(0,0,0,.08);
    padding: 0 7px;
    border-radius: 99px;
    line-height: 20px;
    min-width: 20px;
    text-align: center;
}
[data-bs-theme="dark"] .kb-hdr-cnt { color: #9fadbc; background: rgba(255,255,255,.1); }

/* ── Drag alani ── */
#kanban-container .kanban-drag {
    flex: 1;
    overflow-y: auto;
    padding: 0 6px 6px;
    min-height: 40px;
}
#kanban-container .kanban-drag::-webkit-scrollbar { width: 6px; }
#kanban-container .kanban-drag::-webkit-scrollbar-track { background: transparent; }
#kanban-container .kanban-drag::-webkit-scrollbar-thumb { background: rgba(0,0,0,.12); border-radius: 99px; }

/* ── Kart wrapper ── */
#kanban-container .kanban-item {
    cursor: grab;
    margin-bottom: 6px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.05);
    box-shadow: 0 1px 2px rgba(9,30,66,.08);
    transition: background .1s, box-shadow .15s, transform .15s;
    padding: 0 !important;
    overflow: visible;
}
[data-bs-theme="dark"] #kanban-container .kanban-item {
    background: #2b3245;
    border-color: rgba(255,255,255,.06);
    box-shadow: 0 1px 2px rgba(0,0,0,.3);
}
#kanban-container .kanban-item:active { cursor: grabbing; }
#kanban-container .kanban-item:hover {
    background: #f4f5f7;
    box-shadow: 0 2px 4px rgba(9,30,66,.2);
    transform: none;
}
[data-bs-theme="dark"] #kanban-container .kanban-item:hover { background: #343d55; }

/* ── Ay Basligi (kart icine gomulu) ── */
.kb-month-header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #5e6c84;
    padding: 4px 10px 6px;
    border-bottom: 1px solid rgba(0,0,0,.06);
    margin: -1px -1px 0;
    border-radius: 8px 8px 0 0;
    background: rgba(0,0,0,.02);
}
.kb-month-text { flex: 1; }
.kb-month-cnt {
    font-size: .6rem;
    font-weight: 700;
    color: #5e6c84;
    background: rgba(0,0,0,.06);
    padding: 0 5px;
    border-radius: 99px;
    line-height: 16px;
    min-width: 16px;
    text-align: center;
}
[data-bs-theme="dark"] .kb-month-header { color: #8b949e; }
[data-bs-theme="dark"] .kb-month-cnt { background: rgba(255,255,255,.08); color: #8b949e; }
.kb-month-item {
    background: transparent !important;
    box-shadow: none !important;
    cursor: default !important;
    padding: 6px 6px 2px !important;
    margin-bottom: 0 !important;
    min-height: auto !important;
    border-radius: 0 !important;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}
.kb-month-item:hover { background: transparent !important; }
.kb-month-item * { pointer-events: none; }

/* ── Kart IC TASARIM (sol seritli layout) ── */
.kb-card {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    display: flex;
    flex-direction: row;
    min-height: 58px;
}

/* Sol renkli serit */
.kb-card-stripe {
    width: 4px;
    flex-shrink: 0;
    border-radius: 8px 0 0 8px;
}

/* Sag ana icerik */
.kb-card-main {
    flex: 1;
    padding: 8px 10px 6px 8px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Ust satir: avatar + baslik/musteri */
.kb-card-top-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.kb-card-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .65rem;
    font-weight: 800;
    flex-shrink: 0;
    margin-top: 1px;
}

.kb-card-info {
    flex: 1;
    min-width: 0;
}

.kb-card-title {
    font-size: .8rem;
    font-weight: 600;
    color: #172b4d;
    line-height: 1.3;
    margin-bottom: 1px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
[data-bs-theme="dark"] .kb-card-title { color: #c9d1d9; }

.kb-card-customer {
    font-size: .7rem;
    color: #5e6c84;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[data-bs-theme="dark"] .kb-card-customer { color: #8b949e; }

/* Etiketler */
.kb-labels { display: flex; flex-wrap: wrap; gap: 3px; }
.kb-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .5625rem;
    font-weight: 700;
    padding: 2px 6px 2px 3px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.kb-label-swatch {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    flex-shrink: 0;
}
.kb-label-text {
    line-height: 1.2;
}

/* Alt satir: dosya/proje + tarih */
.kb-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 3px;
}
.kb-card-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}
.kb-icon {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: .625rem;
    color: #5e6c84;
}
[data-bs-theme="dark"] .kb-icon { color: #8b949e; }

.kb-badge-proj {
    font-size: .55rem;
    font-weight: 800;
    background: #e3fcef;
    color: #006644;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: .05em;
}
[data-bs-theme="dark"] .kb-badge-proj { background: #1a3a2a; color: #4ade80; }

.kb-card-date {
    font-size: .625rem;
    color: #5e6c84;
}
[data-bs-theme="dark"] .kb-card-date { color: #8b949e; }

/* ── Bos sutun placeholder ── */
.kb-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 24px 8px;
    color: #c0c6d0;
    font-size: .75rem;
    font-weight: 500;
}
[data-bs-theme="dark"] .kb-empty { color: #5a6270; }

/* ── Header renkli nokta ── */
.kb-hdr-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Bos placeholder kart — kart gorunumu yok */
#kanban-container .kanban-item:has(.kb-empty) {
    background: transparent !important;
    box-shadow: none !important;
    cursor: default !important;
    pointer-events: none;
}

/* ── Dragula ── */
.gu-mirror {
    opacity: .95;
    z-index: 99999;
    box-shadow: 0 8px 24px rgba(9,30,66,.25), 0 0 1px rgba(9,30,66,.31);
    border-radius: 8px;
    transform: rotate(2deg);
    cursor: grabbing !important;
}
.gu-transit {
    opacity: .15;
    background: #091e4214;
    border-radius: 8px;
}
.gu-hide { display: none !important; }

/* ── File drop ── */
#kanban-container .kanban-item.file-drop-active {
    outline: 2px dashed var(--tblr-primary);
    outline-offset: 2px;
    background: rgba(var(--tblr-primary-rgb), .04);
}

/* ── Pipeline search ── */
.pipeline-search { max-width: 400px; }

/* ══════════════════════════════════════════════════
   MONEY INPUT
   ══════════════════════════════════════════════════ */
.money-input-group .form-control { text-align: right; }

/* ══════════════════════════════════════════════════
   TAB PANEL
   ══════════════════════════════════════════════════ */
.tab-panel .nav-link {
    cursor: pointer;
    border-radius: var(--tblr-border-radius) var(--tblr-border-radius) 0 0;
}

.tab-panel .nav-link.active {
    font-weight: 600;
}

/* ══════════════════════════════════════════════════
   FILE UPLOAD
   ══════════════════════════════════════════════════ */
.file-upload-zone {
    border: 2px dashed var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    padding: 2rem;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background-color 0.2s;
}

.file-upload-zone:hover {
    border-color: var(--tblr-primary);
    background-color: rgba(var(--tblr-primary-rgb), .04);
}

/* ══════════════════════════════════════════════════
   ESTIMATED ROW
   ══════════════════════════════════════════════════ */
tr.row-estimated {
    background-color: #fff3cd !important;
}

/* ══════════════════════════════════════════════════
   TOAST ANIMATIONS
   ══════════════════════════════════════════════════ */
.toast-container .toast {
    animation: toast-slide-in 0.3s ease-out;
    border-radius: var(--tblr-border-radius);
}

@keyframes toast-slide-in {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* ══════════════════════════════════════════════════
   MODAL ANIMATIONS
   ══════════════════════════════════════════════════ */
.modal.show .modal-dialog {
    animation: modal-fade-in 0.2s ease-out;
}

@keyframes modal-fade-in {
    from { transform: translateY(-10px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* ══════════════════════════════════════════════════
   LOGIN PAGE
   ══════════════════════════════════════════════════ */
.auth-form .card {
    box-shadow: 0 4px 24px rgba(0,0,0,.08);
}

.auth-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    color: var(--tblr-body-color);
}

.auth-logo .icon { width: 2.5rem; height: 2.5rem; color: var(--tblr-primary); }
.auth-logo h1 { font-size: 1.75rem; font-weight: 700; margin: 0; }

/* ══════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
    .page { flex-direction: column; }
    #kanban-container .kanban-board { min-width: 240px !important; }
}

@media (max-width: 575.98px) {
    .page-header { padding: .75rem 0; }
    .page-body { padding: .75rem 0; }
}

/* ══════════════════════════════════════════════════
   INLINE EDIT
   ══════════════════════════════════════════════════ */
.inline-edit-display {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 1.5em;
    line-height: 1.5;
}
.inline-edit-display.editable {
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    transition: background .15s;
}
.inline-edit-display.editable:hover {
    background: rgba(var(--tblr-primary-rgb), .08);
}
.inline-edit-icon {
    opacity: 0;
    width: 14px;
    height: 14px;
    color: var(--tblr-secondary);
    transition: opacity .15s;
    flex-shrink: 0;
}
.inline-edit-display.editable:hover .inline-edit-icon {
    opacity: .7;
}
.inline-edit-input {
    animation: inlineEditFadeIn .15s ease;
}
@keyframes inlineEditFadeIn {
    from { opacity: 0; transform: translateY(-2px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ══════════════════════════════════════════════════
   FILE UPLOAD & THUMBNAILS
   ══════════════════════════════════════════════════ */
.file-upload-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .75rem 1rem;
    border: 2px dashed var(--tblr-border-color);
    border-radius: 8px;
    color: var(--tblr-secondary);
    cursor: pointer;
    transition: all .15s;
    font-size: .8125rem;
    width: 100%;
}
.file-upload-btn:hover {
    border-color: var(--tblr-primary);
    color: var(--tblr-primary);
    background: rgba(var(--tblr-primary-rgb), .04);
}
.file-thumbnail {
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--tblr-border-color);
    flex-shrink: 0;
}
.file-type-icon {
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-weight: 700;
    font-size: .625rem;
    text-transform: uppercase;
    flex-shrink: 0;
    color: #fff;
}
.file-type-icon.pdf { background: #e74c3c; }
.file-type-icon.doc { background: #2b79c2; }
.file-type-icon.xls { background: #27ae60; }
.file-type-icon.img { background: #8e44ad; }
.file-type-icon.other { background: var(--tblr-secondary); }

/* ══════════════════════════════════════════════════
   FILE EXPLORER
   ══════════════════════════════════════════════════ */
.file-explorer-folder { color: var(--tblr-yellow); flex-shrink: 0; }
.file-explorer-lock { color: var(--tblr-secondary); flex-shrink: 0; }

/* ══════════════════════════════════════════════════
   ACTIVITY FEED
   ══════════════════════════════════════════════════ */
.activity-feed-item {
    display: flex;
    gap: .75rem;
    padding: .5rem 0;
    font-size: .8125rem;
    border-bottom: 1px solid rgba(var(--tblr-border-color-rgb, 200,206,218), .5);
}
.activity-feed-item:last-child { border-bottom: none; }
.activity-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: .75rem;
}
.activity-icon.stage  { background: rgba(var(--tblr-orange-rgb), .15); color: var(--tblr-orange); }
.activity-icon.doc    { background: rgba(var(--tblr-purple-rgb), .15); color: var(--tblr-purple); }
.activity-icon.field  { background: rgba(var(--tblr-info-rgb), .15); color: var(--tblr-info); }
.activity-icon.approve{ background: rgba(var(--tblr-success-rgb), .15); color: var(--tblr-success); }
.activity-icon.comment{ background: rgba(var(--tblr-primary-rgb), .15); color: var(--tblr-primary); }
.activity-icon.label  { background: rgba(var(--tblr-cyan-rgb), .15); color: var(--tblr-cyan); }

/* ══════════════════════════════════════════════════
   LABEL BADGES
   ══════════════════════════════════════════════════ */
.label-badge {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .15s;
}
.label-badge:hover { opacity: .8; }
.label-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 4px;
    border: 1px dashed var(--tblr-border-color);
    color: var(--tblr-secondary);
    cursor: pointer;
    font-size: .875rem;
    transition: all .15s;
    background: none;
    padding: 0;
    line-height: 1;
}
.label-add-btn:hover {
    border-color: var(--tblr-primary);
    color: var(--tblr-primary);
    background: rgba(var(--tblr-primary-rgb), .04);
}
