.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:90;opacity:0;animation:fadeIn .3s forwards}.modal-overlay.closing{animation:fadeOut .3s forwards}.modal{position:relative;background-color:var(--color-surface-100);border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1);max-height:98vh;max-width:98vw;display:flex;flex-direction:column;overflow:hidden;z-index:1;opacity:0;transform:scale(.9);animation:scaleIn .3s forwards}.modal.closing{animation:scaleOut .3s forwards}.modal.transitioning .modal-content{opacity:0;transition:opacity .3s ease}.modal.small{width:300px}.modal.medium{width:500px}.modal.large{width:90vw;height:90vh}.modal .modal-content{position:relative;z-index:1;flex:1;overflow:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;color:var(--text-primary)}.modal-header.overlay{position:fixed;top:0;left:0;right:0;z-index:10}.modal-header .header-left{flex:1}.modal-header .header-actions{display:flex;align-items:center;gap:.5rem;z-index:11;position:relative}.modal-header .header-actions .close-button,.modal-header .header-actions .info-button{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:.5rem;cursor:pointer;color:var(--color-icon);opacity:.8;transition:opacity .2s ease;z-index:12}.modal-header .header-actions .close-button:hover,.modal-header .header-actions .info-button:hover{opacity:1}.modal-header .header-actions .close-button svg,.modal-header .header-actions .info-button svg{width:20px;height:20px}.modal-header h2{color:var(--text-primary);margin:0;font-size:1.5rem}.modal-header button{background:var(--color-surface-200);color:var(--color-icon-secondary);border:none;font-size:1rem;cursor:pointer}.modal-header .close-button{margin-left:auto}.modal-header .info-button{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:.5rem;cursor:pointer;color:var(--color-icon-secondary)}.modal-header .info-button:hover{color:var(--color-icon-primary)}.modal-header .info-button svg{width:20px;height:20px}.modal-header{z-index:2}.modal-content{flex-grow:1;overflow-y:auto}.modal-content.overlay-header{padding-top:4rem}.modal-footer{padding:1rem;border-top:1px solid #e2e8f0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.modal-info-drawer{position:absolute;top:0;right:-300px;height:100%;width:300px;background:var(--color-surface-100);box-shadow:-2px 0 8px rgba(0,0,0,.1);transition:right .3s ease;z-index:1100;overflow:hidden}.modal-info-drawer.open{right:0}.modal-info-drawer .drawer-header{position:sticky;top:0;background:var(--color-surface-100);border-bottom:1px solid var(--color-border);padding:1rem;display:flex;justify-content:space-between;align-items:center;z-index:2}.modal-info-drawer .drawer-header h3{margin:0;color:var(--text-primary)}.modal-info-drawer .drawer-content{height:calc(100% - 60px);overflow-y:auto;padding:1rem;color:var(--text-primary)}.modal-info-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:1050;opacity:0;pointer-events:none;transition:opacity .3s ease;visibility:hidden}.modal-info-backdrop.open{opacity:1;pointer-events:auto}