/* ==========================================================================
   Yönetim paneli teması
   Renk, font, boşluk, köşe ve gölge değerleri buradaki değişkenlerden gelir;
   sayfalar sabit değer yerine bu değişkenleri kullanır.
   ========================================================================== */

:root {
    /* Marka */
    --ap-primary: #2f6bd1;
    --ap-primary-hover: #2558b0;
    --ap-primary-soft: #e8f0fc;
    --ap-primary-ring: rgba(47, 107, 209, .22);
    --ap-on-primary: #ffffff;

    /* Giriş ekranı marka paneli geçişi */
    --ap-brand-from: #1d4ea3;
    --ap-brand-via: var(--ap-primary);
    --ap-brand-to: #4a8ae6;

    /* Nötrler */
    --ap-bg: #f4f6fa;
    --ap-surface: #ffffff;
    --ap-border: #e2e8f0;
    --ap-border-strong: #cbd5e1;
    --ap-text: #0f172a;
    --ap-text-muted: #64748b;
    --ap-text-subtle: #94a3b8;

    /* Durum */
    --ap-success: #16a34a;
    --ap-success-hover: #15803d;
    --ap-success-soft: #e9f8ef;
    --ap-success-ring: rgba(22, 163, 74, .22);
    --ap-danger: #dc2626;
    --ap-danger-hover: #b91c1c;
    --ap-danger-soft: #fdecec;
    --ap-danger-ring: rgba(220, 38, 38, .22);
    --ap-warning: #b45309;
    --ap-warning-soft: #fef5e7;

    /* Grafik serileri (sabit sırayla kullanılır; renk körlüğü için doğrulandı) */
    --ap-chart-1: #2a78d6;
    --ap-chart-2: #eb6834;
    --ap-chart-3: #1baf7a;
    --ap-chart-4: #eda100;

    /* Tipografi */
    --ap-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --ap-fs-xs: .75rem;
    --ap-fs-sm: .875rem;
    --ap-fs-md: .9375rem;
    --ap-fs-lg: 1.125rem;
    --ap-fs-xl: 1.5rem;

    /* Ölçüler */
    --ap-radius-sm: 8px;
    --ap-radius: 10px;
    --ap-radius-lg: 16px;
    --ap-control-h: 44px;
    --ap-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
    --ap-shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);
    --ap-transition: .15s ease;
}

/* ==========================================================================
   Giriş ekranları (Login/*)
   ========================================================================== */

body.auth-page {
    margin: 0;
    min-height: 100vh;
    background: var(--ap-bg);
    color: var(--ap-text);
    font-family: var(--ap-font);
    font-size: var(--ap-fs-md);
    -webkit-font-smoothing: antialiased;
}

.auth {
    display: flex;
    min-height: 100vh;
}

/* Sol marka paneli */
.auth-aside {
    position: relative;
    display: none;
    flex: 0 0 44%;
    max-width: 640px;
    flex-direction: column;
    justify-content: space-between;
    padding: 48px;
    overflow: hidden;
    color: var(--ap-on-primary);
    background: linear-gradient(150deg, var(--ap-brand-from) 0%, var(--ap-brand-via) 55%, var(--ap-brand-to) 100%);
}

.auth-aside::before,
.auth-aside::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .14);
}

.auth-aside::before {
    width: 520px;
    height: 520px;
    right: -180px;
    bottom: -160px;
    background: rgba(255, 255, 255, .05);
}

.auth-aside::after {
    width: 300px;
    height: 300px;
    right: 60px;
    bottom: 40px;
}

.auth-aside-inner {
    position: relative;
    z-index: 1;
    margin-top: auto;
    margin-bottom: auto;
    max-width: 420px;
}

.auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    letter-spacing: .02em;
}

.auth-aside h2 {
    margin: 20px 0 12px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.02em;
}

.auth-aside p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .82);
}

.auth-aside-foot {
    position: relative;
    z-index: 1;
    font-size: var(--ap-fs-sm);
    color: rgba(255, 255, 255, .7);
}

/* Sağ form alanı */
.auth-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
}

.auth-card {
    width: 100%;
    max-width: 420px;
    padding: 36px 32px;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
    box-shadow: var(--ap-shadow);
}

.auth-logo {
    display: block;
    height: 32px;
    width: auto;
    margin: 0 auto 28px;
}

.auth-head {
    margin-bottom: 24px;
}

.auth-head h1 {
    margin: 0 0 6px;
    font-size: var(--ap-fs-xl);
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ap-text);
}

.auth-head p {
    margin: 0;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    line-height: 1.55;
}

.auth-foot {
    margin: 20px 0 0;
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-subtle);
}

/* Alanlar */
.auth-field {
    margin-bottom: 18px;
}

.auth-field label {
    display: block;
    margin-bottom: 6px;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.auth-label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.auth-label-row a {
    font-size: var(--ap-fs-sm);
}

.auth-input {
    position: relative;
}

.auth-input > i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ap-text-subtle);
    font-size: .95rem;
    pointer-events: none;
    transition: color var(--ap-transition);
}

.auth-input .form-control {
    height: var(--ap-control-h);
    padding: 0 14px 0 42px;
    border: 1px solid var(--ap-border-strong);
    border-radius: var(--ap-radius);
    font-family: var(--ap-font);
    font-size: var(--ap-fs-md);
    color: var(--ap-text);
    box-shadow: none;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}

.auth-input .form-control::placeholder {
    color: var(--ap-text-subtle);
}

.auth-input .form-control:focus {
    border-color: var(--ap-primary);
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.auth-input:focus-within > i {
    color: var(--ap-primary);
}

.auth-input.has-toggle .form-control {
    padding-right: 46px;
}

.auth-toggle {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 36px;
    border: 0;
    border-radius: var(--ap-radius-sm);
    background: transparent;
    color: var(--ap-text-muted);
    cursor: pointer;
    transition: background var(--ap-transition), color var(--ap-transition);
}

.auth-toggle:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.auth-toggle:focus-visible {
    outline: 2px solid var(--ap-primary);
    outline-offset: 1px;
}

.auth-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
}

.auth-hint[hidden] {
    display: none;
}

.auth-caps {
    color: var(--ap-warning);
}

/* Bağlantılar */
.auth-page a:not(.auth-submit) {
    color: var(--ap-primary);
    font-weight: 500;
    text-decoration: none;
}

.auth-page a:not(.auth-submit):hover {
    color: var(--ap-primary-hover);
    text-decoration: underline;
}

/* Butonlar */
.auth-submit {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: var(--ap-control-h);
    margin-top: 8px;
    border: 0;
    border-radius: var(--ap-radius);
    background: var(--ap-primary);
    color: var(--ap-on-primary);
    font-family: var(--ap-font);
    font-size: var(--ap-fs-md);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--ap-transition), box-shadow var(--ap-transition);
}

.auth-submit:hover {
    background: var(--ap-primary-hover);
    color: var(--ap-on-primary);
    text-decoration: none;
}

.auth-submit:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.auth-submit:disabled {
    cursor: progress;
    opacity: .85;
}

.auth-submit.is-loading .auth-submit-text {
    visibility: hidden;
}

.auth-submit.is-loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, .45);
    border-top-color: var(--ap-on-primary);
    border-radius: 50%;
    animation: spin .7s linear infinite;
}

.auth-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    font-size: var(--ap-fs-sm);
}

/* Bildirimler */
.auth-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: var(--ap-radius);
    font-size: var(--ap-fs-sm);
    line-height: 1.5;
}

.auth-alert[hidden] {
    display: none;
}

.auth-alert i {
    margin-top: 3px;
}

.auth-alert-danger {
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.auth-alert-success {
    background: var(--ap-success-soft);
    color: var(--ap-success);
}

/* Durum ekranı (EmailConfirmed) */
.auth-status {
    text-align: center;
}

.auth-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    border-radius: 50%;
    font-size: 1.75rem;
}

.auth-status-icon.is-success {
    background: var(--ap-success-soft);
    color: var(--ap-success);
}

.auth-status-icon.is-danger {
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

@media (min-width: 992px) {
    .auth-aside {
        display: flex;
    }
}

@media (max-width: 480px) {
    .auth-main {
        justify-content: flex-start;
        padding-top: 24px;
    }

    .auth-card {
        padding: 28px 20px;
        border-radius: var(--ap-radius);
    }
}

/* ==========================================================================
   Ortak: yükleniyor göstergesi ve SweetAlert pencereleri
   ========================================================================== */

body.loading #loader {
    background-color: rgba(255, 255, 255, .7);
    backdrop-filter: blur(2px);
}

body.loading #loader-img {
    width: 44px;
    height: 44px;
    margin: -22px 0 0 -22px;
    border: 4px solid var(--ap-border);
    border-top-color: var(--ap-primary);
    animation-duration: .8s;
}

.swal2-popup {
    border-radius: var(--ap-radius-lg) !important;
    font-family: var(--ap-font);
}

.swal2-popup .swal2-title {
    color: var(--ap-text);
    font-size: 1.375rem;
    font-weight: 700;
}

.swal2-popup .swal2-content {
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-md);
}

/* SweetAlert renkleri satır içi stil olarak verir; tema rengi ancak !important ile geçer */
.swal2-popup .swal2-styled.swal2-confirm {
    background-color: var(--ap-primary) !important;
    border-radius: var(--ap-radius-sm) !important;
    font-weight: 600;
}

.swal2-popup .swal2-styled.swal2-cancel {
    border-radius: var(--ap-radius-sm) !important;
    font-weight: 600;
}

.swal2-popup .swal2-styled:focus {
    box-shadow: 0 0 0 4px var(--ap-primary-ring) !important;
}

/* Kısa bildirimler (layout.js Toast) */
.swal2-container.ap-toast-container {
    padding: 72px 24px 16px;
}

.swal2-popup.swal2-toast.ap-toast {
    --ap-toast-color: var(--ap-success);
    --ap-toast-soft: var(--ap-success-soft);
    /* SweetAlert genişliği satır içi "auto" verir; en az genişlik bunu aşar */
    min-width: 340px;
    max-width: min(440px, calc(100vw - 32px));
    padding: 14px 12px 16px 16px;
    overflow: hidden;
    border: 1px solid var(--ap-border);
    border-left: 4px solid var(--ap-toast-color);
    border-radius: var(--ap-radius) !important;
    background: var(--ap-surface);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18), 0 2px 6px rgba(15, 23, 42, .08);
}

.swal2-popup.swal2-toast.ap-toast-danger {
    --ap-toast-color: var(--ap-danger);
    --ap-toast-soft: var(--ap-danger-soft);
}

.swal2-popup.swal2-toast.ap-toast-warning {
    --ap-toast-color: var(--ap-warning);
    --ap-toast-soft: var(--ap-warning-soft);
}

.swal2-popup.swal2-toast.ap-toast-info {
    --ap-toast-color: var(--ap-primary);
    --ap-toast-soft: var(--ap-primary-soft);
}

.swal2-popup.swal2-toast.ap-toast .swal2-header {
    flex: 1;
    min-width: 0;
}

