.ui-modal__backdrop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-start; justify-content: center; background-color: rgba(38, 17, 74, 0.35); /* 공용 확인 창(.ui-confirm)과 같이 뒤를 가림 */ } /* 위에서 고정 거리 — 최대 높이일 때 가운데 자리에 윗변을 붙이고 아래로만 늘고 줆(찾기 칸이 안 움직임). 큰 창은 max-height 대신 --modal-max 를 줌. */ .ui-modal { display: flex; flex-direction: column; gap: var(--spacing-8); width: min(720px, 92vw); max-height: var(--modal-max, 80vh); margin-top: calc((100vh - var(--modal-max, 80vh)) / 2); padding: var(--spacing-16); border-radius: var(--radius-xl); border: 1px solid var(--color-border); background: var(--color-surface-raised); box-shadow: var(--shadow-lg); font-size: var(--text-body-sm); overflow: auto; } .ui-modal__top { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-8); } /* 머리 단추 자리(곁값 actions) — 제목이 남는 폭을 먹고 단추는 [닫기] 바로 왼쪽 */ .ui-modal__top > h3 { margin-right: auto; } .ui-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--spacing-8); } /* 큰 창(곁값 wide) — 화면 거의 꽉 · 몸 넘침만 스크롤. 화면별 클래스보다 앞서게 두 클래스 */ .ui-modal.ui-modal--wide { width: 96vw; height: 94vh; --modal-max: 94vh; overflow: hidden; } .ui-modal--wide > .ui-modal__body { flex: 1; min-height: 0; overflow: auto; } .ui-modal__body { display: flex; flex-direction: column; gap: var(--spacing-8); }