#themeDialog {
    --feedback-accent: #176b47;
    --feedback-tint: #edf7f1;
    font-family: Inter, sans-serif;
}
#themeDialog[data-type="error"] { --feedback-accent: #b42336; --feedback-tint: #fff1f2; }
#themeDialog[data-type="notice"] { --feedback-accent: #245b8a; --feedback-tint: #edf5ff; }
#themeDialog[data-type="warning"],
#themeDialog[data-type="confirm"] { --feedback-accent: #865409; --feedback-tint: #fff8e8; }
#themeDialog .modal-dialog { width: auto; max-width: 440px; margin: 24px auto; padding: 0 12px; }
#themeDialog .modal-content { overflow: hidden; border: 1px solid #e2e7e4; border-radius: 16px; background: #fff; box-shadow: 0 24px 72px rgb(16 24 40 / 18%); color: #26352e; }
#themeDialog .modal-header { padding: 20px 24px; background: #fff; border-bottom: 1px solid #e9eeeb; gap: 16px; }
#themeDialog .modal-title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.4; color: #233d30; }
#themeDialog .btn-close { flex: 0 0 32px; width: 32px; height: 32px; box-sizing: border-box; margin: -4px -8px -4px 0; padding: 8px; border-radius: 8px; background-color: transparent; opacity: .65; }
#themeDialog .modal-body { padding: 24px; }
#themeDialog .theme-dialog-icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin: 0 0 18px; border-radius: 50%; background: var(--feedback-tint); color: var(--feedback-accent) !important; font-size: 26px; }
#themeDialogMessage { margin: 0; color: #47594f; font-size: 15px; line-height: 1.65; white-space: pre-line; overflow-wrap: anywhere; }
#themeDialog .modal-footer { padding: 16px 24px 20px; gap: 10px; border-top: 1px solid #e9eeeb; background: #fff; }
#themeDialog .modal-footer .btn { min-width: 96px; min-height: 44px; margin: 0; padding: 10px 20px; border-radius: 8px; font: 600 14px/22px Inter, sans-serif; box-shadow: none; }
#themeDialog .theme-dialog-accept { background: var(--feedback-accent); border: 1px solid var(--feedback-accent); color: #fff; }
#themeDialog .theme-dialog-cancel { background: #fff; border: 1px solid #a4b2aa; color: #344c3f; }
#themeDialog .form-label { font-size: 14px; line-height: 1.5; color: #344c3f; }
#themeDialog textarea { width: 100%; min-height: 88px; border: 1px solid #a4b2aa; border-radius: 8px; font-size: 15px; }
#themeDialog [hidden] { display: none !important; }
#themeDialog .btn:focus-visible, #themeDialog .btn-close:focus-visible,
.theme-flash-dismiss:focus-visible { outline: 3px solid #59836c; outline-offset: 3px; }
.theme-flash-region { position: fixed; top: 24px; right: 24px; z-index: 1095; display: grid; gap: 12px; width: min(400px, calc(100% - 48px)); max-height: calc(100dvh - 48px); overflow-y: auto; pointer-events: none; }
.theme-flash { --flash-accent: #176b47; --flash-tint: #edf7f1; display: grid; grid-template-columns: 28px minmax(0, 1fr) 32px; align-items: start; gap: 10px; padding: 16px; border: 1px solid #dce7df; border-left: 4px solid var(--flash-accent); border-radius: 12px; background: #fff; box-shadow: 0 8px 32px rgb(16 24 40 / 14%); color: #26352e; pointer-events: auto; font: 14px/1.6 Inter, sans-serif; }
.theme-flash[data-type="error"] { --flash-accent: #b42336; --flash-tint: #fff1f2; }
.theme-flash[data-type="warning"] { --flash-accent: #865409; --flash-tint: #fff8e8; }
.theme-flash[data-type="notice"] { --flash-accent: #245b8a; --flash-tint: #edf5ff; }
.theme-flash-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--flash-tint); color: var(--flash-accent); font-size: 18px; font-weight: 700; }
.theme-flash-title { display: block; margin: 0 0 2px; color: #263c30; font-size: 14px; font-weight: 600; line-height: 1.5; }
.theme-flash-message { margin: 0; color: #47594f; font-size: 14px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
.theme-flash-dismiss { width: 32px; height: 32px; margin: -4px -6px 0 0; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #53665a; font: 24px/32px Inter, sans-serif; }
.theme-validation-summary { margin: 0 0 20px; padding: 16px 20px; border: 1px solid #ebbdc4; border-radius: 10px; background: #fff5f6; color: #8c2333; font-size: 14px; line-height: 1.6; }
.theme-validation-summary ul { margin: 6px 0 0; padding-left: 20px; list-style: disc; }
.theme-field-error { display: block; margin-top: 6px; color: #b42336; font-size: 13px; line-height: 1.5; }
@media (max-width: 575px) {
    #themeDialog .modal-dialog { margin: 16px auto; }
    #themeDialog .modal-header, #themeDialog .modal-body { padding: 20px; }
    #themeDialog .modal-footer { padding: 16px 20px 20px; }
    .theme-flash-region { top: 16px; right: 16px; width: calc(100% - 32px); max-height: calc(100dvh - 32px); }
}
