.modal-backdrop{padding:var(--space-4);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);animation:fadeIn var(--transition-base);background:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:calc(100vh - var(--space-8));width:100%;animation:slideUp var(--transition-base);outline:none;flex-direction:column;display:flex;position:relative}.modal--sm{max-width:400px}.modal--md{max-width:560px}.modal--lg{max-width:720px}.modal--xl{max-width:960px}.modal--full{max-width:none;height:calc(100vh - var(--space-8));margin:var(--space-4)}.modal__header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);display:flex}.modal__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);line-height:var(--leading-tight);margin:0}.modal__close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.modal__close:hover{background:var(--background);color:var(--text-primary)}.modal__close:focus-visible{outline:2px solid var(--secondary-blue);outline-offset:2px}.modal__body{padding:var(--space-5);flex:1;overflow-y:auto}.modal__footer{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);display:flex}.modal__footer--left{justify-content:flex-start}.modal__footer--center{justify-content:center}.modal__footer--right{justify-content:flex-end}.modal__footer--space-between{justify-content:space-between}@media (width<=768px){.modal-backdrop{align-items:flex-end;padding:0}.modal{max-height:90vh;animation:slideUp var(--transition-base);border-bottom-right-radius:0;border-bottom-left-radius:0}.modal--full{border-radius:0;height:100vh;max-height:100vh;margin:0}.modal__header{padding:var(--space-3) var(--space-4)}.modal__body{padding:var(--space-4)}.modal__footer{padding:var(--space-3) var(--space-4);flex-wrap:wrap}.modal__footer button{flex:1;min-width:120px}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}
