/* Shared customer-dialog theme. Keep structural and interaction classes intact. */
.qc-dialog {
    --dialog-ink: #1d1d1f;
    --dialog-muted: #6e6e73;
    --dialog-line: #e5e5e7;
    --dialog-soft: #f5f5f7;
    --dialog-blue: #0071e3;
    --dialog-danger: #c0342b;
    --mm-primary: #0071e3;
    --mm-primary-hover: #0077ed;
    --mm-on-primary: #fff;
    --mm-ink: #1d1d1f;
    --mm-steel: #6e6e73;
    --mm-muted: #6e6e73;
    --mm-hairline: #e5e5e7;
    --mm-brand-coral: #0071e3;
    color: var(--dialog-ink);
    color-scheme: light;
    font-family: -apple-system, BlinkMacSystemFont, 'Noto Sans KR', 'Helvetica Neue', sans-serif;
    -webkit-font-smoothing: antialiased;
}
.qc-dialog:where(.modal, .modal-overlay, .fixed) { background-color: #00000066 !important; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.qc-dialog :is([class*="bg-gradient"], [style*="gradient"], .modal-header, .msg-card, .msg-location) { background-image: none !important; }
.qc-dialog :is([class*="bg-blue-"], [class*="bg-indigo-"], [class*="bg-violet-"], [class*="bg-purple-"], [class*="bg-pink-"], [class*="bg-emerald-"], [class*="bg-green-"], [class*="bg-teal-"], [class*="bg-cyan-"], [class*="bg-sky-"], [class*="bg-amber-"], [class*="bg-orange-"], [class*="bg-yellow-"], [class*="bg-rose-"], [class*="bg-red-"], [class*="bg-gradient"]) {
    background-color: var(--dialog-soft) !important;
    background-image: none !important;
}
.qc-dialog :is([class*="text-blue-"], [class*="text-indigo-"], [class*="text-violet-"], [class*="text-purple-"], [class*="text-pink-"], [class*="text-emerald-"], [class*="text-green-"], [class*="text-teal-"], [class*="text-cyan-"], [class*="text-sky-"], [class*="text-amber-"], [class*="text-orange-"], [class*="text-yellow-"], [class*="text-rose-"], [class*="text-red-"], [class*="text-white"]) { color: #515154 !important; }
.qc-dialog :is([class*="border-blue-"], [class*="border-indigo-"], [class*="border-violet-"], [class*="border-purple-"], [class*="border-pink-"], [class*="border-emerald-"], [class*="border-green-"], [class*="border-teal-"], [class*="border-cyan-"], [class*="border-sky-"], [class*="border-amber-"], [class*="border-orange-"], [class*="border-yellow-"], [class*="border-rose-"], [class*="border-red-"]) { border-color: var(--dialog-line) !important; }
.qc-dialog [class*="shadow"], .qc-dialog [style*="box-shadow"] { box-shadow: none !important; }
.qc-dialog [class*="drop-shadow"] { filter: none !important; }
.qc-dialog :is(.rounded-3xl, .rounded-2xl) { border-radius: 12px; }
.qc-dialog :is(.rounded-xl, .use-case-card, .msg-card, .msg-location) { border-radius: 9px; }
.qc-dialog .use-case-card { border-width: 1px; border-color: var(--dialog-line); background: white; box-shadow: none; transform: none !important; }
.qc-dialog .use-case-card:hover { background: var(--dialog-soft) !important; border-color: #b9b9bf !important; }
.qc-dialog .use-case-card > span { width: 40px; height: 40px; border-radius: 9px; }
.qc-dialog .use-case-card > span svg { width: 21px; height: 21px; }
.qc-dialog :is(.modal-content, .modal-container, .modal-surface), .qc-dialog > [class*="max-w-"] {
    border: 1px solid var(--dialog-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 80px #00000020 !important;
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
}
.qc-dialog :is(.modal-header, .modal-head),
.qc-dialog > .modal-content > .border-b:first-child,
.qc-dialog > [class*="max-w-"] > .border-b:first-child,
#qrCreationModal #useCaseStep > :first-child,
#qrCreationModal #configStep > :first-child,
#locationInfoModal.qc-dialog > div > :first-child {
    background: white !important;
    background-image: none !important;
    color: var(--dialog-ink) !important;
    border-color: var(--dialog-line) !important;
}
.qc-dialog :is(.modal-header, .modal-head) { padding: 20px 24px; }
.qc-dialog :is(.modal-title, .modal-head__title) { color: var(--dialog-ink) !important; font-size: 20px; font-weight: 600; letter-spacing: -.6px; line-height: 1.4; }
.qc-dialog :is(.modal-subtitle, .modal-head__sub) { color: var(--dialog-muted) !important; opacity: 1; font-size: 12px; }
.qc-dialog :is(.modal-close, .modal-close-btn) { background: var(--dialog-soft) !important; color: var(--dialog-muted) !important; box-shadow: none; border-radius: 50%; transform: none !important; }
.qc-dialog :is(.modal-close, .modal-close-btn):hover { background: #e9e9ed !important; color: var(--dialog-ink) !important; }
.qc-dialog :is(button, .btn-action) { font-weight: 500; transition: background-color .15s, color .15s, border-color .15s; }
.qc-dialog :is(button, a)[class*="hover:scale"], .qc-dialog .btn-action:hover { transform: none !important; }
.qc-dialog :is(.animate-bounce, .animate-pulse, .animate-scale, .animate-bounce-once, .message-badge-pulse) { animation: none !important; }
.qc-dialog :is(input, textarea, select) { accent-color: var(--dialog-blue); font-family: inherit; }
.qc-dialog :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select) { border-color: #d2d2d7; border-radius: 8px; color: var(--dialog-ink); background-color: #fff; }
.qc-dialog :is(input, textarea, select):focus-visible { outline: 3px solid #0071e333; outline-offset: 1px; box-shadow: none; }
.qc-dialog input:is([type="checkbox"], [type="radio"]) { color: var(--dialog-blue) !important; }
.qc-dialog label:has(input:checked) { background-color: #f4f8fd !important; border-color: #adc9e9 !important; }
.qc-dialog :is(.msg-avatar, .message-avatar) { background: #ededf0 !important; color: #515154 !important; }
.qc-dialog .msg-card { background: #fff; border-color: var(--dialog-line); box-shadow: none !important; transform: none !important; }
.qc-dialog .msg-card.msg-new { background: #f6f9fd; border-color: #cbdced; }
.qc-dialog :is(.msg-location, .modal-qr-info) { background: var(--dialog-soft); border-color: var(--dialog-line); }
.qc-dialog :is(.msg-badge, .qr-info-badge) { background: #eaf1fb; color: var(--dialog-blue); animation: none; }
.qc-dialog .qc-button-secondary { background: var(--dialog-soft) !important; color: #515154 !important; border: 1px solid var(--dialog-line) !important; border-radius: 8px; box-shadow: none !important; }
.qc-dialog :is(.qc-button-primary, .mm-btn-primary) {
    background-color: var(--dialog-blue) !important;
    background-image: none !important;
    color: white !important;
    border-color: var(--dialog-blue) !important;
    box-shadow: none !important;
}
.qc-dialog :is(.qc-button-primary, .mm-btn-primary):hover { background-color: #0077ed !important; border-color: #0077ed !important; }
.qc-dialog .qc-button-danger { background-color: var(--dialog-danger) !important; background-image: none !important; color: #fff !important; border-color: var(--dialog-danger) !important; box-shadow: none !important; }
.qc-dialog :is(.qc-button-primary, .mm-btn-primary, .qc-button-danger) * { color: #fff !important; }
.qc-dialog .qc-button-danger:hover { background-color: #a82d25 !important; border-color: #a82d25 !important; }
.qc-dialog :is(.qc-button-primary, .qc-button-danger) { border-radius: 8px; }
.qc-dialog :is([role="alert"], .qc-notice-danger) { border-left: 3px solid var(--dialog-danger) !important; background: #faf7f7 !important; color: #74342e !important; }
/* Toasts use a normal light dialog instead of a saturated announcement card. */
#messageToast.qc-dialog { background: transparent !important; backdrop-filter: none; -webkit-backdrop-filter: none; max-width: min(440px, calc(100vw - 32px)); }
#messageToast.qc-dialog > div { border: 1px solid var(--dialog-line); border-radius: 16px; background: white; box-shadow: 0 24px 80px #00000020 !important; }
#messageToast.qc-dialog > div > :first-child { background: #fff !important; border-color: var(--dialog-line) !important; }
#messageToast.qc-dialog :is(h3, h3[class]) { color: var(--dialog-ink) !important; font-weight: 600; text-shadow: none; }
/* Video remains dark for contrast; incoming-call information is neutral. */
#incomingCallState.qc-dialog > div { background: #fff !important; color: var(--dialog-ink) !important; border: 1px solid var(--dialog-line); border-radius: 18px; max-height: calc(100dvh - 28px); overflow-y: auto; box-shadow: 0 24px 80px #00000020 !important; }
#incomingCallState.qc-dialog .aspect-video { background: #1d1d1f !important; }
#incomingCallState.qc-dialog #incomingVideoPlaceholder { color: #fff !important; }
#incomingCallState.qc-dialog #incomingVideoPlaceholder * { color: #fff !important; }
#incomingCallState.qc-dialog #acceptCallBtn > div { background: var(--dialog-blue) !important; color: #fff !important; transform: none; }
#incomingCallState.qc-dialog #rejectCallBtn > div { background: var(--dialog-danger) !important; color: #fff !important; transform: none; }
#incomingCallState.qc-dialog :is(#acceptCallBtn, #rejectCallBtn) svg { color: #fff !important; }
#activeCallState #activeCallLocationBtn { background-color: #0071e3 !important; }
#activeCallState #endCallBtn { background-color: #c0342b !important; box-shadow: none; }
#chatErrorIcon, #errorModal.qc-dialog [data-lucide="alert-circle"] { color: #c0342b; }
@media (max-width: 640px) {
    .qc-dialog:where(.modal, .fixed) { padding: 14px; }
    .qc-dialog :is(.modal-content, .modal-container, .modal-surface), .qc-dialog > [class*="max-w-"] { max-height: calc(100dvh - 28px); }
    .qc-dialog :is(.modal-header, .modal-head) { padding: 17px 18px; }
    .qc-dialog :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select) { font-size: 16px; }
    .qc-dialog .use-case-card { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { .qc-dialog *, .qc-dialog *::before, .qc-dialog *::after { animation: none !important; transition: none !important; } }
.qc-dialog .info-note { background: var(--dialog-soft) !important; border-color: var(--dialog-line) !important; color: var(--dialog-muted) !important; }
#incomingCallState.qc-dialog [style*="aspect-ratio"] { background: #1d1d1f !important; }
#errorModal.qc-dialog > div { border: 1px solid var(--dialog-line); border-radius: 16px; background: white; box-shadow: 0 24px 80px #00000020; }
#errorModal.qc-dialog > div > :first-child { background: var(--dialog-soft) !important; }

.qc-dialog :is(button, a):focus-visible { outline: 3px solid #0071e366; outline-offset: 3px; }
#incomingCallModal { background-color: #000c; }
#activeCallState .bg-emerald-400 { background-color: #d2d2d7; }

.qc-dialog :is(.btn-mark-read, .btn-mark-all-read) { background: var(--dialog-soft) !important; color: #515154 !important; border: 1px solid var(--dialog-line); box-shadow: none; }
.qc-dialog :is(.btn-mark-read, .btn-mark-all-read):hover { background: #e9e9ed !important; }
.qc-dialog .msg-location-button { background: #fff !important; color: var(--dialog-blue) !important; border-color: var(--dialog-line) !important; transform: none !important; }
.qc-dialog .msg-location-button:hover { background: #f4f8fd !important; }
