:root {
    --main-color: #3CCBDB !important;
    --main-color-hover: #16B9CB !important;
    --main-color-soft: #ECF9FB !important;
    --main-color-tint: #D5F2F7 !important;
    --main-color-deep: #2D929E !important;
    --accent-yellow: #F7E948 !important;
    --accent-green: #40A436 !important;
    --hot-color: #FF5151 !important;
    --hot-color-soft: #FFE9E9 !important;
    --hot-color-deep: #E63333 !important;
    --gradient-hero: linear-gradient(135deg, #3CCBDB 0%, #16B9CB 100%) !important;
    --gradient-hot: linear-gradient(135deg, #FF5151 0%, #FE6F61 100%) !important;
    --subcolor-red: #FF6B7A !important;
    --subcolor-blue: #52ABF8 !important;
    --bg-color: #FAFAFA !important;
    --bg-soft: #F5F5FA !important;
    --line-color: #E4E8EE !important;
    --line-color-light: #EEEEEE !important;
    --d-font-color: #222222 !important;
    --font-color: #666666 !important;
    --dark-section-bg: #1F2A30 !important;
    --tint-color: #5089EF;
    --shades-color1: #1D56BC;
    --shades-color2: #16408D;
    --background-color1: #F8F8F8;
    --background-color2: #F0F0F0;
    --border-color1: #D8D8D8;
    --border-color2: #C6C6C6;
    --font-color: #888888;
    --body-font: #555555;
    --title-font: #1D1D1D;
    --black_font: #000000;
    --btn-color: #747C8A;
    --rad-color: #C51917;
    --placecolor: #999;
    --border_color_basic: #C6C6C6;
    --border_color_focus: #16B9CB;
    --point_color_danger: #EB003B;
    --danger-font-color: #D50136;
    --danger-border-color: #FCD4DE;
    --danger-background-color: #FEECF0;
    --point_color-warning: #FFB724;
    --warning-font-color: #98690A;
    --warning-border-color: #FFEAC1;
    --warning-background-color: #FFF8E9;
    --point_color_success: #008A1E;
    --success-font-color: #006E18;
    --success-border-color: #CEE9D4;
    --success-background-color: #EEF7F0;
    --point_color_info: #2768FF;
    --info-font-color: #1F53CC;
    --info-border-color: #D4E1FF;
    --info-background-color: #E9F0FF;
}
* {
    font-family: 'Pretendard', sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.4px;
}

.tz-card-shadow { box-shadow: 0 4px 20px rgba(60, 203, 219, 0.06); }
.tz-card-shadow:hover { box-shadow: 0 10px 30px rgba(60, 203, 219, 0.16); }

.tz-drag-scroll {
    overflow-x: auto;
    cursor: grab;
    scrollbar-width: thin;
    scrollbar-color: #D4D4D8 transparent;
}
.tz-drag-scroll:active { cursor: grabbing; }
.tz-drag-scroll::-webkit-scrollbar { height: 6px; }
.tz-drag-scroll::-webkit-scrollbar-track { background: transparent; }
.tz-drag-scroll::-webkit-scrollbar-thumb { background: #D4D4D8; border-radius: 999px; }

.tz-fade-mask {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
            mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}

@keyframes tz-pulse-soft {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.tz-pulse-soft { animation: tz-pulse-soft 1.6s ease-in-out infinite; }


/* ============================================== */
/* ===== SweetAlert2 (tzAlert / tzConfirm) ====== */
/* ============================================== */
.tzSwalPopup {
    border-radius: 20px !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-shadow: 0 20px 50px -16px rgba(15, 23, 42, .25),
                0 8px 20px -8px rgba(60, 203, 219, .15) !important;
    border: 1px solid var(--line-color) !important;
    width: min(94vw, 400px) !important;
    font-family: 'Pretendard', sans-serif !important;
}
.tzSwalBackdrop {
    background: rgba(15, 23, 42, .55) !important;
    backdrop-filter: blur(2px) !important;
    -webkit-backdrop-filter: blur(2px) !important;
}
.tzSwalIcon.swal2-icon {
    width: 72px !important;
    height: 72px !important;
    margin: 26px auto 18px !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}
.tzSwalIcon.swal2-icon .swal2-icon-content { font-size: 0 !important; line-height: 0 !important; }
.tzSwalIcon.swal2-icon .swal2-success-ring,
.tzSwalIcon.swal2-icon .swal2-success-circular-line-left,
.tzSwalIcon.swal2-icon .swal2-success-circular-line-right,
.tzSwalIcon.swal2-icon .swal2-success-fix,
.tzSwalIcon.swal2-icon [class^=swal2-success-line],
.tzSwalIcon.swal2-icon [class^=swal2-x-mark-line],
.tzSwalIcon.swal2-icon .swal2-x-mark { display: none !important; }

.tzSwalIconBox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 22px;
    position: relative;
}
.tzSwalIconBox::before {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 26px;
    opacity: .35;
    z-index: 0;
}
.tzSwalIconBox svg {
    width: 36px;
    height: 36px;
    position: relative;
    z-index: 1;
    display: block;
}
.tzSwalIconBox-warning  { background: #FEF3C7; color: #D97706; }
.tzSwalIconBox-warning::before  { background: #FDE68A; }
.tzSwalIconBox-info,
.tzSwalIconBox-question { background: var(--main-color-soft); color: var(--main-color-deep); }
.tzSwalIconBox-info::before,
.tzSwalIconBox-question::before { background: var(--main-color-tint); }
.tzSwalIconBox-success  { background: #D1FAE5; color: #059669; }
.tzSwalIconBox-success::before  { background: #A7F3D0; }
.tzSwalIconBox-error    { background: #FEE2E2; color: #DC2626; }
.tzSwalIconBox-error::before    { background: #FECACA; }

.tzSwalTitle {
    color: var(--d-font-color) !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    padding: 0 24px !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}
.tzSwalContent {
    color: #4b5563 !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
    padding: 8px 24px 24px !important;
    margin: 0 !important;
    word-break: keep-all !important;
}
.tzSwalActions {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px 20px !important;
    background: var(--bg-soft) !important;
    border-top: 1px solid var(--line-color) !important;
    gap: 8px !important;
    display: flex !important;
    justify-content: center !important;
}
.tzSwalConfirm {
    flex: 1 1 auto !important;
    height: 44px !important;
    padding: 0 20px !important;
    border-radius: 12px !important;
    background: var(--main-color) !important;
    background-image: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    box-shadow: 0 6px 14px -6px rgba(60, 203, 219, .55) !important;
    transition: background .2s ease, transform .15s ease !important;
}
.tzSwalConfirm:hover { background: var(--main-color-hover) !important; }
.tzSwalConfirm:active { transform: translateY(1px) !important; }
.tzSwalConfirm:focus { box-shadow: 0 0 0 3px rgba(60, 203, 219, .25) !important; }
.tzSwalCancel {
    flex: 0 0 auto !important;
    min-width: 90px !important;
    height: 44px !important;
    padding: 0 18px !important;
    border-radius: 12px !important;
    background: #fff !important;
    background-image: none !important;
    color: #4b5563 !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    border: 1px solid var(--line-color) !important;
    transition: background .2s ease !important;
}
.tzSwalCancel:hover { background: #f3f4f6 !important; }

.swal2-show.tzSwalPopup { animation: tzSwalPop .22s cubic-bezier(0.16, 1, 0.3, 1) both !important; }
@keyframes tzSwalPop {
    0%   { opacity: 0; transform: translateY(8px) scale(.96); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}
