.modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal)}.modal-viewport{position:fixed;inset:0;z-index:calc(var(--z-modal) + 1);display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none}.modal{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--r-xl);max-height:calc(100vh - 48px);overflow:hidden;display:flex;flex-direction:column;max-width:100%}.modal--sm{width:min(440px,100%)}.modal--md{width:min(600px,100%)}.modal--lg{width:min(800px,100%)}.modal--xl{width:min(1000px,100%)}.modal--full{width:min(1200px,100%)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.modal__title{font-size:18px;font-weight:700;color:var(--text);margin:0}.modal__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);transition:var(--t);cursor:pointer;flex-shrink:0}.modal__close:hover{background:var(--red-dim);color:var(--red);border-color:var(--red)}.modal__body{padding:24px;overflow-y:auto;flex:1;min-height:0}@media(max-width:640px){.modal-viewport{align-items:flex-end;padding:0}.modal{border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:92vh;width:100%}}
