/* koDialog — modal global no lugar de alert/confirm/prompt do navegador (assets/js/ko-dialog.js). */
.ko-dialog-overlay {
    --kod-bg: var(--bg-white, #fff);
    --kod-ink: var(--text-main, #343a40);
    --kod-muted: var(--text-muted, #6c757d);
    --kod-line: var(--border-color, #e9ecef);
    --kod-primary: var(--primary-color, #007bff);
    --kod-primary-hover: var(--primary-hover, #0056b3);
    --kod-danger: #dc3545;
    --kod-danger-hover: #b02a37;
    --kod-accent: var(--kod-primary);
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(16px, env(safe-area-inset-top, 0px)) 16px max(16px, env(safe-area-inset-bottom, 0px));
    background: rgba(15, 23, 42, 0.45);
    opacity: 0;
    transition: opacity .12s ease-out;
    font-family: 'Segoe UI', "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
.ko-dialog-overlay.is-open { opacity: 1; }
.ko-dialog-overlay.is-leaving { opacity: 0; }

.ko-dialog {
    width: min(440px, 100%);
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    display: flex;
    flex-direction: column;
    background: var(--kod-bg);
    color: var(--kod-ink);
    border: 1px solid var(--kod-line);
    border-top: 4px solid var(--kod-accent);
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.28), 0 2px 6px rgba(15, 23, 42, 0.12);
    padding: 18px 20px 16px;
    transform: translateY(6px) scale(.98);
    transition: transform .14s ease-out;
    outline: none;
    text-align: left;
    box-sizing: border-box;
}
.ko-dialog-overlay.is-open .ko-dialog { transform: none; }

.ko-dialog--error, .ko-dialog--danger { --kod-accent: var(--kod-danger); }
.ko-dialog--warn { --kod-accent: #f59f00; }
.ko-dialog--success { --kod-accent: #198754; }

.ko-dialog__head { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.ko-dialog__icon {
    flex: 0 0 28px;
    width: 28px; height: 28px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 15px; line-height: 1;
    color: #fff;
    background: var(--kod-accent);
}
.ko-dialog__title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--kod-ink);
}
.ko-dialog__msg {
    font-size: 14px;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    overflow-y: auto;
    min-height: 1em;
    color: var(--kod-ink);
}
.ko-dialog__input {
    margin-top: 12px;
    width: 100%;
    box-sizing: border-box;
    font: inherit;
    font-size: 14px;
    padding: 8px 10px;
    border: 1px solid var(--kod-line);
    border-radius: 8px;
    background: var(--kod-bg);
    color: var(--kod-ink);
}
.ko-dialog__input:focus { outline: 2px solid var(--kod-primary); outline-offset: 0; border-color: var(--kod-primary); }

.ko-dialog__actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}
.ko-dialog__btn {
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    min-width: 96px;
    min-height: 38px;
    padding: 7px 16px;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color .12s, border-color .12s, color .12s;
}
.ko-dialog__btn:focus-visible { outline: 3px solid rgba(13, 110, 253, 0.35); outline-offset: 1px; }
.ko-dialog__btn--primary { background: var(--kod-primary); color: #fff; }
.ko-dialog__btn--primary:hover { background: var(--kod-primary-hover); }
.ko-dialog__btn--danger { background: var(--kod-danger); color: #fff; }
.ko-dialog__btn--danger:hover { background: var(--kod-danger-hover); }
.ko-dialog__btn--ghost { background: transparent; color: var(--kod-ink); border-color: var(--kod-line); }
.ko-dialog__btn--ghost:hover { background: rgba(108, 117, 125, 0.12); }

/* koDialog.form: campos (radio / textarea / number). */
.ko-dialog__fields { margin-top: 12px; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; }
.ko-dialog__field .ko-dialog__input { margin-top: 4px; }
.ko-dialog__field textarea.ko-dialog__input { resize: vertical; min-height: 56px; }
.ko-dialog__label { font-size: 13px; font-weight: 600; color: var(--kod-ink); }
.ko-dialog__hint { font-size: 12px; color: var(--kod-muted); margin-top: 4px; }
.ko-dialog__choices { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.ko-dialog__choice {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 10px; border: 1px solid var(--kod-line); border-radius: 8px;
    font-size: 14px; cursor: pointer;
}
.ko-dialog__choice:has(input:checked) { border-color: var(--kod-accent); background: rgba(13, 110, 253, 0.06); }
.ko-dialog__choice input { margin: 0; accent-color: var(--kod-accent); }
.ko-dialog__error { font-size: 13px; color: var(--kod-danger); min-height: 0; }
.ko-dialog__error:empty { display: none; }

@media (max-width: 480px) {
    .ko-dialog-overlay { align-items: flex-end; }
    .ko-dialog { border-radius: 14px; }
    .ko-dialog__actions { flex-direction: column-reverse; }
    .ko-dialog__btn { width: 100%; min-height: 44px; }
}

[data-theme=dark] .ko-dialog-overlay,
[data-bs-theme=dark] .ko-dialog-overlay,
.ko-dialog-overlay.ko-dialog-overlay--dark {
    --kod-bg: #1b2533;
    --kod-ink: #e5edf5;
    --kod-muted: #9aa8b8;
    --kod-line: #344452;
    --kod-primary: #4f8cff;
    --kod-primary-hover: #3a74e0;
    background: rgba(0, 0, 0, 0.6);
}

@media (prefers-reduced-motion: reduce) {
    .ko-dialog-overlay, .ko-dialog { transition: none; }
}
@media print { .ko-dialog-overlay { display: none !important; } }
