/* 메인 서버 일정 디자인. */
@font-face {
    font-family: "Spoqa Han Sans Neo";
    src: url("../../../font/SpoqaHanSansNeo-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap
}

.pnodex-latest-schedule {
    width: 1040px;
    max-width: 1040px;
    min-width: 0;
    font-family: "Spoqa Han Sans Neo", sans-serif;
    font-weight: 500;
    color: #171a2b
}

.pnodex-latest-schedule-scroll {
    width: 1040px;
    max-width: 1040px;
    min-width: 0;
    overflow: hidden
}

.pnodex-latest-schedule-board {
    width: 1040px;
    max-width: 1040px;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e4e6ef;
    border-radius: 11px;
    background: #fff
}

/* 요일 위 서버 검색창. */
.pnodex-latest-schedule-search {
    display: flex;
    align-items: center;
    width: 245px;
    height: 32px;
    margin: 0;
    padding: 0;
    background: transparent
}

.pnodex-latest-schedule-search input[type="text"] {
    flex: 1 1 auto;
    min-width: 0;
    height: 32px;
    padding: 0 8px;
    box-sizing: border-box;
    border: 1px solid #cfd3dc;
    border-right: 0;
    border-radius: 0;
    background: #fff;
    color: #171717;
    font: inherit;
    font-size: 12px;
    outline: 0
}

.pnodex-latest-schedule-search input[type="text"]:focus {
    border-color: #9823f5
}

.pnodex-latest-schedule-search button {
    flex: 0 0 48px;
    width: 48px;
    height: 32px;
    padding: 0;
    border: 1px solid #9823f5;
    border-radius: 0;
    background: #9823f5;
    color: #fff;
    font: inherit;
    font-size: 12px;
    cursor: pointer
}

/* 요일을 빈틈없이 7열로 붙임. */
.pnodex-latest-schedule-weekdays,
.pnodex-latest-schedule-dates,
.pnodex-latest-schedule-week {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0
}

.pnodex-latest-schedule-weekdays span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    border-right: 1px solid #e2e4ec;
    border-bottom: 1px solid #e2e4ec;
    background: linear-gradient(180deg, #fff, #f7f8fb);
    color: #222638;
    font-size: 12px
}

.pnodex-latest-schedule-weekdays span:last-child {
    border-right: 0
}

/* 주말 요일 색상 구분. */
.pnodex-latest-schedule-weekdays span.is-saturday {
    color: #2563eb
}

.pnodex-latest-schedule-weekdays span.is-sunday {
    color: #ef4444
}

/* 배너를 1040×100 영역에 여백 없이 채움. */
.pnodex-latest-schedule-banner {
    position: relative;
    width: 100%;
    height: 100px;
    min-height: 100px;
    overflow: hidden;
    border: 0;
    background: #f4f5f9;
    line-height: 0
}

.pnodex-latest-schedule-banner.has-banner {
    background: #fff
}

.pnodex-latest-schedule-banner > a,
.pnodex-latest-schedule-banner > img,
.pnodex-latest-schedule-banner-content,
.pnodex-latest-schedule-banner-content .pb-banner-item,
.pnodex-latest-schedule-banner-content a,
.pnodex-latest-schedule-banner-content img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0
}

.pnodex-latest-schedule-banner img {
    object-fit: cover;
    object-position: center
}

.pnodex-latest-schedule-date {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 32px;
    border-right: 1px solid #e2e4ec;
    border-bottom: 1px solid #e2e4ec;
    background: #eef8d2;
    color: #202431;
    font-size: 12px
}

.pnodex-latest-schedule-date:last-child {
    border-right: 0
}

.pnodex-latest-schedule-date.is-today {
    background: #e2f3ba;
    color: #9823f5
}

.pnodex-latest-schedule-date b {
    font-size: 12px;
    font-weight: 500
}

.pnodex-latest-schedule-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 31px;
    height: 20px;
    padding: 0 7px;
    border: 1px solid #b8bdc9;
    border-radius: 3px;
    background: #fff;
    color: #252938;
    font-size: 10px;
    line-height: 1;
    text-decoration: none
}

.pnodex-latest-schedule-nav.is-next {
    position: absolute;
    right: 5px
}

.pnodex-latest-schedule-day {
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid #e2e4ec;
    background: #f8f9fc
}

.pnodex-latest-schedule-day:last-child {
    border-right: 0
}

.pnodex-latest-schedule-day.is-today {
    background: #fbf8ff
}

.pnodex-latest-schedule-items {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 344px;
    padding: 4px
}

.pnodex-latest-schedule-card {
    position: relative;
    display: block;
    width: 140px;
    height: 60px;
    margin: 0 auto;
    overflow: hidden;
    padding: 4px 7px;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 9px;
    color: #171717;
    text-decoration: none;
    box-shadow: 0 7px 18px rgba(33, 25, 83, .12);
    background-size: 260% 260%;
    animation: pnodexLatestScheduleGradient 3.2s linear infinite
}