.swal2-popup.swal2-toast.ap-toast .swal2-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    color: var(--ap-text);
    font-size: var(--ap-fs-md);
    font-weight: 600;
    line-height: 1.4;
    text-align: left;
}

.ap-toast-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--ap-toast-soft);
    color: var(--ap-toast-color);
    font-size: 1.125rem;
}

.ap-toast-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.ap-toast-text small {
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 400;
}

.swal2-popup.swal2-toast.ap-toast .swal2-close {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    margin-left: 8px;
    border-radius: 6px;
    color: var(--ap-text-subtle);
    font-family: var(--ap-font);
    font-size: 1.25rem;
    line-height: 28px;
}

.swal2-popup.swal2-toast.ap-toast .swal2-close:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.swal2-popup.swal2-toast.ap-toast .swal2-timer-progress-bar {
    height: 3px;
    background: var(--ap-toast-color);
    opacity: .6;
}

/* ==========================================================================
   Panel iskeleti (_Layout): AdminLTE sınıfları korunur, görünüm buradan gelir
   ========================================================================== */

body.ap-admin {
    background: var(--ap-bg);
    color: var(--ap-text);
    font-family: var(--ap-font);
    font-size: var(--ap-fs-md);
    -webkit-font-smoothing: antialiased;
}

.ap-admin .content-wrapper {
    background: var(--ap-bg);
}

.ap-admin a:not([class]) {
    color: var(--ap-primary);
}

.ap-admin a:not([class]):hover {
    color: var(--ap-primary-hover);
}

/* Üst bar */
.ap-admin .main-header {
    background: var(--ap-surface);
    border-bottom: 1px solid var(--ap-border);
    padding: 0 16px;
}

.ap-admin .main-header .ap-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: var(--ap-radius-sm);
    color: var(--ap-text-muted);
    transition: background var(--ap-transition), color var(--ap-transition);
}

.ap-admin .main-header .ap-icon-btn:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

/* Kullanıcı menüsü */
.ap-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: var(--ap-fs-sm);
    font-weight: 600;
}

.ap-avatar img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ap-avatar-lg {
    width: 44px;
    height: 44px;
    font-size: var(--ap-fs-md);
}

.ap-admin .ap-user-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    height: auto;
    padding: 6px 10px 6px 6px;
    border-radius: 999px;
    color: var(--ap-text);
    transition: background var(--ap-transition);
}

.ap-admin .ap-user-toggle:hover,
.ap-admin .ap-user.show .ap-user-toggle {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.ap-admin .ap-user-toggle::after {
    display: none;
}

.ap-user-meta {
    flex-direction: column;
    line-height: 1.2;
}

.ap-user-meta strong {
    font-size: var(--ap-fs-sm);
    font-weight: 600;
}

.ap-user-meta small {
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
}

.ap-user-caret {
    font-size: .7rem;
    color: var(--ap-text-subtle);
}

.ap-admin .ap-user-menu {
    min-width: 260px;
    margin-top: 8px;
    padding: 8px;
}

.ap-user-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 8px 4px;
    line-height: 1.3;
}

.ap-user-card strong {
    display: block;
    font-weight: 600;
}

.ap-user-card small {
    display: block;
    color: var(--ap-text-muted);
    word-break: break-all;
}

/* Açılır menüler */
.ap-admin .dropdown-menu {
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    font-size: var(--ap-fs-sm);
}

.ap-admin .dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--ap-radius-sm);
    color: var(--ap-text);
}

.ap-admin .dropdown-item i {
    width: 16px;
    text-align: center;
    color: var(--ap-text-subtle);
}

.ap-admin .dropdown-item:hover,
.ap-admin .dropdown-item:focus {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.ap-admin .dropdown-item.active,
.ap-admin .dropdown-item:active {
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
}

.ap-admin .dropdown-item.ap-item-danger,
.ap-admin .dropdown-item.ap-item-danger i {
    color: var(--ap-danger);
}

.ap-admin .dropdown-item.ap-item-danger:hover {
    background: var(--ap-danger-soft);
}

.ap-admin .dropdown-divider {
    margin: 6px 0;
    border-color: var(--ap-border);
}

/* Sol menü */
.ap-admin .main-sidebar {
    background: var(--ap-surface);
    border-right: 1px solid var(--ap-border);
    box-shadow: none !important;
}

.ap-admin .main-sidebar .brand-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(3.5rem + 1px);
    padding: 0 16px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-admin .main-sidebar .brand-link .brand-image {
    float: none;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 30px;
    object-fit: contain;
    margin: 0;
    opacity: 1;
    box-shadow: none;
}

.ap-admin .main-sidebar .sidebar {
    padding: 4px 8px 16px;
}

.ap-admin .nav-sidebar .nav-header {
    padding: 12px 12px 6px;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--ap-text-subtle);
}

.ap-admin .nav-sidebar .nav-item {
    margin-bottom: 2px;
}

.ap-admin .nav-sidebar .nav-link {
    display: flex;
    align-items: center;
    padding: 9px 12px;
    border-radius: var(--ap-radius-sm);
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 500;
    transition: background var(--ap-transition), color var(--ap-transition);
}

.ap-admin .nav-sidebar .nav-link p {
    flex: 1;
    margin: 0;
}

.ap-admin .nav-sidebar .nav-link .nav-icon {
    width: 20px;
    margin-right: 10px;
    font-size: 1rem;
    color: var(--ap-text-subtle);
    transition: color var(--ap-transition);
}

.ap-admin .nav-sidebar .nav-link .right {
    top: 50%;
    margin-top: -.5em;
    font-size: .8rem;
}

.ap-admin .nav-sidebar .nav-link:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.ap-admin .nav-sidebar .nav-link:hover .nav-icon {
    color: var(--ap-text-muted);
}

.ap-admin .nav-sidebar .nav-link.is-open,
.ap-admin .nav-sidebar .nav-link.is-open .nav-icon {
    color: var(--ap-text);
}

.ap-admin .nav-sidebar .nav-link.active,
.ap-admin .nav-sidebar .nav-link.active:hover {
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-weight: 600;
    box-shadow: none;
}

.ap-admin .nav-sidebar .nav-link.active .nav-icon {
    color: var(--ap-primary);
}

.ap-admin .nav-sidebar .nav-link:focus-visible {
    outline: 2px solid var(--ap-primary);
    outline-offset: -2px;
}

/* AdminLTE alt menü bağlantılarına sabit genişlik verir; girintiyle taşmaması için */
.ap-admin .nav-sidebar .nav-treeview .nav-link {
    width: auto;
}

.ap-admin .nav-sidebar .nav-treeview .nav-link .nav-icon {
    font-size: .8125rem;
}

body.ap-admin:not(.sidebar-collapse) .nav-sidebar .nav-treeview,
body.ap-admin.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-treeview {
    margin-left: 21px;
    padding-left: 8px;
    border-left: 1px solid var(--ap-border);
}

/* Sayfa başlığı */
.ap-admin .content-header {
    padding: 24px 16px 16px;
}

.ap-admin .content-header h1 {
    margin: 0;
    font-size: var(--ap-fs-xl);
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ap-text);
}

.ap-admin .ap-page-subtitle {
    margin: 4px 0 0;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-admin .content-header .breadcrumb {
    margin: 0;
    padding: 0;
    background: transparent;
    font-size: var(--ap-fs-sm);
}

.ap-admin .content-header .breadcrumb-item,
.ap-admin .content-header .breadcrumb-item.active,
.ap-admin .content-header .breadcrumb-item + .breadcrumb-item::before {
    color: var(--ap-text-subtle);
}

.ap-admin .content-header .breadcrumb-item a {
    color: var(--ap-text-muted);
}

.ap-admin .content-header .breadcrumb-item a:hover {
    color: var(--ap-primary);
}

.ap-admin .content {
    padding: 0 16px 24px;
}

/* Kartlar: renkli başlıklar (card-primary, card-success...) tek tip beyaz başlığa iner */
.ap-admin .card {
    margin-bottom: 24px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
    box-shadow: var(--ap-shadow-sm);
}

.ap-admin .card.card-outline {
    border-top: 1px solid var(--ap-border);
}

.ap-admin .card > .card-header,
.ap-admin .card[class*="card-"]:not(.card-outline) > .card-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 14px 20px;
    background: var(--ap-surface);
    color: var(--ap-text);
    border-bottom: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg) var(--ap-radius-lg) 0 0;
}

.ap-admin .card > .card-header::after {
    display: none;
}

.ap-admin .card-title {
    float: none;
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ap-text);
}

.ap-admin .card-title > i {
    margin-right: 6px;
    color: var(--ap-primary);
}

.ap-admin .card-header > .card-tools {
    float: none;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 0 auto;
}

.ap-admin .card-body {
    padding: 20px;
}

.ap-admin .card-footer {
    padding: 14px 20px;
    background: var(--ap-surface);
    border-top: 1px solid var(--ap-border);
    border-radius: 0 0 var(--ap-radius-lg) var(--ap-radius-lg);
}

.ap-admin .btn-tool {
    padding: 4px 8px;
    border-radius: var(--ap-radius-sm);
    background: transparent;
    color: var(--ap-text-muted);
}

.ap-admin .btn-tool:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

/* Butonlar */
.ap-admin .btn {
    border-radius: var(--ap-radius-sm);
    font-weight: 500;
}

.ap-admin .btn-sm {
    border-radius: 6px;
}

.ap-admin .btn-primary,
.ap-admin .btn-primary:not(:disabled):not(.disabled):active {
    background: var(--ap-primary);
    border-color: var(--ap-primary);
    color: var(--ap-on-primary);
}

.ap-admin .btn-primary:hover,
.ap-admin .btn-primary:focus {
    background: var(--ap-primary-hover);
    border-color: var(--ap-primary-hover);
    color: var(--ap-on-primary);
}

.ap-admin .btn-outline-primary {
    border-color: var(--ap-primary);
    color: var(--ap-primary);
}

.ap-admin .btn-outline-primary:hover {
    background: var(--ap-primary);
    color: var(--ap-on-primary);
}

.ap-admin .btn:focus,
.ap-admin .btn.focus {
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-admin .ap-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ap-text-muted);
    background: transparent;
    border: 1px solid transparent;
}

.ap-admin .ap-btn-ghost:hover {
    background: var(--ap-bg);
    color: var(--ap-primary);
}

.ap-admin .ap-btn-ghost i {
    font-size: .75em;
}

/* İki seçenekli geçiş (Grafik / Tablo) */
.ap-admin .ap-segmented {
    padding: 3px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-bg);
}

.ap-admin .ap-segmented .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border: 0;
    border-radius: 6px !important;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
}

.ap-admin .ap-segmented .btn.active {
    background: var(--ap-surface);
    color: var(--ap-text);
    box-shadow: var(--ap-shadow-sm);
}

