/* =========================================================
   Çukurovalılar Panel — Jidox teması marka override'ları
   (tema dosyaları düzenlenmez; tüm özelleştirmeler burada)
   ========================================================= */

:root {
    --cp-theme-1: #1e3737;   /* koyu lacivert-yeşil */
    --cp-theme-2: #07847f;   /* turkuaz */
    --cp-theme-3: #8fe1de;   /* açık turkuaz */
}

/* Jidox'un primary rengini marka turkuazına çek */
[data-bs-theme] {
    --ct-primary: #07847f;
    --ct-primary-rgb: 7, 132, 127;
    --ct-link-color: #07847f;
    --ct-link-color-rgb: 7, 132, 127;
    --ct-link-hover-color: #06615d;
}

.btn-primary {
    --ct-btn-bg: #07847f;
    --ct-btn-border-color: #07847f;
    --ct-btn-hover-bg: #06615d;
    --ct-btn-hover-border-color: #06615d;
    --ct-btn-active-bg: #06615d;
    --ct-btn-active-border-color: #06615d;
}

.text-bg-primary { background-color: #07847f !important; }

/* Koyu sol menü marka rengiyle */
[data-menu-color="dark"] .leftside-menu {
    background-color: var(--cp-theme-1);
}

[data-menu-color="dark"] .side-nav .side-nav-link:hover,
[data-menu-color="dark"] .side-nav .side-nav-link.active,
[data-menu-color="dark"] .side-nav .side-nav-item.menuitem-active > .side-nav-link {
    color: var(--cp-theme-3);
}

[data-menu-color="dark"] .leftbar-user {
    background-color: rgba(255, 255, 255, .04);
}

/* Fotoğrafı olmayan kullanıcılar için baş harf rozeti */
.avatar-initials {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--cp-theme-2);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .3px;
    line-height: 1;
}

.avatar-initials--lg {
    width: 42px;
    height: 42px;
    font-size: 16px;
}

/* ---------------------------------------------------------
   Giriş ekranları
   --------------------------------------------------------- */
.auth-bg {
    background:
        linear-gradient(135deg, rgba(30, 55, 55, .92) 0%, rgba(7, 132, 127, .92) 100%),
        url('../images/bg-auth.jpg') center / cover no-repeat;
    z-index: -1;
}

.authentication-bg .card {
    border: 0;
    border-radius: 12px;
    box-shadow: 0 22px 55px rgba(0, 0, 0, .22);
}

/* Logo SVG'sinde width/height yok, yalnızca viewBox var; height:auto
   bırakılırsa tarayıcı 0x0 hesaplıyor. Yükseklik açıkça verilir. */
.authentication-bg .auth-brand img {
    height: 44px;
    width: auto;
    max-width: 100%;
}

/* SMS kod girişi — geniş harf aralıklı tek alan */
.auth-code-input {
    letter-spacing: .55em;
    text-indent: .55em;      /* letter-spacing'in yarattığı sağ boşluğu dengeler */
    font-weight: 700;
    font-size: 26px;
}

.auth-code-input::placeholder {
    letter-spacing: .35em;
    font-weight: 400;
}

/* "veya" ayracı */
.authentication-bg hr { opacity: .18; }

/* Menüdeki pasif (yakında) bağlantılar */
.side-nav-second-level a.disabled,
.side-nav-link .badge.bg-secondary {
    pointer-events: none;
}

.side-nav-second-level a.disabled {
    opacity: .55;
    cursor: default;
}

/* =========================================================
   Grup odaklı panel bileşenleri
   ========================================================= */

/* Gösterge panelindeki karşılama kartı */
.group-hero {
    border-left: 4px solid var(--ct-primary);
    background: var(--ct-secondary-bg);
}

.group-hero--info     { border-left-color: var(--ct-info); }
.group-hero--warning  { border-left-color: var(--ct-warning); }
.group-hero--success  { border-left-color: var(--ct-success); }
.group-hero--danger   { border-left-color: var(--ct-danger); }
.group-hero--dark     { border-left-color: var(--ct-dark); }
.group-hero--secondary{ border-left-color: var(--ct-secondary); }

.group-hero__icon {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--ct-body-bg);
    font-size: 24px;
    color: var(--ct-primary);
}

/* Kullanıcı listesindeki grup filtreleri */
.group-chip {
    border: 1px solid var(--ct-border-color);
    transition: all .2s ease;
    text-decoration: none;
    color: inherit;
}

.group-chip:hover {
    border-color: var(--ct-primary);
    transform: translateY(-2px);
}

.group-chip--active {
    border-color: var(--ct-primary);
    box-shadow: 0 0 0 2px rgba(7, 132, 127, .18);
}

/* Formdaki grup seçici — radyo düğmesi yerine kart */
.group-picker__option {
    display: block;
    margin-bottom: 8px;
    cursor: pointer;
}

.group-picker__option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.group-picker__body {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    transition: all .2s ease;
}

.group-picker__option:hover .group-picker__body {
    border-color: var(--ct-primary);
}

.group-picker__option input:checked + .group-picker__body {
    border-color: var(--ct-primary);
    background: rgba(7, 132, 127, .06);
    box-shadow: 0 0 0 1px var(--ct-primary);
}

.group-picker__option input:focus-visible + .group-picker__body {
    outline: 2px solid var(--ct-primary);
    outline-offset: 2px;
}

/* Menüde uzun etiketler "yakında" rozetiyle çakışmasın */
.side-nav .side-nav-link > span:first-of-type {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* =========================================================
   Medya kütüphanesi ve görsel seçici
   ========================================================= */
.media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
}

.media-grid__item {
    border: 1px solid var(--ct-border-color);
    background: var(--ct-secondary-bg);
    border-radius: 8px;
    padding: 0;
    overflow: hidden;
    text-align: left;
    transition: all .2s ease;
    position: relative;
}

.media-grid__item:hover {
    border-color: var(--ct-primary);
    transform: translateY(-2px);
}

.media-grid__item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

.media-grid__name {
    display: block;
    padding: 6px 8px;
    font-size: 11px;
    line-height: 1.3;
    color: var(--ct-secondary-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.media-picker__preview {
    position: relative;
    border: 1px dashed var(--ct-border-color);
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: var(--ct-secondary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.media-picker__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.media-picker__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--ct-secondary-color);
    font-size: 12px;
}

.media-picker__placeholder i { font-size: 26px; }

.media-picker__preview.is-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='13' fill='none' stroke='%2307847f' stroke-width='4' stroke-dasharray='60 20'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 16 16' to='360 16 16' dur='.9s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") center / 32px no-repeat;
}

/* Yükleme bırakma alanı */
.media-dropzone {
    border: 2px dashed var(--ct-border-color);
    border-radius: 10px;
    padding: 32px;
    text-align: center;
    transition: all .2s ease;
    cursor: pointer;
}

.media-dropzone.is-over,
.media-dropzone:hover {
    border-color: var(--ct-primary);
    background: rgba(7, 132, 127, .04);
}

.media-dropzone i { font-size: 34px; color: var(--ct-primary); }

/* Sıralanabilir listeler */
.sortable-handle { cursor: grab; color: var(--ct-secondary-color); }
.sortable-handle:active { cursor: grabbing; }
tr.is-dragging { opacity: .5; }

/* Tekrarlanan alan blokları (kurumsal sayfalar) */
.repeater__item {
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    padding: 14px;
    margin-bottom: 10px;
    background: var(--ct-secondary-bg);
}

/* =========================================================
   Organizasyon şeması yönetimi
   ========================================================= */

/* --- Yayın durumu şeridi --- */
.publish-bar {
    border-left: 4px solid var(--ct-success);
}

.publish-bar--dirty {
    border-left-color: var(--ct-warning);
    background: rgba(var(--ct-warning-rgb), .05);
}

.publish-bar__icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 24px;
    background: var(--ct-body-bg);
    color: var(--ct-success);
}

.publish-bar--dirty .publish-bar__icon { color: var(--ct-warning); }

.publish-bar__note { width: 220px; }

@media (max-width: 575px) {
    .publish-bar__note { width: 100%; }
}

/* --- Ağaç listesi --- */
/* ==========================================================================
   Panel yerleşim aralıkları
   Tema kartlara 0.6rem alt boşluk, satırlara 0.6rem yatay boşluk veriyor.
   Bu kadar dar boşlukta yan yana ve alt alta duran kartlar tek bir blok gibi
   okunuyordu. Aralıklar kart iç dolgusuyla (1.25rem) aynı ritme çekildi.
   ========================================================================== */
.card { margin-bottom: 1.25rem; }
.row { --ct-gutter-x: 1.25rem; }

/* g-* yardımcıları bu dosyadan sonra gelmediği için yeniden bildiriliyor;
   aksi hâlde yukarıdaki .row kuralı onları ezerdi. */
.g-0, .gx-0 { --ct-gutter-x: 0; }
.g-1, .gx-1 { --ct-gutter-x: .25rem; }
.g-2, .gx-2 { --ct-gutter-x: .5rem; }
.g-3, .gx-3 { --ct-gutter-x: 1.25rem; }
.g-4, .gx-4 { --ct-gutter-x: 1.5rem; }
.g-5, .gx-5 { --ct-gutter-x: 3rem; }

/* Sütun boyu kadar uzayan kart, alt boşluğunu da yükseklik hesabına katsın.
   Aksi hâlde h-100 kartın alt boşluğu satırın dışına taşar ve altındaki
   içerikle arada boşluk kalmaz. */
.row > [class^="col"] > .card.h-100,
.row > [class*=" col"] > .card.h-100 { height: calc(100% - 1.25rem) !important; }

/* ...ama `mb-0` verilmiş kartta çıkarılacak bir alt boşluk YOKTUR.
   Kısaltma o zaman içeriği kartın dışına taşırır: alt şerit düğmeleri
   kartın tabanından TAM 20px aşağı sarkar (ölçüldü). Kart kartları,
   komisyon kartları ve değerlendirme grubu kartları bu desendedir. */
