        @import url('https://fonts.googleapis.com/css2?family=Pretendard:wght@400;500;600;700&display=swap');

        body {
            font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
        }

        .scrollbar-thin::-webkit-scrollbar {
            width: 4px;
            height: 4px;
        }

        .scrollbar-thin::-webkit-scrollbar-track {
            background: #f1f5f9;
        }

        .scrollbar-thin::-webkit-scrollbar-thumb {
            background: #cbd5e1;
            border-radius: 10px;
        }

        .table-scroll::-webkit-scrollbar {
            height: 5px;
        }

        .table-scroll::-webkit-scrollbar-track {
            background: #f1f5f9;
        }

        .table-scroll::-webkit-scrollbar-thumb {
            background: #cbd5e1;
            border-radius: 3px;
        }

        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }

        .animate-spin {
            animation: spin 1s linear infinite;
        }

        .animate-pulse {
            animation: pulse 2s ease-in-out infinite;
        }

        @keyframes pulse {

            0%,
            100% {
                opacity: 1
            }

            50% {
                opacity: .5
            }
        }

        #toast {
            transition: all 0.3s cubic-bezier(.4, 0, .2, 1);
        }

        @media (max-width: 1023px) {
            body { padding-bottom: 60px; }
            #right-side-panel { display: none !important; }
            #main-content { padding: 0; }
        }

        /* 모달·드로어 내부 스크롤 영역: 끝까지 스크롤해도 뒤 페이지로 번지지 않게(스크롤 체이닝 차단) */
        [id$="-modal"] .overflow-y-auto,
        [id$="-modal"] .overflow-auto,
        [id$="-drawer"] .overflow-y-auto,
        #reservation-detail-content,
        #archive-content {
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
        }

        /* 자체 디자인 셀렉트: OS 기본 화살표 제거 + 커스텀 셰브론(일관 디자인) */
        select {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.7rem center;
            background-size: 1rem;
            padding-right: 2.2rem !important;
            cursor: pointer;
        }
        select::-ms-expand { display: none; }
