/*
|--------------------------------------------------------------------------
| Marka / Tasarım Belirteçleri (Design Tokens)
|--------------------------------------------------------------------------
|
| Bootstrap'ın kendi CSS değişkenlerini burada override ederek tüm
| uygulamaya (tüm sayfalara, tek tek dokunmadan) yayıyoruz.
|
*/

:root{

    --sidebar-width:264px;

    --brand-navy:#0b1522;
    --brand-navy-2:#101f36;
    --brand-blue:#3454d1;
    --brand-blue-dark:#28409e;
    --brand-blue-rgb:52,84,209;
    --brand-blue-light:#eef2fd;

    --brand-bg:#f4f7fb;
    --brand-surface:#ffffff;
    --brand-border:#e3e8f0;
    --brand-text:#1e293b;
    --brand-text-muted:#64748b;

    --brand-shadow-sm:0 1px 2px rgba(15,23,42,.06);
    --brand-shadow:0 2px 4px rgba(15,23,42,.06), 0 10px 24px -10px rgba(15,23,42,.18);

    /* Bootstrap değişkenlerini marka renklerine bağla */
    --bs-primary:var(--brand-blue);
    --bs-primary-rgb:var(--brand-blue-rgb);
    --bs-link-color:var(--brand-blue);
    --bs-link-color-rgb:var(--brand-blue-rgb);
    --bs-link-hover-color:var(--brand-blue-dark);

    --bs-body-bg:var(--brand-bg);
    --bs-body-color:var(--brand-text);
    --bs-body-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

    --bs-border-color:var(--brand-border);
    --bs-border-radius:.5rem;
    --bs-border-radius-sm:.4rem;
    --bs-border-radius-lg:.85rem;
    --bs-border-radius-xl:1rem;

    --bs-card-border-color:var(--brand-border);
    --bs-card-cap-bg:transparent;
    --bs-card-border-radius:var(--bs-border-radius-lg);

    --bs-btn-focus-box-shadow:0 0 0 .2rem rgba(var(--brand-blue-rgb),.25);

}


/*
|--------------------------------------------------------------------------
| Genel Tipografi
|--------------------------------------------------------------------------
*/

body{

    margin:0;

    background:var(--brand-bg);

    font-size:14px;

    -webkit-font-smoothing:antialiased;

}

h1,h2,h3,h4,h5,h6{

    font-weight:650;

    letter-spacing:-.01em;

    color:var(--brand-text);

}

.text-muted{

    color:var(--brand-text-muted) !important;

}

a{

    text-decoration:none;

}


/*
|--------------------------------------------------------------------------
| Layout İskeleti
|--------------------------------------------------------------------------
*/

.wrapper{

    display:flex;

    min-height:100vh;

}

.main{

    flex:1;

    min-width:0;

}

.content{

    min-height:calc(100vh - 64px);

    max-width:100%;

    overflow-x:hidden;

}


/*
|--------------------------------------------------------------------------
| Sidebar
|--------------------------------------------------------------------------
*/

.sidebar{

    width:var(--sidebar-width);

    flex-shrink:0;

    background:linear-gradient(180deg, var(--brand-navy) 0%, var(--brand-navy-2) 100%);

    color:#fff;

    display:flex;

    flex-direction:column;

}

.sidebar ul{

    list-style:none;

    margin:0;

    padding:8px 12px;

}

.sidebar li a{

    display:flex;

    align-items:center;

    gap:10px;

    padding:11px 14px;

    margin-bottom:2px;

    border-radius:.55rem;

    color:rgba(255,255,255,.72);

    text-decoration:none;

    font-size:14px;

    font-weight:500;

    transition:background-color .15s ease, color .15s ease;

}

.sidebar li a i{

    font-size:16px;

    width:18px;

    text-align:center;

    flex-shrink:0;

}

.nav-badge{

    margin-left:auto;

    background:#e53e3e;

    color:#fff;

    font-size:12px;

    font-weight:700;

    line-height:1;

    padding:4px 9px;

    border-radius:999px;

    box-shadow:0 0 0 2px rgba(255,255,255,.15);

    min-width:22px;

    text-align:center;

}

