/* Shared modal shell: dialog, blurred backdrop, card, close button, buttons and motion.
 * Any content can go inside (components/modal.mjs). Its tuning variables keep their original
 * --atlas-download-* names: the Design Studio saves modal settings on .atlas-download-modal, a class
 * every modal carries alongside .atlas-modal so they all match. Content styles are in download-modal.css. */
.atlas-modal{box-sizing:border-box;width:min(var(--atlas-download-modal-width,480px),calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:var(--atlas-download-modal-padding,40px);border:0;border-radius:var(--atlas-download-modal-radius,var(--atlas-card-radius,28px));background:var(--atlas-download-background,var(--ds-t-background,#fff));color:var(--ds-t-primary,rgba(17,17,17,.9));box-shadow:0 var(--atlas-download-shadow-y,24px) var(--atlas-download-shadow-blur,100px) var(--atlas-download-shadow-color,rgba(17,17,17,.14));overflow:auto;overscroll-behavior:contain;text-align:left}
.atlas-modal::backdrop{background:var(--atlas-download-backdrop-color,rgba(17,17,17,.22));backdrop-filter:blur(var(--atlas-download-backdrop-blur,8px));-webkit-backdrop-filter:blur(var(--atlas-download-backdrop-blur,8px))}
.atlas-modal[open]{animation:atlas-modal-enter var(--atlas-download-enter-duration,220ms) cubic-bezier(.2,.8,.2,1) both}
.atlas-modal[open]::backdrop{animation:atlas-modal-backdrop var(--atlas-download-enter-duration,220ms) ease-out both}
.atlas-modal[data-closing]{animation:atlas-modal-exit var(--atlas-download-exit-duration,160ms) ease-in both}
.atlas-modal[data-closing]::backdrop{animation:atlas-modal-backdrop var(--atlas-download-exit-duration,160ms) ease-in reverse both}
.atlas-modal *{box-sizing:border-box}
.atlas-modal [hidden]{display:none!important}
.atlas-modal-close{position:absolute;top:var(--atlas-download-close-inset,20px);right:var(--atlas-download-close-inset,20px);display:grid;place-items:center;width:var(--atlas-download-close-size,36px);height:var(--atlas-download-close-size,36px);padding:0;border:0;border-radius:var(--atlas-download-close-radius,50%);background:transparent;color:var(--atlas-download-secondary,var(--ds-t-secondary));cursor:pointer;transition:background 160ms,color 160ms}
.atlas-modal-close:hover{background:var(--atlas-download-close-background,var(--ds-t-card));color:var(--atlas-download-primary,var(--ds-t-primary))}
.atlas-modal-close:focus-visible{outline:2px solid var(--ds-t-super);outline-offset:3px}
.atlas-modal .atlas-action-button{--atlas-button-corner-radius:var(--atlas-download-button-radius,var(--atlas-button-radius,22px));width:100%;height:var(--atlas-download-button-height,52px);min-height:var(--atlas-download-button-height,52px);padding-inline:var(--atlas-download-button-padding,28px);background:var(--atlas-button-background,var(--atlas-download-button-background,var(--atlas-button-primary-background,var(--ds-t-super,#111))));color:var(--atlas-button-color,var(--atlas-download-button-color,var(--atlas-button-primary-color,#fff)))!important;cursor:pointer;transition:opacity 160ms,background 160ms}
.atlas-modal .atlas-action-button:disabled{opacity:var(--atlas-download-disabled-opacity,.25);cursor:default;pointer-events:none}
.atlas-modal .atlas-action-button[aria-busy=true]{opacity:var(--atlas-download-loading-opacity,.65);pointer-events:none}
@keyframes atlas-modal-enter{from{opacity:0;transform:translateY(var(--atlas-download-enter-offset,8px)) scale(var(--atlas-download-enter-scale,.97))}to{opacity:1;transform:none}}
@keyframes atlas-modal-exit{to{opacity:0;transform:translateY(var(--atlas-download-exit-offset,4px)) scale(var(--atlas-download-exit-scale,.98))}}
@keyframes atlas-modal-backdrop{from{opacity:0}to{opacity:1}}
@media(max-width:600px){.atlas-modal{padding:var(--atlas-download-mobile-padding-y,32px) var(--atlas-download-mobile-padding-x,24px)}.atlas-modal-close{top:var(--atlas-download-mobile-close-inset,16px);right:var(--atlas-download-mobile-close-inset,16px)}}
@media(prefers-reduced-motion:reduce){.atlas-modal,.atlas-modal::backdrop{animation:none!important}.atlas-modal *{transition:none!important}}
