﻿/*
----------------------------------------------------
* 메가펜스 대기UI CSS — 시흥아트센터(1354024071) V.261014
* js/webgate.js 의 $WG_UI 템플릿과 짝을 이룬다. 클래스를 바꿀 때는 템플릿과 같이 바꿀 것.
* 색상·글꼴은 시흥아트센터 누리집(www.siheung.go.kr/sac) 기준
*   네이비 #1B2331 · 골드 #9F8B6A/#C9A45C · 크림 #FAF9F7 · 포인트 레드 #E1341A · Pretendard
* copyright : dev@devy.co.kr
----------------------------------------------------
*/

/*font*/
@import url('https://dist.devy.kr/fonts/Pretendard-1.3.9/web/pretendard.css');


/* 색상 토큰은 래퍼 안에만 둔다(호스트 페이지 :root 오염 방지) */
#wg-ui-wrapper {
    --wg-navy: #1B2331;
    --wg-navy-deep: #111722;
    --wg-gold: #C9A45C;
    --wg-gold-light: #E9D3A0;
    --wg-gold-deep: #9F8B6A;
    --wg-brown: #62411B;
    --wg-cream: #FAF9F7;
    --wg-line: #ECE8E1;
    --wg-text: #1D1D1D;
    --wg-muted: #6B7079;
    --wg-red: #E1341A;
}


#wg-ui-wrapper {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    /* 카드가 화면보다 길면(가로 모드 휴대폰 등) 래퍼 안에서 스크롤. margin:auto 로 가운데 정렬 */
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1.5rem 1rem;
    box-sizing: border-box;
    background-color: #1B2331;
    background-image:
        radial-gradient(ellipse 70% 55% at 88% -8%, rgba(201, 164, 92, 0.36), rgba(201, 164, 92, 0) 62%),
        radial-gradient(ellipse 60% 50% at -5% 108%, rgba(201, 164, 92, 0.22), rgba(201, 164, 92, 0) 60%),
        linear-gradient(160deg, #1B2331 0%, #111722 100%);
    font-size: 16px;
    text-align: center;
    z-index: 999999;
}

/* FRONTEND 모드(wrapperBackgroundClass) — 배경 없이 카드만 띄운다 */
#wg-ui-wrapper.wg-bg-transparent {
    background-image: none !important;
    background-color: transparent !important;
}


#wg-ui-wrapper * {
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
    font-size: inherit;
    line-height: 1.45;
    letter-spacing: -0.02em;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    word-break: keep-all;
}

#wg-ui-wrapper .is-bold-weight {
    font-weight: bold;
}

#wg-ui-wrapper .is-normal-weight {
    font-weight: normal;
}

#wg-ui-wrapper .is-mobile-only {
    display: none !important;
}

#wg-ui-wrapper .is-desktop-only {
    display: inline !important;
}