.row > [class^="col"] > .card.h-100.mb-0,
.row > [class*=" col"] > .card.h-100.mb-0 { height: 100% !important; }

/* Kart içindeki satırlar dış boşluğu ikinci kez almasın */
.card-body > .row > [class^="col"] > .card:last-child,
.card-body > .row > [class*=" col"] > .card:last-child { margin-bottom: 0; }

.card-body > .row > [class^="col"] > .card.h-100,
.card-body > .row > [class*=" col"] > .card.h-100 { height: 100% !important; }

/* ---------- Yönetim şeması: komisyon kartları ----------
   Uzun üye listeleri yerine tek satırlık künye + üst üste binen avatarlar.
   Kartın tamamı bağlantıdır. */
.gv-unit {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 18px;
    border: 1px solid var(--ct-border-color);
    border-radius: 10px;
    background: var(--ct-secondary-bg);
    color: inherit;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.gv-unit:hover {
    color: inherit;
    border-color: var(--ct-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .07);
    transform: translateY(-2px);
}

.gv-unit__icon {
    width: 40px;
    height: 40px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    margin-bottom: 14px;
}

.gv-unit__name {
    display: block;
    font-weight: 600;
    font-size: 14.5px;
    line-height: 1.35;
}

.gv-unit__meta {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    color: var(--ct-secondary-color);
}

.gv-unit__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 14px;
}

.gv-unit__count {
    font-size: 12px;
    color: var(--ct-secondary-color);
    white-space: nowrap;
}

/* Üst üste binen avatar dizisi */
.gv-stack { display: flex; }

.gv-stack__item {
    display: inline-flex;
    border-radius: 50%;
    border: 2px solid var(--ct-secondary-bg);
    background: var(--ct-secondary-bg);
}

.gv-stack__item + .gv-stack__item { margin-left: -9px; }

.gv-stack__more {
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--ct-secondary-color);
    background: var(--ct-tertiary-bg);
}

/* ---------- Katılım: bana gelenler kartı ---------- */
.mine-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 17px;
    border: 1px solid var(--ct-border-color);
    border-radius: 10px;
    background: var(--ct-secondary-bg);
    color: inherit;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.mine-card:hover {
    color: inherit;
    border-color: var(--ct-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .07);
    transform: translateY(-2px);
}

.mine-card.is-urgent { border-left: 3px solid var(--ct-danger); }

.mine-card__head { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; }

.mine-card__icon {
    width: 30px; height: 30px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 7px;
    font-size: 15px;
}

.mine-card__type { font-size: 11.5px; letter-spacing: .4px; color: var(--ct-secondary-color); }
.mine-card__due { margin-left: auto; font-size: 11.5px; color: var(--ct-danger); }

.mine-card__title { display: block; font-weight: 600; font-size: 14.5px; line-height: 1.35; }

.mine-card__summary {
    display: block;
    margin-top: 5px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ct-secondary-color);
}

.mine-card__foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 14px; }

/* ---------- Katılım: davet kodları ---------- */
.invite-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 8px; }

.invite-chip {
    padding: 10px 13px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
}

.invite-chip code { display: block; font-size: 16px; letter-spacing: 1.5px; color: var(--ct-emphasis-color); }
.invite-chip span { display: block; margin-top: 3px; font-size: 11.5px; color: var(--ct-secondary-color); }
.invite-chip.is-used { opacity: .55; background: var(--ct-tertiary-bg); }

/* ---------- Katılım: sonuç ekranı ---------- */
.verdict { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }

.verdict__icon {
    width: 62px; height: 62px;
    flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 14px;
    font-size: 30px;
}

.verdict__body { flex: 1 1 240px; min-width: 0; }
.verdict__chart { flex: 1 1 300px; min-width: 260px; }

.legend-dot {
    width: 10px; height: 10px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-block;
}

.answer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
    max-height: 280px;
    overflow-y: auto;
}

.answer-list li {
    padding: 8px 11px;
    font-size: 13px;
    line-height: 1.5;
    background: var(--ct-tertiary-bg);
    border-radius: 7px;
    border-left: 3px solid var(--ct-border-color);
    overflow-wrap: anywhere;
}

.min-w-0 { min-width: 0; }

/* ---------- Katılım: durum şeridi ---------- */
.pt-status__grid {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 20px;
}

.pt-status__main { min-width: 0; }
.pt-status__stats { display: flex; gap: 24px; }

@media (max-width: 991.98px) {
    .pt-status__grid { grid-template-columns: 1fr auto; }
    .pt-status__stats { grid-column: 1 / -1; }
}

/* ---------- Katılım: hızlı soru tipleri ---------- */
.quick-types { display: grid; grid-template-columns: 1fr; gap: 7px; }

.quick-type {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 10px 12px;
    text-align: left;
    background: transparent;
    border: 1px solid var(--ct-border-color);
    border-radius: 9px;
    transition: border-color .15s ease, background-color .15s ease;
}

.quick-type:hover { border-color: var(--ct-primary); background: var(--ct-primary-bg-subtle); }

.quick-type > i {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: var(--ct-tertiary-bg);
    color: var(--ct-primary);
    font-size: 15px;
}

.quick-type strong { display: block; font-size: 13px; font-weight: 600; }
.quick-type small { display: block; font-size: 11.5px; line-height: 1.4; color: var(--ct-secondary-color); }

/* ---------- Katılım: hedef kitle ---------- */
.target-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }

.target-chip {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 11px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.target-chip:hover { border-color: var(--ct-primary); }
.target-chip:has(input:checked) { border-color: var(--ct-primary); background: var(--ct-primary-bg-subtle); }
.target-chip input { margin-top: 2px; flex-shrink: 0; }
.target-chip strong { display: block; font-size: 13px; font-weight: 600; }
.target-chip small { display: block; font-size: 11.5px; line-height: 1.4; color: var(--ct-secondary-color); }

.target-count { margin-bottom: 12px; }
.target-count strong { display: block; font-size: 38px; line-height: 1; color: var(--ct-primary); }
.target-count span { display: block; font-size: 12px; color: var(--ct-secondary-color); margin-top: 3px; }

/* ---------- Katılım: paylaşım ---------- */
.share-grid { display: grid; grid-template-columns: 190px 1fr; gap: 22px; align-items: start; }

.share-qr {
    padding: 12px;
    background: #fff;
    border: 1px solid var(--ct-border-color);
    border-radius: 10px;
}

.share-qr img { display: block; width: 100%; height: auto; }

@media (max-width: 767.98px) { .share-grid { grid-template-columns: 1fr; } }

/* Afiş şablonu küçük önizlemeleri — gerçek PDF'in şematik özeti */
.poster-preview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

.poster-thumb {
    position: relative;
    aspect-ratio: 210 / 297;
    padding: 12px 10px;
    border: 1px solid var(--ct-border-color);
    border-radius: 6px;
    background: #fff;
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.poster-thumb.is-on { border-color: var(--ct-primary); box-shadow: 0 0 0 2px var(--ct-primary-bg-subtle); }

.poster-thumb__band { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: #123265; }
.poster-thumb__title { display: block; height: 9px; width: 78%; margin: 14px 0 7px; background: #123265; border-radius: 2px; }
.poster-thumb__line { display: block; height: 4px; width: 92%; margin-bottom: 4px; background: #d7dde5; border-radius: 2px; }
.poster-thumb__line--short { width: 62%; }
.poster-thumb__qr { position: absolute; left: 10px; bottom: 26px; width: 34px; height: 34px; background: #1f2933; border-radius: 3px; }
.poster-thumb__name { position: absolute; left: 0; right: 0; bottom: 6px; text-align: center; font-size: 10px; color: var(--ct-secondary-color); }

.poster-thumb--vurgulu .poster-thumb__band { height: 34px; }
.poster-thumb--vurgulu .poster-thumb__title { margin-top: 40px; }

.poster-thumb--koyu { background: #123265; }
.poster-thumb--koyu .poster-thumb__band { background: #e8a93c; }
.poster-thumb--koyu .poster-thumb__title { background: #fff; }
.poster-thumb--koyu .poster-thumb__line { background: rgba(255, 255, 255, .35); }
.poster-thumb--koyu .poster-thumb__qr { background: #fff; }
.poster-thumb--koyu .poster-thumb__name { color: rgba(255, 255, 255, .75); }

/* ---------- Katılım yöntemi seçenekleri ---------- */
.access-option {
    display: flex;
    gap: 10px;
    padding: 11px 13px;
    margin-bottom: 8px;
    border: 1px solid var(--ct-border-color);
    border-radius: 9px;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.access-option:hover { border-color: var(--ct-primary); }

.access-option.is-selected {
    border-color: var(--ct-primary);
    background: var(--ct-primary-bg-subtle);
}

.access-option input { margin-top: 3px; flex-shrink: 0; }

.access-option__body { min-width: 0; }

.access-option__head {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
}

.access-option__head i { color: var(--ct-secondary-color); }

.access-strength { margin-left: auto; font-size: 11px; white-space: nowrap; }
.access-strength i { margin-left: -2px; }

.access-option__hint {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ct-secondary-color);
}

/* ---------- Katılım listesi kartı ---------- */
.pt-card__grid {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 20px;
}

.pt-card__main { min-width: 0; }

.pt-card__stats {
    display: flex;
    gap: 22px;
    padding-right: 4px;
}

.pt-stat { text-align: center; }
.pt-stat strong { display: block; font-size: 19px; line-height: 1.1; color: var(--ct-emphasis-color); }
.pt-stat span { display: block; font-size: 11px; color: var(--ct-secondary-color); margin-top: 2px; }

.pt-card__actions { display: flex; gap: 4px; }

.pt-card:hover { border-color: var(--ct-primary); }

@media (max-width: 991.98px) {
    .pt-card__grid { grid-template-columns: 1fr; gap: 14px; }
    .pt-card__stats { justify-content: flex-start; gap: 26px; }
    .pt-stat { text-align: left; }
}

.org-tree {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Kart tam genişlikte; liste okunur bir genişlikte ortalanır.
   Aksi hâlde kısa bir birim adı solda, işlem düğmeleri ekranın
   öbür ucunda kalıyor ve satır tek bir bütün gibi okunmuyordu. */
.org-tree--centered {
    max-width: 920px;
    margin-inline: auto;
}

.org-tree__row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px 8px calc(10px + var(--depth) * 26px);
    border: 1px solid transparent;
    border-radius: 8px;
    position: relative;
    transition: background-color .15s ease, border-color .15s ease;
}

.org-tree__row:hover {
    background: var(--ct-secondary-bg);
    border-color: var(--ct-border-color);
}

/* Girinti çizgisi — hiyerarşiyi gözle takip etmeyi kolaylaştırır */
.org-tree__line {
    position: absolute;
    left: calc(var(--depth) * 26px - 8px);
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--ct-border-color);
}

.org-tree__row[style*="--depth: 0"] .org-tree__line { display: none; }

.org-tree__avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ct-secondary-bg);
    color: var(--ct-secondary-color);
    border: 1px solid var(--ct-border-color);
}

.org-tree__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.org-tree__body {
    flex-grow: 1;
    min-width: 0;
}

.org-tree__title {
    display: block;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.3;
}

.org-tree__name {
    display: block;
    font-size: 12px;
    color: var(--ct-secondary-color);
}

.org-tree__actions {
    display: flex;
    gap: 3px;
    /* Tamamen gizlemek yerine soluk bırakılıyor: butonlar keşfedilebilir
       kalıyor ama listenin okunurluğunu bozmuyor */
    opacity: .3;
    transition: opacity .15s ease;
}

.org-tree__row:hover .org-tree__actions,
.org-tree__actions:focus-within { opacity: 1; }

@media (max-width: 991px) {
    .org-tree__actions { opacity: 1; }   /* dokunmatikte hover yok */
}

.btn-icon {
    width: 30px;
    height: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* =========================================================
   ÜST DÜĞÜM ALT DÜĞÜMLERİNİN ORTASINDA DURUR

   Eklentinin kendi stil dosyası `.orgchart` için text-align
   tanımlamıyor; değer sayfadan miras alınıyor ve hem panelde
   hem sitede `start` (sol) geliyordu. Alt düğüm satırı
   (`.nodes`) flex ile ortalandığı için ortada duruyor, ama üst
   düğüm inline-block olduğundan kendi satırının EN SOLUNA
   yapışıyordu: on bir komisyonun bağlı olduğu Genel Sekreter,
   şemanın ortasında değil sol ucunda görünüyordu.

   Eklenti bunu l2r/r2l yönleri için zaten yapıyor (oradaki
   kurallarda text-align:center var); t2b yönünde unutulmuş.

   Dikey liste görünümü (.nodes.vertical) bilerek sola dayalıdır
   ve daha özgül seçicisiyle bu kuralı ezer.
   ========================================================= */
.orgchart { text-align: center; }

/* =========================================================
   Şema sahnesi — organizasyon şemasının görüntülendiği kutu

   Eklenti şemayı kutunun sol üstüne yapıştırıyor: daraltılmış
   bir şema koca bir kutunun köşesinde asılı kalıyor, açık şema
   ise sağdan taşıyordu. Sahne artık SABİT YÜKSEKLİKLİ bir
   görüntüleme penceresi; içindeki şema org-chart-fit.js ile
   ölçeklenip ortalanıyor. Kaydırma çubuğu yok — gezinme
   sürükleyerek yapılır, eklentinin kendi davranışı da budur.
   ========================================================= */
.org-stage {
    position: relative;
    background: var(--ct-secondary-bg);
    border: 1px solid var(--ct-border-color);
    border-radius: 10px;
    overflow: hidden;
}

.org-stage__canvas {
    height: 560px;
    overflow: hidden;
    cursor: grab;
}

.org-stage__canvas:active { cursor: grabbing; }

.org-stage__canvas .orgchart { background: none; }

/* Düğmeler sahnenin İÇİNDE: tam ekranda kart görünmez olur,
   dışarıda kalsalardı tam ekrandan çıkış yolu kalmazdı. */
.org-stage__tools {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: flex;
    gap: 4px;
    background: var(--ct-body-bg);
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    padding: 3px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
}

.org-stage__tools .btn {
    width: 30px;
    height: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* Sahnenin sol altında kısa bir kullanım ipucu */
.org-stage__hint {
    position: absolute;
    left: 12px;
    bottom: 10px;
    z-index: 2;
    margin: 0;
    font-size: 11.5px;
    color: var(--ct-secondary-color);
    background: color-mix(in srgb, var(--ct-body-bg) 82%, transparent);
    border-radius: 6px;
    padding: 3px 8px;
    pointer-events: none;
}

/* --- Tam ekran --- */
.org-stage--full {
    position: fixed;
    inset: 0;
    z-index: 1055;
    border-radius: 0;
    border: 0;
    background: var(--ct-body-bg);
}

.org-stage--full .org-stage__canvas { height: 100vh; }

body.org-stage-open { overflow: hidden; }

/* --- Önizleme kartı (şema düzenleyici) --- */
.org-preview .orgchart { background: none; }

.org-preview .orgchart .node {
    width: 150px;
    margin: 0 8px 42px;
    padding: 0;
}

.org-preview .orgchart .node:hover,
.org-preview .orgchart .node.focused { background-color: transparent; }

.org-preview .orgchart .node .org-card {
    background: var(--ct-body-bg);
    border: 1px solid var(--ct-border-color);
    border-top: 3px solid var(--ct-primary);
    border-radius: 8px;
    padding: 10px 8px;
    text-align: center;
    position: relative;
}

.org-preview .orgchart .node.org-node--president .org-card { border-top-color: #fe7f4c; }
.org-preview .orgchart .node.org-node--assembly .org-card { border-top-color: var(--cp-theme-1); }

.org-preview .org-card__photo,
.org-preview .org-card__initials {
    width: 34px;
    height: 34px;
    margin: 0 auto 6px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.org-preview .org-card__initials {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ct-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.org-preview .org-card__title {
    font-size: 12px;
    line-height: 1.3;
    font-weight: 700;
    margin: 0;
}

.org-preview .org-card__name {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--ct-primary);
}

/* Özgeçmişi olan birimleri işaretle */
.org-preview .org-card__flag {
    position: absolute;
    top: 4px;
    right: 5px;
    font-size: 11px;
    color: var(--ct-secondary-color);
}

/* Bağlantı çizgileri — sitedekiyle aynı ölçek */
.org-preview .orgchart {
    --org-stub: 21px;
    --top: calc(var(--org-stub) * -1);
    --height: var(--org-stub);
}

.org-preview .orgchart .hierarchy::before {
    top: calc(var(--org-stub) * -1);
    border-color: var(--ct-primary);
}

.org-preview .orgchart .hierarchy:not(.couple) > .node:has(+ .nodes)::after {
    bottom: calc(var(--org-stub) * -1);
    height: var(--org-stub);
    background-color: var(--ct-primary);
}

.org-preview .orgchart > ul > li > ul li > .node::before {
    background-color: var(--ct-primary);
}

/* =========================================================
   SweetAlert — panel marka uyarlaması
   Tüm uyarı, onay ve bilgilendirmeler notify.js üzerinden
   buraya düşer; görünüm tek yerden yönetilir.
   ========================================================= */

.panel-swal {
    border-radius: 14px !important;
    font-family: var(--ct-font-family-base, inherit);
    box-shadow: 0 24px 60px rgba(30, 55, 55, .22) !important;
}

.panel-swal .swal2-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--cp-theme-1);
    padding-top: 4px;
}

.panel-swal .swal2-html-container {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--ct-secondary-color);
    margin-top: 6px;
}

.panel-swal .swal2-actions {
    gap: 8px;
    margin-top: 20px;
}

.panel-swal .swal2-styled {
    border-radius: 7px;
    font-weight: 600;
    font-size: 14px;
    padding: 9px 20px;
    box-shadow: none !important;
    transition: filter .2s ease;
}

.panel-swal .swal2-styled:hover { filter: brightness(.93); }

.panel-swal .swal2-styled:focus {
    box-shadow: 0 0 0 3px rgba(7, 132, 127, .25) !important;
}

/* Doğrulama hatası listesi */
.panel-swal__list {
    text-align: left;
    margin: 0 auto;
    padding-left: 20px;
    max-width: 400px;
    font-size: 14px;
    line-height: 1.7;
}

/* --- Sağ üst bildirimler --- */
.panel-swal--toast {
    padding: 12px 14px !important;
    border-radius: 10px !important;
    box-shadow: 0 10px 30px rgba(30, 55, 55, .18) !important;
    border-left: 4px solid var(--ct-success);
}

.panel-swal--toast .swal2-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--cp-theme-1);
    margin: 0;
    padding: 0;
}

.panel-swal--toast .swal2-icon { margin: 0 10px 0 0 !important; }

.panel-swal--toast.swal2-icon-error { border-left-color: var(--ct-danger); }
.panel-swal--toast.swal2-icon-warning { border-left-color: var(--ct-warning); }
.panel-swal--toast.swal2-icon-info { border-left-color: var(--ct-info); }

.panel-swal--toast .swal2-timer-progress-bar { background: rgba(7, 132, 127, .35); }

/* Koyu temada okunabilirlik */
[data-bs-theme="dark"] .panel-swal {
    background: var(--ct-secondary-bg);
}

[data-bs-theme="dark"] .panel-swal .swal2-title,
[data-bs-theme="dark"] .panel-swal--toast .swal2-title {
    color: var(--ct-body-color);
}

/* =========================================================
   Site ayarları
   ========================================================= */
.settings-nav .list-group-item {
    border: 0;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ct-body-color);
    background: transparent;
}

.settings-nav .list-group-item:hover { background: var(--ct-secondary-bg); }

.settings-nav .list-group-item.active {
    background: rgba(7, 132, 127, .08);
    color: var(--ct-primary);
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--ct-primary);
}

.settings-nav .list-group-item.active .badge {
    background: var(--ct-primary) !important;
    color: #fff !important;
}

/* Doldurulmuş / eksik ayar listesi */
.settings-check li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    padding: 4px 0;
}

.settings-check .is-ok, .settings-check li.is-ok { color: var(--ct-body-color); }
.settings-check li.is-ok i { color: var(--ct-success); }
.settings-check li.is-missing { color: var(--ct-secondary-color); }
.settings-check li.is-missing i { color: var(--ct-warning); }

/* Kod alanları */
.settings-code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.6;
    background: var(--ct-secondary-bg);
}

.settings-switch {
    padding: 12px 14px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    background: var(--ct-secondary-bg);
    padding-left: 46px;
}

.settings-switch .form-check-input { margin-left: -32px; }

/* Google arama sonucu önizlemesi */
.serp-preview {
    max-width: 620px;
    font-family: arial, sans-serif;
}

.serp-preview__url {
    font-size: 13px;
    color: #4d5156;
    margin-bottom: 3px;
}

.serp-preview__title {
    font-size: 20px;
    line-height: 1.3;
    color: #1a0dab;
    margin-bottom: 4px;
}

.serp-preview__desc {
    font-size: 14px;
    line-height: 1.58;
    color: #4d5156;
}

[data-bs-theme="dark"] .serp-preview__title { color: #8ab4f8; }
[data-bs-theme="dark"] .serp-preview__url,
[data-bs-theme="dark"] .serp-preview__desc { color: #bdc1c6; }

/* =========================================================
   İçerik formundaki SEO bölümü
   ========================================================= */
.seo-box .card-header { cursor: pointer; user-select: none; }

.seo-box .card-header:hover { background: var(--ct-secondary-bg); }

.seo-box__chevron { transition: transform .2s ease; color: var(--ct-secondary-color); }

.seo-box .card-header[aria-expanded="true"] .seo-box__chevron { transform: rotate(180deg); }

.seo-counter { font-size: 11px; color: var(--ct-secondary-color); }
.seo-counter.is-over { color: var(--ct-warning); font-weight: 600; }

.seo-box .serp-preview {
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    padding: 16px 18px;
    background: var(--ct-body-bg);
}

/* =========================================================
   Form oluşturucu
   ========================================================= */
.field-list { list-style: none; padding: 0; margin: 0; }

.field-list__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    margin-bottom: 8px;
    background: var(--ct-body-bg);
    transition: border-color .15s ease;
}

.field-list__item:hover { border-color: var(--ct-primary); }

.field-list__icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(7, 132, 127, .08);
    color: var(--ct-primary);
}

.field-list__body { flex-grow: 1; min-width: 0; }

.field-list__label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.3;
}

.field-list__meta {
    display: block;
    font-size: 11.5px;
    color: var(--ct-secondary-color);
}

.field-list__meta code {
    background: var(--ct-secondary-bg);
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 11px;
}

.field-list__actions { display: flex; gap: 3px; opacity: .3; transition: opacity .15s ease; }
.field-list__item:hover .field-list__actions { opacity: 1; }

/* Alan tipi seçim ızgarası */
.type-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 8px;
}

