/* ============================================================
   DM Menü — geri bildirim katmanı (dm-feedback v1)
   1) Toast: Snackbar.js çıktısı mobil uygulama görünümüne çekilir
      (hap, ortalı, alt menünün üstünde, hızlı, ikonlu).
   2) Onay diyaloğu (#dm-confirm): tarayıcının confirm()'ü yerine
      mobilde alttan açılan, masaüstünde ortalı kart.
   3) alertify günlükleri (garson çağrıları) alt menüyle çakışmaz.
   Token'lar tokens.css'ten; koyu tema html[data-theme="dark"].
   ============================================================ */

/* --- 1) Toast --- */
.snackbar-container.dm-toast {
    transition: opacity .18s ease, transform .22s cubic-bezier(.2, .8, .2, 1), bottom .22s cubic-bezier(.2, .8, .2, 1) !important;
    font-family: var(--dm-font-body, 'Figtree', system-ui, sans-serif) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    padding: 11px 18px 11px 14px !important;
    margin: 0 !important;
    min-height: 0 !important;
    /* fixed + left:50% → shrink-to-fit alanı %50 kalır, metin gereksiz sarardı */
    width: max-content !important;
    max-width: min(92vw, 420px);
    border-radius: var(--dm-radius-pill, 999px) !important;
    box-shadow: 0 10px 30px rgba(17, 17, 20, .22), 0 1px 3px rgba(17, 17, 20, .18) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    gap: 10px;
    /* iletişim balonunun (widget.css .dl-widget-container 999999) da üstünde:
       mobilde ikisi aynı yüksekliğe düşüyor, balon toast'un ✕'ini örtüyordu */
    z-index: 1000001 !important;
    /* Snackbar.js inline top:-100px/bottom:-100px verir; pozisyon sınıfı ezer */
}
.snackbar-container.dm-toast.snackbar-pos.bottom-center {
    left: 50% !important;
    right: auto !important;
    transform: translate(-50%, 0) !important;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
    top: auto !important;
}
@media (max-width: 992px) {
    /* alt menü (70px + güvenli alan) üstünde */
    .snackbar-container.dm-toast.snackbar-pos.bottom-center {
        bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important;
    }
}
.snackbar-container.dm-toast p { font-weight: 600 !important; line-height: 1.35 !important; display: flex; align-items: center; gap: 10px; }
.snackbar-container.dm-toast .dm-toast-ico {
    flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .18);
}
.snackbar-container.dm-toast .dm-toast-ico svg { width: 13px; height: 13px; stroke: #fff; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.snackbar-container.dm-toast.dm-toast-success { background: #1C1C1E !important; }
.snackbar-container.dm-toast.dm-toast-success .dm-toast-ico { background: var(--dm-success, #16A34A); }
.snackbar-container.dm-toast.dm-toast-error { background: var(--dm-danger, #DC2626) !important; }
.snackbar-container.dm-toast.dm-toast-info { background: #1C1C1E !important; }
.snackbar-container.dm-toast.dm-toast-info .dm-toast-ico { background: #2563EB; }
.snackbar-container.dm-toast .action {
    margin: 0 0 0 4px !important; padding: 4px 6px !important; min-width: 0 !important;
    font-size: 15px !important; line-height: 1 !important; color: #fff !important; opacity: .85; text-transform: none !important;
    border-radius: 50%;
}
.snackbar-container.dm-toast .action:hover { opacity: 1; }
html[data-theme="dark"] .snackbar-container.dm-toast.dm-toast-success,
html[data-theme="dark"] .snackbar-container.dm-toast.dm-toast-info { background: #F2F2F5 !important; color: #131316 !important; }
html[data-theme="dark"] .snackbar-container.dm-toast.dm-toast-success p,
html[data-theme="dark"] .snackbar-container.dm-toast.dm-toast-info p { color: #131316 !important; }
@media (prefers-reduced-motion: reduce) {
    .snackbar-container.dm-toast { transition: opacity .12s linear !important; }
}

/* --- 3) alertify günlükleri (garson çağrısı bildirimleri) --- */
.alertify-logs { z-index: 10040; }
.alertify-logs > * { font-family: var(--dm-font-body, 'Figtree', system-ui, sans-serif); font-weight: 600; font-size: 14px; border-radius: 14px !important; padding: 12px 16px !important; box-shadow: 0 10px 30px rgba(17, 17, 20, .2) !important; }
@media (max-width: 992px) {
    .alertify-logs { left: 12px; right: 12px; bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
    .alertify-logs > * { float: none; width: 100%; }
}

/* --- 2) Onay diyaloğu --- */
.dm-confirm { position: fixed; inset: 0; z-index: 10060; display: none; }
.dm-confirm.is-open { display: block; }
.dm-confirm-backdrop {
    position: absolute; inset: 0;
    background: rgba(10, 10, 12, .48);
    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
    opacity: 0; transition: opacity .2s ease;
}
.dm-confirm.is-visible .dm-confirm-backdrop { opacity: 1; }
.dm-confirm-card {
    position: absolute; left: 50%; top: 50%;
    transform: translate(-50%, -46%) scale(.96);
    width: min(92vw, 400px);
    background: var(--dm-surface, #fff);
    color: var(--dm-text, #131316);
    border-radius: var(--dm-radius-lg, 22px);
    box-shadow: var(--dm-shadow-lg, 0 24px 60px rgba(17, 17, 20, .18));
    padding: 24px 22px 18px;
    font-family: var(--dm-font-body, 'Figtree', system-ui, sans-serif);
    opacity: 0;
    transition: opacity .2s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
.dm-confirm.is-visible .dm-confirm-card { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.dm-confirm-ico {
    width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 14px;
    display: flex; align-items: center; justify-content: center;
    background: var(--dm-primary-soft, rgba(225, 29, 72, .1)); color: var(--dm-primary, #E11D48);
}
.dm-confirm-ico svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dm-confirm.is-danger .dm-confirm-ico { background: rgba(220, 38, 38, .1); color: var(--dm-danger, #DC2626); }
.dm-confirm-title {
    margin: 0 0 6px; text-align: center;
    color: var(--dm-text, #131316); /* genel h3 rengi ezilmesin (koyu temada soluk kalıyordu) */
    font-family: var(--dm-font-display, 'Sora', sans-serif);
    font-size: 18px; font-weight: 700; letter-spacing: -.3px; line-height: 1.3;
    text-wrap: balance;
}
.dm-confirm-text { margin: 0; text-align: center; color: var(--dm-text-muted, #5F6470); font-size: 14.5px; line-height: 1.5; }
.dm-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.dm-confirm-actions button {
    min-height: 48px; padding: 0 16px; border-radius: 14px; border: 0;
    font: 700 15px/1 var(--dm-font-body, 'Figtree', system-ui, sans-serif);
    cursor: pointer; -webkit-tap-highlight-color: transparent;
    transition: transform .1s ease, background .15s ease;
}
.dm-confirm-actions button:active { transform: scale(.97); }
.dm-confirm-cancel { background: var(--dm-surface-2, #EDEDF2); color: var(--dm-text, #131316); }
.dm-confirm-cancel:hover { background: var(--dm-border, #E7E7EC); }
.dm-confirm-ok { background: var(--dm-primary, #E11D48); color: var(--dm-on-primary, #fff); box-shadow: var(--dm-shadow-primary, none); }
.dm-confirm-ok:hover { background: var(--dm-primary-hover, #BE123C); }
.dm-confirm.is-danger .dm-confirm-ok { background: var(--dm-danger, #DC2626); box-shadow: 0 6px 20px rgba(220, 38, 38, .25); }
.dm-confirm.is-danger .dm-confirm-ok:hover { background: #B91C1C; }
.dm-confirm-actions button:focus-visible { outline: 3px solid var(--dm-primary-ring, rgba(225, 29, 72, .35)); outline-offset: 2px; }
/* mobil: alttan kart */
@media (max-width: 640px) {
    .dm-confirm-card {
        top: auto; bottom: 0; left: 0; right: 0;
        width: auto;
        transform: translateY(12%);
        border-radius: 24px 24px 0 0;
        padding: 22px 20px calc(16px + env(safe-area-inset-bottom, 0px));
    }
    .dm-confirm.is-visible .dm-confirm-card { transform: translateY(0); }
    .dm-confirm-card::before {
        content: ''; display: block; width: 40px; height: 4px; border-radius: 2px;
        background: var(--dm-border-strong, #D9D9E0); margin: -8px auto 16px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dm-confirm-backdrop, .dm-confirm-card { transition: none; }
}
body.dm-confirm-open { overflow: hidden; }
