/* NyxDialog (alert/confirm/prompt) content styles — .dlg--cfm over the
   shared dlg-* shell (dialog.css, linked ABOVE this file in every layout).
   Everything keys on the .dlg--cfm CLASS, never the mount's id: the
   styleguide renders inline specimen copies of the markup beside the live
   layout mount.

   Design rules (inherited from the base + this component's own):
   - Whole-number type scale 17 / 14 / 13 / 12; font inherits from body.
   - Theme via var() with unthemed fallbacks — the dialog takes the PAGE
     theme from :root for free, or a scoped surface's theme when opened
     from inside one (dialog.js adoptScope). Danger is a fixed red STATE,
     never themed; the field error state (.dlg-box--error) is accent-inked.
   - Masked icons fill with OPAQUE color (never --vc-53) and --cfm-icon is
     set-once/consumed-once — never reference a custom property from its own
     fallback (Safari cycle, see cssCustomPropertyCycles.test.js).
   - Buttons are icon-only circles: the label is real text, visually hidden
     (screen readers + voice control read it; sighted users get the title
     tooltip); the message copy carries the meaning.
   - The desktop pop-in animation is DESKTOP-SCOPED on purpose: on the
     mobile sheet the drag controller writes inline transforms on the panel,
     and a running (or filled) CSS animation would override them and kill
     drag-to-dismiss. The icon wiggle never touches the panel, so it is safe
     at every width.
   - Pico neutralizers on .cfm-act (width/margin/box-shadow): the dialog
     also mounts on backstage, where Pico styles bare <button>.
   - The action discs are shared: .fs-dialog (feed sources), .dlg--acts
     (every composer dialog) and .dlg--cfm, which stays LAST in each group
     (test/confirmDialog.test.js matches its selectors literally). */

.dlg--cfm { --dlg-w: 380px; }

/* No corner X on a confirm: the title plus the two discs ARE the choices
   (Aaron: "let's have users tap one of the provided buttons"). On the phone
   sheet the empty head was also 60px of dead space above the title with a
   stray X at its left. The grip still drags the sheet; the backdrop and
   Escape still cancel. */
.dlg--cfm .dlg-head { display: none; }
/* A dialog that wears the disc footer (the field prompts: image caption,
   link, audio track; the source and schedule dialogs) has its two ways out
   right there, so the header's X is a third, redundant one in the corner
   (Aaron, on the comment image caption: "we have save/cancel buttons
   already at the bottom"). The title stays. */
.dlg--acts .dlg-close { display: none; }

.dlg--cfm .cfm-body {
  justify-items: center;
  text-align: center;
  padding: 24px 24px 10px;
}
@media (max-width: 639px) {
  .dlg--cfm .cfm-body { padding-top: 12px; }
}

/* Kind icon in a tinted disc. Hidden for plain confirms and prompts (the
   title + message carry those); shown for alert kinds and danger confirms. */
.dlg--cfm .cfm-disc {
  display: none;
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  background: var(--vc-15, rgba(255, 255, 255, 0.06));
  place-items: center;
}
.dlg--cfm.is-kind-info .cfm-disc,
.dlg--cfm.is-kind-success .cfm-disc,
.dlg--cfm.is-kind-error .cfm-disc,
.dlg--cfm.is-danger .cfm-disc { display: grid; }
/* icon: false — a kind dialog without the disc (after the kind rules so it
   wins the cascade for every kind). */