/* ── 카드 ─────────────────────────────────────────────── */
#wg-ui-wrapper div.wg-ui-box {
    position: relative;
    margin: auto;
    width: 100%;
    max-width: 640px;
    border-radius: 20px;
    overflow: hidden;
    background-color: #ffffff;
    color: var(--wg-text);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35), 0 2px 8px rgba(0, 0, 0, 0.12);
}

    /* 상단 골드 띠 — 누리집 로고의 골드 스우시 톤 */
    #wg-ui-wrapper div.wg-ui-box div.wg-brand-bar {
        height: 6px;
        background: linear-gradient(90deg, #62411B 0%, #C9A45C 42%, #E9D3A0 58%, #9F8B6A 100%);
    }

    #wg-ui-wrapper div.wg-ui-box div.wg-close-button {
        position: absolute;
        right: 1rem;
        top: 1.25rem;
        width: 2.25rem;
        height: 2.25rem;
        padding: 0.45rem;
        border-radius: 50%;
        color: var(--wg-muted);
        cursor: pointer;
        z-index: 1;
        transition: background-color 0.15s, color 0.15s;
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-close-button:hover {
            background-color: var(--wg-cream);
            color: var(--wg-navy);
        }

        #wg-ui-wrapper div.wg-ui-box div.wg-close-button svg {
            display: block;
            width: 100%;
            height: 100%;
        }

    #wg-ui-wrapper div.wg-ui-box p.wg-version-text {
        position: absolute;
        left: 0;
        top: 0.7rem;
        width: 100%;
        font-size: 0.75rem;
        color: rgba(0, 0, 0, 0.45);
    }

    #wg-ui-wrapper div.wg-ui-box div.wg-waiting-info {
        padding: 2.75rem 3rem 2.5rem;
    }


    /* ── 로고 · 제목 ─────────────────────────────────────── */
    #wg-ui-wrapper div.wg-ui-box div.wg-logo {
        display: block;
        margin-bottom: 1.75rem;
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-logo img {
            display: inline-block;
            width: 12.5rem;
            max-width: 62%;
            height: auto;
        }

    #wg-ui-wrapper div.wg-ui-box p.wg-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 0.6rem;
        font-size: 0.875rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        color: var(--wg-gold-deep);
    }

        #wg-ui-wrapper div.wg-ui-box p.wg-eyebrow::before,
        #wg-ui-wrapper div.wg-ui-box p.wg-eyebrow::after {
            content: '';
            width: 1.25rem;
            height: 1px;
            background-color: currentColor;
            opacity: 0.6;
        }

    #wg-ui-wrapper div.wg-ui-box p.wg-toptitle {
        margin-top: 0.75rem;
        font-size: 1.625rem;
        font-weight: 800;
        line-height: 1.35;
        letter-spacing: -0.03em;
        color: var(--wg-navy);
    }

    #wg-ui-wrapper div.wg-ui-box p.wg-subtitle {
        margin-top: 0.625rem;
        font-size: 1.0625rem;
        line-height: 1.55;
        color: var(--wg-muted);
    }


    /* ── 재접속 경고 ─────────────────────────────────────── */
    #wg-ui-wrapper div.wg-ui-box div.wg-ticket {
        display: inline-block;
        margin-top: 1.375rem;
        padding: 0.625rem 1.125rem;
        border: 1px dashed #DCCDB0;
        border-radius: 10px;
        background-color: var(--wg-cream);
        font-size: 0.9375rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--wg-brown);
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-ticket span.wg-ticket-mark {
            color: var(--wg-red);
            font-weight: 700;
        }


    /* ── 운영자 공지(WAITUI) · 게이트 운영모드 안내 ────────── */
    #wg-ui-wrapper div.wg-ui-box div.wg-notice-section,
    #wg-ui-wrapper div.wg-ui-box div.wg-anounce-section {
        margin-top: 1.25rem;
        padding: 0.875rem 1rem;
        max-width: 100%;
        max-height: 10rem;
        overflow-y: auto;
        border-radius: 12px;
        background-color: #F5F6F8;
        font-size: 0.9375rem;
        line-height: 1.6;
        color: #333333;
        word-break: break-word;
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-notice-section *,
        #wg-ui-wrapper div.wg-ui-box div.wg-anounce-section * {
            line-height: 1.6;
        }

        #wg-ui-wrapper div.wg-ui-box div.wg-notice-section p,
        #wg-ui-wrapper div.wg-ui-box div.wg-anounce-section p {
            margin: 0 0 0.4rem;
        }

            #wg-ui-wrapper div.wg-ui-box div.wg-notice-section p:last-child,
            #wg-ui-wrapper div.wg-ui-box div.wg-anounce-section p:last-child {
                margin-bottom: 0;
            }

        #wg-ui-wrapper div.wg-ui-box div.wg-notice-section img {
            max-width: 100%;
            height: auto;
        }

        #wg-ui-wrapper div.wg-ui-box div.wg-notice-section a {
            text-decoration: underline;
        }


    /* ── 대기 인원 · 남은 시간 ───────────────────────────── */
    #wg-ui-wrapper div.wg-ui-box div.wg-stat-row {
        display: flex;
        gap: 0.75rem;
        margin-top: 1.75rem;
    }

    #wg-ui-wrapper div.wg-ui-box div.wg-stat-tile {
        flex: 1 1 0;
        min-width: 0;
        padding: 1.125rem 0.75rem 1.25rem;
        border: 1px solid var(--wg-line);
        border-radius: 14px;
        background-color: var(--wg-cream);
    }

    #wg-ui-wrapper div.wg-ui-box div.wg-stat-label {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.375rem;
        font-size: 0.9375rem;
        font-weight: 600;
        color: var(--wg-muted);
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-stat-label svg {
            flex: none;
            width: 1.125rem;
            height: 1.125rem;
            color: var(--wg-gold-deep);
        }

    #wg-ui-wrapper div.wg-ui-box div.wg-stat-value {
        margin-top: 0.375rem;
        font-size: 1.875rem;
        font-weight: 800;
        line-height: 1.25;
        letter-spacing: -0.02em;
        color: var(--wg-navy);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-stat-value span.wg-unit {
            margin-left: 0.125rem;
            font-size: 1.125rem;
            font-weight: 700;
            color: var(--wg-gold-deep);
        }


    /* ── 진행 막대 ───────────────────────────────────────── */
    #wg-ui-wrapper div.wg-ui-box div.wg-progress {
        margin-top: 1.5rem;
    }

    #wg-ui-wrapper div.wg-ui-box div.wg-progress-bar {
        position: relative;
        height: 10px;
        border-radius: 999px;
        background-color: var(--wg-line);
        overflow: hidden;
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-progress-bar div.wg-gage {
            width: 0;
            height: 100%;
            border-radius: 999px;
            background-image: linear-gradient(90deg, #9F8B6A 0%, #C9A45C 40%, #E9D3A0 50%, #C9A45C 60%, #9F8B6A 100%);
            background-size: 200% 100%;
            transition: width 0.6s ease;
            animation: wg-gage-shimmer 2.4s linear infinite;
        }

    #wg-ui-wrapper div.wg-ui-box div.wg-progress-caption {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.5rem;
        min-height: 1.4rem;
        margin-top: 0.5rem;
        font-size: 0.875rem;
        color: var(--wg-muted);
    }

        #wg-ui-wrapper div.wg-ui-box div.wg-progress-caption span.wg-ack-retry-info {
            text-align: left;
        }

            /* 측정 중 안내처럼 혼자 있을 때는 가운데 */
            #wg-ui-wrapper div.wg-ui-box div.wg-progress-caption span.wg-ack-retry-info:only-child {
                flex: 1;
                text-align: center;
            }

        #wg-ui-wrapper div.wg-ui-box div.wg-progress-caption span.wg-percent {
            margin-left: auto;
            font-weight: 800;
            color: var(--wg-navy);
            font-variant-numeric: tabular-nums;
        }