.sidebar li a:hover{

    background:rgba(255,255,255,.08);

    color:#fff;

}

.sidebar li a.active{

    background:rgba(var(--brand-blue-rgb),.32);

    color:#fff;

    box-shadow:inset 3px 0 0 #6d87f2;

}

.sidebar .collapse li a{

    padding:9px 14px 9px 40px;

    font-size:13px;

    color:rgba(255,255,255,.62);

    margin-bottom:0;

}

.sidebar .collapse li a:hover{

    color:#fff;

}

.sidebar .collapse li a.active{

    color:#fff;

    background:rgba(var(--brand-blue-rgb),.32);

    box-shadow:inset 3px 0 0 #6d87f2;

}

.logo{

    padding:20px 22px;

    border-bottom:1px solid rgba(255,255,255,.08);

    margin-bottom:8px;

}

.logo-text{

    color:#fff;

    font-weight:700;

    font-size:17px;

    letter-spacing:-.01em;

    line-height:1.3;

}

.sidebar-backdrop{

    display:none;

    position:fixed;

    inset:0;

    background:rgba(8,12,20,.55);

    z-index:1040;

}

.sidebar-backdrop.show{

    display:block;

}

@media (max-width: 991.98px){

    .sidebar{

        position:fixed;

        top:0;

        left:0;

        height:100vh;

        z-index:1050;

        transform:translateX(-100%);

        transition:transform .25s ease;

        overflow-y:auto;

    }

    .sidebar.open{

        transform:translateX(0);

    }

    .wrapper{

        display:block;

    }

    .main{

        width:100%;

    }

}


/*
|--------------------------------------------------------------------------
| Üst Bar
|--------------------------------------------------------------------------
*/

.navbar{

    box-shadow:var(--brand-shadow-sm);

    min-height:64px;

}

.navbar-brand-mobile{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    font-weight:700;

    font-size:15px;

    color:var(--brand-text);

    white-space:nowrap;

}

.btn-user-menu{

    background:var(--brand-bg);

    border:1px solid var(--brand-border);

    border-radius:2rem;

    padding:6px 14px;

    color:var(--brand-text);

    font-weight:500;

}

.btn-user-menu:hover{

    background:var(--brand-blue-light);

    color:var(--brand-text);

}

.btn-user-menu i{

    font-size:20px;

    color:var(--brand-blue);

}

.dropdown-menu{

    border:1px solid var(--brand-border);

    border-radius:var(--bs-border-radius-lg);

    box-shadow:var(--brand-shadow);

    padding:8px;

}

.dropdown-item{

    border-radius:.4rem;

    padding:8px 12px;

    font-size:14px;

}

.dropdown-item:hover{

    background:var(--brand-blue-light);

}


/*
|--------------------------------------------------------------------------
| Portal (Veli/Öğrenci) Marka Alanı — gerçek logo yüklenmemişse
|--------------------------------------------------------------------------
*/

.portal-brand-icon{

    width:36px;
    height:36px;

    border-radius:10px;

    background:linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-blue-dark) 100%);

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:18px;

    flex-shrink:0;

}

.portal-brand-text{

    font-weight:700;

    font-size:1.05rem;

    color:var(--brand-navy);

    letter-spacing:.2px;

}

/*
|--------------------------------------------------------------------------
| Sayfa Başlığı (Hero)
|--------------------------------------------------------------------------
*/

.page-hero{

    background:linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-blue-dark) 100%);

    border-radius:var(--bs-border-radius-xl);

    padding:32px 36px;

    color:#fff;

    margin-bottom:28px;

    box-shadow:var(--brand-shadow);

}

.page-hero h1{

    color:#fff;

    font-size:28px;

    margin-bottom:6px;

}

.page-hero p{

    color:rgba(255,255,255,.78);

    margin:0;

    max-width:640px;

    font-size:14px;

}


/*
|--------------------------------------------------------------------------
| Kartlar
|--------------------------------------------------------------------------
*/

.card{

    border-color:var(--brand-border);

    box-shadow:var(--brand-shadow);

    overflow:hidden;

}

.card-header{

    font-weight:600;

    background:var(--brand-surface);

    border-bottom:1px solid var(--brand-border);

}


