/* =============================================================================
 * toastr-sonner.css  —  toastr 2.1.x 리스킨 (공장 현장 고가시성)
 * -----------------------------------------------------------------------------
 *  - 위치: 우상단(toast-top-right) 유지
 *  - 디자인: 타입별 진한 배경색(success=초록/error=빨강/warning=황색/info=파랑) + 흰 텍스트
 *            비타입(기본) 카드는 화이트 유지
 *  - 전역 공통: top.jsp / topPda.jsp / sb 현황판 등 toastr 사용처에서 공통 로드
 *  ※ 이 파일 단독으로 toastr 의 구조/위치/스타일을 전부 제공합니다.
 *    (기존 toastr.min.css 는 더 이상 로드하지 않음)
 * ========================================================================== */

/* 컨테이너 (오버레이) — toastr.min.css 가 제공하던 필수 구조를 자체 포함 -------- */
#toast-container {
    position: fixed;
    z-index: 999999;
    pointer-events: none;
}
#toast-container * { box-sizing: border-box; }

/* 위치 클래스 (toastr positionClass 옵션) ----------------------------------- */
#toast-container.toast-top-right    { top: 16px; right: 16px; }
#toast-container.toast-top-left     { top: 16px; left: 16px; }
#toast-container.toast-bottom-right { bottom: 16px; right: 16px; }
#toast-container.toast-bottom-left  { bottom: 16px; left: 16px; }
#toast-container.toast-top-center,
#toast-container.toast-bottom-center,
#toast-container.toast-top-full-width,
#toast-container.toast-bottom-full-width { right: 0; width: 100%; }
#toast-container.toast-top-center, #toast-container.toast-top-full-width { top: 0; }
#toast-container.toast-bottom-center, #toast-container.toast-bottom-full-width { bottom: 0; }

/* 토스트 카드 (기본 = 화이트) ------------------------------------------------ */
#toast-container > div {
    position: relative;
    pointer-events: auto;
    overflow: hidden;
    box-sizing: border-box;
    width: 400px;
    max-width: calc(100vw - 32px);
    margin: 0 0 14px;
    padding: 14px 20px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background-color: #ffffff;
    background-image: none !important;     /* toastr 기본 PNG 타입 아이콘 제거 */
    color: #18181b;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .18),
                0 1px 4px  rgba(0, 0, 0, .10);
    opacity: 1;
    font-family: inherit;
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    transition: box-shadow .15s ease;
}
#toast-container > div:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22),
                0 2px 8px  rgba(0, 0, 0, .12);
    opacity: 1;
    cursor: pointer;
}

/* 텍스트 --------------------------------------------------------------------- */
#toast-container > div .toast-title {
    margin: 0 0 3px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    color: #18181b;
    letter-spacing: -.01em;
}
#toast-container > div .toast-message {
    margin: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    color: #18181b;
    word-break: break-word;
}
#toast-container > div .toast-title + .toast-message {
    font-weight: 400;
    color: #52525b;
}
#toast-container > div a { color: #2563eb; text-decoration: none; }
#toast-container > div a:hover { text-decoration: underline; }

/* 닫기 버튼 ------------------------------------------------------------------ */
#toast-container > div .toast-close-button {
    position: absolute;
    top: 12px;
    right: 14px;
    float: none;
    width: 18px;
    height: 18px;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    color: #a1a1aa;
    text-shadow: none;
    opacity: .8;
}
#toast-container > div .toast-close-button:hover,
#toast-container > div .toast-close-button:focus {
    color: #3f3f46;
    opacity: 1;
}
#toast-container > div button.toast-close-button {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

/* 진행 바 -------------------------------------------------------------------- */
#toast-container > div .toast-progress {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 4px;
    background-color: rgba(0, 0, 0, .20);
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════════════════
 *  타입별 배경색 (공장 현장 고가시성) — 진한 배경 + 흰 텍스트 + 흰 아이콘
 * ═══════════════════════════════════════════════════════════════════════════ */
#toast-container > div.toast-success,
#toast-container > div.toast-error,
#toast-container > div.toast-warning,
#toast-container > div.toast-info {
    padding-left: 56px;
    border: none;
    color: #ffffff;
}

/* 타입 카드: 텍스트 흰색 재정의 */
#toast-container > div.toast-success .toast-title,
#toast-container > div.toast-error   .toast-title,
#toast-container > div.toast-warning .toast-title,
#toast-container > div.toast-info    .toast-title {
    color: #ffffff;
}
#toast-container > div.toast-success .toast-message,
#toast-container > div.toast-error   .toast-message,
#toast-container > div.toast-warning .toast-message,
#toast-container > div.toast-info    .toast-message {
    color: rgba(255, 255, 255, .92);
}
#toast-container > div.toast-success .toast-title + .toast-message,
#toast-container > div.toast-error   .toast-title + .toast-message,
#toast-container > div.toast-warning .toast-title + .toast-message,
#toast-container > div.toast-info    .toast-title + .toast-message {
    color: rgba(255, 255, 255, .85);
}

