/* Full-viewport layer (figma Mask + Dialog 451:18655): mask + centered card. 24px of air on every side; the top/bottom widen to the frame's published top clearance (the macOS window strip) so a tall card stays clear of it. Cards size against this padding box: consumers cap growth with `max-height: 100%`, never their own viewport calc. */ .root { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: max(24px, var(--dsh-frame-top-clearance, 24px)) 24px; } /* User/spec mask: rgba(0,0,0,0.24) + blur(2px) via --dsw-alias-bg-mask-1 / --dsw-mask-blur (light); dark theme raises mask opacity. */ .mask { position: absolute; inset: 0; backdrop-filter: var(--dsw-mask-blur); } .mask::after { content: ''; position: absolute; inset: 0; background: var(--dsw-alias-bg-mask-1); animation: modalEnter var(--ds-transition-duration) var(--ds-ease-in-out); } /* Dialog card: r24, elevation-prominent, layer-2 fill, pb 24. */ .dialog { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 20px; width: min(380px, 100%); padding: 0 0 24px; overflow: hidden; border: 0; border-radius: 24px; background: var(--dsw-alias-bg-layer-2); box-shadow: var(--dsw-elevation-prominent); animation: modalEnter var(--ds-transition-duration) var(--ds-ease-in-out); } @keyframes modalEnter { from { opacity: 0; } to { opacity: 1; } } @media (prefers-reduced-motion: reduce) { .mask::after, .dialog { animation: none; } } .content { display: flex; flex-direction: column; width: 100%; } /* Header row (figma Title row): pad l24/t22/r14/b12, SPACE_BETWEEN — * title left, close button right. */ .header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 22px 14px 12px 24px; } .title { margin: 0; font-size: 16px; line-height: 24px; font-weight: 500; /* figma wt510, rendered 500 */ color: var(--dsw-alias-label-primary); } .close { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: none; border-radius: 8px; background: transparent; cursor: pointer; color: var(--dsw-alias-label-secondary); } .close:hover { background: var(--dsw-alias-interactive-bg-hover); } /* Description and body share the 332px content column (24px side pads). */ .description { margin: 0; padding: 0 24px; font-size: 14px; line-height: 22px; font-weight: 400; color: var(--dsw-alias-label-primary); } .body { display: flex; flex-direction: column; min-width: 0; margin-top: 20px; padding: 0 24px; } .footer { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 0 24px; }