/* =========================================================
   OVERLAY-SCOPED TOKENS — DIJAMIN IKUT data-theme
   ========================================================= */

/* Light */
#js-error-overlay[data-theme="light"] {
    --ep-bg: rgba(15, 23, 42, .30);
    --ep-card: #ffffff;
    --ep-fg: #0f172a;
    --ep-muted: #475569;
    --ep-pre-bg: #f8fafc;
    --ep-pre-fg: #0f172a;
    --ep-pre-border: #e2e8f0;
    --ep-primary: #2563eb;
    --ep-btn-bg: #f1f5f9;
    --ep-btn-fg: #0f172a;
    --ep-danger: #dc2626;
}

/* Dark */
#js-error-overlay[data-theme="dark"] {
    --ep-bg: rgba(2, 6, 23, .60);
    --ep-card: #0b1020;
    --ep-fg: #e6edf3;
    --ep-muted: #94a3b8;
    --ep-pre-bg: #0b1220;
    --ep-pre-fg: #e6edf3;
    --ep-pre-border: #1f2937;
    --ep-primary: #60a5fa;
    --ep-btn-bg: #1f2937;
    --ep-btn-fg: #e6edf3;
    --ep-danger: #fda4af;
}

/* =========================================================
   ERROR OVERLAY — Kompatibel AdminLTE/Bootstrap
   ========================================================= */
#js-error-overlay {
    position: fixed;
    inset: 0;
    z-index: 20000;
    /* > modal AdminLTE */
    display: none;
    place-items: center;
    background: var(--ep-bg) !important;
    backdrop-filter: blur(2px);
}

#js-error-card {
    width: min(920px, 92vw);
    max-height: 86vh;
    overflow: auto;
    background: var(--ep-card) !important;
    color: var(--ep-fg) !important;
    border-radius: 12px;
    padding: 16px 18px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
    isolation: isolate;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

#js-error-card,
#js-error-card * {
    color: inherit !important;
    mix-blend-mode: normal !important;
    opacity: 1 !important;
}

#js-error-card h3 {
    margin: 0 0 8px;
    font-size: 16px;
    color: var(--ep-danger) !important;
}

#js-error-meta {
    font-size: 12px;
    color: var(--ep-muted) !important;
    margin-bottom: 10px;
}

#js-error-minimal {
    font-size: 14px;
    color: var(--ep-fg) !important;
    margin: 8px 0;
}

#js-error-pre {
    background: var(--ep-pre-bg) !important;
    color: var(--ep-pre-fg) !important;
    border: 1px solid var(--ep-pre-border) !important;
    border-radius: 8px;
    padding: 12px;
    white-space: pre-wrap;
    font-size: 12.5px;
    line-height: 1.45;
    margin: 0;
}

#js-error-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

#js-error-actions button {
    border: 0;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    background: var(--ep-btn-bg) !important;
    color: var(--ep-btn-fg) !important;
}

#js-error-actions button.primary {
    background: var(--ep-primary) !important;
    color: #fff !important;
}

.badge-env {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 6px;
    font-size: 11px;
    background: color-mix(in sRGB, var(--ep-fg) 8%, transparent);
    border: 1px solid color-mix(in sRGB, var(--ep-fg) 25%, transparent);
    color: var(--ep-fg);
}

#js-error-pre {
    white-space: pre-wrap;
}

#js-error-pre {
    counter-reset: sec;
}

#js-error-pre:empty {
    display: none;
}

/* Heading di pre (pakai line text, bukan elemen) */
#js-error-pre {}