/* Native <dialog> supplies focus, inert background, Escape and focus return.
   Desktop surfaces follow AutoStudio; narrow layouts reuse its typography and spacing tokens. */
dialog.as-modal-surface{position:fixed;inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:none;width:var(--asft-width-cc64b045ce);max-height:var(--as-modal-max-height);height:fit-content;padding:var(--as-modal-padding-confirm);border-radius:var(--as-modal-radius-confirm);font-family:var(--as-font-main)}
dialog.as-modal-surface::backdrop{background:var(--as-modal-backdrop);backdrop-filter:blur(var(--as-modal-blur));-webkit-backdrop-filter:blur(var(--as-modal-blur))}
dialog.as-modal-surface .as-modal-primary,dialog.as-modal-surface .as-modal-secondary,dialog.as-modal-surface .as-alert-primary,dialog.as-modal-surface .as-modal-close{text-align:center;text-decoration:none;white-space:normal;cursor:pointer}
dialog.as-modal-surface a.as-modal-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--asft-gap-38cb6b4a22)}
dialog.as-modal-surface .as-modal-close{padding:0}
.as-alert-subject,.as-alert-message{overflow-wrap:anywhere;white-space:pre-wrap}
.as-alert-icon svg{fill:currentColor}
#confirm-title:focus{outline:none}
#policy-title:focus{outline:none}
#policy-title{overflow-wrap:anywhere}
#policy-text{overflow-wrap:break-word}
dialog.as-edit-dialog{padding:var(--asft-padding-a0a3565c71)}
.as-dialog-title{margin:var(--asft-margin-6674fc873b);color:var(--as-modal-title-color);font-size:var(--as-modal-title-size);font-weight:var(--as-modal-title-weight);line-height:var(--as-modal-title-line-height);letter-spacing:var(--as-modal-title-letter-spacing);overflow-wrap:anywhere}
.storage-field{display:block;color:var(--as-text-soft);font-size:var(--as-type-control);font-weight:var(--as-font-weight-bold);line-height:var(--asft-line-height-98737cf896);text-align:left}
.storage-field input{display:block;width:100%;height:var(--asft-height-a7d674f814);margin:var(--asft-margin-9cc92e0866);padding:var(--asft-padding-6b21e42df4);background:var(--as-index-control-bg);border:var(--asft-border-b52bfbbfdc);border-radius:var(--as-radius-xl);color:var(--as-text);font-family:inherit;font-size:var(--as-type-section);font-weight:var(--as-font-weight-regular)}
.storage-field input:focus-visible{outline:0;border-color:var(--as-index-focus-border);box-shadow:var(--as-index-focus-ring)}
dialog.as-modal-surface .error{margin:var(--asft-margin-53d85a284b);min-height:0;color:var(--as-danger);font-size:var(--as-type-body);line-height:var(--asft-line-height-1a948f1b43)}
dialog.as-modal-surface .error:empty{display:none}
dialog.as-preview-dialog{width:var(--asft-width-cf67e35f9f);padding:var(--asft-padding-a0a3565c71)}
.preview-heading{display:block;margin:var(--asft-margin-85e7e92f19)}.preview-heading .as-dialog-title{margin:0}
dialog .preview-heading h2{font-size:var(--as-modal-title-size);font-weight:var(--as-modal-title-weight);line-height:var(--as-modal-title-line-height)}
#storage-preview-body img,#storage-preview-body video{display:block;max-width:100%;max-height:var(--asft-max-height-3dec42da5b);margin:var(--asft-margin-0f308cfb7e);border-radius:var(--as-radius-lg);object-fit:contain}
#storage-preview-body audio{display:block;width:100%;margin:var(--asft-margin-bf4e91a4dd)}
#storage-preview-body pre{margin:0;padding:var(--asft-padding-9bf0c8e6e7);border:var(--asft-border-b52bfbbfdc);border-radius:var(--as-radius-xl);background:var(--as-index-control-bg);font-family:var(--as-font-monospace);font-size:var(--as-type-body);font-weight:var(--as-font-weight-regular);line-height:var(--asft-line-height-9e0b4cf467);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}
#storage-preview-body p{font-size:var(--as-type-control);line-height:var(--asft-line-height-6918de1a26);color:var(--as-modal-text-color)}
.as-dialog-actions{display:grid;margin-top:var(--asft-margin-top-2793cbc214)}
#policy-dialog.as-modal-surface{width:var(--asft-width-2e3ac6fa09);padding:var(--as-modal-padding-policy);max-height:var(--as-modal-max-height)}
#policy-version{font-size:var(--as-type-xs);line-height:var(--asft-line-height-1a948f1b43);margin-top:var(--as-modal-policy-paragraph-gap)}
.as-policy-card .as-modal-primary{margin-top:var(--asft-margin-top-c80bfee312)}
dialog.as-contact-card{width:var(--asft-width-1b06e66195);padding:var(--as-modal-padding-contact);border-radius:var(--as-modal-radius-contact)}
.as-contact-row{text-decoration:none}.as-contact-row:hover{border-color:var(--as-index-focus-border)}
.qr-help{font-size:var(--as-type-control);line-height:var(--asft-line-height-6918de1a26);color:var(--as-modal-text-color);margin:var(--asft-margin-6674fc873b);overflow-wrap:anywhere}
.qr-image-wrap{display:flex;justify-content:center;margin:var(--asft-margin-bf4e91a4dd)}
#qr-login-image{max-width:100%;height:auto;aspect-ratio:1;background:var(--as-text-soft)}
.qr-code{font-size:var(--asft-font-size-9d9bfb3528);font-weight:var(--as-font-weight-black);letter-spacing:var(--asft-letter-spacing-637e0d6669);color:var(--as-cta);text-align:center;margin:var(--asft-margin-bf4e91a4dd)}
#qr-login-renew{width:100%}
@media(width<=760px){
 dialog.as-edit-dialog{width:calc(100vw - 2 * var(--as-modal-safe-padding));max-height:var(--as-modal-max-height);padding:var(--asft-padding-acec20d4f0)}
 dialog.as-preview-dialog{width:calc(100vw - 2 * var(--as-modal-safe-padding));max-height:var(--as-modal-max-height);padding:var(--asft-padding-5a2a3921b9)}
 .as-edit-dialog .as-alert-actions{grid-template-columns:1fr;gap:var(--asft-gap-7769e81702);margin-top:var(--asft-margin-top-48984c3d28);padding-top:var(--asft-padding-top-5d6c43977e)}
 .as-edit-dialog .as-alert-actions .as-modal-secondary{order:2}.as-edit-dialog .as-alert-actions .as-modal-primary{order:1}
 .storage-field input{font-size:var(--as-type-control);height:var(--asft-height-7d2476403f)}.storage-field{font-size:var(--as-type-body)}
 dialog.as-contact-card{padding:var(--asft-padding-5a2a3921b9)}
 .as-contact-head{grid-template-columns:1fr;padding-right:0}.as-contact-head h2{overflow-wrap:normal}
 .as-contact-row{grid-template-columns:var(--as-studio-icon-size) minmax(0,1fr)}
 .as-contact-row-value{overflow-wrap:anywhere}.as-contact-row-text{min-width:0}
 .as-contact-qr{max-width:100%;height:auto;aspect-ratio:1}
 .preview-heading{margin-right:var(--asft-margin-right-9d9bfb3528)}#storage-preview-body pre{padding:var(--asft-padding-09f97395c8);font-size:var(--as-type-xs)}
}

