/* Shared editor dialog contract. Keep dimensions here, not in business styles. */
:root {
  --vc-dialog-width: 460px;
  --vc-dialog-wide-width: 560px;
  --vc-dialog-radius: 16px;
  --vc-dialog-padding-x: 24px;
  --vc-dialog-padding-y: 20px;
  --vc-dialog-footer-padding-y: 16px;
  --vc-dialog-title-size: 18px;
  --vc-dialog-title-line: 26px;
  --vc-dialog-body-size: 14px;
  --vc-dialog-body-line: 22px;
  --vc-dialog-button-height: 36px;
  --vc-dialog-button-min-width: 88px;
  --vc-dialog-button-padding-x: 16px;
  --vc-dialog-button-font-size: 14px;
  --vc-dialog-button-line: 20px;
  --vc-dialog-button-radius: 6px;
  --vc-dialog-action-gap: 8px;
  --vc-dialog-close-size: 32px;
  --vc-dialog-close-icon-size: 16px;
  --vc-dialog-background: #15161a;
  --vc-dialog-footer-background: #181a1f;
  --vc-dialog-border: #2e2f33;
  --vc-dialog-text: #ebf2fa;
  --vc-dialog-text-secondary: #a8afbb;
  --vc-dialog-primary: #0e5ad6;
  --vc-dialog-primary-hover: #176aed;
  --vc-dialog-focus: #8fc4ff;
  --vc-dialog-backdrop: rgba(0, 0, 0, .65);
  --vc-dialog-scrollbar-size: 6px;
  --vc-dialog-scrollbar-thumb: #4d535e;
  --vc-dialog-scrollbar-thumb-hover: #68717e;
  --vc-dialog-scrollbar-track: transparent;
}
.vc-dialog {
  color-scheme: dark;
  box-sizing: border-box;
  width: min(var(--vc-dialog-width), calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow: hidden;
  padding: 0;
  color: var(--vc-dialog-text);
  background: var(--vc-dialog-background);
  border: 1px solid var(--vc-dialog-border);
  border-radius: var(--vc-dialog-radius);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .4);
  font: var(--vc-dialog-body-size)/var(--vc-dialog-body-line) var(--vc-font, system-ui, "PingFang SC", sans-serif);
}
.vc-dialog--wide { --vc-dialog-width: var(--vc-dialog-wide-width); }
.vc-dialog[open] { display: flex; flex-direction: column; }
.vc-dialog[hidden], .vc-dialog [hidden] { display: none !important; }
.vc-dialog::backdrop { background: var(--vc-dialog-backdrop); }
/* Cover both the body and nested result/warning panels, without hiding scroll. */
.vc-dialog, .vc-dialog * { scrollbar-width: thin; scrollbar-color: var(--vc-dialog-scrollbar-thumb) var(--vc-dialog-scrollbar-track); }
.vc-dialog::-webkit-scrollbar, .vc-dialog *::-webkit-scrollbar { width: var(--vc-dialog-scrollbar-size); height: var(--vc-dialog-scrollbar-size); }
.vc-dialog::-webkit-scrollbar-track, .vc-dialog *::-webkit-scrollbar-track { background: var(--vc-dialog-scrollbar-track); }
.vc-dialog::-webkit-scrollbar-thumb, .vc-dialog *::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--vc-dialog-scrollbar-thumb); }
.vc-dialog::-webkit-scrollbar-thumb:hover, .vc-dialog *::-webkit-scrollbar-thumb:hover { background: var(--vc-dialog-scrollbar-thumb-hover); }
.vc-dialog::-webkit-scrollbar-corner, .vc-dialog *::-webkit-scrollbar-corner { background: transparent; }
.vc-dialog__header { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 16px; padding: var(--vc-dialog-padding-y) var(--vc-dialog-padding-x); border-bottom: 1px solid var(--vc-dialog-border); }
.vc-dialog__title { margin: 0; font-size: var(--vc-dialog-title-size); line-height: var(--vc-dialog-title-line); font-weight: 600; }
.vc-dialog__subtitle { margin: 4px 0 0; color: var(--vc-dialog-text-secondary); font-size: 12px; line-height: 20px; }
.vc-dialog__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--vc-dialog-padding-y) var(--vc-dialog-padding-x); }
.vc-dialog__body > p { margin: 0; }
.vc-dialog__body > p + p { margin-top: 12px; }
.vc-dialog__footer { flex: 0 0 auto; padding: var(--vc-dialog-footer-padding-y) var(--vc-dialog-padding-x); border-top: 1px solid var(--vc-dialog-border); background: var(--vc-dialog-footer-background); }
.vc-dialog__actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--vc-dialog-action-gap); margin: 0; }
.vc-dialog__button { box-sizing: border-box; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: var(--vc-dialog-button-min-width); height: var(--vc-dialog-button-height); padding: 0 var(--vc-dialog-button-padding-x); border: 1px solid #40454f; border-radius: var(--vc-dialog-button-radius); background: #282c34; color: var(--vc-dialog-text); font: 500 var(--vc-dialog-button-font-size)/var(--vc-dialog-button-line) var(--vc-font, system-ui, "PingFang SC", sans-serif); white-space: nowrap; cursor: pointer; }
.vc-dialog__button:hover { background: #343a45; }
.vc-dialog__button--primary { border-color: var(--vc-dialog-primary); background: var(--vc-dialog-primary); color: #fff; }
.vc-dialog__button--primary:hover { background: var(--vc-dialog-primary-hover); border-color: var(--vc-dialog-primary-hover); }
.vc-dialog__button:disabled { opacity: .45; cursor: not-allowed; }
.vc-dialog[aria-busy="true"] .vc-dialog__button:disabled { cursor: wait; }
.vc-dialog__close { box-sizing: border-box; display: grid; place-items: center; flex: 0 0 var(--vc-dialog-close-size); width: var(--vc-dialog-close-size); height: var(--vc-dialog-close-size); margin: 0; padding: 0; border: 0; border-radius: var(--vc-dialog-button-radius); color: var(--vc-dialog-text-secondary); background: transparent; cursor: pointer; }
.vc-dialog__close svg { display: block; width: var(--vc-dialog-close-icon-size); height: var(--vc-dialog-close-icon-size); pointer-events: none; }
.vc-dialog__close:hover { background: #282c34; color: var(--vc-dialog-text); }
.vc-dialog :is(button, a, summary):focus-visible { outline: 2px solid var(--vc-dialog-focus); outline-offset: 3px; }
@media (max-width: 480px) {
  .vc-dialog { --vc-dialog-padding-x: 16px; }
  /* Preserve control size; wrap whole buttons instead of shrinking them. */
  .vc-dialog__actions > .vc-dialog__button { flex-grow: 1; }
}
