/*
 * DOSYA AMACI: Site genelindeki işlem butonlarını tek bir görsel sistemde toplar.
 * Görüntüleme, düzenleme, aktif/pasif, silme, indirme, kaydetme ve ikincil
 * işlemler semantik sınıflar sayesinde bütün sayfalarda aynı biçimde görünür.
 */

:root {
    --action-view: #1687c9;
    --action-edit: #d28a0b;
    --action-activate: #159a69;
    --action-deactivate: #d46b16;
    --action-delete: #dc3f52;
    --action-download: #098b8d;
    --action-save: #426d80;
    --action-copy: #7557c7;
    --action-neutral: #64748b;
}

/* ORTAK GÖVDE: Tüm işlem butonlarının ölçü, yazı, ikon ve geçiş davranışı. */
.btn.action-btn,
.btn.btn-soft-primary,
.btn.btn-soft-success,
.btn.btn-soft-warning,
.btn.btn-soft-danger,
.btn.btn-soft-secondary {
    --action-color: var(--action-neutral);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 36px;
    padding: .5rem .78rem;
    border: 1px solid color-mix(in srgb, var(--action-color) 34%, transparent);
    border-radius: 10px;
    color: var(--action-color);
    background: color-mix(in srgb, var(--action-color) 11%, transparent);
    box-shadow: 0 5px 14px color-mix(in srgb, var(--action-color) 12%, transparent);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: .01em;
    text-decoration: none;
    white-space: nowrap;
    opacity: 1;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease,
        box-shadow .18s ease, transform .18s ease, filter .18s ease;
}

/* KÜÇÜK BOYUT: Tablo satırlarında kullanılan kompakt işlem butonları. */
.btn.action-btn.btn-sm,
.btn.btn-soft-primary.btn-sm,
.btn.btn-soft-success.btn-sm,
.btn.btn-soft-warning.btn-sm,
.btn.btn-soft-danger.btn-sm,
.btn.btn-soft-secondary.btn-sm {
    min-height: 32px;
    padding: .4rem .64rem;
    border-radius: 9px;
    font-size: .72rem;
}

/* İKONLAR: Metinli ve yalnız ikonlu butonlarda hizalamayı sabit tutar. */
.btn.action-btn i,
.btn.btn-soft-primary i,
.btn.btn-soft-success i,
.btn.btn-soft-warning i,
.btn.btn-soft-danger i,
.btn.btn-soft-secondary i {
    width: 1em;
    color: inherit;
    text-align: center;
}

.btn.action-btn.action-btn--icon {
    width: 36px;
    min-width: 36px;
    padding-right: 0;
    padding-left: 0;
}

/* İkon sınıfı yanlışlıkla metinli bir butona verilirse taşmayı güvenli biçimde önler. */
.btn.action-btn.action-btn--icon > span:not(.visually-hidden) {
    display: none;
}

/* GÖREV RENKLERİ: Her işlem türü sitede daima aynı rengi kullanır. */
.btn.action-btn.action-btn--view,
.btn.btn-soft-primary { --action-color: var(--action-view); }

.btn.action-btn.action-btn--edit,
.btn.btn-soft-warning { --action-color: var(--action-edit); }

.btn.action-btn.action-btn--activate,
.btn.btn-soft-success { --action-color: var(--action-activate); }

.btn.action-btn.action-btn--deactivate { --action-color: var(--action-deactivate); }

.btn.action-btn.action-btn--delete,
.btn.btn-soft-danger { --action-color: var(--action-delete); }

.btn.action-btn.action-btn--download { --action-color: var(--action-download); }

.btn.action-btn.action-btn--save { --action-color: var(--action-save); }

.btn.action-btn.action-btn--copy { --action-color: var(--action-copy); }

.btn.action-btn.action-btn--neutral,
.btn.btn-soft-secondary { --action-color: var(--action-neutral); }