.type-grid__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 14px 8px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    background: var(--ct-body-bg);
    font-size: 12px;
    line-height: 1.3;
    text-align: center;
    color: var(--ct-body-color);
    transition: all .18s ease;
}

.type-grid__item i { font-size: 20px; color: var(--ct-primary); }

.type-grid__item:hover {
    border-color: var(--ct-primary);
    background: rgba(7, 132, 127, .05);
    transform: translateY(-2px);
}

/* Erişim modu seçici */
.access-picker__option { display: block; margin-bottom: 8px; cursor: pointer; }
.access-picker__option input { position: absolute; opacity: 0; pointer-events: none; }

.access-picker__body {
    display: block;
    padding: 12px 14px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    transition: all .18s ease;
}

.access-picker__option:hover .access-picker__body { border-color: var(--ct-primary); }

.access-picker__option input:checked + .access-picker__body {
    border-color: var(--ct-primary);
    background: rgba(7, 132, 127, .06);
    box-shadow: 0 0 0 1px var(--ct-primary);
}

/* =========================================================
   Profil sayfası
   ========================================================= */
.profile-hero { overflow: hidden; }

.profile-hero__cover {
    height: 150px;
    background: linear-gradient(135deg, var(--cp-theme-1) 0%, var(--cp-theme-2) 100%);
    background-size: cover;
    background-position: center;
}

.profile-hero .card-body { padding-top: 0; }

/* Yalnızca avatar kapağa taşar; isim ve künye kartın beyaz zemininde
   kalır — aksi hâlde koyu gradyan üzerinde okunmuyordu. */
.profile-hero__main {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    flex-wrap: wrap;
    padding-top: 14px;
}

.profile-hero__avatar {
    margin-top: -62px;
    width: 108px;
    height: 108px;
    flex: 0 0 108px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--ct-body-bg);
    background: var(--ct-secondary-bg);
    box-shadow: 0 6px 20px rgba(30, 55, 55, .16);
    display: block;
}

.profile-hero__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }

.profile-hero__initials {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ct-primary);
    color: #fff;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 1px;
}

.profile-hero__identity { flex-grow: 1; min-width: 200px; padding-bottom: 4px; }

.profile-hero__identity h4 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 3px;
}

.profile-hero__identity p {
    color: var(--ct-secondary-color);
    font-size: 14px;
    margin: 0 0 8px;
}

.profile-hero__tags { display: flex; flex-wrap: wrap; gap: 5px; }

.profile-hero__meta {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 13px;
    color: var(--ct-secondary-color);
    padding-bottom: 6px;
}

.profile-hero__meta i { color: var(--ct-primary); margin-right: 5px; }

/* Doluluk çubuğu */
.profile-progress {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--ct-border-color);
}

.profile-progress__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 13px;
    color: var(--ct-secondary-color);
    margin-bottom: 7px;
}

.profile-progress__head strong { font-size: 16px; color: var(--ct-primary); }

.profile-progress__bar {
    height: 8px;
    border-radius: 20px;
    background: var(--ct-secondary-bg);
    overflow: hidden;
}

.profile-progress__bar span {
    display: block;
    height: 100%;
    border-radius: 20px;
    background: linear-gradient(90deg, var(--cp-theme-2), var(--cp-theme-3));
    transition: width .5s ease;
}

.profile-progress__missing {
    font-size: 12.5px;
    color: var(--ct-secondary-color);
    margin: 9px 0 0;
}

/* Etiket rozetleri */
.profile-tags { display: flex; flex-wrap: wrap; gap: 6px; }

.profile-tags span {
    background: rgba(7, 132, 127, .08);
    color: var(--ct-primary);
    border-radius: 20px;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 500;
}

/* Telefon doğrulama kutusu */
.phone-verify {
    border: 1px solid var(--ct-border-color);
    border-left: 4px solid var(--ct-warning);
    border-radius: 8px;
    padding: 18px 20px;
    background: var(--ct-secondary-bg);
}

.phone-verify__head { display: flex; align-items: center; gap: 12px; }

.phone-verify__icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--ct-body-bg);
    color: var(--ct-warning);
    font-size: 20px;
}

.phone-verify__code {
    max-width: 180px;
    text-align: center;
    letter-spacing: .4em;
    text-indent: .4em;
    font-weight: 700;
    font-size: 18px;
}

@media (max-width: 575px) {
    .profile-hero__avatar {
        margin-top: -48px;
        width: 84px;
        height: 84px;
        flex-basis: 84px;
    }

    .profile-hero__initials { font-size: 26px; }
    .profile-hero__meta { width: 100%; }
}

/* ================================================================
   Yönetim Kurulu modülü (governance)
   ================================================================ */

/* ---------- Liste satırları ---------- */
.gv-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ct-border-color);
    text-decoration: none;
}

.gv-row:last-child { border-bottom: 0; }
.gv-row:hover { background: var(--ct-tertiary-bg); }

.gv-row__date {
    flex: 0 0 52px;
    width: 52px;
    text-align: center;
    border-radius: 8px;
    padding: 6px 0;
    background: var(--ct-secondary-bg);
    line-height: 1.1;
}

.gv-row__date strong { display: block; font-size: 20px; }
.gv-row__date span { font-size: 11px; text-transform: uppercase; color: var(--ct-secondary-color); }

.gv-row__date--lg { flex-basis: 74px; width: 74px; padding: 10px 0; }
.gv-row__date--lg strong { font-size: 30px; }

.gv-row__body { flex: 1 1 auto; min-width: 0; }
.gv-row__title { display: block; font-weight: 600; }
.gv-row__meta { display: block; font-size: 12px; color: var(--ct-secondary-color); }
.gv-row__side { flex: 0 0 auto; text-align: end; }

.gv-upcoming { transition: transform .15s ease; }
.gv-upcoming:hover { transform: translateY(-2px); }

/* ---------- Küçük görev / liste öğeleri ---------- */
.gv-task {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--ct-border-color);
    text-decoration: none;
}

.gv-task:last-child { border-bottom: 0; }

.gv-task__dot {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
}

.gv-progress { padding: 12px 0; border-bottom: 1px dashed var(--ct-border-color); }
.gv-progress:last-child { border-bottom: 0; }

