/* Preserve the existing green brand and Bootstrap/SweetAlert components.
   DESIGN_VARIANCE: 3; MOTION_INTENSITY: 3; VISUAL_DENSITY: 4.
   Layers: Bootstrap dialogs 1055, CKEditor dialogs 1100, blockUI 2000-2002, SweetAlert 2100.
   Radius: feedback panels 20px, controls 10px, status marks 16px. */
:root {
    --feedback-surface: #fcfdfc;
    --feedback-text: #203b38;
    --feedback-muted: #586b67;
    --feedback-accent: #246a5c;
    --feedback-hover: #1c574c;
    --feedback-on-accent: #f8fcfa;
    --feedback-on-danger: #f8fcfa;
    --feedback-danger-hover: #8e2632;
    --feedback-tint: #e9f2ee;
    --feedback-border: #d3e1da;
    --feedback-danger: #ab303e;
    --feedback-danger-tint: #fbeef0;
    --feedback-warning: #8a5916;
    --feedback-warning-tint: #fbf3e6;
    --feedback-radius: 20px;
    --feedback-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Microsoft JhengHei", sans-serif;
}
.blockUI.blockOverlay {
    z-index: 2001 !important;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
.blockUI.blockMsg {
    z-index: 2002 !important;
    width: min(360px, calc(100vw - 40px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--feedback-radius) !important;
    background: transparent !important;
    color: var(--feedback-text) !important;
    transform: translate(-50%, -50%);
}
.feedback-loading {
    box-sizing: border-box;
    padding: 32px 28px 28px;
    border: 1px solid var(--feedback-border);
    border-radius: var(--feedback-radius);
    background: var(--feedback-surface);
    box-shadow: 0 24px 72px rgb(23 55 45 / 20%);
    color: var(--feedback-text);
    font-family: var(--feedback-font);
    text-align: center;
    outline: none;
}
.feedback-loading-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 64px;
    height: 64px;
    margin: 0 auto 22px;
    border: 1px solid var(--feedback-border);
    border-radius: 16px;
    background: var(--feedback-tint);
}
.feedback-loading-mark span {
    display: block;
    width: 5px;
    height: 22px;
    border-radius: 3px;
    background: var(--feedback-accent);
}
.feedback-loading-title { font-size: 19px; font-weight: 700; line-height: 1.6; overflow-wrap: anywhere; }
.feedback-loading p { margin: 8px 0 0; color: var(--feedback-muted); font-size: 13px; line-height: 1.8; }
.swal-overlay { z-index: 2100; background: rgb(23 47 43 / 42%); }
.swal-modal.app-feedback-dialog {
    box-sizing: border-box;
    width: min(420px, calc(100vw - 32px));
    padding: 28px 28px 24px;
    border: 1px solid var(--feedback-border);
    border-radius: var(--feedback-radius);
    background: var(--feedback-surface);
    color: var(--feedback-text);
    box-shadow: 0 24px 72px rgb(23 55 45 / 20%);
    font-family: var(--feedback-font);
}
.app-feedback-dialog .swal-title {
    margin: 0 !important;
    padding: 12px 0 0;
    color: var(--feedback-text);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.55;
    overflow-wrap: anywhere;
}
.app-feedback-dialog .swal-text {
    display: block;
    max-width: 100%;
    margin: 12px 0 0;
    padding: 0;
    color: var(--feedback-muted);
    font-size: 14px;
    line-height: 1.85;
    text-align: center;
    white-space: pre-line;
    overflow-wrap: anywhere;
    max-height: 40dvh;
    overflow-y: auto;
}
.app-feedback-dialog .swal-icon { margin: 4px auto 12px; }
.app-feedback-dialog .swal-icon--success,
.app-feedback-dialog .swal-icon--info { border-color: var(--feedback-accent); }
.app-feedback-dialog .swal-icon--success__line,
.app-feedback-dialog .swal-icon--info::before,
.app-feedback-dialog .swal-icon--info::after { background-color: var(--feedback-accent); }
.app-feedback-dialog .swal-icon--success__ring { border-color: var(--feedback-border); }
.app-feedback-dialog .swal-icon--success::before,
.app-feedback-dialog .swal-icon--success::after,
.app-feedback-dialog .swal-icon--success__hide-corners { background-color: var(--feedback-surface); }
.app-feedback-dialog .swal-icon--error { border-color: var(--feedback-danger); background-color: var(--feedback-danger-tint); }
.app-feedback-dialog .swal-icon--error__line { background-color: var(--feedback-danger); }
.app-feedback-dialog .swal-icon--warning { border-color: var(--feedback-warning); background-color: var(--feedback-warning-tint); }
.app-feedback-dialog .swal-icon--warning__body,
.app-feedback-dialog .swal-icon--warning__dot { background-color: var(--feedback-warning); }
.app-feedback-dialog .swal-footer { display: flex; justify-content: center; gap: 12px; margin: 26px 0 0; padding: 0; }
.app-feedback-dialog .swal-button-container { margin: 0; flex: 1; }
.app-feedback-dialog .swal-button {
    width: 100%;
    min-height: 46px;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--feedback-accent);
    color: var(--feedback-on-accent);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    box-shadow: none;
    transition: transform 120ms ease, background-color 120ms ease;
}
.app-feedback-dialog .swal-button:not([disabled]):hover { background: var(--feedback-hover); }
.app-feedback-dialog .swal-button--cancel { border-color: var(--feedback-border); background: var(--feedback-tint); color: var(--feedback-text); }
.app-feedback-dialog .swal-button--cancel:not([disabled]):hover { background: var(--feedback-border); }
.app-feedback-dialog .swal-button--danger { background: var(--feedback-danger); color: var(--feedback-on-danger); }
.app-feedback-dialog .swal-button--danger:not([disabled]):hover { background: var(--feedback-danger-hover); }
.app-feedback-dialog .swal-button:active { transform: scale(.98); }
.app-feedback-dialog .swal-button:focus-visible { outline: 3px solid var(--feedback-accent); outline-offset: 3px; box-shadow: none; }
@media (prefers-reduced-motion: no-preference) {
    .feedback-loading-mark span { animation: feedback-working 1050ms ease-in-out infinite; }
    .feedback-loading-mark span:nth-child(2) { animation-delay: 140ms; }
    .feedback-loading-mark span:nth-child(3) { animation-delay: 280ms; }
    @keyframes feedback-working { 0%, 100% { transform: scaleY(.5); opacity: .5; } 50% { transform: scaleY(1); opacity: 1; } }
}
@media (prefers-reduced-motion: reduce) {
    .swal-overlay, .app-feedback-dialog, .app-feedback-dialog *, .feedback-loading * { animation: none !important; transition: none !important; }
}
@media (prefers-color-scheme: dark) {
    :root:not(:has(meta[name="color-scheme"][content="light"])) {
        --feedback-surface: #1e302c;
        --feedback-text: #edf5f1;
        --feedback-muted: #bacdc4;
        --feedback-accent: #8bcebb;
        --feedback-hover: #a6dfcf;
        --feedback-on-accent: #193b30;
        --feedback-on-danger: #3b1b21;
        --feedback-danger-hover: #f4b6bd;
        --feedback-tint: #2c433b;
        --feedback-border: #4f6c60;
        --feedback-danger: #ef9ca6;
        --feedback-danger-tint: #452a30;
        --feedback-warning: #e5c083;
        --feedback-warning-tint: #40392b;
    }
}
@media (max-width: 767px) {
    .swal-modal.app-feedback-dialog { padding: 24px 20px 20px; }
    .app-feedback-dialog .swal-title { font-size: 20px; }
    .feedback-loading { padding: 28px 20px 24px; }
}
@media (prefers-reduced-transparency: reduce) {
    .blockUI.blockOverlay { backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media print { .blockUI, .swal-overlay { display: none !important; } }