@keyframes wg-gage-shimmer {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: -100% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    #wg-ui-wrapper div.wg-ui-box div.wg-progress-bar div.wg-gage {
        animation: none;
        transition: none;
    }
}


/* ── 모바일 ─────────────────────────────────────────── */
@media only screen and (max-width: 640px) {
    #wg-ui-wrapper {
        padding: 1rem 0.75rem;
    }

        #wg-ui-wrapper .is-mobile-only {
            display: inline !important;
        }

        #wg-ui-wrapper .is-desktop-only {
            display: none !important;
        }

        #wg-ui-wrapper div.wg-ui-box {
            border-radius: 16px;
        }

            #wg-ui-wrapper div.wg-ui-box div.wg-waiting-info {
                padding: 2.25rem 1.25rem 1.75rem;
            }

            #wg-ui-wrapper div.wg-ui-box div.wg-logo {
                margin-bottom: 1.375rem;
            }

                #wg-ui-wrapper div.wg-ui-box div.wg-logo img {
                    width: 10.5rem;
                }

            #wg-ui-wrapper div.wg-ui-box p.wg-eyebrow {
                font-size: 0.8125rem;
            }

            #wg-ui-wrapper div.wg-ui-box p.wg-toptitle {
                font-size: 1.375rem;
            }

            #wg-ui-wrapper div.wg-ui-box p.wg-subtitle {
                font-size: 0.9375rem;
            }

            #wg-ui-wrapper div.wg-ui-box div.wg-ticket {
                font-size: 0.875rem;
                padding: 0.625rem 0.875rem;
            }

            #wg-ui-wrapper div.wg-ui-box div.wg-stat-row {
                gap: 0.5rem;
                margin-top: 1.375rem;
            }

            #wg-ui-wrapper div.wg-ui-box div.wg-stat-tile {
                padding: 0.875rem 0.5rem 1rem;
            }

            #wg-ui-wrapper div.wg-ui-box div.wg-stat-label {
                font-size: 0.875rem;
            }

            /* 영문 'NN min NN sec' 도 타일 안에 들어가도록 화면 폭에 맞춰 줄인다 */
            #wg-ui-wrapper div.wg-ui-box div.wg-stat-value {
                font-size: clamp(1.125rem, 5.4vw, 1.5rem);
                white-space: normal;
            }

                #wg-ui-wrapper div.wg-ui-box div.wg-stat-value span.wg-unit {
                    font-size: 1rem;
                }
}

@media only screen and (max-width: 360px) {
    #wg-ui-wrapper div.wg-ui-box div.wg-waiting-info {
        padding: 2rem 1rem 1.5rem;
    }

    #wg-ui-wrapper div.wg-ui-box p.wg-toptitle {
        font-size: 1.25rem;
    }
}


/*aws turnstile*/
#turnstile-container {
    display: block;
    text-align: center;
    padding: 1rem 0 0;
}

    #turnstile-container div.cf-turnstile {
        display: inline-block;
    }