/*
|--------------------------------------------------------------------------
| Butonlar
|--------------------------------------------------------------------------
*/

.btn{

    font-weight:500;

    border-radius:.55rem;

}

.btn-primary{

    background:var(--brand-blue);

    border-color:var(--brand-blue);

    box-shadow:0 1px 2px rgba(var(--brand-blue-rgb),.3), 0 4px 10px -4px rgba(var(--brand-blue-rgb),.5);

    transition:background-color .15s ease, box-shadow .15s ease, transform .1s ease;

}

.btn-primary:hover,
.btn-primary:focus{

    background-color:var(--brand-blue-dark);

    border-color:var(--brand-blue-dark);

    box-shadow:0 2px 4px rgba(var(--brand-blue-rgb),.35), 0 6px 14px -4px rgba(var(--brand-blue-rgb),.55);

    transform:translateY(-1px);

}

.btn-primary:active{

    transform:translateY(0);

}

.btn-outline-primary{

    color:var(--brand-blue);

    border-color:var(--brand-blue);

}

.btn-outline-primary:hover{

    background:var(--brand-blue);

    border-color:var(--brand-blue);

}


/*
|--------------------------------------------------------------------------
| Tablolar
|--------------------------------------------------------------------------
*/

.table thead th{

    background:var(--brand-blue-light);

    color:var(--brand-text);

    font-size:13px;

    font-weight:700;

    border-bottom:2px solid var(--brand-border);

}

.table>:not(caption)>*>*{

    padding:.85rem .9rem;

    border-bottom-color:var(--brand-border);

}

.table-hover>tbody>tr:hover>*{

    background-color:var(--brand-blue-light);

}

.table-bordered thead th{

    font-size:13px;

}


/*
|--------------------------------------------------------------------------
| Giriş Sayfası
|--------------------------------------------------------------------------
*/

body:has(#loginForm){

    background:radial-gradient(circle at top left, var(--brand-navy-2), var(--brand-navy) 60%);

    min-height:100vh;

}

body:has(#loginForm) .card{

    border-radius:var(--bs-border-radius-xl);

}


/*
|--------------------------------------------------------------------------
| Dashboard — Zaman Tüneli (Son Hareketler)
|--------------------------------------------------------------------------
*/

.activity-timeline{

    position:relative;

}

.activity-timeline-item{

    position:relative;

    display:flex;

    gap:14px;

    padding-bottom:22px;

}

.activity-timeline-item:last-child{

    padding-bottom:0;

}

.activity-timeline-item:not(:last-child)::before{

    content:"";

    position:absolute;

    left:17px;

    top:36px;

    bottom:-4px;

    width:2px;

    background:var(--brand-border);

}

.activity-timeline-icon{

    flex:0 0 auto;

    width:36px;

    height:36px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--brand-blue-light);

    color:var(--brand-blue);

    font-size:15px;

    z-index:1;

}

.activity-timeline-content{

    padding-top:6px;

}


/*
|--------------------------------------------------------------------------
| Dashboard — Özet Kartları (stat card)
|--------------------------------------------------------------------------
*/

.stat-card-body{

    padding:1rem 1.15rem;

}

.stat-card-label{

    font-size:13px;

}

.stat-card-value{

    font-size:1.5rem;

    line-height:1.25;

    word-break:break-word;

}


/*
|--------------------------------------------------------------------------
| CRM — Pipeline (Kanban) Board
|--------------------------------------------------------------------------
*/

.crm-board{

    display:flex;

    gap:1rem;

    overflow-x:auto;

    padding-bottom:1rem;

}

.crm-column{

    flex:0 0 260px;

    background:var(--brand-bg);

    border:1px solid var(--brand-border);

    border-radius:var(--bs-border-radius-lg);

    display:flex;

    flex-direction:column;

    max-height:70vh;

}

.crm-column-header{

    padding:.75rem 1rem;

    font-weight:600;

    border-bottom:1px solid var(--brand-border);

    display:flex;

    align-items:center;

    gap:.4rem;

}

.crm-column-body{

    padding:.75rem;

    overflow-y:auto;

    flex:1 1 auto;

}