/* ETKİLEŞİM: Fare, klavye, yükleniyor ve devre dışı durumlarını ortaklaştırır. */
.btn.action-btn:hover,
.btn.action-btn:active,
.btn.btn-soft-primary:hover,
.btn.btn-soft-success:hover,
.btn.btn-soft-warning:hover,
.btn.btn-soft-danger:hover,
.btn.btn-soft-secondary:hover {
    color: #fff;
    border-color: var(--action-color);
    background: var(--action-color);
    box-shadow: 0 8px 18px color-mix(in srgb, var(--action-color) 28%, transparent);
    transform: translateY(-1px);
    filter: none;
}

.btn.action-btn:focus-visible,
.btn.btn-soft-primary:focus-visible,
.btn.btn-soft-success:focus-visible,
.btn.btn-soft-warning:focus-visible,
.btn.btn-soft-danger:focus-visible,
.btn.btn-soft-secondary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--action-color) 27%, transparent);
    outline-offset: 2px;
    box-shadow: none;
}

.btn.action-btn:disabled,
.btn.action-btn.disabled,
.btn.btn-soft-primary:disabled,
.btn.btn-soft-success:disabled,
.btn.btn-soft-warning:disabled,
.btn.btn-soft-danger:disabled,
.btn.btn-soft-secondary:disabled {
    color: color-mix(in srgb, var(--action-color) 58%, #7b8794);
    border-color: color-mix(in srgb, var(--action-color) 18%, transparent);
    background: color-mix(in srgb, var(--action-color) 7%, transparent);
    box-shadow: none;
    transform: none;
    cursor: not-allowed;
    opacity: .58;
}

.btn.action-btn.is-loading {
    pointer-events: none;
    opacity: .72;
}

/* KOYU TEMA: Yumuşak zeminleri koyu arka planda okunaklı tutar. */
html[data-theme="dark"] .btn.action-btn,
html[data-theme="dark"] .btn.btn-soft-primary,
html[data-theme="dark"] .btn.btn-soft-success,
html[data-theme="dark"] .btn.btn-soft-warning,
html[data-theme="dark"] .btn.btn-soft-danger,
html[data-theme="dark"] .btn.btn-soft-secondary,
html[data-view-theme="dark"] .btn.action-btn,
html[data-view-theme="dark"] .btn.btn-soft-primary,
html[data-view-theme="dark"] .btn.btn-soft-success,
html[data-view-theme="dark"] .btn.btn-soft-warning,
html[data-view-theme="dark"] .btn.btn-soft-danger,
html[data-view-theme="dark"] .btn.btn-soft-secondary {
    color: color-mix(in srgb, var(--action-color) 72%, #fff);
    border-color: color-mix(in srgb, var(--action-color) 43%, transparent);
    background: color-mix(in srgb, var(--action-color) 18%, transparent);
}

html[data-theme="dark"] .btn.action-btn:hover,
html[data-theme="dark"] .btn.btn-soft-primary:hover,
html[data-theme="dark"] .btn.btn-soft-success:hover,
html[data-theme="dark"] .btn.btn-soft-warning:hover,
html[data-theme="dark"] .btn.btn-soft-danger:hover,
html[data-theme="dark"] .btn.btn-soft-secondary:hover,
html[data-view-theme="dark"] .btn.action-btn:hover,
html[data-view-theme="dark"] .btn.btn-soft-primary:hover,
html[data-view-theme="dark"] .btn.btn-soft-success:hover,
html[data-view-theme="dark"] .btn.btn-soft-warning:hover,
html[data-view-theme="dark"] .btn.btn-soft-danger:hover,
html[data-view-theme="dark"] .btn.btn-soft-secondary:hover {
    color: #fff;
    background: var(--action-color);
}

@media (max-width: 575.98px) {
    .btn.action-btn,
    .btn.btn-soft-primary,
    .btn.btn-soft-success,
    .btn.btn-soft-warning,
    .btn.btn-soft-danger,
    .btn.btn-soft-secondary {
        min-height: 38px;
        white-space: normal;
    }
}
