/* ── Dialog primitive ───────────────────────────────────────────── */ .ui-dialog-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.55); backdrop-filter: var(--glass-blur-sm); -webkit-backdrop-filter: var(--glass-blur-sm); display: flex; align-items: center; justify-content: center; padding: var(--space-6); z-index: var(--z-dialog); animation: ui-dialog-fade var(--dur-base) var(--ease-out); } @keyframes ui-dialog-fade { from { opacity: 0; } to { opacity: 1; } } @keyframes ui-dialog-pop { from { opacity: 0; transform: translate(-50%, -50%) translateY(8px) scale(0.98); } to { opacity: 1; transform: translate(-50%, -50%) translateY(0) scale(1); } } .ui-dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: calc(var(--z-dialog) + 1); background: linear-gradient(160deg, rgba(47, 41, 39, 0.95) 0%, rgba(32, 28, 27, 0.95) 100%); backdrop-filter: var(--glass-blur-md); -webkit-backdrop-filter: var(--glass-blur-md); border: 1px solid var(--color-border-warm); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); max-height: calc(100vh - var(--space-7) * 2); display: flex; flex-direction: column; overflow: hidden; width: 100%; animation: ui-dialog-pop var(--dur-base) var(--ease-spring); } /* sizes */ .ui-dialog--sm { max-width: 380px; } .ui-dialog--md { max-width: 560px; } .ui-dialog--lg { max-width: 780px; } .ui-dialog--xl { max-width: 1080px; } .ui-dialog__header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--color-border); gap: var(--space-4); flex-shrink: 0; } .ui-dialog__title { margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: var(--weight-bold); letter-spacing: -0.01em; color: var(--color-fg); } .ui-dialog__body { padding: var(--space-6); overflow-y: auto; min-height: 0; } .ui-dialog__footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-3); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--color-border); flex-shrink: 0; }