/* ILPLoader: 로딩 표시(로고 + 스피너). 사용법은 ILP/assets/js/ilp-loader.js 참고.
   스피너는 Bootstrap 5 .spinner-border 를 쓰므로 bootstrap.min.css 뒤에 로드한다. */
.ilp-loader-host { position: relative; }

.ilp-loader {
    position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1000;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #fff;
    opacity: 1; transition: opacity .2s ease;
}
.ilp-loader.is-done { opacity: 0; pointer-events: none; }

/* 전체 페이지용 */
.ilp-loader--page { position: fixed; z-index: 99999; }

.ilp-loader__logo {
    display: block; width: 122px; height: 32px; margin: 0 0 16px;
    background: url('/ILP/assets/images/home/spr_basic.png') no-repeat -10px -10px;
}
.ilp-loader__text { margin-top: 8px; font-size: 12px; color: #747474; }
/* 연한 빨강 링 위에 진한 빨강 호가 도는 스피너(BS5 spinner-border 의 회전 애니메이션 재사용) */
.ilp-loader .spinner-border {
    width: 2.5rem; height: 2.5rem; border-width: .25rem; border-style: solid;
    border-color: rgba(237, 29, 36, .18); border-top-color: #ed1d24;
    border-radius: 50% !important; /* app.css 의 `* { border-radius: 0 !important }` 를 덮어야 원이 된다 */
}

/* 버튼으로 일어나는 ajax 용 화면 전체 반투명 덮개(ILPLoader.init 의 userAjax). BS 모달(z-index 1055) 위.
   누르는 순간(pointerdown) 미리 만들어 두고, opacity 페이드인은 합성 스레드에서 돌기 때문에 동기 ajax 로 메인 스레드가
   막혀도 보인다. ajax 가 없는 버튼에서는 보이기 전에(0.12초 지연) 걷힌다.
   눌린 상태에서는 pointer-events:none 이어야 한다(덮개가 mouseup 을 가로채면 click 이 버튼에 가지 않는다). */
.ilp-loader--press {
    position: fixed; z-index: 99998; background: rgba(255, 255, 255, .6);
    pointer-events: none; opacity: 0; transition: none;
    animation: ilp-loader-in .1s ease .12s forwards;
}
.ilp-loader--press.is-active { pointer-events: auto; }
@keyframes ilp-loader-in { from { opacity: 0; } to { opacity: 1; } }

/* 작은 컨테이너(모달 등): 로고 없이 스피너만 */
.ilp-loader--sm .ilp-loader__logo { display: none; }

@media print { .ilp-loader { display: none; } }