.gv-bullet { display: flex; gap: 8px; padding: 6px 0; font-size: 13px; }
.gv-bullet i { flex: 0 0 16px; margin-top: 2px; }

.gv-duty { padding: 12px 0; border-bottom: 1px dashed var(--ct-border-color); }
.gv-duty:last-child { border-bottom: 0; }

.gv-report { padding: 14px 0; border-bottom: 1px solid var(--ct-border-color); }
.gv-report:last-child { border-bottom: 0; }

/* ---------- İletişim listesi ---------- */
.gv-contact { list-style: none; padding: 0; margin: 0; }

.gv-contact li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 13px;
    border-bottom: 1px dashed var(--ct-border-color);
}

.gv-contact li:last-child { border-bottom: 0; }
.gv-contact i { color: var(--ct-secondary-color); font-size: 15px; width: 18px; }

/* ---------- Üye kartı ---------- */
.gv-member { transition: box-shadow .15s ease; }
.gv-member:hover { box-shadow: var(--ct-box-shadow); }
.gv-member__roles { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; }

/* ---------- Üst bilgi kartı ---------- */
.gv-hero__cover { width: 100%; max-height: 220px; object-fit: cover; }

/* ---------- Gündem ---------- */
.gv-agenda__item {
    display: flex;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid var(--ct-border-color);
}

.gv-agenda__item:last-child { border-bottom: 0; }
.gv-agenda__item.is-dragging { opacity: .5; }

.gv-agenda__no {
    flex: 0 0 46px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-size: 18px;
    color: var(--ct-secondary-color);
    height: 28px;
}

.gv-agenda__body { flex: 1 1 auto; min-width: 0; }
.gv-agenda__text { font-size: 13px; color: var(--ct-secondary-color); }

.gv-agenda__outcome {
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--ct-secondary-bg);
    font-size: 13px;
}

.gv-agenda__decision {
    margin-top: 6px;
    padding: 6px 12px;
    border-left: 3px solid var(--ct-primary);
    background: var(--ct-tertiary-bg);
    font-size: 13px;
}

.gv-decision { padding: 14px 0; border-bottom: 1px solid var(--ct-border-color); }
.gv-decision:last-child { border-bottom: 0; }

/* ---------- Fotoğraf galerisi ---------- */
.gv-gallery { display: flex; flex-wrap: wrap; gap: 10px; }

.gv-gallery__item {
    position: relative;
    width: 160px;
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
}

.gv-gallery__item img { width: 100%; height: 110px; object-fit: cover; display: block; }
.gv-gallery__remove { position: absolute; top: 6px; right: 6px; opacity: 0; transition: opacity .15s ease; }
.gv-gallery__item:hover .gv-gallery__remove { opacity: 1; }

/* ---------- Görev panosu (kanban) ---------- */
.gv-board { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 8px; }

.gv-board__col {
    flex: 1 0 240px;
    min-width: 240px;
    border-radius: 8px;
    background: var(--ct-tertiary-bg);
    padding: 10px;
}

.gv-board__col.is-over { outline: 2px dashed var(--ct-primary); }

.gv-board__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 13px;
}

.gv-board__list { display: flex; flex-direction: column; gap: 8px; min-height: 60px; }

.gv-card {
    position: relative;
    background: var(--ct-body-bg);
    border: 1px solid var(--ct-border-color);
    border-radius: 6px;
    padding: 10px 10px 10px 16px;
    cursor: grab;
}

.gv-card.is-dragging { opacity: .5; }
.gv-card__priority { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 6px 0 0 6px; }
.gv-card__title { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.gv-card__meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; color: var(--ct-secondary-color); }

/* ---------- Zaman çizelgesi ---------- */
.gv-timeline { position: relative; padding-left: 26px; }

.gv-timeline::before {
    content: '';
    position: absolute;
    left: 9px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: var(--ct-border-color);
}

.gv-timeline__item { position: relative; padding: 0 0 18px 0; }

.gv-timeline__dot {
    position: absolute;
    left: -26px;
    top: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 11px;
    box-shadow: 0 0 0 3px var(--ct-body-bg);
}

.gv-timeline__body { min-width: 0; }

/* ---------- Şema ---------- */

.gv-node { padding: 8px 10px; text-align: center; }
.gv-node__photo, .gv-node__initials {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ct-secondary-bg);
    font-weight: 700;
    margin-bottom: 4px;
}

.gv-node__title { display: block; font-weight: 600; font-size: 13px; }
.gv-node__name { display: block; font-size: 11px; opacity: .75; }

/* ---------- Çeşitli ---------- */
.gv-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.gv-project__cover { width: 100%; height: 130px; object-fit: cover; }
.gv-prose img { max-width: 100%; height: auto; }
.gv-prose p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
    .gv-agenda__no { flex-basis: 32px; font-size: 15px; }
    .gv-gallery__item { width: calc(50% - 5px); }
    .gv-gallery__remove { opacity: 1; }
}

/* ================================================================
   Zengin metin editörü — uzun raporlar
   ================================================================ */

.editor-wrap { position: relative; }

.editor-wrap--full .ql-toolbar.ql-snow {
    position: relative;
    padding-right: 44px;
    border-radius: 6px 6px 0 0;
}

.editor-wrap--full .editor-holder {
    border-radius: 0 0 6px 6px;
}

.editor-wrap--full .ql-editor {
    min-height: 460px;
    font-size: 14.5px;
    line-height: 1.7;
}

.editor-wrap--full .ql-editor h1 { font-size: 1.6rem; }
.editor-wrap--full .ql-editor h2 { font-size: 1.35rem; }
.editor-wrap--full .ql-editor h3 { font-size: 1.15rem; }
.editor-wrap--full .ql-editor img { max-width: 100%; height: auto; border-radius: 6px; }

.editor-fullscreen {
    position: absolute;
    top: 4px;
    right: 6px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--ct-secondary-color);
    font-size: 17px;
    line-height: 1;
}

.editor-fullscreen:hover { background: var(--ct-tertiary-bg); color: var(--ct-primary); }

.editor-wrap.is-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 1080;
    background: var(--ct-body-bg);
    padding: 16px;
    display: flex;
    flex-direction: column;
}

.editor-wrap.is-fullscreen .editor-holder { flex: 1 1 auto; overflow: auto; }
.editor-wrap.is-fullscreen .ql-editor { min-height: 100%; }
body.editor-locked { overflow: hidden; }

.editor-count {
    margin-top: 4px;
    font-size: 11.5px;
    color: var(--ct-secondary-color);
    text-align: right;
}

/* Kaydedilmiş rapor gövdesi (okuma görünümü) */
.gv-report-body { font-size: 14.5px; line-height: 1.75; }
.gv-report-body img { max-width: 100%; height: auto; border-radius: 6px; }
.gv-report-body h1, .gv-report-body h2, .gv-report-body h3, .gv-report-body h4 { margin-top: 1.2em; }
.gv-report-body blockquote {
    margin: 0 0 1em;
    padding: 6px 14px;
    border-left: 3px solid var(--ct-border-color);
    color: var(--ct-secondary-color);
}

/* ================================================================
   Kurul arşivi — dosya yöneticisi
   ================================================================ */

.ar-drop {
    position: relative;
    border-radius: 8px;
    transition: outline-color .15s ease;
    outline: 2px dashed transparent;
    outline-offset: -6px;
}

.ar-drop.is-dragging { outline-color: var(--ct-primary); background: var(--ct-primary-bg-subtle); }

.ar-drop__hint {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 5;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--ct-primary);
    pointer-events: none;
}

.ar-drop.is-dragging .ar-drop__hint { display: flex; }

/* Klasör kartları */
.ar-folder {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    text-decoration: none;
    height: 100%;
    transition: border-color .15s ease, transform .15s ease;
}

.ar-folder:hover { border-color: var(--ct-primary); transform: translateY(-1px); }
.ar-folder__icon { font-size: 26px; line-height: 1; }
.ar-folder__name { display: block; font-weight: 600; font-size: 13.5px; }
.ar-folder__meta { display: block; font-size: 11.5px; color: var(--ct-secondary-color); }

/* Klasör ağacı */
.ar-tree { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.ar-tree li { margin: 0; }

.ar-tree a {
    display: block;
    padding: 5px 8px;
    border-radius: 5px;
    color: var(--ct-body-color);
    text-decoration: none;
}

.ar-tree a:hover { background: var(--ct-tertiary-bg); }
.ar-tree a.is-active { background: var(--ct-primary-bg-subtle); color: var(--ct-primary); font-weight: 600; }

/* Dosya listesi */
.ar-thumb {
    width: 42px;
    height: 42px;
    border-radius: 6px;
    object-fit: cover;
    background: var(--ct-tertiary-bg);
}

.ar-icon {
    width: 42px;
    height: 42px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: var(--ct-tertiary-bg);
}

.ar-name { font-weight: 600; font-size: 13.5px; }
.ar-sub { font-size: 11.5px; color: var(--ct-secondary-color); }

.ar-progress {
    height: 4px;
    border-radius: 2px;
    overflow: hidden;
    background: var(--ct-tertiary-bg);
}

@media (max-width: 767px) {
    .editor-wrap--full .ql-editor { min-height: 300px; }
}

/* ================================================================
   Yapılacaklar listesi
   ================================================================ */

.todo-list { display: flex; flex-direction: column; }

.todo {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--ct-border-color);
}

.todo:last-child { border-bottom: 0; }
.todo.is-dragging { opacity: .5; }

.todo__grip {
    color: var(--ct-secondary-color);
    cursor: grab;
    margin-top: 5px;
    font-size: 15px;
}