.dlg--cfm.is-no-icon .cfm-disc { display: none; }
.dlg--cfm .cfm-icon {
  width: 28px;
  height: 28px;
  background: var(--vc, var(--color-teal-300));
  -webkit-mask: var(--cfm-icon) center / contain no-repeat;
  mask: var(--cfm-icon) center / contain no-repeat;
}
.dlg--cfm.is-kind-info .cfm-icon { --cfm-icon: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIwMHB0IiBoZWlnaHQ9IjEyMDBwdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTYwMCA0MjBjLTQ3LjczOCAwLTkzLjUyMyAxOC45NjUtMTI3LjI4IDUyLjcyMy0zMy43NTggMzMuNzU0LTUyLjcyMyA3OS41MzktNTIuNzIzIDEyNy4yOHMxOC45NjUgOTMuNTIzIDUyLjcyMyAxMjcuMjhjMzMuNzU0IDMzLjc1OCA3OS41MzkgNTIuNzIzIDEyNy4yOCA1Mi43MjNzOTMuNTIzLTE4Ljk2NSAxMjcuMjgtNTIuNzIzYzMzLjc1OC0zMy43NTQgNTIuNzIzLTc5LjUzOSA1Mi43MjMtMTI3LjI4IDAtMzEuNTk4LTguMzE2NC02Mi42MzctMjQuMTE3LTkwLTE1Ljc5Ny0yNy4zNjMtMzguNTItNTAuMDg2LTY1Ljg4My02NS44ODMtMjcuMzYzLTE1LjgwMS01OC40MDItMjQuMTE3LTkwLTI0LjExN3ptMCAyODhjLTI4LjY0NSAwLTU2LjExMy0xMS4zNzktNzYuMzY3LTMxLjYzMy0yMC4yNTQtMjAuMjU0LTMxLjYzMy00Ny43MjMtMzEuNjMzLTc2LjM2N3MxMS4zNzktNTYuMTEzIDMxLjYzMy03Ni4zNjdjMjAuMjU0LTIwLjI1NCA0Ny43MjMtMzEuNjMzIDc2LjM2Ny0zMS42MzNzNTYuMTEzIDExLjM3OSA3Ni4zNjcgMzEuNjMzYzIwLjI1NCAyMC4yNTQgMzEuNjMzIDQ3LjcyMyAzMS42MzMgNzYuMzY3cy0xMS4zNzkgNTYuMTEzLTMxLjYzMyA3Ni4zNjdjLTIwLjI1NCAyMC4yNTQtNDcuNzIzIDMxLjYzMy03Ni4zNjcgMzEuNjMzeiIvPgogPHBhdGggZD0ibTYwMCAyMjhjLTk4LjY2IDAtMTkzLjI4IDM5LjE5MS0yNjMuMDQgMTA4Ljk2LTY5Ljc2NiA2OS43NjItMTA4Ljk2IDE2NC4zOC0xMDguOTYgMjYzLjA0czM5LjE5MSAxOTMuMjggMTA4Ljk2IDI2My4wNGM2OS43NjIgNjkuNzY2IDE2NC4zOCAxMDguOTYgMjYzLjA0IDEwOC45NnMxOTMuMjgtMzkuMTkxIDI2My4wNC0xMDguOTZjNjkuNzY2LTY5Ljc2MiAxMDguOTYtMTY0LjM4IDEwOC45Ni0yNjMuMDRzLTM5LjE5MS0xOTMuMjgtMTA4Ljk2LTI2My4wNGMtNjkuNzYyLTY5Ljc2Ni0xNjQuMzgtMTA4Ljk2LTI2My4wNC0xMDguOTZ6bTAgNjcyYy03OS41NjYgMC0xNTUuODctMzEuNjA1LTIxMi4xMy04Ny44NjctNTYuMjYyLTU2LjI2Mi04Ny44NjctMTMyLjU3LTg3Ljg2Ny0yMTIuMTNzMzEuNjA1LTE1NS44NyA4Ny44NjctMjEyLjEzYzU2LjI2Mi01Ni4yNjIgMTMyLjU3LTg3Ljg2NyAyMTIuMTMtODcuODY3czE1NS44NyAzMS42MDUgMjEyLjEzIDg3Ljg2N2M1Ni4yNjIgNTYuMjYyIDg3Ljg2NyAxMzIuNTcgODcuODY3IDIxMi4xM3MtMzEuNjA1IDE1NS44Ny04Ny44NjcgMjEyLjEzYy01Ni4yNjIgNTYuMjYyLTEzMi41NyA4Ny44NjctMjEyLjEzIDg3Ljg2N3oiLz4KPC9zdmc+Cg==); }
.dlg--cfm.is-kind-success .cfm-icon { --cfm-icon: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNNC41IDEyLjc1bDYgNiA5LTEzLjUiLz48L3N2Zz4K); }
.dlg--cfm.is-kind-error .cfm-icon,
.dlg--cfm.is-danger .cfm-icon { --cfm-icon: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIwMHB0IiBoZWlnaHQ9IjEyMDBwdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTYxMi45NiAyMjhjLTMxLjAyIDAuMDE5NTMxLTYwLjA4MiAxNS4xNTYtNzcuODgzIDQwLjU1OWwtMjE3LjkyIDMxMS4yOGMtMTEuMTk5IDE1Ljk1Ny0xNy4xOTEgMzQuOTg0LTE3LjE2IDU0LjQ4IDAuMDMxMjUgMjUuODk1IDEwLjMzMiA1MC43MjMgMjguNjQ1IDY5LjAzNXM0My4xNDEgMjguNjEzIDY5LjAzNSAyOC42NDVoOTQuMzJ2MTQ0Ljk2Yy0wLjAwMzkwNiAyNy4xMzMgMTEuNTk0IDUyLjk3NyAzMS44NjcgNzEuMDEyIDIwLjI3IDE4LjAzNSA0Ny4yODUgMjYuNTQ3IDc0LjIzNCAyMy4zODcgMjYuOTUzLTMuMTU2MiA1MS4yNjYtMTcuNjg0IDY2LjgyLTM5LjkxOGwyMTcuOTItMzExLjI4YzExLjE5OS0xNS45NTcgMTcuMTkxLTM0Ljk4NCAxNy4xNi01NC40OC0wLjAzMTI1LTI1Ljg5NS0xMC4zMzItNTAuNzIzLTI4LjY0NS02OS4wMzVzLTQzLjE0MS0yOC42MTMtNjkuMDM1LTI4LjY0NWgtOTQuMzJ2LTE0NC45NmMtMC4wMzEyNS0yNS4xOTUtMTAuMDU1LTQ5LjM1Mi0yNy44NzEtNjcuMTY4cy00MS45NzMtMjcuODQtNjcuMTY4LTI3Ljg3MXptMTg3LjU2IDMxMmM1LjAzNTItMC4xMTMyOCAxMCAxLjE2MDIgMTQuMzU5IDMuNjc5NyA0LjM1OTQgMi41MTU2IDcuOTQ1MyA2LjE4MzYgMTAuMzU5IDEwLjYwMiAxLjkxMDIgMy43NjE3IDIuNzkzIDcuOTYwOSAyLjU2MjUgMTIuMTc2LTAuMjMwNDcgNC4yMTQ4LTEuNTcwMyA4LjI5My0zLjg3ODkgMTEuODI0bC0yMTguMDQgMzExLjg4Yy0yLjkxOCA0LjE3NTgtNy4xNDA2IDcuMjY1Ni0xMi4wMDggOC43ODUyLTQuODYzMyAxLjUxOTUtMTAuMDk0IDEuMzgyOC0xNC44NzEtMC4zODY3Mi00LjQ4MDUtMS44MTI1LTguMzEyNS00LjkzMzYtMTAuOTg4LTguOTYwOS0yLjY3NTgtNC4wMjM0LTQuMDc0Mi04Ljc2NTYtNC4wMTE3LTEzLjU5OHYtMTkyYzAtNi4zNjMzLTIuNTI3My0xMi40NjktNy4wMzEyLTE2Ljk2OS00LjUtNC41MDM5LTEwLjYwNS03LjAzMTItMTYuOTY5LTcuMDMxMmgtMTQwLjUyYy01LjAzNTIgMC4xMTMyOC0xMC0xLjE2MDItMTQuMzU5LTMuNjc5Ny00LjM1OTQtMi41MTU2LTcuOTQ1My02LjE4MzYtMTAuMzU5LTEwLjYwMi0xLjkxMDItMy43NjE3LTIuNzkzLTcuOTYwOS0yLjU2MjUtMTIuMTc2IDAuMjMwNDctNC4yMTQ4IDEuNTcwMy04LjI5MyAzLjg3ODktMTEuODI0bDIxOC4wNC0zMTEuODhjMi45MTgtNC4xNzU4IDcuMTQwNi03LjI2NTYgMTIuMDA4LTguNzg1MiA0Ljg2MzMtMS41MTk1IDEwLjA5NC0xLjM4MjggMTQuODcxIDAuMzg2NzIgNC40ODA1IDEuODEyNSA4LjMxMjUgNC45MzM2IDEwLjk4OCA4Ljk2MDkgMi42NzU4IDQuMDIzNCA0LjA3NDIgOC43NjU2IDQuMDExNyAxMy41OTh2MTkyYzAgNi4zNjMzIDIuNTI3MyAxMi40NjkgNy4wMzEyIDE2Ljk2OSA0LjUgNC41MDM5IDEwLjYwNSA3LjAzMTIgMTYuOTY5IDcuMDMxMnoiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg==); }
/* Error/danger = fixed red state, on every theme (the .dlg-box--error reds). */
.dlg--cfm.is-kind-error .cfm-disc,
.dlg--cfm.is-danger .cfm-disc { background: rgba(248, 113, 113, 0.12); }
.dlg--cfm.is-kind-error .cfm-icon,
.dlg--cfm.is-danger .cfm-icon { background: #f87171; }

.dlg--cfm .cfm-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--vt, #fff);
}
.dlg--cfm .cfm-msg {
  margin: 4px 0 0; /* breathing room atop the base 16px grid gap */
  max-width: 100%;
  font-size: 14px;
  line-height: 1.5;
  color: var(--vtext, var(--color-gray-200));
  white-space: pre-line;
  overflow-wrap: break-word;
}