/* Formlar */
.ap-admin label:not(.custom-control-label),
.ap-admin .col-form-label {
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-admin .form-control,
.ap-admin .custom-select {
    border-color: var(--ap-border-strong);
    border-radius: var(--ap-radius-sm);
    color: var(--ap-text);
    font-size: var(--ap-fs-md);
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}

.ap-admin .form-control::placeholder {
    color: var(--ap-text-subtle);
}

.ap-admin .form-control:focus,
.ap-admin .custom-select:focus {
    border-color: var(--ap-primary);
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-admin .form-control:disabled,
.ap-admin .custom-select:disabled {
    background: var(--ap-bg);
    color: var(--ap-text-muted);
}

.ap-admin .input-group-text {
    border-color: var(--ap-border-strong);
    border-radius: var(--ap-radius-sm);
    background: var(--ap-bg);
    color: var(--ap-text-muted);
}

/* Tarih aralığı alanları salt okunur ama tıklanır */
.ap-admin .daterangepicker-box .form-control[readonly],
.ap-admin .form-control[data-single-datetime][readonly] {
    background: var(--ap-surface);
    cursor: pointer;
}

.ap-admin .custom-control-label {
    font-weight: 500;
    color: var(--ap-text);
}

.ap-admin .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--ap-primary);
    background-color: var(--ap-primary);
}

.ap-admin .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-admin .ap-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--ap-border);
}

/* Tablolar */
.ap-admin .table {
    color: var(--ap-text);
}

.ap-admin .table thead th {
    border-top: 0;
    border-bottom: 1px solid var(--ap-border);
    background: var(--ap-bg);
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ap-admin .table td,
.ap-admin .table th {
    border-color: var(--ap-border);
    vertical-align: middle;
}

/* Sayfalama */
.ap-admin .page-link {
    color: var(--ap-primary);
    border-color: var(--ap-border);
}

.ap-admin .page-item.active .page-link {
    background: var(--ap-primary);
    border-color: var(--ap-primary);
    color: var(--ap-on-primary);
}

/* Yardımcı renk sınıfları */
.ap-admin .text-primary {
    color: var(--ap-primary) !important;
}

.ap-admin .bg-primary {
    background-color: var(--ap-primary) !important;
    color: var(--ap-on-primary) !important;
}

.ap-admin .badge-primary {
    background: var(--ap-primary);
    color: var(--ap-on-primary);
}

/* Alt bilgi */
.ap-admin .main-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 32px;
    background: transparent;
    border-top: 1px solid var(--ap-border);
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-xs);
}

.ap-admin .main-footer a {
    color: var(--ap-text-muted);
    font-weight: 500;
}

.ap-admin .scroll-to-top {
    right: 24px;
    bottom: 24px;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    box-shadow: var(--ap-shadow);
    line-height: 38px;
}

.ap-admin .scroll-to-top > i {
    font-size: .9rem;
    color: var(--ap-text-muted);
    opacity: 1;
}

/* ==========================================================================
   Kontrol paneli (Home/Index)
   ========================================================================== */

.ap-stats > [class*="col-"] {
    margin-bottom: 24px;
}

.ap-stat {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    height: 100%;
    padding: 20px;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
    box-shadow: var(--ap-shadow-sm);
}

.ap-stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: 1.1rem;
}

.ap-stat-label {
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-stat-value {
    margin: 2px 0;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.2;
    color: var(--ap-text);
    font-variant-numeric: tabular-nums;
}

.ap-stat-foot {
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-subtle);
}

.ap-chart {
    position: relative;
    height: 300px;
}

#home-stats .table td {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
    .ap-admin .content-header {
        padding: 16px 8px 12px;
    }

    .ap-admin .content {
        padding: 0 8px 16px;
    }

    .ap-admin .main-footer {
        padding: 12px 16px;
    }

    .ap-admin .card > .card-header > .card-tools {
        margin-left: 0;
    }
}

/* ==========================================================================
   Ortak bileşenler (tüm içerik sayfaları)
   ========================================================================== */

/* Başlık + sağda ana eylem */
.ap-admin .ap-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 16px;
}

/* Kısa yönlendirme metni */
.ap-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-hint i {
    color: var(--ap-text-subtle);
}

.ap-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 16px;
    padding: 10px 14px;
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
    color: var(--ap-text);
    font-size: var(--ap-fs-sm);
}

.ap-note i {
    margin-top: 3px;
    color: var(--ap-primary);
}

.ap-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 0;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
}

/* Boş durum */
.ap-empty {
    padding: 48px 16px;
    text-align: center;
}

.ap-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: 1.5rem;
}

.ap-empty-icon.is-danger {
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.ap-empty h3 {
    margin: 0 0 6px;
    font-size: var(--ap-fs-lg);
    font-weight: 600;
}

.ap-empty p {
    margin: 0 auto 20px;
    max-width: 360px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
}

/* İpucu: data-tip içeriği üstte gösterilir; JS gerektirmez */
.ap-tip {
    position: relative;
}

.ap-tip::after {
    content: attr(data-tip);
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 1070;
    width: max-content;
    max-width: 280px;
    padding: 6px 10px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-text);
    color: #fff;
    font-family: var(--ap-font);
    font-size: var(--ap-fs-xs);
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    box-shadow: var(--ap-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity var(--ap-transition), transform var(--ap-transition), visibility var(--ap-transition);
    pointer-events: none;
}

.ap-tip:hover::after,
.ap-tip:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ap-tip:focus-visible {
    outline: 2px solid var(--ap-primary-ring);
    outline-offset: 1px;
}

/* Durum rozetleri (renk tek başına anlam taşımaz; ikon + metinle kullanılır) */
.ap-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    white-space: nowrap;
}

.ap-badge-success {
    background: var(--ap-success-soft);
    color: var(--ap-success);
}

.ap-badge-warning {
    background: var(--ap-warning-soft);
    color: var(--ap-warning);
}

.ap-badge-danger {
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.ap-badge-muted {
    background: var(--ap-bg);
    color: var(--ap-text-muted);
}

/* Dil vb. küçük etiketler */
.ap-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border: 1px solid var(--ap-border);
    border-radius: 6px;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--ap-text-muted);
}

.ap-chip i {
    font-size: .625rem;
}

.ap-chip.is-on {
    border-color: transparent;
    background: var(--ap-success-soft);
    color: var(--ap-success);
}

.ap-chip.is-danger {
    border-color: transparent;
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.ap-chip.is-missing {
    border-style: dashed;
    color: var(--ap-text-subtle);
}

/* İkon butonları */
.ap-admin .ap-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    color: var(--ap-text-muted);
    background: transparent;
    border: 1px solid transparent;
}

.ap-admin .ap-btn-icon:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.ap-admin .ap-btn-danger:hover {
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.ap-admin .btn-light {
    background: var(--ap-surface);
    border-color: var(--ap-border-strong);
    color: var(--ap-text);
}

.ap-admin .btn-light:hover {
    background: var(--ap-bg);
}

.ap-admin .btn-outline-danger {
    border-color: var(--ap-border-strong);
    color: var(--ap-danger);
}

.ap-admin .btn-outline-danger:hover {
    border-color: var(--ap-danger);
    background: var(--ap-danger-soft);
    color: var(--ap-danger);
}

.ap-admin .ap-select-fit {
    flex: 0 0 auto;
    width: auto;
}

/* Pencereler */
.ap-admin .modal-content {
    border: 0;
    border-radius: var(--ap-radius-lg);
    box-shadow: 0 20px 60px rgba(15, 23, 42, .2);
}

.ap-admin .modal-header {
    align-items: center;
    padding: 16px 24px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-admin .modal-title {
    font-size: var(--ap-fs-lg);
    font-weight: 600;
}

.ap-admin .modal-header .close {
    margin: -8px -8px -8px auto;
    padding: 8px 12px;
    border-radius: var(--ap-radius-sm);
    color: var(--ap-text-muted);
    text-shadow: none;
    opacity: 1;
}

.ap-admin .modal-header .close:hover {
    background: var(--ap-bg);
    color: var(--ap-text);
}

.ap-admin .modal-body {
    padding: 20px 24px 24px;
}

.ap-admin .modal-footer {
    padding: 14px 24px;
    border-top: 1px solid var(--ap-border);
}

.ap-admin .modal-backdrop.show {
    opacity: .4;
}

/* Sekmeler */
.ap-admin .ap-tabs {
    gap: 4px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-admin .ap-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: -1px;
    padding: 8px 14px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 500;
}

.ap-admin .ap-tabs .nav-link:hover {
    color: var(--ap-text);
}

.ap-admin .ap-tabs .nav-link.active {
    background: transparent;
    border-bottom-color: var(--ap-primary);
    color: var(--ap-primary);
    font-weight: 600;
}

.ap-tab-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ap-text-subtle);
}

.ap-tab-dot.is-missing {
    background: transparent;
    border: 1px solid var(--ap-text-subtle);
}

/* Dosya yükleme alanı (Dropzone) */
.ap-admin .ap-dropzone {
    min-height: 0;
    padding: 32px 16px;
    border: 2px dashed var(--ap-border-strong);
    border-radius: var(--ap-radius-lg);
    background: var(--ap-bg);
    transition: border-color var(--ap-transition), background var(--ap-transition);
}

.ap-admin .ap-dropzone:hover,
.ap-admin .ap-dropzone.dz-drag-hover {
    border-color: var(--ap-primary);
    background: var(--ap-primary-soft);
}

.ap-admin .ap-dropzone .dz-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
}

.ap-admin .ap-dropzone .dz-message strong {
    color: var(--ap-text);
    font-size: var(--ap-fs-md);
    font-weight: 600;
}

.ap-dropzone-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--ap-surface);
    color: var(--ap-primary);
    font-size: 1.25rem;
    box-shadow: var(--ap-shadow-sm);
}

/* ==========================================================================
   Slaytlar (Slide/Index)
   ========================================================================== */

#sortable-list > .change-row {
    margin-bottom: 24px;
}

.ap-slide {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    transition: box-shadow var(--ap-transition), border-color var(--ap-transition);
}

.ap-slide:hover {
    border-color: var(--ap-border-strong);
    box-shadow: var(--ap-shadow);
}

.ap-slide-media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--ap-bg);
}

.ap-slide-media > a,
.ap-slide-media img,
.ap-slide-media video {
    display: block;
    width: 100%;
    height: 100%;
}

.ap-slide-media img,
.ap-slide-media video {
    object-fit: cover;
}

.ap-slide-play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: -22px 0 0 -22px;
    border-radius: 50%;
    background: rgba(15, 23, 42, .6);
    color: #fff;
    font-size: .875rem;
    pointer-events: none;
}

.ap-slide-order,
.ap-slide-handle {
    position: absolute;
    top: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    border-radius: 6px;
    background: rgba(15, 23, 42, .65);
    color: #fff;
    font-size: var(--ap-fs-xs);
    font-weight: 700;
    pointer-events: none;
}

.ap-slide-order {
    left: 8px;
    min-width: 26px;
    padding: 0 6px;
}

.ap-slide-handle {
    right: 8px;
    width: 26px;
    opacity: 0;
    transition: opacity var(--ap-transition);
}

.ap-slide:hover .ap-slide-handle {
    opacity: 1;
}

.ap-slide-body {
    flex: 1;
    padding: 12px 14px;
}

.ap-slide-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.ap-slide-title {
    margin: 0;
    overflow: hidden;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    line-height: 1.4;
    color: var(--ap-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ap-slide-title.is-empty {
    color: var(--ap-text-subtle);
    font-style: italic;
    font-weight: 500;
}

.ap-slide-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
}

.ap-slide-langs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.ap-slide-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 10px;
    border-top: 1px solid var(--ap-border);
}