/* 타입 카드: 닫기 버튼 흰색 */
#toast-container > div.toast-success .toast-close-button,
#toast-container > div.toast-error   .toast-close-button,
#toast-container > div.toast-warning .toast-close-button,
#toast-container > div.toast-info    .toast-close-button {
    color: rgba(255, 255, 255, .80);
}
#toast-container > div.toast-success .toast-close-button:hover,
#toast-container > div.toast-error   .toast-close-button:hover,
#toast-container > div.toast-warning .toast-close-button:hover,
#toast-container > div.toast-info    .toast-close-button:hover {
    color: #ffffff;
    opacity: 1;
}

/* 타입 카드: 아이콘 공통 */
#toast-container > div.toast-success::before,
#toast-container > div.toast-error::before,
#toast-container > div.toast-warning::before,
#toast-container > div.toast-info::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px 24px;
}

/* success (초록) ------------------------------------------------------------- */
#toast-container > div.toast-success {
    background-color: #16a34a;
    --toast-accent: #15803d;
}
#toast-container > div.toast-success::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='%23ffffff'%3E%3Cpath%20fill-rule='evenodd'%20d='M10%2018a8%208%200%20100-16%208%208%200%20000%2016zm3.857-9.809a.75.75%200%2000-1.214-.882l-3.483%204.79-1.88-1.88a.75.75%200%2010-1.06%201.061l2.5%202.5a.75.75%200%20001.137-.089l4-5.5z'%20clip-rule='evenodd'/%3E%3C/svg%3E");
}

/* error (빨강) --------------------------------------------------------------- */
#toast-container > div.toast-error {
    background-color: #dc2626;
    --toast-accent: #b91c1c;
}
#toast-container > div.toast-error::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='%23ffffff'%3E%3Cpath%20fill-rule='evenodd'%20d='M10%2018a8%208%200%20100-16%208%208%200%20000%2016zM8.28%207.22a.75.75%200%2000-1.06%201.06L8.94%2010l-1.72%201.72a.75.75%200%20101.06%201.06L10%2011.06l1.72%201.72a.75.75%200%20101.06-1.06L11.06%2010l1.72-1.72a.75.75%200%2000-1.06-1.06L10%208.94%208.28%207.22z'%20clip-rule='evenodd'/%3E%3C/svg%3E");
}

/* warning (황색/주황) --------------------------------------------------------- */
#toast-container > div.toast-warning {
    background-color: #d97706;
    --toast-accent: #b45309;
}
#toast-container > div.toast-warning::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='%23ffffff'%3E%3Cpath%20fill-rule='evenodd'%20d='M8.485%202.495c.673-1.167%202.357-1.167%203.03%200l6.28%2010.875c.673%201.167-.17%202.625-1.516%202.625H3.72c-1.347%200-2.189-1.458-1.515-2.625L8.485%202.495zM10%205a.75.75%200%2001.75.75v3.5a.75.75%200%2001-1.5%200v-3.5A.75.75%200%200110%205zm0%209a1%201%200%20100-2%201%201%200%20000%202z'%20clip-rule='evenodd'/%3E%3C/svg%3E");
}

/* info (파랑) ---------------------------------------------------------------- */
#toast-container > div.toast-info {
    background-color: #2563eb;
    --toast-accent: #1d4ed8;
}
#toast-container > div.toast-info::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='%23ffffff'%3E%3Cpath%20fill-rule='evenodd'%20d='M18%2010a8%208%200%2011-16%200%208%208%200%200116%200zm-7-4a1%201%200%2011-2%200%201%201%200%20012%200zM9%209a.75.75%200%20000%201.5h.253a.25.25%200%2001.244.304l-.459%202.066A1.75%201.75%200%200010.747%2015H11a.75.75%200%20000-1.5h-.253a.25.25%200%2001-.244-.304l.459-2.066A1.75%201.75%200%20009.253%209H9z'%20clip-rule='evenodd'/%3E%3C/svg%3E");
}

/* 모바일 / PDA / 좁은 화면 --------------------------------------------------- */
@media (max-width: 768px) {
    #toast-container > div {
        padding: 14px 20px;
        font-size: 16px;
        border-radius: 8px;
    }
    #toast-container > div.toast-success,
    #toast-container > div.toast-error,
    #toast-container > div.toast-warning,
    #toast-container > div.toast-info {
        padding-left: 60px;
    }
    #toast-container > div .toast-title  { font-size: 16px; }
    #toast-container > div .toast-message { font-size: 16px; }
    #toast-container > div.toast-success::before,
    #toast-container > div.toast-error::before,
    #toast-container > div.toast-warning::before,
    #toast-container > div.toast-info::before {
        width: 26px;
        height: 26px;
        background-size: 26px 26px;
    }
}
