.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);background:#0006;justify-content:center;align-items:center;padding:1rem;animation:.15s linear backdrop-in;display:flex;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:none;width:100%;max-height:90vh;animation:modal-in .2s var(--ease-out);flex-direction:column;display:flex}@keyframes modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal--sm{max-width:400px}.modal--md{max-width:560px}.modal--lg{max-width:800px}.modal--xl{max-width:1120px}.modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal__title{color:var(--color-text);font-size:1.125rem;font-weight:700}.modal__close{color:var(--color-text-muted);border-radius:var(--radius-sm);width:40px;height:40px;transition:color .16s var(--ease-out);justify-content:center;align-items:center;padding:0;display:flex}@media (hover:hover){.modal__close:hover{color:var(--color-text)}}.modal__body{flex:1;padding:1.5rem;overflow-y:auto}.modal__form{display:contents}.modal__error{color:var(--color-error);margin:1rem 1.5rem 0}.modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}@media (width<=640px){.modal-backdrop{align-items:flex-end;padding:.5rem}.modal{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-md) var(--radius-md);max-height:calc(100dvh - 1rem)}.modal--sm,.modal--md,.modal--lg{max-width:none}.modal__header,.modal__body{padding:1rem}.modal__footer{flex-direction:column-reverse;align-items:stretch;padding:.875rem 1rem 1rem}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}