.ap-slide-actions .slide-delete {
    margin-left: auto;
}

/* Sürükleme */
#sortable-list .change-row {
    cursor: grab;
}

#sortable-list .ui-sortable-helper .ap-slide {
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
    transform: rotate(1.5deg);
}

.ap-slide-placeholder {
    visibility: visible !important;
    margin-bottom: 24px;
}

.ap-slide-placeholder::before {
    content: "";
    display: block;
    height: 100%;
    border: 2px dashed var(--ap-primary);
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
}

/* ==========================================================================
   İkonlar (IconBox/Index, IconBox/Detail) ve ikon seçici (_IconPicker)
   ========================================================================== */

/* Liste kartı: Slaytlar kartının gövde/eylem sınıflarını (ap-slide-*) kullanır */
.ap-iconbox {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    transition: box-shadow var(--ap-transition), border-color var(--ap-transition);
}

.ap-iconbox:hover {
    border-color: var(--ap-border-strong);
    box-shadow: var(--ap-shadow);
}

.ap-iconbox:hover .ap-slide-handle {
    opacity: 1;
}

.ap-iconbox-tile {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 140px;
    background: var(--ap-bg);
    color: var(--ap-primary);
    font-size: 3.5rem;
    line-height: 1;
}

.ap-iconbox-order {
    position: absolute;
    top: 8px;
    left: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 6px;
    border-radius: 6px;
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 700;
}

.ap-iconbox .ap-slide-handle {
    background: var(--ap-surface);
    border: 1px solid var(--ap-border);
    color: var(--ap-text-muted);
}

.ap-iconbox-link {
    min-width: 0;
}

.ap-iconbox-link span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#sortable-list .ui-sortable-helper .ap-iconbox {
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
    transform: rotate(1.5deg);
}

/* Geri bağlantısı (detay sayfaları) */
.ap-admin .ap-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 500;
}

.ap-admin .ap-back:hover {
    color: var(--ap-primary);
    text-decoration: none;
}

.ap-tab-dot.is-on {
    background: var(--ap-success);
}

/* İkon alanı: büyük önizleme düğmesi + sınıf adı */
.ap-iconbox-form {
    display: flex;
    gap: 24px;
}

.ap-iconbox-fields {
    flex: 1 1 auto;
    min-width: 0;
}

.ap-icon-field {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 0 0 180px;
}

.ap-icon-field code {
    max-width: 100%;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    text-align: center;
    word-break: break-all;
}

.ap-icon-pick {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    aspect-ratio: 1;
    max-width: 180px;
    border: 2px dashed var(--ap-border-strong);
    border-radius: var(--ap-radius-lg);
    background: var(--ap-bg);
    color: var(--ap-primary);
    cursor: pointer;
    transition: border-color var(--ap-transition), background var(--ap-transition);
}

.ap-icon-pick i {
    font-size: 3.75rem;
    line-height: 1;
}

.ap-icon-pick i.is-empty {
    color: var(--ap-text-subtle);
    font-size: 2.5rem;
}

.ap-icon-pick span {
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
}

.ap-icon-pick:hover,
.ap-icon-pick:focus {
    border-color: var(--ap-primary);
    background: var(--ap-primary-soft);
    outline: none;
}

.ap-icon-pick:focus-visible {
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-icon-field-error {
    display: none;
    color: var(--ap-danger);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
}

.ap-icon-field.is-invalid .ap-icon-pick {
    border-color: var(--ap-danger);
    background: var(--ap-danger-soft);
}

.ap-icon-field.is-invalid .ap-icon-field-error {
    display: block;
}

@media (max-width: 575.98px) {
    .ap-iconbox-form {
        flex-direction: column;
    }

    .ap-icon-field {
        flex-basis: auto;
    }
}

/* Seçici penceresi */
.ap-admin .icon-picker .modal-body {
    overflow: hidden;
}

/* Başka pencerenin üstünde açılırsa (Yeni ikon) */
#icon-picker-modal.is-stacked {
    z-index: 1060;
}

.modal-backdrop.is-stacked {
    z-index: 1055;
}

.ip-layout {
    display: flex;
    height: min(760px, calc(100vh - 140px));
    min-height: 440px;
}

.ip-side {
    flex: 0 0 272px;
    padding: 20px;
    border-right: 1px solid var(--ap-border);
    background: var(--ap-bg);
    overflow-y: auto;
}

.ip-section-title {
    display: block;
    margin-bottom: 8px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Tema etiket stilini (.ap-admin label) ezer */
.ap-admin .ip-side label.ip-section-title {
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
}

.ip-current {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 20px 12px 16px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
}

.ip-current-icon {
    color: var(--ap-text);
    font-size: 4rem;
    line-height: 1.1;
}

.ip-current-icon .is-empty {
    color: var(--ap-text-subtle);
    font-size: 3rem;
}

.ip-current-name {
    display: flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
}

.ip-current-name code {
    color: var(--ap-text);
    font-size: var(--ap-fs-xs);
    word-break: break-all;
}

/* Sitedeki ikon kutusunu taklit eder; renk sitenin tema rengidir */
.ip-site-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 20px 12px;
    border-radius: 14px;
    background: var(--ap-surface);
    box-shadow: 0 2px 10px rgba(15, 23, 42, .06);
    text-align: center;
}

.ip-site-box i {
    margin-bottom: 4px;
    color: var(--ap-primary);
    font-size: 3rem;
    line-height: 1.1;
}

.ip-site-box strong {
    font-size: var(--ap-fs-sm);
}

.ip-site-box small {
    color: var(--ap-text-muted);
}

.ip-help {
    display: block;
    margin-top: 8px;
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-xs);
    text-align: center;
}

.ip-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 20px 24px;
}

/* Dikey düzende yalnızca ızgara küçülür; üstteki satırlar ezilmez */
.ip-main > :not(.ip-grid-wrap) {
    flex-shrink: 0;
}

.ip-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 12px;
}

.ip-search {
    position: relative;
    flex: 1 1 auto;
}

.ip-search > i {
    position: absolute;
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
    color: var(--ap-text-subtle);
    pointer-events: none;
}

.ap-admin .ip-search .form-control {
    padding-left: 40px;
    padding-right: 40px;
}

.ip-search kbd {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    padding: 1px 7px;
    border: 1px solid var(--ap-border-strong);
    border-radius: 5px;
    background: var(--ap-bg);
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    box-shadow: none;
}

.ip-size {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-xs);
}

.ip-size input {
    width: 110px;
    accent-color: var(--ap-primary);
}

.ap-admin .ip-libs {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-bottom: 12px;
}

.ap-admin .ip-libs .nav-link {
    white-space: nowrap;
}

.ip-count {
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--ap-bg);
    color: var(--ap-text-muted);
    font-size: .6875rem;
    font-weight: 600;
}

.ap-admin .ip-libs .nav-link.active .ip-count {
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
}

.ip-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 10px;
}

/* Bölünmüş seçim düğmeleri (stil filtresi) */
.ip-seg {
    display: inline-flex;
    padding: 3px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-bg);
}

.ip-seg-btn {
    padding: 4px 12px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    cursor: pointer;
}

.ip-seg-btn:hover {
    color: var(--ap-text);
}

.ip-seg-btn.is-active {
    background: var(--ap-surface);
    color: var(--ap-text);
    box-shadow: var(--ap-shadow-sm);
}

.ip-status {
    margin-left: auto;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
}

.ip-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    margin-bottom: 10px;
}

.ip-quick[hidden] {
    display: none;
}

.ip-quick-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
}

.ip-quick-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.ip-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-sm);
    background: var(--ap-surface);
    color: var(--ap-text);
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    transition: border-color var(--ap-transition), color var(--ap-transition);
}

.ip-chip:hover,
.ip-chip:focus {
    border-color: var(--ap-primary);
    color: var(--ap-primary);
    outline: none;
}

.ip-grid-wrap {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 8px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
}

.ip-grid {
    --ip-size: 26px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(calc(var(--ip-size) * 2.6 + 24px), 1fr));
    gap: 4px;
}

.ip-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    padding: 14px 4px 10px;
    border: 1px solid transparent;
    border-radius: var(--ap-radius-sm);
    background: transparent;
    color: var(--ap-text);
    cursor: pointer;
    transition: background var(--ap-transition), border-color var(--ap-transition);
}

.ip-cell i {
    font-size: var(--ip-size);
    line-height: 1;
}

.ip-cell span {
    max-width: 100%;
    overflow: hidden;
    color: var(--ap-text-muted);
    font-size: .6875rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ip-cell:hover {
    background: var(--ap-bg);
    border-color: var(--ap-border);
}

.ip-cell:focus {
    outline: none;
    border-color: var(--ap-primary);
    box-shadow: 0 0 0 3px var(--ap-primary-ring);
}

.ip-cell.selected {
    background: var(--ap-primary-soft);
    border-color: var(--ap-primary);
    color: var(--ap-primary);
}

.ip-cell.selected span {
    color: var(--ap-primary);
    font-weight: 600;
}

.ip-sentinel {
    height: 1px;
}

@media (max-width: 767.98px) {
    .ip-layout {
        flex-direction: column;
        height: auto;
    }

    .ip-side {
        flex-basis: auto;
        border-right: 0;
        border-bottom: 1px solid var(--ap-border);
    }

    .ip-grid-wrap {
        height: 60vh;
    }

    .ip-toolbar {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   Sayfalar (MyPage/Index): sayfa ağacı
   ========================================================================== */

/* Arama kutusu (sol ikonlu) */
.ap-search {
    position: relative;
    flex: 1 1 320px;
    max-width: 480px;
}

.ap-search > i {
    position: absolute;
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
    color: var(--ap-text-subtle);
    pointer-events: none;
}

.ap-admin .ap-search .form-control {
    padding-left: 40px;
}

.ap-tree-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 16px;
    margin-bottom: 16px;
}

.ap-tree-tools {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ap-tree-tools #page-lang {
    margin-right: 8px;
}

/* Listeler sınıfa değil yapıya bağlı: sürüklerken eklentinin oluşturduğu alt listeler de aynı görünür */
.ap-tree ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Alt seviyeler: girinti + dikey kılavuz çizgisi */
.ap-tree ul ul {
    display: none;
    margin-left: 27px;
    padding-left: 12px;
    border-left: 1px dashed var(--ap-border-strong);
}

.ap-tree-item.is-open > ul {
    display: block;
}

.ap-tree-item.is-hidden {
    display: none;
}

.ap-tree-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 48px;
    margin-bottom: 2px;
    padding: 4px 8px 4px 4px;
    border: 1px solid transparent;
    border-radius: var(--ap-radius-sm);
    transition: background var(--ap-transition), border-color var(--ap-transition);
}

.ap-tree-row:hover {
    background: var(--ap-bg);
}

.ap-tree-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 32px;
    color: var(--ap-text-subtle);
    cursor: grab;
    opacity: 0;
    transition: opacity var(--ap-transition);
}

.ap-tree-row:hover .ap-tree-handle {
    opacity: 1;
}

