/* 스케줄 게시판 공통 디자인. */
@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-schedule {
    max-width: 1020px;
    margin: 0 auto;
    padding: 4px 20px 28px;
    font-family: "Spoqa Han Sans Neo", sans-serif;
    font-weight: 500;
    color: #171a2b
}

.pnodex-schedule-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px
}

.pnodex-schedule-head>div>span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .13em;
    color: #7057ee
}

.pnodex-schedule-head h1 {
    margin: -30px 0 5px;
    font-size: 20px;
    line-height: 1.2
}

.pnodex-schedule-head p {
    margin: 10px 0 0;
    font-weight: 600;
    color: #9823f5
}

.pnodex-schedule-write-btn,
.pnodex-schedule-actions button,
.pnodex-schedule-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    background: #9823f5;
    color: #fff;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer
}

.pnodex-week-scroll {
    overflow: hidden
}

.pnodex-week-board {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    min-height: 480px
}

.pnodex-day {
    overflow: hidden;
    border: 1px solid #e8e9f1;
    border-radius: 13px;
    background: #f8f9fc
}

.pnodex-day>header {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 5px;
    padding: 13px 12px;
    border-bottom: 1px solid #ececf3;
    background: #fff
}

.pnodex-day>header b {
    font-size: 23px
}

.pnodex-day>header span {
    font-size: 12px;
    color: #83899a
}

.pnodex-day>header small {
    margin-left: auto;
    font-size: 11px;
    color: #a0a5b3
}

.pnodex-day.is-today {
    border-color: #765df0;
    box-shadow: 0 10px 30px rgba(103, 80, 232, .12)
}

.pnodex-day.is-today>header:before {
    content: "오늘";
    position: absolute;
    top: 0;
    right: 10px;
    padding: 2px 7px;
    border-radius: 0 0 6px 6px;
    background: #9823f5;
    color: #fff;
    font-size: 9px
}

.pnodex-day-items {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 8px
}

.pnodex-schedule-card-wrap {
    position: relative
}

.pnodex-schedule-card-wrap+.pnodex-schedule-card-wrap {
    margin-top: 0
}

.pnodex-schedule-edit {
    position: absolute;
    right: 5px;
    bottom: 5px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    padding: 0 6px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 5px;
    background: rgba(20, 22, 35, .34);
    color: #fff;
    font-size: 10px;
    line-height: 1;
    text-decoration: none;
    backdrop-filter: blur(3px)
}

.pnodex-schedule-edit:hover {
    background: rgba(20, 22, 35, .58);
    color: #fff
}

.pnodex-schedule-card {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 9px;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 7px 18px rgba(33, 25, 83, .12);
    background-size: 260% 260%;
    animation: pnodexScheduleGradient 3.2s linear infinite
}