/* Long filenames retain their full accessible name without consuming the preview. */
#storage-preview-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}

@media(width<=360px){dialog.as-contact-card{width:calc(100vw - var(--as-modal-text-gap));padding-inline:var(--as-modal-text-gap)}}

/* QR uses the shared edit surface and alert action components, not a contact layout. */
.as-qr-dialog:has(.as-modal-close) .as-dialog-title{padding-right:calc(var(--as-modal-close-size) + var(--as-modal-text-gap))}
.as-qr-dialog .qr-help{margin:0;line-height:var(--as-modal-text-line-height)}
.as-qr-dialog .qr-help + .qr-help{margin-top:var(--as-modal-text-gap)}
.as-qr-dialog .qr-help:empty,.as-qr-dialog .qr-code:empty,.as-qr-dialog .qr-image-wrap:has(img[hidden]){display:none}
.as-qr-dialog .qr-image-wrap{margin:var(--asft-margin-bf4e91a4dd)}
.as-qr-dialog #qr-login-image{display:block;width:var(--as-modal-contact-qr-size);max-width:100%;height:auto;object-fit:contain}
.as-qr-dialog #qr-login-image[hidden]{display:none}
.as-qr-dialog .qr-code + .qr-help{margin-top:var(--as-modal-text-gap)}
.as-qr-dialog #qr-scan-login{margin-top:var(--as-modal-text-gap)}

/* Keep canonical policy type sizes; provide enough reading width on a phone. */
@media(width<=760px){#policy-dialog.as-modal-surface{width:calc(100vw - 2 * var(--as-modal-text-gap));padding:var(--asft-padding-5a2a3921b9)}}

@media(width<=360px){#policy-dialog.as-modal-surface{padding-inline:var(--as-modal-text-gap)}}