.ap-tree.is-searching .ap-tree-handle {
    visibility: hidden;
}

.ap-tree-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ap-text-muted);
    font-size: .75rem;
    cursor: pointer;
}

.ap-tree-toggle:hover {
    background: var(--ap-border);
    color: var(--ap-text);
}

.ap-tree-toggle i {
    transition: transform var(--ap-transition);
}

.ap-tree-item.is-open > .ap-tree-row .ap-tree-toggle i {
    transform: rotate(90deg);
}

.ap-tree-toggle.is-leaf {
    cursor: default;
}

.ap-tree-toggle.is-leaf:hover {
    background: transparent;
}

.ap-admin .ap-tree-link {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 6px 4px;
    color: var(--ap-text);
    font-weight: 500;
}

.ap-admin .ap-tree-link:hover {
    color: var(--ap-primary);
    text-decoration: none;
}

.ap-tree-icon {
    flex: 0 0 auto;
    width: 18px;
    color: var(--ap-text-subtle);
    text-align: center;
}

.ap-tree-item.has-children > .ap-tree-row .ap-tree-icon {
    color: var(--ap-primary);
}

.ap-tree-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Seçilen dilde çevirisi yok: başka dildeki adıyla soluk gösterilir */
.ap-tree-name.is-fallback {
    color: var(--ap-text-subtle);
    font-style: italic;
}

/* Ağaçta seçili dilin etiketi belirgin */
.ap-chip.is-current {
    box-shadow: 0 0 0 2px var(--ap-surface), 0 0 0 3px currentColor;
}

.ap-tree-name mark {
    padding: 0 1px;
    border-radius: 3px;
    background: #fde68a;
    color: inherit;
}

.ap-tree-row.is-passive .ap-tree-name {
    color: var(--ap-text-muted);
}

.ap-tree-flag {
    flex: 0 0 auto;
    color: var(--ap-text-subtle);
    font-size: .75rem;
}

.ap-tree-count {
    flex: 0 0 auto;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--ap-bg);
    color: var(--ap-text-muted);
    font-size: .6875rem;
    font-weight: 600;
}

.ap-tree-row:hover .ap-tree-count {
    background: var(--ap-surface);
}

.ap-tree-meta {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
}

.ap-tree-hits {
    min-width: 64px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    text-align: right;
    white-space: nowrap;
}

/* Pasif rozeti olmayan satırlarda da aynı yer tutulur; sütunlar hizalı kalır */
.ap-tree-status {
    display: inline-flex;
    justify-content: flex-end;
    width: 64px;
}

.ap-tree-actions {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    width: 66px; /* 4. seviyede "+" yokken de sütunlar kaymasın */
    gap: 2px;
    opacity: 0;
    transition: opacity var(--ap-transition);
}

.ap-tree-row:hover .ap-tree-actions,
.ap-tree-row:focus-within .ap-tree-actions {
    opacity: 1;
}

.ap-tree-item.is-match > .ap-tree-row {
    border-color: var(--ap-border);
    background: var(--ap-surface);
}

.ap-tree-placeholder {
    height: 48px;
    margin-bottom: 2px;
    border: 2px dashed var(--ap-primary);
    border-radius: var(--ap-radius-sm);
    background: var(--ap-primary-soft);
    list-style: none;
}

/* Seviyeler arası taşıma (nestedSortable) */

/* Kapalı dalın üzerinde beklenirken: birazdan açılacak */
.ap-tree-item.is-hovering > .ap-tree-row {
    background: var(--ap-primary-soft);
    border-color: var(--ap-primary);
}

.ap-tree.is-dragging .ap-tree-actions,
.ap-tree.is-dragging .ap-tree-handle {
    opacity: 0;
}

/* Sürüklenen dal yalnızca kendi satırıyla görünür; alt sayfaları onunla birlikte taşınır */
.ap-tree-item.ui-sortable-helper > ul {
    display: none !important;
}

.ap-tree-item.ui-sortable-helper > .ap-tree-row {
    position: relative;
    background: var(--ap-surface);
    border-color: var(--ap-border-strong);
}

.ap-tree-placeholder {
    height: 48px !important;
}

.ap-tree-placeholder.is-invalid {
    border-color: var(--ap-danger);
    background: var(--ap-danger-soft);
}

/* Kurala uymayan yerde: kırmızı çerçeve ve neden */
.ap-tree-item.is-blocked > .ap-tree-row {
    border-color: var(--ap-danger);
    background: var(--ap-danger-soft);
}

.ap-tree-item.is-blocked > .ap-tree-row::after {
    content: attr(data-reason);
    position: absolute;
    top: calc(100% + 6px);
    left: 40px;
    max-width: calc(100% - 48px);
    padding: 5px 10px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-danger);
    color: #fff;
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: var(--ap-shadow);
}

/* Taşıma onayı (SweetAlert içeriği) */
.ap-move-confirm {
    font-size: var(--ap-fs-sm);
    text-align: left;
}

.ap-move-confirm p {
    margin: 0 0 10px;
}

.ap-move-warn {
    display: flex;
    gap: 8px;
    padding: 8px 12px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-warning-soft);
    color: var(--ap-warning);
}

.ap-move-warn i {
    margin-top: 3px;
}

.ap-move-urls {
    margin: 0 0 10px;
    padding: 0;
    list-style: none;
}

.ap-move-urls li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
}

.ap-move-urls code {
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--ap-bg);
    color: var(--ap-text);
    font-size: var(--ap-fs-xs);
    word-break: break-all;
}

.ap-move-urls i {
    color: var(--ap-text-subtle);
    font-size: .75rem;
}

.ap-tree-item.ui-sortable-helper > .ap-tree-row {
    background: var(--ap-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .16);
}

@media (max-width: 767.98px) {
    .ap-tree-meta .ap-chip,
    .ap-tree-hits {
        display: none;
    }

    .ap-tree-status {
        width: auto;
    }


    .ap-tree-actions,
    .ap-tree-handle {
        opacity: 1;
    }

    .ap-tree ul ul {
        margin-left: 14px;
        padding-left: 8px;
    }
}

/* ==========================================================================
   Sayfa detayı (MyPage/Detail)
   ========================================================================== */

.ap-badge-primary {
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
}

.ap-note-warning {
    background: var(--ap-warning-soft);
}

.ap-note-warning i {
    color: var(--ap-warning);
}

.ap-tab-dot.is-warn {
    background: var(--ap-warning);
}

.ap-tab-dot.is-blocked {
    background: transparent;
    border: 1px dashed var(--ap-text-subtle);
}

/* Başlık: ad + durum, altında sayfanın ağaçtaki yeri */
.ap-page-head-main {
    min-width: 0;
}

.ap-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.ap-admin .ap-page-path {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin-top: 6px;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-admin .ap-page-path a {
    color: var(--ap-text-muted);
}

.ap-admin .ap-page-path a:hover {
    color: var(--ap-primary);
}

.ap-page-path i {
    color: var(--ap-text-subtle);
    font-size: .625rem;
}

.ap-page-path [aria-current] {
    color: var(--ap-text);
    font-weight: 500;
}

/* Ana sekmeler kart başlığında; etkin sekmenin çizgisi başlığın alt çizgisine oturur */
.ap-admin .card > .card-header.ap-detail-head {
    padding: 0 12px;
}

.ap-admin .ap-detail-tabs {
    flex-wrap: nowrap;
    width: 100%;
    margin-bottom: -1px;
    overflow-x: auto;
    border-bottom: 0;
    scrollbar-width: none;
}

.ap-admin .ap-detail-tabs::-webkit-scrollbar {
    display: none;
}

.ap-admin .ap-detail-tabs .nav-link {
    padding: 14px 12px;
    white-space: nowrap;
}

.ap-admin .ap-detail-tabs .nav-link > i {
    font-size: .875em;
}

.ap-count {
    min-width: 20px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--ap-bg);
    color: var(--ap-text-muted);
    font-size: .6875rem;
    font-weight: 600;
    text-align: center;
}

.ap-tabs .nav-link.active .ap-count {
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
}

/* Dil seçimi (İçerik sekmesi): ayrık düğmeler */
.ap-admin .ap-lang-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    margin-bottom: 20px;
    padding: 3px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-bg);
}

.ap-admin .ap-lang-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 6px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 500;
}

.ap-admin .ap-lang-tabs .nav-link:hover {
    color: var(--ap-text);
}

.ap-admin .ap-lang-tabs .nav-link.active {
    background: var(--ap-surface);
    color: var(--ap-text);
    font-weight: 600;
    box-shadow: var(--ap-shadow-sm);
}

/* Sitedeki adres önizlemesi */
.ap-url {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 8px;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-url > i {
    flex: 0 0 auto;
    color: var(--ap-text-subtle);
    font-size: .75rem;
}

/* Satırlar arasındaki boşluk düğümleri esnek kutuda görünmez; parçalar bitişik yazılır */
.ap-url > span {
    display: flex;
    flex-wrap: wrap;
    min-width: 0;
    font-family: SFMono-Regular, Menlo, Consolas, monospace;
    font-size: var(--ap-fs-xs);
    word-break: break-all;
}

/* Uzun adres parçaları dar ekranda taşmasın, bölünsün */
.ap-url > span > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ap-admin .ap-url a {
    color: var(--ap-text-muted);
}

.ap-admin .ap-url a:hover {
    color: var(--ap-primary);
}

.ap-url a.is-missing {
    color: var(--ap-danger);
}

.ap-url .seo-self {
    color: var(--ap-text);
    font-weight: 600;
}

/* Yan sütun: SEO alanları ve bilgiler */
.ap-side {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-bg);
}

.ap-side-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-side-title i {
    color: var(--ap-primary);
    font-size: .875em;
}

.ap-field-help {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.ap-counter {
    flex: 0 0 auto;
    white-space: nowrap;
}

.ap-counter.is-over {
    color: var(--ap-warning);
    font-weight: 600;
}

.ap-facts {
    display: grid;
    gap: 10px;
    margin: 0 0 16px;
    padding: 0 4px;
    font-size: var(--ap-fs-sm);
}

.ap-facts > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.ap-facts dt {
    font-weight: 400;
    color: var(--ap-text-muted);
}

.ap-facts dd {
    margin: 0;
    color: var(--ap-text);
    font-weight: 500;
    text-align: right;
}

/* İçerik düzenleyici (Summernote) */
.ap-admin .note-editor.note-frame {
    border-color: var(--ap-border-strong);
    border-radius: var(--ap-radius-sm);
}

.ap-admin .note-editor.note-frame .note-toolbar {
    border-bottom: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-sm) var(--ap-radius-sm) 0 0;
    background: var(--ap-bg);
}

.ap-admin .note-editor.note-frame .note-statusbar {
    border-radius: 0 0 var(--ap-radius-sm) var(--ap-radius-sm);
}

/* Düzenleyici pencereleri (bağlantı/resim/video ekle); metinler ve dosya düğmesi editor.js'te */
.ap-admin .note-modal .note-form-label {
    display: block;
    margin-bottom: 6px;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-admin .note-modal .note-form-label small {
    font-weight: 400;
    color: var(--ap-text-muted);
}

.ap-admin .note-modal .checkbox label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
    font-size: var(--ap-fs-sm);
    font-weight: 400;
    color: var(--ap-text);
    cursor: pointer;
}

