.base-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.base-modal-overlay.base-modal--animated{animation:baseModalFadeIn .2s ease-out}@keyframes baseModalFadeIn{0%{opacity:0}to{opacity:1}}.base-modal-content{background:white;border-radius:16px;width:100%;max-height:90vh;overflow-y:auto;position:relative;display:flex;flex-direction:column}.base-modal-content.base-modal--animated{animation:baseModalSlideUp .2s ease-out}@keyframes baseModalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.base-modal--sm{max-width:360px}.base-modal--md{max-width:500px}.base-modal--lg{max-width:700px}.base-modal--full{max-width:100%;width:100%;height:100%;max-height:100%;border-radius:0}.base-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--gray-200,#e5e7eb);flex-shrink:0}.base-modal-header:has(.base-modal-title):not(:has(.base-modal-close)){justify-content:flex-start}.base-modal-header:has(.base-modal-close):not(:has(.base-modal-title)){justify-content:flex-end;border-bottom:none;padding-bottom:0}.base-modal-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:var(--gray-800,#1f2937);margin:0;flex:1}.base-modal-close{background:none;border:none;font-size:24px;color:var(--gray-500,#6b7280);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s;flex-shrink:0;margin-left:auto}.base-modal-close:hover{background:var(--gray-100,#f3f4f6);color:var(--gray-800,#1f2937)}.base-modal-close:focus{outline:2px solid var(--color-link,#6366f1);outline-offset:2px}.base-modal-body{padding:20px;flex:1;overflow-y:auto}.base-modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--gray-200,#e5e7eb);flex-shrink:0}@media (max-width:640px){.base-modal-overlay{padding:16px}.base-modal--lg,.base-modal--md,.base-modal--sm,.base-modal-content{max-width:100%}.base-modal-header{padding:16px}.base-modal-title{font-size:18px}.base-modal-body{padding:16px}.base-modal-footer{padding:12px 16px}.base-modal--full{border-radius:0}}@media (prefers-reduced-motion:reduce){.base-modal-content.base-modal--animated,.base-modal-overlay.base-modal--animated{animation:none}}