.pnodex-schedule-card.is-violet,
.pnodex-view-hero.is-violet {
    background-image: linear-gradient(120deg, #5d46db, #9b72ff, #e696dc, #765ff0, #5d46db)
}

.pnodex-schedule-card.is-blue,
.pnodex-view-hero.is-blue {
    background-image: linear-gradient(120deg, #2867d8, #6bc8ff, #8bb7ff, #3a78e7, #2867d8)
}

.pnodex-schedule-card.is-mint,
.pnodex-view-hero.is-mint {
    background-image: linear-gradient(120deg, #178b76, #72dec8, #9ae9dc, #35ad9b, #178b76)
}

.pnodex-schedule-card.is-orange,
.pnodex-view-hero.is-orange {
    background-image: linear-gradient(120deg, #df6629, #ffc66d, #ffdf9b, #ef7b3a, #df6629)
}

.pnodex-schedule-card.is-rose,
.pnodex-view-hero.is-rose {
    background-image: linear-gradient(120deg, #d84f80, #f79bc1, #e4a2ff, #e3659b, #d84f80)
}

.pnodex-schedule-card.is-slate,
.pnodex-view-hero.is-slate {
    background-image: linear-gradient(120deg, #394354, #8793a8, #b4bdcc, #536074, #394354)
}

@keyframes pnodexScheduleGradient {
    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-schedule-card:before,
.pnodex-view-hero: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: pnodexScheduleGlow 3.2s linear infinite
}

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

@keyframes pnodexScheduleGlow {
    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-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px
}

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

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

.pnodex-schedule-card>strong {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    font-size: 12px;
    text-align: center;
    line-height: 1.3;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-schedule-card>em {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 10px;
    font-size: 12px;
    text-align: center;
    line-height: 1.35;
    font-style: normal;
    opacity: .92;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical
}

.pnodex-day-empty {
    padding: 35px 6px;
    text-align: center;
    font-size: 11px;
    color: #a1a6b3
}

.pnodex-schedule-cost {
    min-width: 160px;
    padding: 14px 17px;
    border: 1px solid #e7e6f3;
    border-radius: 14px;
    background: #fff;
    text-align: right;
    box-shadow: 0 8px 24px rgba(31, 25, 72, .06)
}

.pnodex-schedule-cost small,
.pnodex-schedule-cost span {
    display: block;
    color: #8b91a0
}

.pnodex-schedule-cost strong {
    display: block;
    margin: 3px 0;
    color: #654de5;
    font-size: 22px
}

.pnodex-schedule-write form {
    padding: 24px;
    border: 1px solid #e7e8ef;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 12px 35px rgba(22, 27, 45, .06)
}

.pnodex-schedule-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px
}

.pnodex-schedule-form-grid label,
.pnodex-schedule-form-grid fieldset {
    min-width: 0;
    margin: 0
}

.pnodex-schedule-form-grid .is-wide {
    grid-column: 1/-1
}

.pnodex-schedule-form-grid label>span,
.pnodex-schedule-form-grid legend,
.pnodex-schedule-editor>span {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700
}

.pnodex-schedule-form-grid input[type=text],
.pnodex-schedule-form-grid input[type=date],
.pnodex-schedule-form-grid input[type=url] {
    width: 100%;
    height: 45px;
    padding: 0 13px;
    border: 1px solid #dfe1ea;
    border-radius: 9px;
    box-sizing: border-box
}

.pnodex-schedule-form-grid fieldset {
    padding: 0;
    border: 0
}

.pnodex-icon-picker,
.pnodex-color-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.pnodex-icon-picker input,
.pnodex-color-picker input {
    position: absolute;
    opacity: 0
}

.pnodex-icon-picker span {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 11px;
    border: 1px solid #e2e3eb;
    border-radius: 9px;
    cursor: pointer
}

.pnodex-icon-picker img {
    width: 20px;
    height: 20px
}

.pnodex-icon-picker input:checked+span {
    border-color: #7057ee;
    background: #f4f1ff;
    color: #6048db
}

.pnodex-color-picker span {
    display: block;
    padding: 8px 13px;
    border: 2px solid transparent;
    border-radius: 999px;
    color: #fff;
    cursor: pointer
}

.pnodex-color-picker .is-violet {
    background: #7559e8
}

.pnodex-color-picker .is-blue {
    background: #4280df
}

.pnodex-color-picker .is-mint {
    background: #2aa68c
}

.pnodex-color-picker .is-orange {
    background: #e98a40
}

.pnodex-color-picker .is-rose {
    background: #dd638e
}

.pnodex-color-picker .is-slate {
    background: #596273
}

.pnodex-color-picker input:checked+span {
    border-color: #171a2b
}

.pnodex-schedule-editor {
    margin-top: 20px
}

.pnodex-schedule-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 24px
}

.pnodex-schedule-actions a {
    background: #eef0f5;
    font-size: 14px;
    color: #333
}

.pnodex-view-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 34px;
    border-radius: 20px;
    color: #fff;
    background-size: 260% 260%;
    animation: pnodexScheduleGradient 3.2s linear infinite
}

.pnodex-view-hero span {
    font-size: 13px;
    opacity: .8
}

.pnodex-view-hero h1 {
    margin: 8px 0;
    font-size: 34px
}

.pnodex-view-hero p {
    margin: 0;
    opacity: .9
}

.pnodex-view-hero>img {
    width: 72px;
    height: 72px;
    filter: brightness(0) invert(1)
}

.pnodex-view-content {
    min-height: 220px;
    padding: 30px 5px;
    line-height: 1.8
}

.pnodex-view-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px
}

.pnodex-view-actions a {
    padding: 10px 15px;
    border-radius: 9px;
    background: #eef0f5;
    color: #353947;
    text-decoration: none
}

.pnodex-view-actions .is-home {
    margin-right: auto;
    background: #6b55e8;
    color: #fff
}

/* 게시판 목록 웹진형 관리 화면. */
.pnodex-schedule-webzine .pnodex-schedule-head {
    margin-bottom: 18px
}

.pnodex-webzine-list {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.pnodex-webzine-item {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    align-items: start;
    gap: 20px;
    padding: 14px;
    border: 1px solid #e7e8ef;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 27, 45, .05)
}

.pnodex-webzine-color {
    position: relative;
    display: block;
    align-self: start;
    overflow: hidden;
    width: 145px;
    height: auto;
    min-height: 0;
    padding: 5px 8px;
    box-sizing: border-box;
    border-radius: 11px;
    color: #fff;
    text-decoration: none;
    background-size: 260% 260%;
    animation: pnodexScheduleGradient 3.2s linear infinite
}

.pnodex-webzine-color: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: pnodexScheduleGlow 3.2s linear infinite
}

.pnodex-webzine-color>* {
    position: relative;
    z-index: 1
}

.pnodex-webzine-color.is-violet {
    background-image: linear-gradient(120deg, #5d46db, #9b72ff, #e696dc, #765ff0, #5d46db)
}

.pnodex-webzine-color.is-blue {
    background-image: linear-gradient(120deg, #2867d8, #6bc8ff, #8bb7ff, #3a78e7, #2867d8)
}

.pnodex-webzine-color.is-mint {
    background-image: linear-gradient(120deg, #178b76, #72dec8, #9ae9dc, #35ad9b, #178b76)
}

.pnodex-webzine-color.is-orange {
    background-image: linear-gradient(120deg, #df6629, #ffc66d, #ffdf9b, #ef7b3a, #df6629)
}

.pnodex-webzine-color.is-rose {
    background-image: linear-gradient(120deg, #d84f80, #f79bc1, #e4a2ff, #e3659b, #d84f80)
}

.pnodex-webzine-color.is-slate {
    background-image: linear-gradient(120deg, #394354, #8793a8, #b4bdcc, #536074, #394354)
}

.pnodex-webzine-color-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    font-size: 12px;
    line-height: 1.35
}

.pnodex-webzine-color-top img {
    width: 16px;
    height: 16px;
    object-fit: contain
}

.pnodex-webzine-color>strong {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-webzine-color>em {
    display: block;
    overflow: hidden;
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
    font-style: normal;
    white-space: nowrap;
    text-overflow: ellipsis;
    opacity: .94
}

.pnodex-webzine-info {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center
}

.pnodex-webzine-title-row {
    display: flex;
    align-items: center;
    gap: 6px
}

.pnodex-webzine-title {
    overflow: hidden;
    color: #171a2b;
    font-size: 16px;
    text-decoration: none;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-webzine-info>p {
    overflow: hidden;
    margin: 8px 0 12px;
    color: #737b8d;
    font-size: 12px;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-webzine-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 18px;
    margin: 0
}

.pnodex-webzine-meta>div {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px
}

.pnodex-webzine-meta dt {
    color: #969dab
}

.pnodex-webzine-meta dd {
    margin: 0;
    color: #3f4655
}

.pnodex-webzine-actions {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    margin-top: 14px
}

.pnodex-webzine-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 31px;
    padding: 0 11px;
    border-radius: 7px;
    background: #f0f1f5;
    color: #454b59;
    font-size: 12px;
    text-decoration: none
}

.pnodex-webzine-actions .is-edit {
    background: #9823f5;
    color: #fff
}

.pnodex-webzine-empty {
    padding: 80px 20px;
    border: 1px solid #e7e8ef;
    border-radius: 15px;
    background: #fff;
    text-align: center;
    color: #959baa;
    font-size: 12px
}

/* 스케줄 게시판 너비와 주요 버튼 색상 통일. */
.pnodex-schedule-write-btn,
.pnodex-schedule-actions button,
.pnodex-view-actions .is-home,
.pnodex-webzine-actions .is-edit {
    background: #9823f5;
    color: #fff
}


/* 등록 포인트 안내와 확인 레이어. */
.pnodex-schedule-write-btn {
    color: #fff
}

.pnodex-point-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding: 13px 16px;
    border: 1px solid #ead7fb;
    border-radius: 12px;
    background: #fbf7ff;
    color: #5f536c;
    font-size: 12px
}

.pnodex-point-notice strong {
    flex: 0 0 auto;
    color: #9823f5
}

.pnodex-point-notice span {
    min-width: 0;
    text-align: right
}

.pnodex-point-notice b {
    color: #9823f5
}

.pnodex-point-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px
}

.pnodex-point-modal.is-open {
    display: flex
}

.pnodex-point-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 18, 30, .55);
    backdrop-filter: blur(3px)
}

.pnodex-point-modal-box {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    padding: 26px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(12, 14, 28, .28);
    text-align: center
}

.pnodex-point-modal-box>strong {
    display: block;
    color: #171a2b;
    font-size: 20px
}

.pnodex-point-modal-box>p {
    margin: 12px 0 18px;
    color: #737b8d;
    font-size: 13px;
    line-height: 1.6
}

.pnodex-point-modal-box>p b {
    color: #9823f5
}

.pnodex-point-modal-points {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f7f3fb;
    color: #6e6578;
    font-size: 12px
}

.pnodex-point-modal-points b {
    color: #9823f5;
    font-size: 14px
}

.pnodex-point-modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 18px
}

.pnodex-point-modal-actions button {
    height: 42px;
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px
}

.pnodex-point-modal-actions .is-cancel {
    background: #eef0f5;
    color: #3f4655
}

.pnodex-point-modal-actions .is-confirm {
    background: #9823f5;
    color: #fff
}

/* 새글 이미지를 텍스트 배지로 표시. */
.pnodex-webzine-new {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: #9823f5;
    color: #fff;
    font-size: 10px;
    line-height: 1;
    vertical-align: middle
}

/* 웹진 일정 카드와 정보 영역 세로 중앙 맞춤. */
.pnodex-webzine-item {
    align-items: center
}

.pnodex-webzine-color {
    align-self: center
}

.pnodex-webzine-info {
    align-self: stretch;
    justify-content: center;
    padding: 1px 0
}

.pnodex-webzine-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-top: auto
}

.pnodex-webzine-meta {
    min-width: 0
}

.pnodex-webzine-actions {
    flex: 0 0 auto;
    margin-top: 0
}

/* 서버 등록 버튼 글자와 아이콘을 흰색으로 고정. */
.pnodex-schedule-write-btn,
.pnodex-schedule-write-btn:link,
.pnodex-schedule-write-btn:visited,
.pnodex-schedule-write-btn:hover,
.pnodex-schedule-write-btn:focus,
.pnodex-schedule-write-btn i,
.pnodex-schedule-write-btn .fa {
    color: #fff;
}

/* 등록 포인트 안내를 하단 버튼 왼쪽에 한 줄로 배치. */
.pnodex-schedule-actions.has-point-info {
    align-items: center;
    justify-content: space-between
}

.pnodex-action-point-info {
    min-width: 0;
    color: #6f7584;
    font-size: 12px;
    line-height: 1.45;
    white-space: nowrap
}

.pnodex-action-point-info b {
    color: #9823f5
}

.pnodex-schedule-action-buttons {
    display: flex;
    flex: 0 0 auto;
    gap: 8px
}

/* 포인트 충전 팝업 링크. */
.pnodex-point-charge-link {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    color: #9823f5;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 12px;
    white-space: nowrap
}

.pnodex-point-charge-link:hover {
    color: #7d16cf
}

/* 포인트 충전 버튼을 등록 버튼과 동일하게 표시. */
.pnodex-schedule-action-buttons .pnodex-point-charge-button,
.pnodex-schedule-action-buttons .pnodex-point-charge-button:link,
.pnodex-schedule-action-buttons .pnodex-point-charge-button:visited,
.pnodex-schedule-action-buttons .pnodex-point-charge-button:hover,
.pnodex-schedule-action-buttons .pnodex-point-charge-button:focus {
    background: #9823f5;
    color: #fff;
    font-size: 14px;
    text-decoration: none
}


/* 기본 단색과 선택형 움직임 효과. */
.pnodex-schedule-card,
.pnodex-webzine-color,
.pnodex-view-hero,
.pnodex-effect-preview {
    animation: none;
    background-size: auto;
}

.pnodex-schedule-card:before,
.pnodex-webzine-color:before,
.pnodex-view-hero:before,
.pnodex-effect-preview:before {
    display: none;
}

.pnodex-schedule-card.is-violet,
.pnodex-webzine-color.is-violet,
.pnodex-view-hero.is-violet,
.pnodex-effect-preview.is-violet {
    background: #7559e8
}

.pnodex-schedule-card.is-blue,
.pnodex-webzine-color.is-blue,
.pnodex-view-hero.is-blue {
    background: #4280df
}

.pnodex-schedule-card.is-mint,
.pnodex-webzine-color.is-mint,
.pnodex-view-hero.is-mint {
    background: #2aa68c
}

.pnodex-schedule-card.is-orange,
.pnodex-webzine-color.is-orange,
.pnodex-view-hero.is-orange {
    background: #e98a40
}

.pnodex-schedule-card.is-rose,
.pnodex-webzine-color.is-rose,
.pnodex-view-hero.is-rose {
    background: #dd638e
}

.pnodex-schedule-card.is-slate,
.pnodex-webzine-color.is-slate,
.pnodex-view-hero.is-slate {
    background: #596273
}

.effect-gradient.is-violet {
    background-image: linear-gradient(120deg, #5d46db, #9b72ff, #e696dc, #765ff0, #5d46db)
}

.effect-gradient.is-blue {
    background-image: linear-gradient(120deg, #2867d8, #6bc8ff, #8bb7ff, #3a78e7, #2867d8)
}

.effect-gradient.is-mint {
    background-image: linear-gradient(120deg, #178b76, #72dec8, #9ae9dc, #35ad9b, #178b76)
}

.effect-gradient.is-orange {
    background-image: linear-gradient(120deg, #df6629, #ffc66d, #ffdf9b, #ef7b3a, #df6629)
}

.effect-gradient.is-rose {
    background-image: linear-gradient(120deg, #d84f80, #f79bc1, #e4a2ff, #e3659b, #d84f80)
}

.effect-gradient.is-slate {
    background-image: linear-gradient(120deg, #394354, #8793a8, #b4bdcc, #536074, #394354)
}

.effect-gradient {
    background-size: 260% 260%;
    animation: pnodexScheduleGradient 3.2s linear infinite
}

.effect-glow {
    animation: pnodexSchedulePulse 2.1s ease-in-out infinite
}

@keyframes pnodexSchedulePulse {

    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)
    }
}

.effect-sweep:before {
    display: block;
    background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .62) 48%, transparent 66%);
    animation: pnodexScheduleSweep 2.4s ease-in-out infinite
}

@keyframes pnodexScheduleSweep {
    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
    }
}

.pnodex-effect-help {
    margin: 0 0 10px;
    color: #777e8f;
    font-size: 12px
}

.pnodex-effect-picker {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px
}

.pnodex-effect-picker input {
    position: absolute;
    opacity: 0
}

.pnodex-effect-picker label>span {
    display: block;
    padding: 8px;
    border: 1px solid #e2e3eb;
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
    text-align: center
}

.pnodex-effect-picker input:checked+span {
    border-color: #9823f5;
    box-shadow: 0 0 0 2px rgba(152, 35, 245, .12)
}

.pnodex-effect-picker span>b {
    display: block;
    margin-top: 7px;
    font-size: 12px
}

.pnodex-effect-picker span>small {
    display: block;
    margin-top: 2px;
    color: #9823f5;
    font-size: 11px
}

.pnodex-effect-preview {
    position: relative;
    display: block;
    overflow: hidden;
    width: 140px;
    height: 60px;
    margin: 0 auto;
    padding: 5px 8px;
    box-sizing: border-box;
    border-radius: 9px;
    color: #171717;
    text-align: left
}

.pnodex-effect-preview>* {
    position: relative;
    z-index: 1;
    display: block
}

.pnodex-effect-preview>b {
    font-size: 11px
}

.pnodex-effect-preview>strong,
.pnodex-effect-preview>em {
    overflow: hidden;
    text-align: center;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
    text-overflow: ellipsis
}

.pnodex-effect-preview>em {
    font-style: normal
}

@media(max-width:760px) {
    .pnodex-effect-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}


/* 연한 카드 색상 4종. */
.pnodex-schedule-card.is-lavender,
.pnodex-webzine-color.is-lavender,
.pnodex-view-hero.is-lavender,
.pnodex-effect-preview.is-lavender {
    background: #e8ddff;
    color: #171717
}

.pnodex-schedule-card.is-sky,
.pnodex-webzine-color.is-sky,
.pnodex-view-hero.is-sky,
.pnodex-effect-preview.is-sky {
    background: #d9efff;
    color: #171717
}

.pnodex-schedule-card.is-cream,
.pnodex-webzine-color.is-cream,
.pnodex-view-hero.is-cream,
.pnodex-effect-preview.is-cream {
    background: #fff1bf;
    color: #171717
}

.pnodex-schedule-card.is-peach,
.pnodex-webzine-color.is-peach,
.pnodex-view-hero.is-peach,
.pnodex-effect-preview.is-peach {
    background: #ffdfe5;
    color: #171717
}

.pnodex-color-picker .is-lavender {
    background: #e8ddff;
    color: #171717
}

.pnodex-color-picker .is-sky {
    background: #d9efff;
    color: #171717
}

.pnodex-color-picker .is-cream {
    background: #fff1bf;
    color: #171717
}

.pnodex-color-picker .is-peach {
    background: #ffdfe5;
    color: #171717
}

.effect-gradient.is-lavender {
    background-image: linear-gradient(120deg, #d8c7ff, #efe8ff, #dacaff, #f4edff, #d8c7ff)
}

.effect-gradient.is-sky {
    background-image: linear-gradient(120deg, #c6e7ff, #eaf7ff, #ccecff, #f1faff, #c6e7ff)
}

.effect-gradient.is-cream {
    background-image: linear-gradient(120deg, #ffe9a0, #fff7d6, #ffedac, #fff9df, #ffe9a0)
}

.effect-gradient.is-peach {
    background-image: linear-gradient(120deg, #ffcbd5, #ffe9ed, #ffd2da, #fff0f3, #ffcbd5)
}

.pnodex-view-hero.is-lavender>img,
.pnodex-view-hero.is-sky>img,
.pnodex-view-hero.is-cream>img,
.pnodex-view-hero.is-peach>img {
    filter: none
}

/* 선택 색상을 유지하는 추가 움직임 효과 3종. */
.effect-brighten {
    animation: pnodexScheduleBrighten 3.6s ease-in-out infinite
}

@keyframes pnodexScheduleBrighten {

    0%,
    100% {
        filter: brightness(1)
    }

    50% {
        filter: brightness(1.24)
    }
}

/* 대각선 빛처럼 넓게 퍼진 빛이 세로 방향으로 이동함. */
.effect-light_down:before,
.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)
}

.effect-light_down:before {
    animation: pnodexScheduleLightDown 5.8s ease-in-out infinite
}

.effect-light_up:before {
    animation: pnodexScheduleLightUp 5.8s ease-in-out infinite
}

@keyframes pnodexScheduleLightDown {
    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 pnodexScheduleLightUp {
    0% {
        transform: translateY(58%) scale(1.35);
        opacity: 0
    }

    16% {
        opacity: .88
    }

    84% {
        opacity: .88
    }

    100% {
        transform: translateY(-58%) scale(1.35);
        opacity: 0
    }
}

/* 관리자용 메인 오늘의 서버·오픈 알림 설정. */
.pnodex-home-exposure {
    margin-top: 4px !important;
    padding: 20px !important;
    border: 1px solid #f1d9c2 !important;
    border-radius: 14px;
    background: #fffaf5
}

.pnodex-home-exposure>legend {
    padding: 0 7px;
    color: #d86d17;
    font-size: 15px !important
}

.pnodex-home-exposure>p {
    margin: 0 0 16px;
    color: #80766e;
    font-size: 12px;
    line-height: 1.6
}

.pnodex-home-exposure-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px
}

.pnodex-home-exposure-grid input[type=text],
.pnodex-home-exposure-grid input[type=time],
.pnodex-home-exposure-grid select {
    width: 100%;
    height: 45px;
    padding: 0 13px;
    border: 1px solid #e1ddd8;
    border-radius: 9px;
    background: #fff;
    box-sizing: border-box;
    font-family: inherit
}

.pnodex-home-exposure-grid small {
    display: block;
    margin-top: 5px;
    color: #9a9189;
    font-size: 11px
}

.pnodex-badge-color-control {
    display: flex !important;
    align-items: center;
    gap: 10px;
    height: 45px;
    padding: 0 12px;
    border: 1px solid #e1ddd8;
    border-radius: 9px;
    background: #fff
}

.pnodex-badge-color-control input {
    width: 34px;
    height: 27px;
    padding: 0;
    border: 0;
    background: transparent
}

.pnodex-badge-color-control em {
    color: #8a8179;
    font-size: 11px;
    font-style: normal
}

@media(max-width:640px) {
    .pnodex-home-exposure-grid {
        grid-template-columns: 1fr
    }
}