.todo__check {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    padding: 0;
    border: 1.5px solid var(--ct-border-color);
    border-radius: 50%;
    background: transparent;
    color: transparent;
    font-size: 14px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.todo__check:not(:disabled):hover { border-color: var(--ct-success); color: var(--ct-success); }
.todo__check.is-checked { background: var(--ct-success); border-color: var(--ct-success); color: #fff; }
.todo__check:disabled { opacity: .45; cursor: not-allowed; }

.todo__body { flex: 1 1 auto; min-width: 0; }

.todo__title {
    display: block;
    font-weight: 600;
    font-size: 14px;
    word-break: break-word;
}

.todo__note {
    display: block;
    font-size: 12.5px;
    color: var(--ct-secondary-color);
    margin-top: 2px;
}

.todo__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    font-size: 11.5px;
}

.todo.is-done .todo__title {
    text-decoration: line-through;
    color: var(--ct-secondary-color);
    font-weight: 500;
}

.todo.is-done .todo__note { text-decoration: line-through; }

.todo__actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 4px;
}

.todo__actions .form-select { width: auto; min-width: 118px; }

@media (max-width: 767px) {
    .todo { flex-wrap: wrap; }
    .todo__actions { width: 100%; justify-content: flex-end; margin-top: 6px; }
    .todo__grip { display: none; }
}

/* ================================================================
   Bildirimler
   ================================================================ */

.notification-list .nav-link { position: relative; }

.notification-list .bell-count {
    position: absolute;
    top: 2px;
    right: -2px;
    font-size: 10px;
    padding: 2px 5px;
    line-height: 1;
}

.notify-item,
.notify-row__link {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    text-decoration: none;
    color: var(--ct-body-color);
    white-space: normal;
}

.notify-item.is-unread,
.notify-row.is-unread { background: var(--ct-primary-bg-subtle); }

.notify-icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.notify-body { flex: 1 1 auto; min-width: 0; }

.notify-title {
    display: block;
    font-weight: 600;
    font-size: 13.5px;
}

.notify-text {
    display: block;
    font-size: 12.5px;
    color: var(--ct-secondary-color);
    margin-top: 1px;
}

.notify-time {
    display: block;
    font-size: 11px;
    color: var(--ct-secondary-color);
    margin-top: 3px;
}

.notify-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ct-primary);
    margin-left: 5px;
    vertical-align: middle;
}

.notify-all { font-size: 13px; font-weight: 600; }

/* Bildirim sayfası */
.notify-row {
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--ct-border-color);
}

.notify-row:last-child { border-bottom: 0; }
.notify-row__link { flex: 1 1 auto; padding: 14px 8px; }
.notify-row:hover { background: var(--ct-tertiary-bg); }

/* ================================================================
   Kimliğe bürünme şeridi
   ================================================================ */

.impersonation-bar {
    position: sticky;
    top: 0;
    z-index: 1060;
    background: #b45309;
    color: #fff;
    padding: 8px 0;
    font-size: 13px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
}

.impersonation-bar .btn-light { font-weight: 600; }

/* ---------- Değerlendirme formu ---------- */
.eval-row {
    padding: 12px 0;
    border-bottom: 1px dashed var(--ct-border-color);
}

.eval-row:last-of-type { border-bottom: 0; }

.eval-value {
    flex: 0 0 auto;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.eval-value output { color: var(--ct-primary); }

/* ================================================================
   Kurul performans karnesi
   ================================================================ */

/* ---------- Sıralama satırı ----------
   Grid kullanılıyor: iç içe flex/span yerine sabit sütunlar, her tarayıcıda
   aynı hizalama. Satır <a> olduğu için içindekiler blok öğe olmalı.       */
.perf-row {
    display: grid;
    grid-template-columns: 46px 42px minmax(0, 1fr) 116px;
    align-items: center;
    gap: 14px;
    padding: 14px 14px 14px 10px;
    margin-bottom: 8px;
    border: 1px solid var(--ct-border-color);
    border-left: 4px solid var(--ct-border-color);
    border-radius: 10px;
    color: var(--ct-body-color);
    text-decoration: none;
    background: var(--ct-body-bg);
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.perf-row:last-child { margin-bottom: 0; }

.perf-row:hover {
    border-color: var(--ct-primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .07);
}

.perf-row--1 { border-left-color: #f6c945; background: linear-gradient(90deg, rgba(246, 201, 69, .10), transparent 55%); }
.perf-row--2 { border-left-color: #b9c0c7; background: linear-gradient(90deg, rgba(185, 192, 199, .12), transparent 55%); }
.perf-row--3 { border-left-color: #d08c55; background: linear-gradient(90deg, rgba(208, 140, 85, .10), transparent 55%); }

/* Sıra rozeti */
.perf-row__rank {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    color: var(--ct-secondary-color);
}

.perf-row__rank i { font-size: 19px; margin-bottom: 2px; }
.perf-row__rank b { font-size: 15px; font-weight: 700; }
.perf-row--1 .perf-row__rank { color: #d9a406; }
.perf-row--2 .perf-row__rank { color: #8d959c; }
.perf-row--3 .perf-row__rank { color: #b3703a; }

/* Kurul simgesi */
.perf-row__icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
}

/* Orta gövde */
.perf-row__body { min-width: 0; }

.perf-row__name {
    font-weight: 600;
    font-size: 14.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.perf-row__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--ct-secondary-color);
    margin: 2px 0 6px;
}

.perf-row__badge { color: #e8a93c; font-size: 14px; }

.perf-row__bar {
    height: 6px;
    border-radius: 3px;
    background: var(--ct-tertiary-bg);
    overflow: hidden;
}

.perf-row__fill { height: 100%; border-radius: 3px; }

/* Sağ blok */
.perf-row__score { text-align: right; line-height: 1.25; }
.perf-row__value { font-size: 24px; font-weight: 700; }
.perf-row__band { font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.perf-row__trend { font-size: 11.5px; white-space: nowrap; }

@media (max-width: 575px) {
    .perf-row {
        grid-template-columns: 38px minmax(0, 1fr) auto;
        gap: 10px;
    }

    .perf-row__icon { display: none; }
    .perf-row__value { font-size: 20px; }
}

.perf-legend {
    padding: 8px 0;
    border-bottom: 1px dashed var(--ct-border-color);
}

.perf-legend:last-child { border-bottom: 0; }

.perf-item {
    padding: 11px 0;
    border-bottom: 1px dashed var(--ct-border-color);
}

.perf-item:last-child { border-bottom: 0; }

/* Puan göstergesi */
.perf-dial {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 5px solid var(--ct-border-color);
}

.perf-dial strong { font-size: 30px; line-height: 1; }
.perf-dial span { font-size: 11px; color: var(--ct-secondary-color); }
.perf-dial--primary { border-color: var(--ct-primary); }
.perf-dial--warning { border-color: var(--ct-warning); }
.perf-dial--secondary { border-color: var(--ct-secondary); }
.perf-dial--dark { border-color: var(--ct-dark); }
.perf-dial--danger { border-color: var(--ct-danger); }

/* Dönem geçmişi sütunları */
.perf-history {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    height: 150px;
    padding-top: 8px;
}

.perf-history__bar {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    text-align: center;
}

.perf-history__bar span {
    width: 100%;
    border-radius: 4px 4px 0 0;
    min-height: 4px;
    order: 2;
}

.perf-history__bar em { order: 1; font-style: normal; font-size: 12px; font-weight: 600; margin-bottom: 3px; }
.perf-history__bar small { order: 3; font-size: 10px; color: var(--ct-secondary-color); margin-top: 4px; }

@media (max-width: 767px) {
    .perf-badges { display: none; }
    .perf-row { flex-wrap: wrap; }
}

/* ================================================================
   Kurul kartları
   ================================================================ */

.cm-mandate {
    min-height: 40px;
    margin-bottom: 10px;
}

.cm-members {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 26px;
    margin-bottom: 12px;
}

/* Sayaçlar dar kartta üst üste binmesin */
.cm-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 10px;
    padding-top: 10px;
    border-top: 1px solid var(--ct-border-color);
    font-size: 12.5px;
    color: var(--ct-secondary-color);
}

.cm-stats span {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.cm-stats i { font-size: 14px; }

/* ================================================================
   Değerlendirme grubu kartları
   ================================================================
   Kartlar yan yana dizildiği için satırdaki her blok SABİT YÜKSEKLİK
   alır: üye rozeti olmayan grupla iki üyeli grup aynı hizada durur,
   yoksa aynı satırdaki kartların ilerleme çubukları kayar.
   ================================================================ */

.eg-card .card-body { padding-bottom: 14px; }

.eg-card__head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
}

.eg-card__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
}

.eg-card__meta {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: var(--ct-secondary-color);
}

.eg-card__members {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 26px;
    margin-bottom: 14px;
}

.eg-card__progress {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    font-size: 12.5px;
    margin-bottom: 6px;
}

/* Termin satırı yalnızca termin girilmişse çizilir. Kart boylarını
   `h-100` zaten eşitliyor ve alt şerit gövdenin büyümesiyle tabana
   iniyor; burada yer ayırmak sadece boş bir bant bırakırdı. */
.eg-card__due {
    margin-top: 10px;
    font-size: 12px;
    color: var(--ct-secondary-color);
}

.eg-card__due--late {
    color: var(--ct-danger);
    font-weight: 600;
}

/*
 * Alt şerit.
 *
 * Tema `.card-footer` üst çizgisini kaldırıyor ve arka planı kart
 * gövdesiyle aynı; düğmeler kartın tabanına yapışık duruyordu. Burada
 * hem ayırıcı çizgi hem nefes payı veriliyor.
 */
.eg-card__footer {
    display: flex;
    gap: 6px;
    margin-top: auto;
    padding: 12px 14px;
    border-top: 1px solid var(--ct-border-color);
}

.eg-card__footer .btn { --ct-btn-padding-y: .35rem; }

/* ---------------------------------------------------------------------
   Değerlendirme grubu — Bildirim ve SMS pencereleri
   Solda yazım alanı, sağda öğrenci listesi. Sağ taraf kendi içinde
   kayar; uzun bir grupta yazım alanı ekrandan çıkmasın.
   --------------------------------------------------------------------- */

.eg-outreach__compose {
    padding: 20px;
    border-right: 1px solid var(--ct-border-color);
}

.eg-outreach__side {
    display: flex;
    flex-direction: column;
    min-height: 420px;
    max-height: calc(100vh - 220px);
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .eg-outreach__compose { border-right: 0; border-bottom: 1px solid var(--ct-border-color); }
    .eg-outreach__side { max-height: none; }
}

.eg-outreach__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    color: var(--ct-secondary-color);
}

.eg-outreach__meter {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 12.5px;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .03));
}

.eg-outreach__meter.is-warn { color: var(--ct-warning); }

.eg-outreach__summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px dashed var(--ct-border-color);
    border-radius: 6px;
    font-size: 13px;
    color: var(--ct-secondary-color);
}

.eg-outreach__summary.is-active {
    border-style: solid;
    border-color: var(--ct-success);
    color: var(--ct-success);
    font-weight: 600;
}

.eg-outreach__summary.is-active.is-warn {
    border-color: var(--ct-warning);
    color: var(--ct-warning);
}

.eg-outreach [data-eg-submit].is-busy { pointer-events: none; opacity: .7; }

.eg-roster { display: flex; flex-direction: column; min-height: 0; height: 100%; }

.eg-roster__toolbar {
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--ct-border-color);
}

.eg-roster__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--ct-border-color);
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .02));
}