.ap-admin .note-modal .checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--ap-success);
}

/* Ekle düğmesi: eylem renklerine uyar (ekle = yeşil) */
.ap-admin .note-modal .note-btn-primary {
    background: var(--ap-success);
    border-color: var(--ap-success);
    color: #fff;
}

.ap-admin .note-modal .note-btn-primary:hover,
.ap-admin .note-modal .note-btn-primary:focus {
    background: var(--ap-success-hover);
    border-color: var(--ap-success-hover);
    color: #fff;
}

.ap-admin .note-modal .note-btn-primary:disabled,
.ap-admin .note-modal .note-btn-primary.disabled {
    opacity: .45;
}

.ap-file-pick {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
}

.ap-file-pick input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.ap-file-pick input[type="file"]:focus-visible + .btn {
    outline: 2px solid var(--ap-primary);
    outline-offset: 1px;
}

.ap-file-pick-name {
    overflow: hidden;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Tek satırlık form: alan + düğme */
.ap-inline-form {
    display: flex;
    gap: 8px;
    max-width: 520px;
    margin: 0 auto;
}

.ap-inline-form .form-control {
    flex: 1 1 auto;
}

.ap-inline-form .btn {
    flex: 0 0 auto;
}

.ap-upload .ap-inline-form {
    margin: 0;
    max-width: 640px;
}

/* Medya sekmeleri: üstte yönerge + eylemler, altta açılır yükleme alanı */
.ap-media-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 16px;
    margin-bottom: 16px;
}

.ap-media-actions {
    display: flex;
    gap: 8px;
}

.ap-upload {
    margin-bottom: 20px;
}

/* layout.css eski tablo listeleri için her sürüklenene "display: table" verir; tablo düzeni verilen genişliği
   aşıp içeriğe göre büyür. Yeni listelerde sürüklenen öğe blok kalır, genişliği JS'te verilir. */
.ap-admin .ap-subtree .ap-tree-item.ui-sortable-helper,
.ap-admin .ap-media-col.ui-sortable-helper {
    display: block !important;
}

.ap-admin .ap-doc.ui-sortable-helper {
    display: flex !important;
}

/* Ayarlar: solda başlık ve açıklama, sağda anahtar */
.ap-setting {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    padding: 18px 0;
    border-bottom: 1px solid var(--ap-border);
}

.ap-setting.is-block {
    display: block;
}

.ap-setting-text h3 {
    margin: 0 0 2px;
    font-size: var(--ap-fs-md);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-setting-text p {
    margin: 0;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-settings > .ap-setting:first-of-type {
    padding-top: 0;
}

.ap-setting .custom-switch {
    flex: 0 0 auto;
}

.ap-setting-subtitle {
    margin: 20px 0 10px;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

/* Seçenek kartları (radio) */
.ap-choices {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.ap-admin label.ap-choice {
    display: flex;
    gap: 10px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--ap-border-strong);
    border-radius: var(--ap-radius);
    font-weight: 400;
    cursor: pointer;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition), background var(--ap-transition);
}

.ap-choice:hover {
    border-color: var(--ap-primary);
}

.ap-choice input {
    flex: 0 0 auto;
    margin-top: 4px;
    accent-color: var(--ap-primary);
}

.ap-choice:has(input:checked) {
    border-color: var(--ap-primary);
    background: var(--ap-primary-soft);
    box-shadow: 0 0 0 1px var(--ap-primary);
}

.ap-choice:has(input:focus-visible) {
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-choice-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ap-choice-body strong {
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-choice-body span {
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
    line-height: 1.45;
}

/* Liste görünümü seçimi: layout.css'teki kartlar tema renklerine bağlanır */
.ap-view-types {
    display: flex;
    flex-wrap: wrap;
}

.ap-admin .ap-view-types .view-type-option {
    border: 1px solid var(--ap-border-strong);
    border-radius: var(--ap-radius);
    font-size: var(--ap-fs-sm);
}

.ap-admin .ap-view-types .view-type-option:hover {
    border-color: var(--ap-primary);
}

.ap-admin .ap-view-types .view-type-option:has(input:checked) {
    border-color: var(--ap-primary);
    box-shadow: 0 0 0 1px var(--ap-primary), 0 0 0 4px var(--ap-primary-ring);
}

/* ==========================================================================
   Medya listeleri (HelperPartials: fotoğraf, video, doküman)
   Kartlar Slaytlar kartının sınıflarını (ap-slide-*) kullanır
   ========================================================================== */

.ap-media-col {
    margin-bottom: 24px;
    cursor: grab;
}

.ap-media-col .ap-slide-actions {
    cursor: default;
}

/* Görselin kendi yüksekliği orana baskın gelmesin (overflow ile otomatik en az yükseklik sıfırlanır).
   Fotoğraflar çoğunlukla dikey; 4:3 ve üste yakın kırpma yüzleri kesmez */
.ap-media-col .ap-slide-media {
    overflow: hidden;
}

.ap-media-thumb {
    aspect-ratio: 4 / 3;
}

.ap-media-thumb img {
    object-position: center 25%;
}

/* SVG kırpılmaz, tamamı görünür */
.ap-media-thumb.is-svg img {
    padding: 12px;
    object-fit: contain;
}

.ap-media-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 8px;
}

#sortable-list-photo .ui-sortable-helper .ap-slide,
#sortable-list-video .ui-sortable-helper .ap-slide {
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
    transform: rotate(1.5deg);
}

/* Dokümanlar */
.ap-docs {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
}

.ap-doc {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px 8px 6px;
    background: var(--ap-surface);
    border-bottom: 1px solid var(--ap-border);
}

.ap-doc:first-child {
    border-radius: var(--ap-radius) var(--ap-radius) 0 0;
}

.ap-doc:last-child {
    border-bottom: 0;
    border-radius: 0 0 var(--ap-radius) var(--ap-radius);
}

.ap-doc:hover {
    background: var(--ap-bg);
}

.ap-doc-handle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 36px;
    color: var(--ap-text-subtle);
    cursor: grab;
}

.ap-doc-order {
    flex: 0 0 auto;
    min-width: 20px;
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-xs);
    font-weight: 600;
    text-align: right;
}

.ap-doc-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: 1.125rem;
}

.ap-doc-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.ap-doc-name {
    overflow: hidden;
    color: var(--ap-text);
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-doc-name.is-empty {
    color: var(--ap-text-subtle);
    font-style: italic;
}

.ap-doc-meta {
    display: flex;
    gap: 8px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
}

.ap-doc-meta span + span::before {
    content: "·";
    margin-right: 8px;
}

.ap-doc-langs {
    flex: 0 0 auto;
}

.ap-doc-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 2px;
}

.ap-doc.ui-sortable-helper {
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-sm);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .16);
}

.ap-doc-placeholder {
    height: 56px;
    border: 2px dashed var(--ap-primary);
    background: var(--ap-primary-soft);
    list-style: none;
}

@media (max-width: 767.98px) {
    .ap-doc-langs,
    .ap-doc-order {
        display: none;
    }

    .ap-setting {
        align-items: flex-start;
    }

    .ap-inline-form {
        flex-direction: column;
    }
}

/* ==========================================================================
   Medya pencereleri (HelperPartials: ayarlar, metinler) ve kart düzeltmeleri
   ========================================================================== */

.ap-admin .btn-success,
.ap-admin .btn-success:not(:disabled):not(.disabled):active {
    background: var(--ap-success);
    border-color: var(--ap-success);
    color: #fff;
}

.ap-admin .btn-success:hover,
.ap-admin .btn-success:focus {
    background: #15803d;
    border-color: #15803d;
    color: #fff;
}

.ap-admin .btn-success:focus {
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .22);
}

/* İpucu düğmenin sol kenarından açılır (kartın solundaki ilk düğme) */
.ap-tip.ap-tip-start::after {
    left: 0;
    right: auto;
}

/* Kart dışına taşan ipuçları kırpılmasın; görselin köşeleri yuvarlak kalır */
.ap-media-col .ap-slide {
    overflow: visible;
}

.ap-media-col .ap-slide-media {
    border-radius: var(--ap-radius) var(--ap-radius) 0 0;
}

.ap-media-title {
    margin-bottom: 8px;
    -webkit-line-clamp: 1;
}

/* Ayar penceresi: solda önizleme, sağda ayarlar */
.ap-media-settings-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 24px;
    align-items: start;
}

.ap-media-preview {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-bg);
}

.ap-media-preview.is-video {
    aspect-ratio: 16 / 9;
}

.ap-media-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ap-media-preview.is-svg img {
    padding: 12px;
    object-fit: contain;
}

.ap-cover-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 100%;
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-xs);
    font-weight: 500;
}

.ap-cover-empty i {
    font-size: 1.75rem;
}

.ap-cover-badge {
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: rgba(255, 255, 255, .92);
}

.ap-media-settings-fields > .ap-setting:first-child {
    padding-top: 0;
}

.ap-media-settings-fields > .ap-setting:last-child {
    border-bottom: 0;
}

.ap-setting.is-nested {
    margin-left: 16px;
    padding-left: 14px;
    border-left: 2px solid var(--ap-border);
}

/* Dosya seçme alanı */
.ap-admin label.ap-file-pick {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 18px 12px;
    border: 2px dashed var(--ap-border-strong);
    border-radius: var(--ap-radius);
    background: var(--ap-bg);
    color: var(--ap-text);
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    transition: border-color var(--ap-transition), background var(--ap-transition);
}

.ap-file-pick:hover,
.ap-file-pick:focus-within {
    border-color: var(--ap-primary);
    background: var(--ap-primary-soft);
}

.ap-file-pick input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.ap-file-pick i {
    color: var(--ap-primary);
    font-size: 1.25rem;
}

.ap-file-pick small {
    color: var(--ap-text-muted);
    font-weight: 400;
}

/* Metin penceresi */
.ap-media-translations .ap-setting {
    padding-top: 4px;
    border-bottom: 0;
}

@media (max-width: 575.98px) {
    .ap-media-settings-layout {
        grid-template-columns: 1fr;
    }
}

/* Liste kartında kapaksız video: oynat simgesi ortada kalır, yazı alta iner */
.ap-slide-media .ap-cover-empty {
    justify-content: flex-end;
    padding-bottom: 12px;
}

.ap-slide-media .ap-cover-empty i {
    display: none;
}

/* Bilgi satırları yan yana (ayar formlarının altında) */
.ap-facts.ap-facts-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 32px;
    margin: 16px 0 0;
    padding: 0;
}

.ap-facts.ap-facts-inline > div {
    gap: 8px;
}

/* ==========================================================================
   Alt kategori detayı (Category/Detail): sayfa listesi
   ========================================================================== */

.ap-add-panel {
    padding: 18px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-bg);
}

/* Durum süzgeci */
.ap-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}

.ap-admin .ap-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border: 1px solid var(--ap-border);
    border-radius: 999px;
    background: var(--ap-surface);
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
    font-weight: 500;
    cursor: pointer;
    transition: border-color var(--ap-transition), color var(--ap-transition), background var(--ap-transition);
}

