/* Hộp thoại tùy chỉnh (assets/dialog.js) */
body.gd-open { overflow: hidden; }
.gd-overlay {
    position: fixed; inset: 0; z-index: 10000;
    display: flex; align-items: center; justify-content: center; padding: 16px;
    background: rgba(31, 42, 68, 0.55); backdrop-filter: blur(2px);
    opacity: 0; transition: opacity 0.14s ease;
}
.gd-overlay.gd-in { opacity: 1; }
.gd-overlay.gd-leaving { opacity: 0; }
.gd-box {
    width: min(420px, 100%); max-height: 90vh; overflow: auto;
    background: #fff; border-radius: 20px; padding: 24px 22px 20px;
    border-top: 8px solid #2d7dd2; text-align: center;
    box-shadow: 0 18px 50px rgba(31, 42, 68, 0.35);
    transform: translateY(10px) scale(0.97); transition: transform 0.16s ease;
}
.gd-in .gd-box { transform: none; }
.gd-box.gd-danger { border-top-color: #e5484d; }
.gd-box.gd-success { border-top-color: #2fb36d; }
.gd-box.gd-warn { border-top-color: #f5a524; }
.gd-icon { font-size: 2.4rem; line-height: 1; margin-bottom: 6px; }
.gd-title { margin: 0 0 8px; font-size: 1.2rem; color: #1f2a44; }
.gd-msg { margin: 0 0 16px; color: #3d4a66; font-size: 1.02rem; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.gd-input {
    width: 100%; box-sizing: border-box; margin: 0 0 16px; padding: 10px 12px;
    font: inherit; font-size: 1.05rem; color: #1f2a44;
    border: 2px solid #cfe0f5; border-radius: 12px; background: #f8fbff;
}
.gd-input:focus { outline: none; border-color: #2d7dd2; box-shadow: 0 0 0 3px rgba(45, 125, 210, 0.2); }
.gd-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.gd-btn {
    min-width: 108px; padding: 10px 18px; font: inherit; font-weight: 700; cursor: pointer;
    border-radius: 12px; border: 2px solid transparent; transition: transform 0.08s ease, filter 0.1s ease;
}
.gd-btn:hover { filter: brightness(1.05); }
.gd-btn:active { transform: translateY(1px); }
.gd-btn:focus-visible { outline: 3px solid #1f2a44; outline-offset: 2px; }
.gd-btn-primary { background: #2d7dd2; color: #fff; }
.gd-btn-danger { background: #e5484d; }
.gd-btn-ghost { background: #fff; color: #3d4a66; border-color: #cfd8e6; }
@media (prefers-reduced-motion: reduce) {
    .gd-overlay, .gd-box { transition: none; }
}