.eg-roster__list { overflow-y: auto; flex: 1 1 auto; }

.eg-roster__item { border-bottom: 1px solid var(--ct-border-color); }
.eg-roster__item.is-disabled { opacity: .6; }
.eg-roster__item.is-open { background: var(--ct-tertiary-bg, rgba(0, 0, 0, .02)); }

.eg-roster__row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
}

.eg-roster__label { max-width: 150px; }

.eg-roster__state {
    position: relative;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 20px;
    line-height: 1;
}

.eg-roster__state[data-eg-history] { cursor: pointer; }
.eg-roster__state[data-eg-history]:hover { background: var(--ct-light); }
.eg-roster__state:disabled { opacity: 1; cursor: default; }

.eg-roster__count {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--ct-success);
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 17px;
}

.eg-roster__history {
    margin: 0 16px 10px 42px;
    padding-left: 12px;
    border-left: 2px solid var(--ct-border-color);
}

.eg-roster__history > li { padding: 6px 0; }
.eg-roster__history > li + li { border-top: 1px dashed var(--ct-border-color); }

.eg-roster__body {
    font-size: 13px;
    white-space: pre-line;
    word-break: break-word;
}

.eg-notices { overflow-y: auto; }

.eg-notices__item {
    padding: 14px 16px;
    border-bottom: 1px solid var(--ct-border-color);
}

.eg-notices__body {
    margin: 8px 0;
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .03));
    font-size: 13px;
    max-height: 120px;
    overflow-y: auto;
}

.eg-notices__pending {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 8px;
}

/* ---------------------------------------------------------------------
   Profil tamamlama daveti
   --------------------------------------------------------------------- */

.profile-nudge__ring {
    --nudge-percent: 0;
    width: 128px;
    height: 128px;
    margin: 0 auto;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(
        var(--bs-primary) calc(var(--nudge-percent) * 1%),
        var(--bs-secondary-bg) 0
    );
}

.profile-nudge__ring::before {
    content: "";
    grid-area: 1 / 1;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: var(--bs-modal-bg, #fff);
}

.profile-nudge__value {
    grid-area: 1 / 1;
    font-size: 26px;
    font-weight: 700;
    color: var(--bs-emphasis-color);
}

.profile-nudge__list {
    display: grid;
    gap: 12px;
}

.profile-nudge__group {
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: 12px 14px;
}

.profile-nudge__group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    font-size: 14px;
    color: var(--bs-emphasis-color);
    text-decoration: none;
}

.profile-nudge__group-title:hover {
    color: var(--bs-primary);
}

.profile-nudge__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.profile-nudge__chip {
    background: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
    border-radius: 40px;
    padding: 3px 11px;
    font-size: 12.5px;
}

/* ---------------------------------------------------------------------
   Burs değerlendirme cetveli
   --------------------------------------------------------------------- */

.eval-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 13.5px;
    color: var(--bs-secondary-color);
}

.eval-totals strong {
    font-size: 17px;
    color: var(--bs-emphasis-color);
}

.eval-totals__final strong {
    color: var(--bs-primary);
}

.eval-section {
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.eval-section__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--bs-border-color);
}

.eval-section__score {
    font-weight: 600;
    white-space: nowrap;
}

.eval-criterion {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 42%);
    gap: 10px 16px;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px dashed var(--bs-border-color);
}

.eval-criterion:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.eval-criterion__label {
    font-size: 14px;
    margin: 0;
}

.eval-question {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 38%);
    gap: 10px 16px;
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.eval-question__text {
    display: flex;
    gap: 10px;
}

.eval-question__no {
    flex: 0 0 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.eval-tiebreak summary {
    cursor: pointer;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--bs-primary);
}

@media (max-width: 991px) {
    .eval-criterion,
    .eval-question {
        grid-template-columns: 1fr;
    }
}

/* ------------------------------------------------------------------ */
/*  Girişte açılan duyuru modalı                                       */
/* ------------------------------------------------------------------ */

/*
   Onay isteyen duyuruda üst şerit kırmızı, bilgilendirmede sarı:
   kullanıcı daha okumaya başlamadan bu modalın kapatılıp
   kapatılamayacağını anlamalı.
*/
.announcement-modal__head {
    align-items: flex-start;
    gap: .75rem;
    border-bottom: 1px solid var(--ct-border-color);
}

.announcement-modal__icon {
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    border-radius: .55rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}

.announcement-modal__body {
    font-size: .9rem;
    line-height: 1.7;
}

.announcement-modal__body img { max-width: 100%; height: auto; }
.announcement-modal__body :last-child { margin-bottom: 0; }

.announcement-modal__foot { border-top: 1px solid var(--ct-border-color); }

/* ------------------------------------------------------------------ */
/*  Burs cetveli — yeni ölçüt türleri                                  */
/* ------------------------------------------------------------------ */

/*
   Özel sosyal koşullar çoklu seçimdir ve puanı sağda durur: değerlendirici
   işaretlerken kaç puan eklediğini görmeli, çünkü bölüm 15'te kesiliyor.
*/
.eval-toggle {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .4rem .6rem;
    border-radius: .35rem;
    border: 1px solid transparent;
}

.eval-toggle:hover { background: var(--ct-tertiary-bg, rgba(0, 0, 0, .03)); }
.eval-toggle:has(input:checked) { border-color: var(--ct-primary); background: rgba(var(--ct-primary-rgb), .06); }
.eval-toggle .form-check { flex: 1; min-width: 0; }
.eval-toggle .form-check-label { font-size: .85rem; }

.eval-toggle__points {
    flex-shrink: 0;
    min-width: 2rem;
    text-align: center;
    font-weight: 600;
    font-size: .82rem;
    color: var(--ct-secondary-color);
}

.eval-toggle:has(input:checked) .eval-toggle__points { color: var(--ct-primary); }

/* Hesaplanan gelir bandı önerisi — karar değil, öneri */
.eval-suggestion {
    display: block;
    margin-top: .3rem;
    padding: .35rem .55rem;
    border-radius: .35rem;
    background: rgba(var(--ct-primary-rgb), .08);
    color: var(--ct-primary);
    font-size: .76rem;
    line-height: 1.5;
}

.eval-suggestion--muted {
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .04));
    color: var(--ct-secondary-color);
}

.eval-question-list { padding-left: 1.1rem; margin: 0; }
.eval-question-list li { font-size: .82rem; color: var(--ct-secondary-color); margin-bottom: .3rem; }

/* ------------------------------------------------------------------
   Menü yönetimi — iki seviyeli sürükle-bırak ağacı

   Yerleşimin kendisi görünümde Bootstrap yardımcı sınıflarıyla kuruluyor;
   buradaki kurallar kutuyu, girintiyi ve renkleri veriyor.
   ------------------------------------------------------------------ */
.menu-tree,
.menu-tree__children { list-style: none; margin: 0; padding: 0; }

/* Alt menü: bağlayıcı çizgi hem hiyerarşiyi hem bırakma alanını gösterir */
.menu-tree__children {
    position: relative;
    margin: .35rem 0 .35rem 1.6rem;
    padding-left: 1.15rem;
    border-left: 2px solid var(--ct-border-color);
    /* Alt menüsü boş öğede de bırakma hedefi kalsın */
    min-height: 1rem;
}

.menu-tree__item { margin-bottom: .4rem; }
.menu-tree__children .menu-tree__item:last-child { margin-bottom: 0; }

.menu-tree__row {
    padding: .6rem .75rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .5rem;
    background: var(--ct-secondary-bg);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.menu-tree__row:hover {
    border-color: rgba(var(--ct-primary-rgb), .45);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

/* Sürüklenen satır soluklaşır, hedef satır sol kenarından işaretlenir */
.menu-tree__item.is-dragging > .menu-tree__row { opacity: .4; }

.menu-tree__item.is-drop-into > .menu-tree__row {
    border-color: var(--ct-primary);
    box-shadow: inset 3px 0 0 var(--ct-primary);
}

.menu-tree__handle {
    flex-shrink: 0;
    cursor: grab;
    color: var(--ct-secondary-color);
    font-size: 1.05rem;
    line-height: 1;
}

.menu-tree__handle:active { cursor: grabbing; }

/* Sıra numarası — <ol> yerine, sürükledikten sonra JS ile güncelleniyor */
.menu-tree__index {
    flex-shrink: 0;
    width: 1.35rem;
    text-align: center;
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    color: var(--ct-secondary-color);
}

.menu-tree__icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .4rem;
    background: rgba(var(--ct-primary-rgb), .1);
    color: var(--ct-primary);
    font-size: .95rem;
}

/* Başlık ve "tümü" tipleri bağlantı değil; farklı renkle ayrılıyor */
.menu-tree__icon--group {
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .05));
    color: var(--ct-secondary-color);
}