.crm-card{

    display:block;

    background:var(--brand-surface);

    border:1px solid var(--brand-border);

    border-radius:var(--bs-border-radius);

    padding:.65rem .8rem;

    margin-bottom:.6rem;

    text-decoration:none;

    color:var(--brand-text);

    box-shadow:var(--brand-shadow-sm);

    transition:box-shadow .15s ease, transform .15s ease;

}

.crm-card:hover{

    box-shadow:var(--brand-shadow);

    transform:translateY(-1px);

    color:var(--brand-text);

}


/*
|--------------------------------------------------------------------------
| Flatpickr — Marka Rengi Uyarlaması
|--------------------------------------------------------------------------
*/

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus{

    background:var(--brand-blue);

    border-color:var(--brand-blue);

}

.flatpickr-day.today{

    border-color:var(--brand-blue);

}

.flatpickr-day:hover{

    background:var(--brand-blue-light);

}

.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-weekdays{

    background:var(--brand-navy);

    fill:#fff;

}

span.flatpickr-weekday{

    background:var(--brand-navy);

    color:#fff;

}

.flatpickr-current-month input.cur-year,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-months .flatpickr-month{

    color:#fff;

}

.flatpickr-current-month input.cur-year{

    background:transparent;

}

/* Yıl kutusunun sağındaki artır/azalt oklarının varsayılan rengi neredeyse
   siyah (rgba(0,0,0,0.9)) — koyu lacivert .flatpickr-month zemininde
   görünmüyordu, tıklama alanı çalışıyordu ama ok hiç görünmüyordu. */
.flatpickr-current-month .numInputWrapper span.arrowUp:after{

    border-bottom-color:rgba(255,255,255,0.9);

}

.flatpickr-current-month .numInputWrapper span.arrowDown:after{

    border-top-color:rgba(255,255,255,0.9);

}

.flatpickr-current-month .numInputWrapper span:hover{

    background:rgba(255,255,255,0.15);

}

/* Ay dropdown'u AÇIKKEN gösterilen <option> listesi — tarayıcı bunu kendi
   varsayılan (genelde beyaz zemin) ile render ediyor, üstteki kural sadece
   kapalı <select>'i etkiliyor. Option'lara ayrı renk vermezsek beyaz yazı
   beyaz zeminde kayboluyor. */
.flatpickr-monthDropdown-month{

    background:#fff;

    color:#1a1a2e;

}

.flatpickr-calendar{

    box-shadow:var(--brand-shadow);

    border-radius:var(--bs-border-radius);

}

/*
|--------------------------------------------------------------------------
| Select2 (aranabilir seçim kutusu) — marka stiline uyarlama
|--------------------------------------------------------------------------
*/

.select2-container--default .select2-selection--single{

    height:calc(2.25rem + 2px);
    border:1px solid #ced4da;
    border-radius:var(--bs-border-radius);
    display:flex;
    align-items:center;
    padding:0 .25rem;

}

.select2-container--default .select2-selection--single .select2-selection__rendered{

    padding-left:.5rem;
    color:var(--bs-body-color);

}

.select2-container--default .select2-selection--single .select2-selection__arrow{

    height:calc(2.25rem);

}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{

    border-color:var(--brand-blue);
    box-shadow:0 0 0 .2rem rgba(var(--brand-blue-rgb),.25);

}

.select2-container--default .select2-results__option--highlighted[aria-selected]{

    background-color:var(--brand-blue);

}

.select2-dropdown{

    border-radius:var(--bs-border-radius);
    box-shadow:var(--brand-shadow);

}

/*
|--------------------------------------------------------------------------
| Checkbox / Radio — --bs-border-color marka rengine (çok soluk) override
| edildiği için Bootstrap'ın varsayılan form-check-input kenarlığı beyaz
| zeminde neredeyse görünmez oluyordu, belirgin bir kenarlık/işaretli renk
| tanımlanıyor.
|--------------------------------------------------------------------------
*/

.form-check-input{

    border-color:#adb5bd;

}

.form-check-input:checked{

    background-color:var(--brand-blue);
    border-color:var(--brand-blue);

}

.form-check-input:focus{

    border-color:var(--brand-blue);
    box-shadow:0 0 0 .2rem rgba(var(--brand-blue-rgb),.25);

}