.pnodex-latest-schedule-card.is-violet {background-image:linear-gradient(120deg,#5d46db,#9b72ff,#e696dc,#765ff0,#5d46db)}
.pnodex-latest-schedule-card.is-blue {background-image:linear-gradient(120deg,#2867d8,#6bc8ff,#8bb7ff,#3a78e7,#2867d8)}
.pnodex-latest-schedule-card.is-mint {background-image:linear-gradient(120deg,#178b76,#72dec8,#9ae9dc,#35ad9b,#178b76)}
.pnodex-latest-schedule-card.is-orange {background-image:linear-gradient(120deg,#df6629,#ffc66d,#ffdf9b,#ef7b3a,#df6629)}
.pnodex-latest-schedule-card.is-rose {background-image:linear-gradient(120deg,#d84f80,#f79bc1,#e4a2ff,#e3659b,#d84f80)}
.pnodex-latest-schedule-card.is-slate {background-image:linear-gradient(120deg,#394354,#8793a8,#b4bdcc,#536074,#394354)}

@keyframes pnodexLatestScheduleGradient {
    0% {background-position:0 50%}
    35% {background-position:55% 45%}
    50% {background-position:100% 50%}
    70% {background-position:65% 55%}
    100% {background-position:0 50%}
}

.pnodex-latest-schedule-card:before {
    content: "";
    position: absolute;
    inset: -35%;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 34%, rgba(255,255,255,.34) 48%, rgba(255,255,255,.12) 57%, transparent 70%);
    transform: translateX(-55%) rotate(4deg);
    animation: pnodexLatestScheduleGlow 3.2s linear infinite
}

.pnodex-latest-schedule-card>* {
    position: relative;
    z-index: 1
}

@keyframes pnodexLatestScheduleGlow {
    0% {transform:translateX(-60%) rotate(4deg);opacity:.18}
    38% {opacity:.5}
    55% {transform:translateX(55%) rotate(4deg);opacity:.7}
    72% {opacity:.28}
    100% {transform:translateX(60%) rotate(4deg);opacity:.12}
}

.pnodex-latest-schedule-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px
}

.pnodex-latest-schedule-card-top b {
    min-width: 0;
    font-size: 12px;
    line-height: 1.35
}

.pnodex-latest-schedule-card-top img {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    object-fit: contain
}

.pnodex-latest-schedule-card>strong {
    display: block;
    overflow: hidden;
    margin-top: 1px;
    color: #171717;
    font-size: 12px;
    line-height: 1.3;
    transform: translateY(-5px);
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-latest-schedule-card>em {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    color: #171717;
    font-size: 12px;
    font-style: normal;
    transform: translateY(-5px);
    line-height: 1.35;
    text-align: center;
    opacity: .92;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-latest-schedule-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 82px;
    color: #a0a5b3;
    font-size: 11px;
    text-align: center
}

.pnodex-latest-schedule-more {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    border: 1px dashed #d9dbe5;
    border-radius: 7px;
    background: #fff;
    color: #9823f5;
    font-size: 11px;
    text-decoration: none
}

/* 다음 7일을 첫 일정표 아래에 이어서 표시. */
.pnodex-latest-schedule-second-week {
    border-top: 1px solid #d8dbe5
}


/* 1040px 일정표 너비와 140px 배지 간격을 맞춤. */
@media (max-width: 1380px) {
    .pnodex-latest-schedule,
    .pnodex-latest-schedule-scroll,
    .pnodex-latest-schedule-board {
        width: 100%;
        max-width: 1040px;
    }
}


/* 기본 단색과 선택형 움직임 효과. */
.pnodex-latest-schedule-card{animation:none;background-size:auto}
.pnodex-latest-schedule-card:before{display:none}
.pnodex-latest-schedule-card.is-violet{background:#7559e8}
.pnodex-latest-schedule-card.is-blue{background:#4280df}
.pnodex-latest-schedule-card.is-mint{background:#2aa68c}
.pnodex-latest-schedule-card.is-orange{background:#e98a40}
.pnodex-latest-schedule-card.is-rose{background:#dd638e}
.pnodex-latest-schedule-card.is-slate{background:#596273}
.pnodex-latest-schedule-card.effect-gradient.is-violet{background-image:linear-gradient(120deg,#5d46db,#9b72ff,#e696dc,#765ff0,#5d46db)}
.pnodex-latest-schedule-card.effect-gradient.is-blue{background-image:linear-gradient(120deg,#2867d8,#6bc8ff,#8bb7ff,#3a78e7,#2867d8)}
.pnodex-latest-schedule-card.effect-gradient.is-mint{background-image:linear-gradient(120deg,#178b76,#72dec8,#9ae9dc,#35ad9b,#178b76)}
.pnodex-latest-schedule-card.effect-gradient.is-orange{background-image:linear-gradient(120deg,#df6629,#ffc66d,#ffdf9b,#ef7b3a,#df6629)}
.pnodex-latest-schedule-card.effect-gradient.is-rose{background-image:linear-gradient(120deg,#d84f80,#f79bc1,#e4a2ff,#e3659b,#d84f80)}
.pnodex-latest-schedule-card.effect-gradient.is-slate{background-image:linear-gradient(120deg,#394354,#8793a8,#b4bdcc,#536074,#394354)}
.pnodex-latest-schedule-card.effect-gradient{background-size:260% 260%;animation:pnodexLatestScheduleGradient 3.2s linear infinite}
.pnodex-latest-schedule-card.effect-glow{animation:pnodexLatestSchedulePulse 2.1s ease-in-out infinite}
@keyframes pnodexLatestSchedulePulse{0%,100%{filter:brightness(1);box-shadow:0 7px 18px rgba(33,25,83,.12)}50%{filter:brightness(1.18);box-shadow:0 7px 24px rgba(117,89,232,.38)}}
.pnodex-latest-schedule-card.effect-sweep:before{display:block;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.62) 48%,transparent 66%);animation:pnodexLatestScheduleSweep 2.4s ease-in-out infinite}
@keyframes pnodexLatestScheduleSweep{0%{transform:translateX(-75%) rotate(4deg);opacity:0}28%{opacity:.7}65%{transform:translateX(75%) rotate(4deg);opacity:.35}100%{transform:translateX(75%) rotate(4deg);opacity:0}}


/* 연한 일정 배지 색상 4종. */
.pnodex-latest-schedule-card.is-lavender{background:#e8ddff;color:#171717}
.pnodex-latest-schedule-card.is-sky{background:#d9efff;color:#171717}
.pnodex-latest-schedule-card.is-cream{background:#fff1bf;color:#171717}
.pnodex-latest-schedule-card.is-peach{background:#ffdfe5;color:#171717}
.pnodex-latest-schedule-card.effect-gradient.is-lavender{background-image:linear-gradient(120deg,#d8c7ff,#efe8ff,#dacaff,#f4edff,#d8c7ff)}
.pnodex-latest-schedule-card.effect-gradient.is-sky{background-image:linear-gradient(120deg,#c6e7ff,#eaf7ff,#ccecff,#f1faff,#c6e7ff)}
.pnodex-latest-schedule-card.effect-gradient.is-cream{background-image:linear-gradient(120deg,#ffe9a0,#fff7d6,#ffedac,#fff9df,#ffe9a0)}
.pnodex-latest-schedule-card.effect-gradient.is-peach{background-image:linear-gradient(120deg,#ffcbd5,#ffe9ed,#ffd2da,#fff0f3,#ffcbd5)}

/* 선택 색상을 유지하는 추가 움직임 효과 3종. */
.pnodex-latest-schedule-card.effect-brighten{animation:pnodexLatestScheduleBrighten 3.6s ease-in-out infinite}
@keyframes pnodexLatestScheduleBrighten{0%,100%{filter:brightness(1)}50%{filter:brightness(1.24)}}
/* 대각선 빛처럼 넓게 퍼진 빛이 세로 방향으로 이동함. */
.pnodex-latest-schedule-card.effect-light_down:before,.pnodex-latest-schedule-card.effect-light_up:before{display:block;inset:-95% -65%;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.05) 31%,rgba(255,255,255,.18) 40%,rgba(255,255,255,.48) 50%,rgba(255,255,255,.18) 60%,rgba(255,255,255,.05) 69%,transparent 80%);filter:blur(10px);opacity:0;transform:translateY(0) scale(1.35)}
.pnodex-latest-schedule-card.effect-light_down:before{animation:pnodexLatestScheduleLightDown 5.8s ease-in-out infinite}
.pnodex-latest-schedule-card.effect-light_up:before{animation:pnodexLatestScheduleLightUp 5.8s ease-in-out infinite}
@keyframes pnodexLatestScheduleLightDown{0%{transform:translateY(-58%) scale(1.35);opacity:0}16%{opacity:.88}84%{opacity:.88}100%{transform:translateY(58%) scale(1.35);opacity:0}}
@keyframes pnodexLatestScheduleLightUp{0%{transform:translateY(58%) scale(1.35);opacity:0}16%{opacity:.88}84%{opacity:.88}100%{transform:translateY(-58%) scale(1.35);opacity:0}}15%{opacity:.85}75%{opacity:.85}100%{transform:translateY(-60%);opacity:0}}