.dlg--cfm .cfm-link {
  font-size: 14px;
  color: var(--vc, var(--color-teal-300));
  text-decoration: underline;
  text-underline-offset: 3px;
}
.dlg--cfm .cfm-link::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 4px;
  vertical-align: -2px;
  background: currentColor;
  -webkit-mask: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNyAxNyAxNyA3Ii8+PHBhdGggZD0iTTggN2g5djkiLz48L3N2Zz4K) center / contain no-repeat;
  mask: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNyAxNyAxNyA3Ii8+PHBhdGggZD0iTTggN2g5djkiLz48L3N2Zz4K) center / contain no-repeat;
}

/* Prompt input row (hidden except for prompt()). */
.dlg--cfm .cfm-input-row { justify-self: stretch; }
.dlg--cfm .cfm-input {
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  background: var(--vc-7, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--vc-15, rgba(255, 255, 255, 0.10));
  border-radius: 10px;
  color: var(--vtext, var(--color-gray-200));
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  padding: 10px 12px;
}
.dlg--cfm .cfm-input:focus {
  outline: none;
  border-color: var(--vc, var(--color-teal-300));
}

/* Borderless centered footer: two big action circles. */
.dlg--cfm .cfm-foot {
  justify-content: center;
  gap: 36px;
  border-top: 0;
  padding: 14px 20px 22px;
}
.fs-dialog .cfm-act,
.dlg--acts .cfm-act,
.dlg--cfm .cfm-act {
  position: relative;
  width: auto;      /* Pico neutralizers: backstage styles bare <button> */
  margin: 0;
  box-shadow: none;
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
  display: grid;
  gap: 6px;
  justify-items: center;
}
.fs-dialog .cfm-act-disc,
.dlg--acts .cfm-act-disc,
.dlg--cfm .cfm-act-disc {
  width: 54px;
  height: 54px;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  transition: transform 0.15s ease;
}
.fs-dialog .cfm-act-icon,
.dlg--acts .cfm-act-icon,
.dlg--cfm .cfm-act-icon {
  width: 22px;
  height: 22px;
  -webkit-mask: var(--cfm-icon) center / contain no-repeat;
  mask: var(--cfm-icon) center / contain no-repeat;
}
.fs-dialog .cfm-act--confirm .cfm-act-disc,
.dlg--acts .cfm-act--confirm .cfm-act-disc,
.dlg--cfm .cfm-act--confirm .cfm-act-disc { background: var(--vc, var(--color-teal-300)); }
.fs-dialog .cfm-act--confirm .cfm-act-icon,
.dlg--acts .cfm-act--confirm .cfm-act-icon,
.dlg--cfm .cfm-act--confirm .cfm-act-icon {
  --cfm-icon: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNNC41IDEyLjc1bDYgNiA5LTEzLjUiLz48L3N2Zz4K);
  background: var(--vc-text, #0a0b0e);
}
.fs-dialog .cfm-act--cancel .cfm-act-disc,
.dlg--acts .cfm-act--cancel .cfm-act-disc,
.dlg--cfm .cfm-act--cancel .cfm-act-disc {
  border: 1.5px solid var(--vc-25, rgba(255, 255, 255, 0.16));
  background: transparent;
}
.fs-dialog .cfm-act--cancel .cfm-act-icon,
.dlg--acts .cfm-act--cancel .cfm-act-icon,
.dlg--cfm .cfm-act--cancel .cfm-act-icon {
  --cfm-icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAwIDEyMDAiPgogPHBhdGggZD0ibTg3Ny40NCA4MjYuNTYtMjI2LjU2LTIyNi41NiAyMjYuNTYtMjI2LjU2YzYuODM5OC02LjgzOTggMTAuNTU5LTE1Ljg0IDEwLjU1OS0yNS40NDFzLTMuNzE4OC0xOC42MDItMTAuNTU5LTI1LjQ0MWMtMTQuMDM5LTE0LjAzOS0zNi44NC0xNC4wMzktNTAuODc5IDBsLTIyNi41NiAyMjYuNTYtMjI2LjU2LTIyNi41NmMtMTQuMDM5LTE0LjAzOS0zNi44NC0xNC4wMzktNTAuODc5IDAtNi44Mzk4IDYuODM5OC0xMC41NTkgMTUuODQtMTAuNTU5IDI1LjQ0MXMzLjcxODggMTguNjAyIDEwLjU1OSAyNS40NDFsMjI2LjU2IDIyNi41Ni0yMjYuNTYgMjI2LjU2Yy02LjgzOTggNi44Mzk4LTEwLjU1OSAxNS44NC0xMC41NTkgMjUuNDQxczMuNzE4OCAxOC42MDIgMTAuNTU5IDI1LjQ0MWMxMy41NTkgMTMuNTU5IDM3LjMyIDEzLjU1OSA1MC44NzkgMGwyMjYuNTYtMjI2LjU2IDIyNi41NiAyMjYuNTZjMTMuNTU5IDEzLjU1OSAzNy4zMiAxMy41NTkgNTAuODc5IDAgNi44Mzk4LTYuODM5OCAxMC41NTktMTUuODQgMTAuNTU5LTI1LjQ0MXMtMy43MTg4LTE4LjYwMi0xMC41NTktMjUuNDQxeiIvPgo8L3N2Zz4K);
  background: var(--vtext, var(--color-gray-200));
}
.fs-dialog .cfm-act--cancel:hover .cfm-act-disc,
.dlg--acts .cfm-act--cancel:hover .cfm-act-disc,
.dlg--cfm .cfm-act--cancel:hover .cfm-act-disc { border-color: var(--vc, rgba(255, 255, 255, 0.35)); }
/* Destructive confirm: the ✓ goes red — state, never themed. */
.dlg--cfm.is-danger .cfm-act--confirm .cfm-act-disc { background: #f87171; }
.dlg--cfm.is-danger .cfm-act--confirm .cfm-act-icon { background: #2b0d0d; }

.fs-dialog .cfm-act:hover .cfm-act-disc,
.dlg--acts .cfm-act:hover .cfm-act-disc,
.dlg--cfm .cfm-act:hover .cfm-act-disc { transform: scale(1.06); }
.fs-dialog .cfm-act:active .cfm-act-disc,
.dlg--acts .cfm-act:active .cfm-act-disc,
.dlg--cfm .cfm-act:active .cfm-act-disc { transform: scale(0.94); }
.fs-dialog .cfm-act:focus-visible,
.dlg--acts .cfm-act:focus-visible,
.dlg--cfm .cfm-act:focus-visible { outline: none; }
.fs-dialog .cfm-act:focus-visible .cfm-act-disc,
.dlg--acts .cfm-act:focus-visible .cfm-act-disc,
.dlg--cfm .cfm-act:focus-visible .cfm-act-disc {
  outline: 2px solid var(--vc, var(--color-teal-300));
  outline-offset: 3px;
}

/* Disc footers (dlg--acts: the composer's source and schedule dialogs and
   the fieldDialog.js prompts): wider spacing, an optional text link on the
   left (remove), and a dimmed, still confirm while a required field is
   empty. The disabled rules sit after hover/active so they win the tie. */
.dlg--acts .dlg-foot { gap: 24px; }
.dlg-foot-link {
  width: auto;      /* Pico neutralizers: backstage styles bare <button> */
  margin: 0 auto 0 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: none;
  font-family: inherit;
  font-size: 13px;
  color: var(--v-muted, var(--color-gray-400));
  cursor: pointer;
}
.dlg-foot-link:hover { color: var(--vtext, var(--color-gray-100)); }
.dlg--acts .cfm-act:disabled { opacity: 0.35; cursor: default; }
.dlg--acts .cfm-act:disabled .cfm-act-disc { transform: none; }

/* Icon-only buttons: the label is real, visually-hidden text. */
.fs-dialog .cfm-act-label,
.dlg--acts .cfm-act-label,
.dlg--cfm .cfm-act-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Springy pop-in — DESKTOP ONLY (see header: the sheet's drag controller
   owns the panel transform under 640px). */
@media (min-width: 640px) and (prefers-reduced-motion: no-preference) {
  @keyframes cfm-pop {
    0% { opacity: 0; transform: scale(0.92) translateY(10px); }
    60% { opacity: 1; transform: scale(1.02) translateY(0); }
    100% { opacity: 1; transform: none; }
  }
  .dlg--cfm.is-open .dlg-panel {
    animation: cfm-pop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
  }
}

/* Icon wiggle: safe at all widths (never touches the panel). */
@media (prefers-reduced-motion: no-preference) {
  @keyframes cfm-nudge {
    0%, 100% { transform: rotate(0); }
    25% { transform: rotate(-8deg); }
    60% { transform: rotate(8deg); }
  }
  .dlg--cfm.is-open .cfm-disc { animation: cfm-nudge 0.5s ease 0.15s 1; }
}

@media (max-width: 639px) {
  .dlg--cfm .cfm-foot { padding-bottom: 28px; } /* thumb room over the home indicator */
  .fs-dialog .cfm-act-disc,
  .dlg--acts .cfm-act-disc,
  .dlg--cfm .cfm-act-disc { width: 58px; height: 58px; }
}


/*# sourceMappingURL=confirmDialogCss.73a437d02aef8b44f48f.css.map*/