.ap-admin .ap-filter:hover:not(:disabled) {
    border-color: var(--ap-border-strong);
    color: var(--ap-text);
}

.ap-admin .ap-filter.is-active {
    border-color: var(--ap-primary);
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-weight: 600;
}

.ap-admin .ap-filter:disabled {
    opacity: .5;
    cursor: default;
}

.ap-filter.is-active .ap-count {
    background: var(--ap-surface);
}

/* Sayfa satırları */
.ap-plist {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
}

.ap-pitem + .ap-pitem {
    border-top: 1px solid var(--ap-border);
}

.ap-pitem:first-child .ap-pitem-link {
    border-radius: var(--ap-radius) var(--ap-radius) 0 0;
}

.ap-pitem:last-child .ap-pitem-link {
    border-radius: 0 0 var(--ap-radius) var(--ap-radius);
}

.ap-admin .ap-pitem-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    color: var(--ap-text);
    transition: background var(--ap-transition);
}

.ap-admin .ap-pitem-link:hover {
    background: var(--ap-bg);
    text-decoration: none;
}

.ap-admin .ap-pitem-link:hover .ap-pitem-name {
    color: var(--ap-primary);
}

.ap-pdate {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    line-height: 1.1;
}

.ap-pdate strong {
    font-size: 1.125rem;
    font-weight: 700;
}

.ap-pdate span {
    font-size: .625rem;
    font-weight: 600;
    text-transform: uppercase;
}

.ap-pitem-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ap-pitem-name {
    overflow: hidden;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-pitem-name.is-empty {
    color: var(--ap-text-subtle);
    font-style: italic;
}

.ap-pitem-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
}

.ap-pitem-link .ap-slide-langs {
    flex: 0 0 auto;
}

/* Rozetler sütun gibi hizalı kalsın */
.ap-pitem-status {
    display: inline-flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    width: 112px;
}

.ap-pitem-go {
    flex: 0 0 auto;
    color: var(--ap-text-subtle);
    font-size: .75rem;
}

.ap-load-more {
    margin-top: 14px;
    text-align: center;
}

/* Renk alanı: seçici + kod + varsayılan */
.ap-color-field {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}

.ap-color-field .form-control {
    width: 120px;
}

.ap-color-swatch {
    width: 44px;
    height: 38px;
    padding: 3px;
    border: 1px solid var(--ap-border-strong);
    border-radius: var(--ap-radius-sm);
    background: var(--ap-surface);
    cursor: pointer;
}

@media (max-width: 767.98px) {
    .ap-pitem-link .ap-slide-langs,
    .ap-pitem-link .ap-tree-hits {
        display: none;
    }

    .ap-pitem-status {
        width: auto;
    }

    .ap-color-field {
        flex-wrap: wrap;
    }
}

/* Ayar satırında sağdaki alan (tarih, seçim) */
.ap-setting-field {
    flex: 0 0 auto;
    width: 340px;
    max-width: 100%;
}

.ap-setting-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
}

@media (max-width: 767.98px) {
    .ap-setting:not(.is-block) {
        flex-wrap: wrap;
    }

    .ap-setting-field {
        width: 100%;
    }
}

/* ==========================================================================
   Ayar formları (Language/Detail, Email, Account/Add): solda bölüm başlığı, sağda alanlar
   ========================================================================== */

.ap-form-section {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    gap: 16px 32px;
    padding: 24px 0;
    border-bottom: 1px solid var(--ap-border);
}

.ap-form-section:first-child {
    padding-top: 0;
}

.ap-form-section:last-of-type {
    border-bottom: 0;
}

.ap-form-section-text h3 {
    margin: 0 0 4px;
    font-size: var(--ap-fs-md);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-form-section-text p {
    margin: 0;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text-muted);
}

.ap-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.ap-form-grid > .is-full {
    grid-column: 1 / -1;
}

.ap-form-section .ap-choices {
    margin-top: 0;
}

.ap-form-section .ap-setting {
    padding: 12px 0;
}

.ap-form-section .ap-setting:first-child {
    padding-top: 0;
}

.ap-form-section .ap-setting:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.ap-label-help {
    margin-left: 4px;
    color: var(--ap-text-subtle);
    font-weight: 400;
}

.ap-label-help:hover {
    color: var(--ap-primary);
}

/* Şifre alanı: göster/gizle düğmesi alanın içinde */
.ap-password {
    position: relative;
}

.ap-password .form-control {
    padding-right: 44px;
}

.ap-admin .ap-password .ap-btn-icon {
    position: absolute;
    top: 50%;
    right: 4px;
    transform: translateY(-50%);
}

.ap-admin .card-footer.ap-form-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 16px;
}

.ap-form-foot .ap-hint {
    margin: 0 auto 0 0;
}

@media (max-width: 991.98px) {
    .ap-form-section {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 575.98px) {
    .ap-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ==========================================================================
   Sıralanabilir satır listesi (Language/Index, FooterLink/Index)
   ========================================================================== */

.ap-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
}

.ap-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--ap-surface);
}

.ap-list-item + .ap-list-item {
    border-top: 1px solid var(--ap-border);
}

.ap-list-item:first-child {
    border-radius: var(--ap-radius) var(--ap-radius) 0 0;
}

.ap-list-item:last-child {
    border-radius: 0 0 var(--ap-radius) var(--ap-radius);
}

.ap-list-item:only-child {
    border-radius: var(--ap-radius);
}

.ap-list-handle {
    flex: 0 0 auto;
    color: var(--ap-text-subtle);
    cursor: grab;
}

.ap-list-handle:hover {
    color: var(--ap-text-muted);
}

.ap-list-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ap-list-title {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    font-weight: 600;
    color: var(--ap-text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-list-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-list-meta > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

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

.ap-list-item.is-off .ap-list-title {
    color: var(--ap-text-muted);
}

.ap-list-placeholder {
    visibility: visible !important;
    border: 2px dashed var(--ap-primary) !important;
    background: var(--ap-primary-soft);
}

.ap-admin .ap-list-item.ui-sortable-helper {
    display: flex !important;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
}

.ap-flag {
    flex: 0 0 auto;
    width: 28px;
    height: 20px;
    border-radius: 4px;
    object-fit: cover;
    box-shadow: 0 0 0 1px var(--ap-border);
}

.ap-flag-lg {
    width: 36px;
    height: 26px;
}

.ap-title-flag {
    display: flex;
    align-items: center;
    gap: 12px;
}

@media (max-width: 575.98px) {
    .ap-list-item .ap-hide-xs {
        display: none;
    }
}

/* ==========================================================================
   Alt bağlantılar (FooterLink/Index): dil başına sütun kartları
   ========================================================================== */

.ap-fcols-sort {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    align-items: start;
}

.ap-fcols-sort:not(:empty) {
    margin-bottom: 16px;
}

.ap-fcol {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
}

.ap-fcol-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 10px 10px 14px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-fcol-head .ap-list-handle {
    cursor: grab;
}

.ap-fcol-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    font-size: var(--ap-fs-md);
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-fcol-body {
    flex: 1 1 auto;
    padding: 6px;
}

.ap-fcol-body .ap-list {
    min-height: 44px;
    border: 0;
}

.ap-fcol-body .ap-list-item {
    gap: 8px;
    padding: 8px;
    border-radius: var(--ap-radius-sm);
}

.ap-fcol-body .ap-list-item + .ap-list-item {
    border-top: 0;
}

.ap-fcol-body .ap-list-item:hover {
    background: var(--ap-bg);
}

.ap-fcol-body .ap-list-title {
    font-weight: 500;
    font-size: var(--ap-fs-sm);
}

.ap-fcol-body .ap-list-actions {
    opacity: 0;
    transition: opacity var(--ap-transition);
}

.ap-fcol-body .ap-list-item:hover .ap-list-actions,
.ap-fcol-body .ap-list-item:focus-within .ap-list-actions {
    opacity: 1;
}

.ap-fcol-empty {
    margin: 0;
    padding: 12px 8px;
    color: var(--ap-text-subtle);
    font-size: var(--ap-fs-sm);
    text-align: center;
}

.ap-fcol-foot {
    padding: 6px 8px 8px;
}

.ap-admin .ap-fcol-foot .btn {
    width: 100%;
    justify-content: center;
}

.ap-fcol.is-new {
    max-width: 520px;
    padding: 14px;
    border-style: dashed;
    border-width: 2px;
    background: var(--ap-bg);
}

.ap-fcol.is-new label {
    display: block;
    margin-bottom: 8px;
}

.ap-fcol.is-new .ap-inline-form {
    max-width: none;
    margin: 0;
}

.ap-fcol-placeholder {
    visibility: visible !important;
    min-height: 120px;
    border: 2px dashed var(--ap-primary);
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
}

.ap-admin .ap-fcol.ui-sortable-helper {
    display: flex !important;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
}

@media (hover: none) {
    .ap-fcol-body .ap-list-actions {
        opacity: 1;
    }
}

/* ==========================================================================
   Sosyal medya (Social/Index)
   ========================================================================== */

.ap-socials {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.ap-social {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
    transition: box-shadow var(--ap-transition), border-color var(--ap-transition);
}

.ap-social:hover {
    border-color: var(--ap-border-strong);
    box-shadow: var(--ap-shadow);
}

.ap-social-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ap-social-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px dashed transparent;
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: 1.25rem;
    cursor: pointer;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}

.ap-social-icon:hover,
.ap-social-icon:focus-visible {
    border-color: var(--ap-primary);
    outline: none;
    box-shadow: 0 0 0 4px var(--ap-primary-ring);
}

.ap-social.is-off .ap-social-icon {
    background: var(--ap-bg);
    color: var(--ap-text-subtle);
}

.ap-social-name {
    flex: 1 1 auto;
    min-width: 0;
}

.ap-admin .ap-social-name .form-control {
    border-color: transparent;
    padding-left: 6px;
    font-size: var(--ap-fs-md);
    font-weight: 600;
}

.ap-admin .ap-social-name .form-control:hover {
    border-color: var(--ap-border-strong);
}

.ap-admin .ap-social-name .form-control:focus {
    border-color: var(--ap-primary);
}

.ap-social-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ap-social .form-group {
    margin: 0;
}

.ap-social-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--ap-border);
}

.ap-social-placeholder {
    visibility: visible !important;
    border: 2px dashed var(--ap-primary);
    border-radius: var(--ap-radius);
    background: var(--ap-primary-soft);
}

.ap-admin .ap-social.ui-sortable-helper {
    display: flex !important;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
}


/* ==========================================================================
   Kullanıcılar (Account/List)
   ========================================================================== */

.ap-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.ap-toolbar .ap-search {
    flex: 1 1 240px;
}

.ap-toolbar .daterangepicker-box {
    flex: 0 1 260px;
}

.ap-toolbar .custom-select {
    flex: 0 0 auto;
    width: auto;
}

.ap-avatar {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--ap-primary-soft);
    color: var(--ap-primary);
    font-size: var(--ap-fs-xs);
    font-weight: 700;
}

