.modal-overlay{z-index:var(--z-modal);padding:var(--space-4);background-color:var(--color-overlay);-webkit-backdrop-filter:blur(2px);animation:modal-overlay-in var(--duration-base) var(--ease-standard);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);max-height:calc(100dvh - var(--space-8));animation:modal-content-in .22s var(--ease-standard);flex-direction:column;width:100%;display:flex;position:relative}.modal--sm{max-width:420px}.modal--md{max-width:600px}.modal--lg{max-width:760px}.modal__header{flex-direction:column;gap:4px;padding:28px 32px 0;display:flex}.modal__title{font-family:var(--font-sans);color:var(--color-ink-950);letter-spacing:-.015em;padding-right:40px;font-size:18px;font-weight:600;line-height:1.3}.modal__description{color:var(--color-text-secondary);font-size:14px;line-height:1.5}.modal__close{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--color-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;top:18px;right:18px}.modal__close:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.modal__body{flex:1;padding:24px 32px 28px;overflow-y:auto}.modal__footer{border-top:1px solid var(--color-border-light);justify-content:flex-end;align-items:center;gap:10px;padding:16px 32px;display:flex}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-content-in{0%{opacity:0;transform:scale(.98)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=640px){.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:90dvh;animation:.3s cubic-bezier(.16,1,.3,1) modal-slide-up}@keyframes modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}}
