.modal-backdrop{z-index:1000;padding:var(--spacing-4);animation:modal-backdrop-fade-in var(--transition-base)ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes modal-backdrop-fade-in{0%{opacity:0}to{opacity:1}}.modal{background-color:var(--color-bg-dark-700);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-height:calc(100vh - var(--spacing-8));animation:modal-slide-in var(--transition-base)ease-out;flex-direction:column;display:flex;position:relative}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-sm{max-width:400px}.modal-md{max-width:600px}.modal-lg{max-width:800px}.modal-xl{max-width:1200px}.modal-fullscreen{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100vh;margin:0}.modal-header{padding:var(--spacing-6);border-bottom:1px solid var(--color-border-primary);justify-content:space-between;align-items:center;gap:var(--spacing-4);display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);flex:1;margin:0}.modal-close{border-radius:var(--radius-md);width:32px;min-width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xl);transition:all var(--transition-fast);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{background-color:var(--color-background-secondary);color:var(--color-text-primary)}.modal-body{padding:var(--spacing-6);flex:1;overflow-y:auto}.modal-footer{padding:var(--spacing-6);border-top:1px solid var(--color-border-primary);justify-content:flex-end;align-items:center;gap:var(--spacing-3);display:flex}@media (max-width:768px){.modal-backdrop{align-items:flex-end;padding:0}.modal{max-height:90vh;animation:modal-slide-up var(--transition-base)ease-out;border-bottom-right-radius:0;border-bottom-left-radius:0}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-sm,.modal-md,.modal-lg,.modal-xl{max-width:100%}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-4)}}