.ap-avatar img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ap-person {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ap-person-name {
    display: block;
    font-weight: 600;
    color: var(--ap-text);
}

.ap-admin a.ap-person:hover {
    text-decoration: none;
}

.ap-admin a.ap-person:hover .ap-person-name {
    color: var(--ap-primary);
}

.ap-person-sub {
    display: block;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-xs);
}

.ap-contact {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--ap-fs-sm);
}

.ap-contact span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ap-verified {
    color: var(--ap-success);
    font-size: .75rem;
}

.ap-unverified {
    color: var(--ap-text-subtle);
    font-size: .75rem;
}

.ap-admin .ap-table td {
    padding-top: 10px;
    padding-bottom: 10px;
}

.ap-admin .ap-table tbody tr:hover {
    background: var(--ap-bg);
}

.ap-num {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.ap-table-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
}

.ap-admin .ap-table-foot .pagination {
    margin: 0;
    gap: 4px;
}

.ap-admin .ap-table-foot .page-link {
    min-width: 34px;
    border-radius: var(--ap-radius-sm) !important;
    text-align: center;
}

.ap-admin .ap-table-foot .page-item.disabled .page-link {
    border-color: transparent;
    background: transparent;
    color: var(--ap-text-subtle);
}

/* ==========================================================================
   Takvim sayfaları (CalendarPage/Index)
   ========================================================================== */

.ap-pdate.is-past {
    background: var(--ap-bg);
    color: var(--ap-text-muted);
}

.ap-pdate.is-empty {
    background: var(--ap-bg);
    color: var(--ap-text-subtle);
}

.ap-pitem-meta .ap-sep {
    color: var(--ap-text-subtle);
}

/* ==========================================================================
   İstatistikler (Statistic/Index): DataTables denetimleri temaya bağlanır
   ========================================================================== */

.ap-admin .dataTables_wrapper .dataTables_filter,
.ap-admin .dataTables_wrapper .dataTables_paginate {
    text-align: right;
}

.ap-admin .dataTables_wrapper .dataTables_filter label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    color: var(--ap-text-muted);
    font-weight: 500;
}

.ap-admin .dataTables_wrapper .dataTables_filter input {
    width: 240px;
    max-width: 100%;
    height: 38px;
    margin: 0;
}

.ap-admin .dataTables_wrapper .dataTables_info {
    padding-top: 14px;
    color: var(--ap-text-muted);
    font-size: var(--ap-fs-sm);
}

.ap-admin .dataTables_wrapper .dataTables_paginate {
    padding-top: 10px;
}

.ap-admin .dataTables_wrapper .pagination {
    justify-content: flex-end;
    gap: 4px;
    margin: 0;
}

.ap-admin .dataTables_wrapper .page-link {
    border-radius: var(--ap-radius-sm) !important;
}

.ap-admin .dataTables_wrapper .page-item.disabled .page-link {
    border-color: transparent;
    color: var(--ap-text-subtle);
}

.ap-admin table.dataTable {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border-collapse: collapse !important;
}

.ap-admin table.dataTable thead .sorting::before,
.ap-admin table.dataTable thead .sorting::after,
.ap-admin table.dataTable thead .sorting_asc::before,
.ap-admin table.dataTable thead .sorting_asc::after,
.ap-admin table.dataTable thead .sorting_desc::before,
.ap-admin table.dataTable thead .sorting_desc::after {
    bottom: .7em;
}

/* İstatistik tablosundaki adres hücresi (sayfa adres satırı .ap-url ile karışmasın) */
.ap-stat-url {
    display: inline-block;
    max-width: 520px;
    overflow: hidden;
    color: var(--ap-text);
    font-size: var(--ap-fs-sm);
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

/* Tablo içindeki .sr-only metinleri (position: absolute) kaydırma kabının dışına taşıp sayfayı genişletmesin */
.ap-admin .table-responsive {
    position: relative;
}

/* ==========================================================================
   Eylem renkleri (tüm panel): kaydet / ekle yeşil, silme ve pasife alma kırmızı.
   Site teması ana rengi (--ap-primary) kırmızıya yakın olabildiği için bu eylemler ana renge bağlanmaz.
   ========================================================================== */

.ap-admin .btn-success,
.ap-admin .btn-success:not(:disabled):not(.disabled):active {
    background: var(--ap-success);
    border-color: var(--ap-success);
    color: #fff;
}

.ap-admin .btn-success:hover,
.ap-admin .btn-success:focus {
    background: var(--ap-success-hover);
    border-color: var(--ap-success-hover);
    color: #fff;
}

.ap-admin .btn-success:focus,
.ap-admin .btn-success.focus {
    box-shadow: 0 0 0 4px var(--ap-success-ring);
}

.ap-admin .btn-success:disabled,
.ap-admin .btn-success.disabled {
    background: var(--ap-success);
    border-color: var(--ap-success);
    opacity: .45;
}

.ap-admin .btn-danger,
.ap-admin .btn-danger:not(:disabled):not(.disabled):active {
    background: var(--ap-danger);
    border-color: var(--ap-danger);
    color: #fff;
}

.ap-admin .btn-danger:hover,
.ap-admin .btn-danger:focus {
    background: var(--ap-danger-hover);
    border-color: var(--ap-danger-hover);
    color: #fff;
}

.ap-admin .btn-danger:focus,
.ap-admin .btn-danger.focus {
    box-shadow: 0 0 0 4px var(--ap-danger-ring);
}

.ap-admin .btn-outline-danger {
    border-color: var(--ap-danger);
    background: var(--ap-surface);
    color: var(--ap-danger);
}

.ap-admin .btn-outline-danger:hover,
.ap-admin .btn-outline-danger:not(:disabled):not(.disabled):active {
    border-color: var(--ap-danger);
    background: var(--ap-danger);
    color: #fff;
}

.ap-admin .btn-outline-danger:disabled {
    border-color: var(--ap-border-strong);
    background: var(--ap-surface);
    color: var(--ap-text-subtle);
}

/* Sil ikon düğmeleri her zaman kırmızı */
.ap-admin .ap-btn-icon.ap-btn-danger {
    color: var(--ap-danger);
}

.ap-admin .ap-btn-icon.ap-btn-danger:hover {
    background: var(--ap-danger-soft);
    color: var(--ap-danger-hover);
}

/* Açık anahtar = etkin (yeşil) */
.ap-admin .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--ap-success);
    background-color: var(--ap-success);
}

.ap-admin .custom-switch .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 4px var(--ap-success-ring);
}

/* Durum anahtarı (aktif/pasif, "Sitede göster"): kapalıyken kırmızı, pasif olduğu bir bakışta görünür.
   IsActive adlı tüm anahtarlar sınıf gerekmeden kapsanır */
.ap-admin .ap-switch-status .custom-control-input:not(:checked) ~ .custom-control-label::before,
.ap-admin .custom-switch .custom-control-input[name="IsActive" i]:not(:checked) ~ .custom-control-label::before {
    border-color: var(--ap-danger);
    background-color: var(--ap-danger-soft);
}

.ap-admin .ap-switch-status .custom-control-input:not(:checked) ~ .custom-control-label::after,
.ap-admin .custom-switch .custom-control-input[name="IsActive" i]:not(:checked) ~ .custom-control-label::after {
    background-color: var(--ap-danger);
}

/* Silme onayı kutusu */
.ap-admin .ap-check-danger:checked ~ .custom-control-label::before {
    border-color: var(--ap-danger);
    background-color: var(--ap-danger);
}

/* Silme/pasife alma onay pencerelerinde onay düğmesi kırmızı (layout.js işaretler) */
.swal2-popup.ap-swal-danger .swal2-styled.swal2-confirm {
    background-color: var(--ap-danger) !important;
}

.swal2-popup.ap-swal-danger .swal2-styled.swal2-confirm:focus {
    box-shadow: 0 0 0 4px var(--ap-danger-ring) !important;
}

/* Kaydet/ekle onayları yeşil */
.swal2-popup.ap-swal-success .swal2-styled.swal2-confirm {
    background-color: var(--ap-success) !important;
}

/* ==========================================================================
   Kullanıcı detayı (Account/Detail)
   ========================================================================== */

.ap-avatar-lg {
    width: 56px;
    height: 56px;
    font-size: var(--ap-fs-md);
}

.ap-avatar-xl {
    width: 88px;
    height: 88px;
    font-size: 1.5rem;
}

.ap-avatar.is-removed img {
    opacity: .25;
}

.ap-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ap-photo-field {
    display: flex;
    align-items: center;
    gap: 20px;
}

.ap-admin .ap-photo-field label.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.ap-admin .ap-detail-tabs .nav-link.ap-tab-danger {
    color: var(--ap-danger);
}

.ap-admin .ap-detail-tabs .nav-link.ap-tab-danger.active {
    border-bottom-color: var(--ap-danger);
    color: var(--ap-danger);
}

.ap-admin .card-footer.ap-confirm-foot {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    background: var(--ap-bg);
}

.ap-confirm-pass {
    flex: 0 1 300px;
}

.ap-admin .ap-confirm-pass label {
    margin-bottom: 4px;
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
}

/* Yetkiler */
.ap-perms {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
    transition: opacity var(--ap-transition);
}

.ap-perms.is-covered {
    opacity: .5;
}

.ap-perm-group {
    margin: 0;
    padding: 12px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
}

.ap-perm-group legend {
    width: auto;
    margin: 0 0 6px;
    padding: 0 4px;
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-admin label.ap-perm {
    display: flex;
    gap: 10px;
    margin: 0;
    padding: 8px;
    border-radius: var(--ap-radius-sm);
    font-weight: 400;
    cursor: pointer;
}

.ap-admin label.ap-perm:hover {
    background: var(--ap-bg);
}

.ap-perm input {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 3px;
    accent-color: var(--ap-success);
}

.ap-perm-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ap-perm-body strong {
    font-size: var(--ap-fs-sm);
    font-weight: 600;
    color: var(--ap-text);
}

.ap-perm-body span {
    font-size: var(--ap-fs-xs);
    color: var(--ap-text-muted);
    line-height: 1.45;
}

.ap-admin label.ap-perm-super {
    padding: 14px 16px;
    border: 1px solid var(--ap-border-strong);
    border-radius: var(--ap-radius);
}

.ap-perm-super:has(input:checked) {
    border-color: var(--ap-success);
    background: var(--ap-success-soft);
}

.ap-perm-super strong i {
    margin-right: 4px;
    color: var(--ap-warning);
}

/* Silme alanı */
.ap-danger-zone {
    display: flex;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--ap-danger);
    border-radius: var(--ap-radius);
    background: var(--ap-danger-soft);
}

.ap-danger-zone h3 {
    margin: 0 0 4px;
    font-size: var(--ap-fs-md);
    font-weight: 600;
    color: var(--ap-danger);
}

.ap-danger-zone p {
    margin: 0 0 12px;
    font-size: var(--ap-fs-sm);
    color: var(--ap-text);
}

.ap-danger-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--ap-surface);
    color: var(--ap-danger);
}

@media (max-width: 575.98px) {
    .ap-confirm-pass {
        flex-basis: 100%;
    }

    .ap-admin .ap-confirm-foot .btn {
        width: 100%;
    }
}