.menu-tree__label {
    font-weight: 600;
    font-size: .875rem;
    line-height: 1.4;
}

.menu-tree__label .badge {
    font-size: .66rem;
    vertical-align: middle;
    margin-left: .15rem;
}

.menu-tree__meta {
    font-size: .74rem;
    line-height: 1.4;
    color: var(--ct-secondary-color);
}

.menu-tree__url { opacity: .8; }

.menu-tree__row--off { opacity: .55; }
.menu-tree__row--off:hover { opacity: .8; }

.menu-tree__actions { flex-shrink: 0; }
.menu-tree__actions .btn { --ct-btn-padding-x: .5rem; }

/* Dar ekranda satır iki kata düşer; düğmeler yine sağda kalır */
@media (max-width: 575.98px) {
    .menu-tree__index { display: none; }
    .menu-tree__children { margin-left: .5rem; padding-left: .75rem; }
}
/* ------------------------------------------------------------------
   Bağış sayfası — yöntem sırası, banka hesapları, tutar kartları

   Menü ağacında olduğu gibi yerleşim görünümde Bootstrap yardımcı
   sınıflarıyla kuruluyor; buradaki kurallar yalnızca kutuyu ve renkleri
   veriyor, böylece bu dosya eksik kalsa bile satırlar dağılmıyor.
   ------------------------------------------------------------------ */

/* ---- Sitedeki sekme sırasının özeti ---- */
.donate-preview {
    padding: .7rem .85rem;
    border: 1px dashed var(--ct-border-color);
    border-radius: .5rem;
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .02));
}

.donate-preview__label {
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--ct-secondary-color);
}

.donate-preview__chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .22rem .55rem;
    border-radius: 999px;
    background: rgba(var(--ct-primary-rgb), .1);
    color: var(--ct-primary);
    font-size: .76rem;
    font-weight: 600;
    white-space: nowrap;
}

/* ---- Yöntem sırası ---- */
.donate-channels { margin: 0; padding: 0; list-style: none; }

.donate-channel {
    padding: .7rem .85rem;
    margin-bottom: .5rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .5rem;
    background: var(--ct-secondary-bg);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.donate-channel:last-child { margin-bottom: 0; }

.donate-channel:hover {
    border-color: rgba(var(--ct-primary-rgb), .45);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

.donate-channel.is-dragging { opacity: .4; }
.donate-channel--off { opacity: .6; }
.donate-channel--off:hover { opacity: .85; }

.donate-channel__handle {
    flex-shrink: 0;
    cursor: grab;
    color: var(--ct-secondary-color);
    font-size: 1.05rem;
    line-height: 1;
}

.donate-channel__handle:active { cursor: grabbing; }

.donate-channel__index {
    flex-shrink: 0;
    width: 1.35rem;
    text-align: center;
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    color: var(--ct-secondary-color);
}

.donate-channel__icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .45rem;
    background: rgba(var(--ct-primary-rgb), .1);
    color: var(--ct-primary);
    font-size: 1.05rem;
}

.donate-channel__label {
    font-weight: 600;
    font-size: .875rem;
    line-height: 1.4;
}

.donate-channel__label .badge {
    font-size: .66rem;
    vertical-align: middle;
    margin-left: .15rem;
}

.donate-channel__meta {
    font-size: .74rem;
    line-height: 1.45;
    color: var(--ct-secondary-color);
}

/* ---- Havale kartındaki hesap listesi ---- */
.donate-accounts { margin: 0; padding: 0; }

.donate-account {
    padding: .5rem .7rem;
    margin-bottom: .35rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .4rem;
}

.donate-account:last-child { margin-bottom: 0; }
.donate-account--off { opacity: .6; }

/* ---- Hazır tutar kartları ---- */
.donate-amount {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    height: 100%;
    padding: .65rem .7rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .5rem;
    background: var(--ct-secondary-bg);
}

.donate-amount__index {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    margin-top: .3rem;
    border-radius: 50%;
    background: var(--ct-tertiary-bg, rgba(0, 0, 0, .05));
    color: var(--ct-secondary-color);
    font-size: .7rem;
    font-weight: 600;
}

/* Dar ekranda sıra numaraları yer kaplamasın */
@media (max-width: 575.98px) {
    .donate-channel__index { display: none; }
}

/* ====================================================================== */
/* Kayıt defteri                                                          */
/* ====================================================================== */

/* Son 14 günün yoğunluk şeridi — çubuğun boyu o günkü hareket sayısı */
.audit-days {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    overflow-x: auto;
}

.audit-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    min-width: 46px;
    padding: 4px 2px;
    border-radius: 6px;
    text-decoration: none;
    color: var(--bs-secondary-color);
}

.audit-day:hover { background: var(--bs-tertiary-bg); }

.audit-day.is-active {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
    font-weight: 600;
}

.audit-day__bar {
    display: block;
    width: 18px;
    min-height: 3px;
    border-radius: 3px 3px 0 0;
    background: currentColor;
    opacity: .55;
}

.audit-day.is-active .audit-day__bar { opacity: 1; }

.audit-day__label {
    margin-top: 4px;
    font-size: 10px;
    white-space: nowrap;
}

.audit-person:hover { background: var(--bs-tertiary-bg); }

/* Zaman çizelgesi: gün başlığı ve oturum kartları */
.audit-timeline-day { margin-bottom: 1.5rem; }

.audit-timeline-day__title {
    position: sticky;
    top: 70px;
    z-index: 2;
    padding: 6px 10px;
    margin-bottom: .75rem;
    border-radius: 6px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    font-size: 15px;
}

.audit-session {
    border-left: 3px solid var(--bs-primary);
}

.audit-session .card-header { background: var(--bs-tertiary-bg); }

/* ====================================================================== */
/* Bölüm seçici (combobox)                                                */
/* ====================================================================== */

/* Yazarak aranan alan: açılır liste yerine, çünkü tek üniversitede 205
   bölüm olabiliyor ve katalog hiçbir zaman eksiksiz değil. Hiçbir şey
   eşleşmezse "böyle kaydet" satırı çıkar. */
.combo {
    position: relative;
}

.combo__list {
    position: absolute;
    z-index: 40;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    max-height: 280px;
    overflow-y: auto;
    margin: 0;
    padding: 4px;
    list-style: none;
    background: #fff;
    border: 1px solid #d8e0e0;
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(18, 50, 101, .14);
}

.combo__option {
    padding: 7px 10px;
    border-radius: 6px;
    cursor: pointer;
    line-height: 1.35;
}

.combo__option:hover,
.combo__option.is-active {
    background: #eef5f5;
}

.combo__name {
    display: block;
    font-size: 14px;
    color: #1d2a2a;
}

.combo__faculty {
    display: block;
    font-size: 12px;
    color: #7d8c8c;
}

/* "Listede yok — böyle kaydet" satırı: seçeneklerden ayrı dursun */
.combo__option--new {
    border-top: 1px dashed #d8e0e0;
    margin-top: 4px;
    padding-top: 9px;
}

.combo__option--new .combo__name {
    font-weight: 600;
    color: #07847f;
}

.combo__hint {
    padding: 9px 10px;
    font-size: 13px;
    color: #7d8c8c;
}

/* ==========================================================================
   Roller ve İzinler
   ========================================================================== */

/*
   İzin matrisi geniştir: modül/eylem sütunu kaydırırken kaybolmamalı.
   Yoksa sağa kaydıran kişi hangi satırda olduğunu unutuyor ve yanlış
   kutuyu okuyor — yetki ekranında bu, yanlış karar demek.
*/
.access-matrix th:first-child,
.access-matrix td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background-color: var(--bs-card-bg, #fff);
}

.access-matrix thead th:first-child {
    z-index: 3;
}

.access-matrix td,
.access-matrix th {
    white-space: nowrap;
}

/* Rol düzenleme: izni olan modül gözle seçilebilsin */
.access-module {
    transition: border-color .15s ease-in-out;
}

.access-module .form-check-label {
    cursor: pointer;
    user-select: none;
}

/* ---------------------------------------------------------------------
   Görüşme sayacı — değerlendirme ekranının sağ üstü
   Normal: sakin; 6. dk: sarı "Dikkat"; 10. dk: kırmızı, nabız atan
   "Görüşmeyi bitir". Renk tek başına yetmesin diye etiket de değişir.
   --------------------------------------------------------------------- */

.interview-timer {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    vertical-align: middle;
    padding: 6px 12px;
    border: 1px solid var(--ct-border-color);
    border-radius: 999px;
    background: var(--ct-secondary-bg, #fff);
    color: var(--ct-body-color);
    font-size: 13px;
    line-height: 1.2;
    transition: background-color .3s, color .3s, border-color .3s;
}

.interview-timer i { font-size: 16px; }

.interview-timer__time {
    font-size: 16px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .5px;
}

.interview-timer__label {
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
    opacity: .8;
}

.interview-timer.is-warn {
    background: var(--ct-warning);
    border-color: var(--ct-warning);
    color: #3b2a00;
}

.interview-timer.is-stop {
    background: var(--ct-danger);
    border-color: var(--ct-danger);
    color: #fff;
    animation: interview-timer-pulse 1.2s ease-in-out infinite;
}

.interview-timer.is-stop .interview-timer__label,
.interview-timer.is-warn .interview-timer__label { opacity: 1; }

@keyframes interview-timer-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, .55); }
    50% { box-shadow: 0 0 0 8px rgba(220, 53, 69, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .interview-timer.is-stop { animation: none; }
}
