/* Token Override */
:root {
    @media (max-width: 1279px) {
        --dcu-text-size-page-title: 3.6rem;
        --dcu-text-size-depth1-title: 2.4rem;
        --dcu-text-size-section-title: 2.4rem;
  
        --dcu-text-size-xxxs: 1.1rem;
        --dcu-text-size-xxs: 1.2rem;
        --dcu-text-size-xs: 1.3rem;
        --dcu-text-size-sm: 1.3rem;
        --dcu-text-size-md: 1.4rem;
        --dcu-text-size-lg: 1.6rem;
        --dcu-text-size-xl: 1.8rem;
        --dcu-text-size-xxl: 1.8rem;
        --dcu-text-size-xxxl: 2.4rem;
  
    }
}

body { min-height: 100dvh; }
body:has(.dcu-main) .header,
body:has(.dcu-main) .m_menu_top { background-color: transparent; }
body:has(.drop_menu.active) .header,
body:has(.active_tablet_menu) .m_menu_top,
body:has(.dcu-search-popup.is-open) .header,
body:has(.dcu-search-popup.is-open) .m_menu_top { background-color: #fff; }

.dcu-main { position: relative; padding-top: 22rem; padding-bottom: 12.8rem; background-image: url("../../images/main/bg_main.png"); background-size: 100%; background-position: top center; background-repeat: repeat-y; word-wrap: anywhere; }

.dcu-main-container { position: relative; width: 100%; max-width: 1546px; padding-left: 1.6rem; padding-right: 1.6rem; margin: 0 auto; }

.dcu-main-embed { height:100vh; padding-top:68px; }
.dcu-main-program { border:0px; width:100%; height:100%; display:block; overflow:hidden; }

@media (min-width: 1280px) {
    .dcu-main, .dcu-main-embed, .dcu-main-sub { padding-right: 6.8rem; }
}

@media (max-width: 1279px) {
    .dcu-main { padding-top: 12.4rem; }
}

@media (max-width: 768px) {
    body { overflow-y: auto !important; }
}

@media (max-width: 640px) {
    .dcu-main { padding-top: 10.6rem; }
}


/* 보기 전환 버튼 (간단보기 / 기본보기) */
.dcu26 .btn-view-mode {
    height: 2.8rem;
    line-height: 1;
    padding: 0.8rem 1rem;
    font-size: 1.2rem;
    font-weight: 500;
    border-radius: 4rem;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 1) !important;
    background-color: #ffffff80 !important;
    transition: border 0.2s, background-color 0.2s, color 0.2s;
}

.dcu26 .btn-view-simple {
    position: absolute;
    bottom: calc(100% + 1.2rem);
    right: 1.6rem;
    z-index: 20;
}
.dcu26 .btn-view-default {
    position: absolute;
    top: 0.8rem;
    right: 1.6rem;
    z-index: 1;
    border: 1px solid #dadada !important;
}
body.is-simple-mode .btn-view-simple {
    display: none;
}
body:not(.is-simple-mode) .btn-view-default {
    display: none;
}

@media (min-width: 769px) {
    .dcu26 .btn-view-mode { display: none; }
}

/* 위젯 추가 버튼 */
.main-btn-wrap { display: flex; justify-content: center; align-items: center; padding: 4.8rem 0; }
.btn-home-widget { display: flex; width: auto; max-width: 4em; height: 4em; justify-content: center; align-items: center; gap: 0; padding: 0 1.5em; font-size: var(--dcu-text-size-md); border-radius: 100px; border: 2px solid #FFF !important; background-color: rgba(255, 255, 255, 0.70) !important; box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.06); }
.btn-home-widget:before { content: ''; flex-shrink: 0; display: inline-block; width: 1.6rem; height: 1.6rem; background-image: url("../../images/icon/plus-16.svg"); background-size: contain; background-position: center; background-repeat: no-repeat;  }
.btn-home-widget span { max-width: 0; white-space: nowrap; overflow: hidden; font-weight: 700; color: var(--dcu-color-text-350); transition: max-width 0.1s; }
.btn-home-widget:not(.simple):hover,
.btn-home-widget.simple { max-width: 100%; gap: 0.8rem; }
.btn-home-widget:not(.simple):hover span,
.btn-home-widget.simple span { max-width: 100%; transition: max-width 0.35s; }
.btn-home-widget:focus-visible { outline: 2px solid var(--dcu-color-primary-500); outline-offset: 2px; }

@media (max-width: 768px) {
    .btn-home-widget { max-width: 3em; height: 3em; padding: 0 1.8rem; }
    .btn-home-widget:before { width: 1.2rem; height: 1.2rem; }
}

/* 위젯 추가 모달 */
.dcu26 .modal-type-01:not([open]) { display: none; }
.dcu26 .modal-type-01::backdrop { background: rgba(0, 0, 0, 0.45); }
body.dcu26.modal-fallback-open { overflow: hidden !important; }
body.dcu26.modal-fallback-open::before { content: ''; position: fixed; inset: 0; z-index: 9998; background: rgba(0, 0, 0, 0.45); }
.dcu26 .modal-type-01.is-fallback-open { display: block; position: fixed; z-index: 9999; top: 50%; left: 50%; max-width: calc(100% - 3.2rem); max-height: calc(100vh - 3.2rem); margin: 0; padding: 0; border: 0; border-radius: 1.2rem; background-color: #fff; box-shadow: 2px 2px 8px 0 rgba(0, 0, 0, 0.12); transform: translate(-50%, -50%); }
.dcu26 .modal-home-widget { width: 52.4rem; margin: 0; }
.modal-home-widget .modal-content { padding: 0; }
.modal-home-widget .modal-header { padding: 2rem; }
.modal-home-widget .modal-header button.close { top: 0.8rem; right: 0.8rem; }
.modal-home-widget .modal-header button.close span[aria-hidden] { width: 3.8rem; height: 3.8rem; background-image: url("../../images/icon/x-16.svg"); background-size: 36.36%; background-repeat: no-repeat; background-position: center; font-size: 0; }
.modal-home-widget .modal-title { font-size: var(--dcu-text-size-xxl); font-weight: 600; line-height: 1; }
.modal-home-widget .modal-body { background-color: #E9EDF3; font-size: 1.5rem; color: var(--dcu-color-text-350); }
.modal-home-widget .modal-body .widget-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem 1.2rem; margin-top: 3.2rem; }
.modal-home-widget .modal-body .widget-list li { display: grid; place-items: center; }
.modal-home-widget .modal-footer { padding: 1.6rem 2.4rem; }
.modal-home-widget .on_top { display: none; }


@media (max-width: 768px) {
    dialog:has(.modal-home-widget) {  }
    .dcu26 .modal-home-widget { width: 100%; height: 100%; }

}

/* 위젯 버튼 */
.widget-icon { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.2rem; max-width: 11rem; cursor: pointer; }
.widget-icon:has(input:focus-visible) { outline: 2px solid var(--dcu-color-primary-500); outline-offset: 2px; }
.widget-icon input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; border: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.dcu26 .widget-icon:has(input:checked) > span{ background-image: none; background-color: transparent; border: 0; }
.dcu26 .widget-icon:has(input:checked) .widget-class-checkbox { background-color: #33363D; border-color: #33363D; color: #fff; }
.widget-icon-object { position: relative; display: grid; place-items: center; width: 8.8rem; height: 8.8rem; border-radius: 2rem; border: 1px solid #FFF; background-color: rgba(255, 255, 255, 0.60); }
.widget-icon-object.shadow { box-shadow: 3px 3px 6px 0 rgba(0, 0, 0, 0.12) }
.widget-icon:has(input:checked) span.widget-icon-object { border: 1px solid #FFF; background-color: rgba(255, 255, 255, 0.60); }
.widget-icon-object img { width: 95%; height: 95%; object-fit: contain; border-radius:2rem; }
.widget-class-checkbox { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; transform: translate(-0.7rem, -0.9rem); border-radius: 50%; border: 1px solid #B1B8BE; background-color: #FFF; color: #C5CED6; }
.widget-icon-text { min-height: 2.2em; font-size: 1.4rem; font-weight: 700; line-height: 1.1; }

@media (max-width: 768px) {
    .widget-icon { max-width: 8rem; }
    .widget-icon-object { width: 6.4rem; height: 6.4rem; }
    .widget-class-checkbox { width: 1.6rem; height: 1.6rem; transform: translate(-0.4rem, -0.5rem); }
    .widget-class-checkbox svg { width: 1rem; }
    .widget-icon-text { font-size: 1.3rem; }
}



/* 스플래시 스크린 */
.splash-wrap { width: 100vw; height: 100vh; position: absolute; overflow: hidden; pointer-events: none; display: flex; justify-content: center; align-items: center; top: 0; left: 0; z-index: 999999; }
.splash-wrap > .avatar-cover { position: absolute; overflow: hidden; border-radius: 50%; display: flex; justify-content: center; align-items: center; width: max(120vw, 220vh); height: max(120vw, 220vh); background-color: #008cff; }
.splash-wrap > .avatar-cover > .cover-2 { position: relative; top: 0; bottom: 0; width: 70%; height: 70%; border-radius: 50%; display: flex; justify-content: center; align-items: center; overflow: hidden; background-color: #0aa1ff; }
.splash-wrap > .avatar-cover > .cover-2 > .cover-3 { display: block; width: 60%; height: 60%; border-radius: 50%; background-color: #00c3ff; transform: rotate(0); }
.splash-logo-wrap { width: 60vw; position: absolute; text-align: center; display: flex; flex-direction: column; gap: 0.8rem; }
.splash-logo-wrap > .splash-row { width: 100%; text-align: center; }
.splash-logo-wrap > .splash-row.splash-row-1 { display: flex; justify-content: center; gap: 0.3rem; }

@media (min-width: 1280px) {
    .splash-wrap > .avatar-cover { transform: translateX(-3.3rem); }
}


/* 포틀릿 */
.dcu-portlet-edit { position: relative; margin-bottom: 12px; }
.dcu-portlet-edit .edit-sel-btn { position: relative; padding: 12px 30px 12px 10px; font-size: 14px; font-weight: 600; line-height: 1; color: #33363D; }
.dcu-portlet-edit .edit-sel-btn::before { content: ""; position: absolute; top: 50%; right: 10px; transform: translateY(-50%); transition: transform 0.15s ease; width: 10px; height: 10px; background: url("../../images/icon/portlet-edit-sel_btn.svg") no-repeat center; background-size: 100% auto; }
.dcu-portlet-edit .edit-sel-btn.is-open::before { transform: translateY(-50%) rotate(180deg); }
.dcu-portlet-edit .edit-sel-list { position: absolute; top: 100%; padding: 12px 10px; border: 1px solid #D8DFE4; border-radius: 12px; background-color: #fff; z-index: 100; }
.dcu-portlet-edit .edit-sel-list[hidden] { display: none; }
.dcu-portlet-edit .edit-sel-list button { display: block; position: relative; width: 130px; padding: 10px 8px; font-size: 14px; font-weight: 500; text-align: left; line-height: 1; letter-spacing: -0.28px; color: #33363D; }
.dcu-portlet-edit .edit-sel-list button:not(:first-child) { margin-top: 8px; }
.dcu-portlet-edit .edit-sel-list button:hover { border-radius: 4px; background-color: #F0F1F2; }
.dcu-portlet-edit .edit-sel-list .submit-btn::before { content: ""; position: absolute; top: 50%; right: 8px; transform: translateY(-50%); width: 10px; height: 10px; background: url("../../images/icon/portlet-edit-submit-btn.svg") no-repeat center; background-size: auto 100%; }
.dcu-portlet-edit .edit-sel-list .reset-btn::before { content: ""; position: absolute; top: 50%; right: 7px; transform: translateY(-50%); width: 15px; height: 15px; background: url(../../images/icon/portlet-edit-reset-btn.svg) no-repeat center; background-size: 100% auto; }

/* 위젯 편집 모드 */
body.widget-edit-mode::before { content: ""; position: fixed; inset: 0; background-color: rgba(0,0,0,.4); z-index: 2000; }
body.widget-edit-mode .dcu-portlet-wrap,
body.widget-edit-mode .main-btn-wrap { position: relative; z-index: 2001; }
body.widget-edit-mode .dcu-portlet-edit { position: relative; z-index: 2002; }
body.widget-edit-mode .dcu-portlet-edit .edit-sel-list { z-index: 2003; }
body.widget-edit-mode .dcu-portlet-wrap .dcu-portlet--fixed { pointer-events: none; opacity: 0.45; }
body.widget-edit-mode .dcu26 .header,
body.widget-edit-mode .dcu26 .header.h_menu_item_list,
body.widget-edit-mode .dcu26 .dcu-side-bar { pointer-events: none !important; }


.dcu-portlet-wrap { position: relative; display: grid; grid-template-columns: 1fr; grid-template-rows: minmax(46rem, auto); grid-auto-rows: 48rem; gap: 1.6rem; }
.dcu-portlet-wrap.none { display: none; }
.dcu-portlet { position: relative; grid-column: span 1; grid-row: span 1; display: none; flex-direction: column; padding: 1.2rem 1.6rem 2.4rem; min-width: 0; border-radius: 1.6rem; border: 2px solid #FFF; background: rgba(255, 255, 255, 0.70); box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.06); }
.dcu-portlet.active { display: flex; }
.dcu-portlet.bg-white { background: #FFF; }

/* Sortable 드래그 앤 드롭 피드백 */
.dcu-portlet-wrap .sortable-ghost { opacity: 0.4; }
.dcu-portlet-wrap .sortable-chosen {
	box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.15);
	transform: scale(1.02);
	background-color: rgba(255, 255, 255, 0.8);
}
.dcu-portlet-wrap .sortable-drag { opacity: 1; }


@media (min-width: 769px) {
    .dcu-portlet-wrap { grid-template-columns: repeat(3, 1fr); }
    .dcu-portlet.col2 { grid-column: span 2; grid-row: span 1; }
    .dcu-portlet.col3 { grid-column: span 3; grid-row: span 1; }
}

@media (max-width: 1279px) {
    .dcu-portlet-wrap { grid-template-rows: minmax(42rem, auto); grid-auto-rows: 42rem; gap: 0.8rem; }

    .dcu-portlet { padding: 1rem 1.2rem 1.2rem; }
}

@media (max-width: 768px) {
    .dcu-portlet-wrap { grid-template-rows: initial; grid-auto-rows: initial; gap: 1.6rem; }
    .dcu-portlet { order: 1; }
}


/* 포틀릿 공통 */
.dcu-portlet .dcu-portlet-header { flex-shrink: 0; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; padding: 0.6rem 0; z-index: 1; user-select: none;  -webkit-user-select: none;}
.dcu-portlet .dcu-portlet-header img, .dcu-portlet .dcu-portlet-header svg, .dcu-portlet .dcu-portlet-header a { 
	-webkit-touch-callout: none; /* iOS/iPadOS 사파리의 롱프레스 팝업 차단 */
	-webkit-user-drag: none; /* 데스크톱/크롬에서 링크 텍스트가 고스트 이미지처럼 끌려가는 것 방지 */ }
.dcu-portlet .dcu-portlet-header img, .dcu-portlet .dcu-portlet-header svg { pointer-events: none; } 

.dcu-portlet .dcu-portlet-header { flex-shrink: 0; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; padding: 0.6rem 0; z-index: 1; }
.dcu-portlet .dcu-portlet-header__title { display: flex; align-items: center; gap: 0.8rem; min-width: 0; margin: 0; font-size: var(--dcu-text-size-lg); font-weight: 700; color: var(--dcu-color-text-500); line-height: 1.2; }
.dcu-portlet .dcu-portlet-header__title-tooltip { position: relative; display: flex; justify-content: center; align-items: center; }
.dcu-portlet .dcu-portlet-header__title-tooltip .tooltip-popover { visibility: hidden; opacity: 0; position: absolute; top: calc(100% + 0.8rem); left: 50%; translate: -50% 0; width: fit-content; min-width: 22rem; background-color: #fff; border-radius: 1.2rem; border: 1px solid var(--dcu-color-common-line-150); box-shadow: 2px 4px 16px 0 rgba(0, 0, 0, 0.12); }
.dcu-portlet .dcu-portlet-header__title-tooltip:hover .tooltip-popover { visibility: visible; opacity: 1; }
.dcu-portlet .dcu-portlet-header__title-tooltip .tooltip-popover__content { padding: 1.2rem 1rem; }
.dcu-portlet .dcu-portlet-header__title-tooltip .tooltip-popover__content .text-block { padding: 0.4rem 0.4rem 0.4rem 0.8rem; display: flex; flex-direction: column; gap: 0.4rem; font-size: var(--dcu-text-size-xs); font-weight: 400; color: var(--dcu-color-text-350); }
.dcu-portlet .dcu-portlet-header__title-tooltip .tooltip-popover__content .text-block .text-title { color: var(--dcu-color-text-400); font-weight: 600; }
.dcu-portlet .dcu-portlet-header__utils { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }
.dcu-portlet .dcu-portlet-header__btn { display: flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; padding: 0.4rem; border: 1px solid transparent; border-radius: 0.4rem; background: transparent; color: var(--dcu-color-icon-400); cursor: pointer; transition: background-color 0.2s, border-color 0.2s, color 0.2s; }
.dcu-portlet .dcu-portlet-header__btn img,
.dcu-portlet .dcu-portlet-header__btn svg { display: block; }
.dcu-portlet .dcu-portlet-header__btn svg { fill: currentColor; }
.dcu-portlet .dcu-portlet-header__btn:hover { background-color: var(--dcu-color-common-solid-250); border-color: var(--dcu-color-common-line-250); color: var(--dcu-color-text-500); }
.dcu-portlet .dcu-portlet-header__btn:focus { outline: none; }
.dcu-portlet .dcu-portlet-header__btn:focus-visible { background-color: var(--dcu-color-common-solid-250); border-color: var(--dcu-color-gray-800); color: var(--dcu-color-text-500); }
.dcu-portlet .dcu-portlet-header__btn:active { background-color: var(--dcu-color-common-solid-300); border-color: var(--dcu-color-common-line-250); color: var(--dcu-color-text-500); }

.widget-edit-mode .dcu-portlet { background-color: rgba(255, 255, 255, 0.9); }

.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header { cursor: move; }
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header:active { cursor: move; }
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header button,
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header a { cursor: pointer; }

/*.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header { cursor: default; }
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header button.handle,
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header button.handle:hover,
.dcu-portlet:not(.dcu-portlet--fixed) .dcu-portlet-header button.handle:active { cursor: move; }
body.widget-edit-mode .dcu-portlet .dcu-portlet-header__btn.add { display: none; }
body:not(.widget-edit-mode) .dcu-portlet .dcu-portlet-header__btn.close,
body:not(.widget-edit-mode) .dcu-portlet .dcu-portlet-header__btn.handle { display: none; }
*/

.dcu-portlet .dcu-portlet-body { flex: 1; min-height: 0; }


/* 포틀릿 공통 컴포넌트 */
.dcu26 .btn-home-tab { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.8rem 1rem; border-radius: 0.6rem; border: none; background-color: var(--dcu-color-common-solid-300); color: var(--dcu-color-text-350); font-size: var(--dcu-text-size-sm); font-weight: 700; line-height: 1.2; white-space: nowrap; cursor: pointer; transition: background-color 0.2s, color 0.2s; }
.dcu26 .btn-home-tab:hover { background-color: var(--dcu-color-common-solid-250); color: var(--dcu-color-text-500); }
.dcu26 .btn-home-tab.active { background-color: var(--dcu-color-common-solid-800); color: var(--dcu-color-text-white); }
.dcu26 .btn-home-tab:focus-visible { outline: 2px solid var(--dcu-color-primary-400) !important; }


.dcu26 .home-link-list { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; gap: 1rem; height: 100%; }

.dcu26 .home-link-item { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 2.5rem 2.4rem; border-radius: 0.6rem; border: 1px solid #CAD4DD; color: var(--dcu-color-text-350); background-color: #ECF1F5; transition: 0.2s; stroke: #2874E0; }
.dcu26 .home-link-item.blank { border-color: #ECF1F5; }
.dcu26 .home-link-item__content { flex: 1; min-height: 8rem; font-size: 1.8rem; font-weight: 700; line-height: 1.2; }
.dcu26 .home-link-item__icon { align-self: flex-end; width: 4rem; height: 4rem; }
.dcu26 .home-link-item__icon svg { width: 100%; height: 100%; }

.dcu26 .home-link-item:not(.blank):hover { background-color: var(--dcu-color-common-solid-white); border-color: #7CB0E4; color: var(--dcu-color-text-400); stroke: currentColor; }
.dcu26 .home-link-item:focus,
.dcu26 .home-link-item:focus-visible { border-color: var(--dcu-color-common-line-600) }

.dcu26 .home-link-text { display: flex; flex-direction: column; justify-content: space-between; width: 100%; min-width: 0; height: 100%; padding: 1.4rem 1.6rem 2rem; border-radius: 0.6rem; border: 1px solid #CAD4DD; color: var(--dcu-color-text-350); background-color: #ECF1F5; transition: 0.2s; stroke: #2874E0; }
.dcu26 .home-link-text.blank { border-color: #ECF1F5; }
.dcu26 .home-link-text__content { flex: 1; min-width: 0; max-width: 100%; max-height: 2.4em; font-size: var(--dcu-text-size-md); font-weight: 700; line-height: 1.2;  }
.dcu26 .home-link-text__icon { align-self: flex-end; width: 1.4rem; height: 1.4rem; }
.dcu26 .home-link-text__icon svg { width: 100%; height: 100%; stroke: currentColor; }

.dcu26 .home-link-text:not(.blank):hover { background-color: var(--dcu-color-common-solid-white); border-color: #7CB0E4; color: var(--dcu-color-text-400); }
.dcu26 .home-link-text:focus,
.dcu26 .home-link-text:focus-visible { border-color: var(--dcu-color-common-line-600) }


@media (max-width: 1279px) {
    .dcu26 .home-link-item { padding: 1.6rem; }
    .dcu26 .home-link-item__content { font-size: 1.5rem; }
    .dcu26 .home-link-item__icon { width: 3.2rem; height: 3.2rem; }

    .dcu26 .home-link-text { padding: 1.4rem 1rem 1.4rem 1.4rem; }
}

@media (max-width: 768px) {
    .dcu26 .home-link-item__icon { width: 2.4rem; height: 2.4rem; }
}

/* btn-schedule-month (캘린더 월 이동 버튼) - Figma btn-schedule-month 참고 */
.btn-schedule-month { display: inline-flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; padding: 0; border: 1px solid var(--dcu-color-common-line-200) !important; border-radius: 60px; background-color: #fff !important; background-position: center; background-repeat: no-repeat; font-size: 0; cursor: pointer; transition: border-color 0.2s, background-color 0.2s; }
.btn-schedule-month--prev { background-image: url("../../images/icon/chevron-l-14-md.svg"); }
.btn-schedule-month--next { background-image: url("../../images/icon/chevron-r-14-md.svg"); }
.btn-schedule-month:hover,
.btn-schedule-month:focus-visible { border-color: var(--dcu-color-primary-500); background-color: #fff; }
.btn-schedule-month:hover { outline: none; }
.btn-schedule-month:focus-visible { outline: 2px solid var(--dcu-color-primary-500); outline-offset: 2px; }


/* 사용자 정보 포틀릿 (로그인 사용자) */
.user-info .user-info-inner { display: flex; flex-direction: column; gap: 2.4rem; height: 100%; padding: 0 1.6rem; }
.user-info__profile { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.2rem; padding-top: 6rem; padding-bottom: 0.6rem; text-align: center; line-height: 1.2; }
.user-info__profile .user-info__avatar { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); }
.user-info__profile .user-info__avatar .dcu-avatar { width: 9.8rem; height: 9.8rem; border: 6px solid #FFF; box-sizing: content-box; }
.user-info__profile .user-info__avatar-btn { position: absolute; bottom: 0; left: 100%; transform: translate(-0.3rem, 0.5rem); width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid var(--dcu-color-common-line-200); }
.user-info__name { font-size: 2.2rem; font-weight: 700; color: var(--dcu-color-text-500); margin: 0 0 0.2rem 0; }
.user-info__meta { font-size: var(--dcu-text-size-md); color: var(--dcu-color-text-300); margin: 0; }
.user-info__progress { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem 2rem; padding: 2.6rem 0 3.2rem; border-top: 1px solid var(--dcu-color-common-line-100); border-bottom: 1px solid var(--dcu-color-common-line-100); }
.user-info__item { display: flex; flex-direction: column; justify-content: space-between; gap: 0.8rem; font-family: 'Pretendard', sans-serif; }
.user-info__item-label { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; font-size: var(--dcu-text-size-sm); line-height: 1; }
.user-info__label { min-width: 0; color: var(--dcu-color-text-500); }
.user-info__value { flex-shrink: 0; color: var(--dcu-color-text-200); }
.user-info__value strong { color: var(--dcu-color-text-400); font-weight: 700; }
.user-info__bar-wrap { height: 0.8rem; border-radius: 999px; background: var(--dcu-color-common-line-100); overflow: hidden; }
.user-info__bar-wrap--blue .user-info__bar { background: var(--dcu-color-primary-400); }
.user-info__bar-wrap--teal .user-info__bar { background: var(--dcu-color-teal-500); }
.user-info__bar { height: 100%; border-radius: 999px 0 0 999px; width: calc(100% * (var(--progress) / var(--total))); min-width: 0; transition: width 0.3s ease; }
.user-info__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4rem; }
.user-info__stat { display: flex; flex-direction: column; align-items: flex-start; gap: 0.8rem; min-width: 0; padding: 0.8rem 0.8rem 0.8rem 1rem; }
.user-info__stat-label { font-size: var(--dcu-text-size-sm); color: var(--dcu-color-text-300); line-height: 1.2; }
.user-info__stat-value { font-size: var(--dcu-text-size-xxs); font-weight: 600; color: var(--dcu-color-text-300); line-height: 1; }
.user-info__stat-value strong { position: relative; top: 0.2rem; margin-right: 0.2rem; font-size: var(--dcu-text-size-xxl); color: var(--dcu-color-text-500); font-weight: 700; }

/* 사용자 정보 포틀릿 - 전공/직무 진로 칩 리스트 (Swiper free mode, notice-tabs와 동일) */
.user-info-curriculum { display: flex; flex-direction: column; gap: 1.2rem; }
.user-info-curriculum__row { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.user-info-curriculum__label { flex-shrink: 0; padding: 0.8rem 0; font-size: 1.3rem; font-weight: 700; color: var(--dcu-color-text-300); line-height: 1.3; letter-spacing: -0.026em; }
.user-info-curriculum__chips { position: relative; flex: 1; min-width: 0; overflow: hidden; touch-action: pan-y; }
.user-info-curriculum__chips .swiper-wrapper { display: flex; align-items: center; }
.user-info-curriculum__chips .swiper-slide { width: auto !important; flex: 0 0 auto; }
.user-info-chip { display: inline-flex; align-items: center; justify-content: center; padding: 0 1rem; height: 2.8rem; border-radius: 4rem; background-color: var(--dcu-color-primary-50) !important; border: 1px solid var(--dcu-color-primary-200) !important; font-size: 1.3rem; font-weight: 700; color: var(--dcu-color-text-350); line-height: 1.3; white-space: nowrap; text-decoration: none; transition: background-color 0.2s, border-color 0.2s, color 0.2s; cursor: pointer; }
.user-info-chip:hover { background-color: #e4f5fe !important; border-color: var(--dcu-color-primary-300) !important; color: var(--dcu-color-text-400); }
.user-info-chip:focus-visible { outline: 2px solid var(--dcu-color-primary-400); outline-offset: 2px; }
.user-info-curriculum .curriculum-btn { align-self: flex-start; padding: 0.8rem 0.6rem 0.8rem 1.2rem; font-size: 1.3rem; }


@media (max-width: 1279px) {
    .user-info .user-info-inner { padding: 0 0.4rem; gap: 1.6rem; }
    .user-info__profile { padding-top: 4.8rem; padding-bottom: 0; gap: 0.4rem; }
    .user-info__profile .user-info__avatar .dcu-avatar { width: 7.2rem; height: 7.2rem; }
    .user-info__name { font-size: 1.8rem; }
    .user-info__progress { padding: 2.4rem 0; }
    .user-info__item { min-width: 0; }
    .user-info__value { flex-shrink: initial; }
    .user-info__stats { gap: 1.6rem; }
    .user-info__stat { padding: 0.8rem 0 0.8rem 0.8rem; }
    .user-info__stat-value strong { top: 0; font-size: var(--dcu-text-size-xl); }
}

@media (max-width: 768px) {
    .user-info { order: 0; }
    .user-info-postgrad { order: 0; }
    .user-info-inactive { order: 0; }
    .user-info .user-info-inner { padding: 0 0.8rem; }
}

.avatar-cap { width: 10rem; height: 10rem; position: absolute; margin: auto; z-index: 8; left: 0; right: 0; top: -33rem; }
.avatar-cap.none { display: none; }
.avatar-cap img { width: 100%; }

@media (max-width: 768px) {
    .avatar-cap { width: 7rem; height: 7rem; }
}

/* 전공기반 진로 설정 모달 */
.dcu26 .modal-career-setting { width: 64rem; max-width: calc(100vw - 3.2rem); margin: 0; }
.dcu26 .modal-career-setting .modal-body { height: auto; }
.dcu26 .career-setting-section { display: flex; flex-direction: column; gap: 2rem; }
.dcu26 .career-setting-desc { font-size: 1.4rem; font-weight: 600; color: var(--dcu-color-text-350, #58616a); line-height: 1.3; margin: 0; }
.dcu26 .career-choice-rows { display: grid; gap: 0.8rem; grid-template-columns: 1fr; }
.dcu26 .career-choice-item { padding: 0; border: 1px solid var(--dcu-color-common-line-200); border-radius: 0.4rem; }
.dcu26 .career-choice-item:has(input:checked) { background-color: var(--dcu-color-common-solid-brand-50); border-color: var(--dcu-color-primary-400); }
.dcu26 .career-choice-item > span { display: block; width: 100%; }
.dcu26 .career-choice-item label.check-label-xl { justify-content: flex-start; font-size: 1.4rem; padding: 1.6rem 1.2rem; }
.dcu26 .career-choice-item label.check-label-xl > span { width: 1.6rem; height: 1.6rem; background-size: 1.2rem; }
.dcu26 .career-choice-item label.check-label-xl:has(input:checked) > span { background-color: var(--dcu-color-primary-400); border-color: var(--dcu-color-primary-400);; }
.career-setting-hint { font-size: 1.4rem; font-weight: 600; color: var(--dcu-color-text-350, #58616a); line-height: 1.3; margin: 0; }

@media (min-width: 768px) {
    .dcu26 .career-choice-rows { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .dcu26 .modal-career-setting { width: 100%; }
}

/* 직무기반 진로 설정 모달 */
.modal-career-setting-work .work-table-wrap { border: 1px solid var(--dcu-color-common-line-150, #d8dfe4); overflow: hidden; }
.modal-career-setting-work .work-table-body { display: flex; border-bottom: 1px solid var(--dcu-color-common-line-150, #d8dfe4); }
.modal-career-setting-work .work-cell { border: none; min-width: 0; height: 36rem; overflow-x: hidden; overflow-y: auto;  }
.modal-career-setting-work .work-cell-large { width: 37%; flex-shrink: 0; background: var(--dcu-color-common-solid-150, #fafafa); border-right: 1px solid var(--dcu-color-common-line-150, #d8dfe4); padding: 0.8rem; }
.modal-career-setting-work .work-large-list { display: flex; flex-direction: column; gap: 0.4rem; overflow-y: auto; max-height: 100%; }
.modal-career-setting-work .work-large-item { display: block; width: 100%; padding: 0.8rem 1.2rem; font-size: 1.4rem; font-weight: 600; color: var(--dcu-color-text-400); background: transparent; border: none; border-radius: 0.6rem; text-align: left; cursor: pointer; transition: background-color 0.2s; }
.modal-career-setting-work .work-large-item:hover { background: var(--dcu-color-common-solid-200); }
.modal-career-setting-work .work-large-item[aria-selected="true"],
.modal-career-setting-work .work-large-item.active { background: var(--dcu-color-common-solid-300, #e6e8ea); color: var(--dcu-color-text-400); }
.modal-career-setting-work .work-cell-mid { flex: 1; min-width: 0; background: var(--dcu-color-common-solid-150, #fafafa); padding: 0.8rem 1rem 0.8rem 0.8rem; overflow: hidden; }
.modal-career-setting-work .work-mid-panel { display: none; height: 100%; overflow: hidden; }
.modal-career-setting-work .work-mid-panel[aria-hidden="false"],
.modal-career-setting-work .work-mid-panel.active { display: block; overflow-y: auto; }
.modal-career-setting-work .work-mid-list { display: flex; flex-direction: column; gap: 0.4rem; }
.modal-career-setting-work .work-mid-row { border-radius: 0.4rem; overflow: hidden; }
.modal-career-setting-work .work-mid-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 4rem; padding: 0.8rem 0.8rem 0.8rem 1.2rem; font-size: 1.6rem; font-weight: 700; color: var(--dcu-color-text-400); background: var(--dcu-color-common-solid-250, #f0f1f2); border: none; border-radius: 0.6rem; text-align: left; cursor: pointer; }
.modal-career-setting-work .work-mid-chevron { display: block; width: 1.4rem; height: 1.4rem; background-image: url(../../images/icon/chevron-d-14-sm.svg); background-position: center; background-repeat: no-repeat; transition: transform 0.2s; }
.modal-career-setting-work .work-mid-row[aria-expanded="true"] .work-mid-chevron,
.modal-career-setting-work .work-mid-row.active .work-mid-chevron { transform: rotate(180deg); }
.modal-career-setting-work .work-sub-list { display: flex; flex-direction: column; gap: 1.2rem; padding: 1.2rem; }
.modal-career-setting-work .work-sub-list[hidden] { display: none; }
.modal-career-setting-work .work-sub-item .check-label { justify-content: flex-start; }
.modal-career-setting-work .work-selected-wrap { padding: 1.2rem 1.6rem 2rem; }
.modal-career-setting-work .work-selected-bar { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; margin-bottom: 1.6rem; }
.modal-career-setting-work .work-selected-count { font-size: 1.4rem; font-weight: 600; color: var(--dcu-color-text-350, #58616a); }
.modal-career-setting-work .work-selected-count .work-selected-num { color: var(--dcu-color-primary-400); }
.modal-career-setting-work .btn-work-refresh { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem; font-size: 1.2rem; font-weight: 500; color: var(--dcu-color-text-400); background: none; border: none; border-radius: 0.6rem; cursor: pointer; }
.modal-career-setting-work .btn-work-refresh:hover { background-color: var(--dcu-color-common-solid-150); }
.modal-career-setting-work .work-tag-row { display: flex; flex-wrap: wrap; gap: 0.4rem; min-height: 3.2rem; }


/* AI 검색 포틀릿 */
.ai-search { gap: 1.6rem; }
.ai-search-inner { flex: 1; display: flex; flex-direction: column; padding: 0.6rem 1.6rem 1.6rem; gap: 1.6rem; }
.ai-search__field { display: flex; align-items: center; gap: 0.8rem; padding: 1.6rem 0.8rem 1.6rem 0.4rem; min-height: 3.2rem; background-image: linear-gradient(90deg,#00c3ff,#6637ff,#01ff30); background-size: 400% 4px; background-repeat: no-repeat; background-position: bottom left; animation: input-gra 3s linear infinite; }
.ai-search__field:hover,
.ai-search__field:focus-within { border-bottom-color: var(--dcu-color-primary-400); }
.ai-search__field:hover .ai-search__field-btn,
.ai-search__field:focus-within .ai-search__field-btn { color: var(--dcu-color-primary-400); }
.dcu26 .ai-search__input { flex: 1; min-width: 0; height: auto; min-height: 2.4rem; padding: 0; border: none !important; border-radius: 0 !important; font-size: 2.2rem; color: var(--dcu-color-text-500); background: transparent !important; box-shadow: none !important; position: relative; z-index: 1; }
.dcu26 .ai-search__input:not(:placeholder-shown),
.dcu26 .ai-search__input:focus,
.dcu26 .ai-search__input:focus-visible { background: transparent !important; border: none !important; }
.dcu26 .ai-search__input::placeholder { color: var(--dcu-color-text-300); }
.dcu26 .ai-search__input:focus { outline: none; }
.ai-search__field-btn { display: flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; padding: 0; border: none; border-radius: 0.4rem; background: transparent; color: var(--dcu-color-text-400); cursor: pointer; flex-shrink: 0; transition: color 0.2s ease, background-color 0.2s ease; }
/* .ai-search__field-btn:hover,
.ai-search__field-btn:focus,
.ai-search__field-btn:focus-visible { color: var(--dcu-color-primary-400); background-color: var(--dcu-color-common-solid-200); } */
.ai-search__field-btn:focus { outline: none; }
.ai-search__field-btn:focus-visible { outline: 2px solid var(--dcu-color-common-line-400); outline-offset: 2px; }
.ai-search__field-btn svg { display: block; width: 3.2rem; height: 3.2rem; }
.ai-search__tags { display: flex; flex-wrap: wrap; gap: 0.6rem; max-height: 14.5rem; overflow-y: auto; }
/* .ai-search__illus { display: flex; justify-content: center; align-items: flex-end; margin-top: auto; }
.ai-search__illus img { display: block; width: 100%; max-width: 16.5rem; height: auto; object-fit: contain; } */

.ai-search__illus { margin-top: auto; width: 100%; position: relative; padding: 1.6rem 0 1.2rem; }
.ai-search__illus > .inner { width: 100%; position: relative; height: 100%; }
.ai-search__illus .search-visual-character { display: block; width: 4.8rem; margin: auto; }
.ai-search__illus .search-visual-bot { position: absolute; width: 4rem; top: 0; left: calc(50% - 7.6rem); }
.ai-search__illus .search-visual-balloon { position: absolute; width: 3.2rem; top: 0; left: calc(50% + 3rem); }


@media (min-width: 769px) {
    .ai-search__illus .search-visual-character { width: 18.36%; }
    .ai-search__illus .search-visual-bot { width: 14.13%; left: 24.153%;  }
    .ai-search__illus .search-visual-balloon { width: 12.1%; left: 61.34375%; }
}

@media (max-width: 1279px) {
    .ai-search { padding-top: 0.8rem; gap: 0 0.8rem; }
    .ai-search-inner { padding: 0.6rem 0.8rem 0; }
    .dcu26 .ai-search__input { font-size: var(--dcu-text-size-xl); }
    .ai-search__illus img { max-width: 10.7rem; }
}

@keyframes input-gra {
    0% {
        background-position: 0% 100%
    }

    50% {
        background-position: 100% 100%
    }

    to {
        background-position: 0% 100%
    }
}


/* 서비스 바로가기 포틀릿 */
.service { gap: 0; }
.service-inner { flex: 1; padding: 1.6rem 2rem 2rem; min-height: 0; }
/* quick-link-item: 아이콘 + 라벨, 기본/호버(채움·테두리) 지원 */
.service__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 1.2rem; list-style: none; margin: 0; padding: 0; justify-content:space-evenly; }
.service__item { display: block; }
.service__link { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding-bottom: 1rem; border: 1px solid transparent; border-radius: 0.8rem; background: transparent; color: var(--dcu-color-text-500); text-decoration: none; text-align: center; transition: background-color 0.2s, border-color 0.2s, color 0.2s; }
.service__link:hover { background-color: var(--dcu-color-common-solid-200); border-color: transparent; color: var(--dcu-color-text-500); }
.service__link:focus { outline: none; }
.service__link:focus-visible { background-color: var(--dcu-color-common-solid-200); border-color: transparent; outline: 2px solid var(--dcu-color-common-line-500) !important; }
.service__link--outline:hover,
.service__link--outline:focus-visible { background-color: var(--dcu-color-common-solid-100); border-color: var(--dcu-color-common-line-400); }
.service__icon { display: flex; align-items: center; justify-content: center; width: 3.2rem; height: 6.4rem; flex-shrink: 0; color: var(--dcu-color-primary-400); }
.service__icon svg { display: block; width: 3.2rem; height: 3.2rem; }
.service__label { min-height: 4rem; font-size: var(--dcu-text-size-xs); font-weight: 600; line-height: 1.2; color: inherit; max-width: 100%; word-break: keep-all; }


@media (max-width: 1279px) {
    .service-inner { padding: 1.6rem 0 0; }
    .service__list { gap: 0.8rem 0; }
    .service__icon { width: 2.8rem; height: 5.4rem; }
    .service__icon svg { width: 2.8rem; height: 2.8rem; }
    .service__label { min-height: 3.2rem; }
}

@media (min-width: 769px) and (max-width: 1279px) {
    .service { padding-left: 0; padding-right: 0; }
    .service .dcu-portlet-header{ padding-left: 1.2rem; padding-right: 1.2rem; }
}


@media (max-width: 768px) {
    .service__list { gap: 0 0.8rem; }
}


/* 일반 로그인 포틀릿 */
.user-login .user-login-inner { display: flex; flex-direction: column; gap: 2.4rem; height: 100%; padding: 0 1.6rem; }
.user-login-avatar { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); border: 6px solid #fff; }
.user-login-avatar__inner { display: block; width: 100%; height: 100%; background-color: #DDE9F1; }
.user-login-header { padding-top: 1.6rem; }
.user-login-header img { display: block; margin: auto; width: 88%; max-width: 29.7rem; }
.user-login-form { display: flex; flex-direction: column; gap: 2.4rem; padding: 1.6rem 0; }
.user-login-form .btn-login { padding: 2rem 1.6rem; background-color: var(--dcu-color-primary-400); border-radius: 0.8rem; font-size: 1.8rem; line-height: 1; }
.user-login-form .btn-login:not(:disabled):hover { background-color: var(--dcu-color-primary-500); }

@media (max-width: 1279px) {
    .user-login .user-login-inner { padding: 0 0.4rem; gap: 1.6rem; }

}

@media (max-width: 768px) {
    .user-login { order: 0; padding-bottom: 1.6rem; }
    .user-login .user-login-inner { padding: 0 0.8rem; }
    .user-login-form { gap: 1.6rem; padding-bottom: 0; }
}




/* 달력 포틀릿 */
.calendar { gap: 0; min-height: 0; padding: 4rem; }
.calendar .dcu-portlet-header { position: absolute; top: 0; left: 0; width: 100%; padding: 2.8rem 2.8rem 0; }
.calendar .calendar-body { display: flex; gap: 2.4rem; flex: 1; min-height: 0; align-items: stretch; }
.calendar-left { display: flex; align-items: flex-end; width: 18.36%; padding: 3.2rem 3.6rem 3.2rem 1.6rem; border-radius: 0.8rem; overflow: hidden; }
.calendar-left img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.calendar-right { flex: 1; display: flex; gap: 4rem; }
.calendar-right .schedule-calendar { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.calendar-right .calendar-header { display: flex; align-items: center; justify-content: center; gap: 2.4rem; padding: 1rem 1.2rem; flex-shrink: 0; }
.calendar-right .calendar-header .month-year { font-size: var(--dcu-text-size-xxxl); font-weight: 700; color: var(--dcu-color-text-500); line-height: 1; }
.calendar-right .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.4rem; margin-bottom: 0.6rem; flex-shrink: 0; padding: 1rem 0; text-align: center; font-size: var(--dcu-text-size-xs); font-weight: 700; color: var(--dcu-color-text-300); line-height: 1.7; border-bottom: 1px solid var(--dcu-color-common-line-200); }
.calendar-right .calendar-days p { margin: 0; }
.calendar-right .calendar-dates { flex: 1; min-height: 0; align-content: start; }
.calendar-list { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 1.2rem; }
.calendar-list:first-child { padding-right: 2.4rem; border-right: 1px solid var(--dcu-color-common-line-100); margin-right: 2.4rem; }
.calendar-list-header { padding-top: 0.4rem; }
.calendar-list-header .btn { position: relative; left: -0.8rem; padding: 1.2rem 0.8rem; }
.calendar-list-header .btn-close { display: none; width: 2.4rem; height: 2.4rem; padding: 0.4rem; background-image: url(../../images/icon/chevron-d-16.svg); background-position: center; background-repeat: no-repeat; transition: 0.2s; }
.calendar-items { flex: 1; min-width: 0; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; overflow-y: auto; min-height: 0; }

.schedule-calendar .calendar-dates { display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(5,minmax(0,1fr)); gap: 0.6rem 0.2rem; }
.calendar-cell-day { min-height: 4rem; max-height: 5rem; display: flex; padding: 0.8rem 0.4rem; flex-direction: column; justify-content: center; align-items: center; font-size: var(--dcu-text-size-lg); font-weight: 700; line-height: 1; color: var(--dcu-color-text-500); border: 1px solid transparent; border-radius: 0.8rem; background-color: transparent; transition: 0.2s; }
.calendar-cell-day:not(:disabled):not(.active):hover,
.calendar-cell-day:not(:disabled):not(.active):focus-visible { background-color: var(--dcu-color-common-solid-250); }
.calendar-cell-day.active { background-color: var(--dcu-color-primary-400); color: #fff !important; }
.calendar-cell-day.is-weekend { color: var(--dcu-color-text-300); }
.calendar-cell-day span { position: relative; }
.calendar-cell-day .calendar-dot-wrap { position: absolute; bottom: calc(100% + 1px); left: 50%; display: flex; gap: 0.2rem; }
.calendar-cell-day .calendar-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; }
.calendar-cell-day .calendar-dot-my { background-color: #5CB0FF; }
.calendar-cell-day .calendar-dot-academic { background-color: #FF9900; }
.calendar-cell-day.active .calendar-dot { background-color: #fff; }
.calendar.hide-my .calendar-dot-my,
.calendar.hide-academic .calendar-dot-academic { display: none; }
/* .calendar-cell-day.has-schedule span { position: relative; }
.calendar-cell-day.has-schedule span:after { content: ''; position: absolute; bottom: calc(100% + 1px); right: -2px; width: 5px; height: 5px; border-radius: 50%; background-color: #5CB0FF;  }
.calendar-cell-day.has-schedule.active span:after { background-color: #fff; } */

.schedule-item-1 { display: flex; gap: 0.4rem; padding-top: 0.8rem; line-height: 1.2; min-width: 0; }
.schedule-item-1__left { position: relative; display: flex; align-items: flex-start; gap: 0.6rem; flex-basis: 8rem; flex-shrink: 0; padding-top: 1.3rem; line-height: 1; }
.schedule-item-1__dot-wrap { position: relative; flex-shrink: 0; }
.schedule-item-1__dot { display: block; width: 1.2rem; height: 1.2rem; border-radius: 50%; background-color: var(--dcu-color-primary-400); flex-shrink: 0; }
.schedule-item-1__line { position: absolute; top: 2rem; left: 0.5rem; width: 2px; min-height: 1.6rem; height: 110%; flex: 1; background-color: var(--dcu-color-primary-200); }
.schedule-item-1__time { font-size: 1.4rem; font-weight: 700; color: var(--dcu-color-blue-500); }
.schedule-item-1__content { display: flex; flex-direction: column; align-items: flex-start; gap: 0.6rem; min-width: 0; flex: 1; padding: 1.2rem 1.6rem 0.4rem 0.4rem; }
.schedule-item-1__title { font-size: 1.6rem; font-weight: 700; line-height: 1; }
.schedule-item-1__meta { font-size: 1.4rem; line-height: 1.2; color: var(--dcu-color-text-300); }
/* .schedule-item-1:last-child .schedule-item-1__line { display: none; } */

.calendar-items:has(.schedule-item-2) { padding: 1rem 1.6rem 0 0; gap: 1.2rem }
.schedule-item-2 { min-width: 0; display: flex; align-items: flex-start; gap: 1.2rem; padding: 0.8rem 0; }
.schedule-item-2__dot { flex-shrink: 0; width: 1.2rem; height: 1.2rem; border-radius: 50%; margin-top: 1px; margin-left: 0.4rem; background-color: var(--dcu-color-orange-500); }
.schedule-item-2__content { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; flex: 1; line-height: 1; }
.schedule-item-2__period { font-size: 1.4rem; color: var(--dcu-color-gray-500); font-weight: 600; }
.schedule-item-2__title { font-size: 1.6rem; font-weight: 700; }

@media (max-width: 1279px) {
    .calendar { padding: 2.4rem; }
    .calendar .dcu-portlet-header { padding: 1.8rem 1.6rem 0; justify-content: flex-end; }
    .calendar .dcu-portlet-header__title { display: none; }
    .calendar-left { display: none; }
    .calendar-right { gap: 1.6rem; }
}

@media (max-width: 768px) {
    .calendar-right { display: block; }
    .calendar-list { display: grid; grid-template-rows: 4.4rem 0fr; gap: 0; padding: 0.4rem 0 1.6rem; transition: grid-template-rows 0.25s ease; border-top: 1px solid var(--dcu-color-common-line-100); }
    .calendar-list.is-open { grid-template-rows: 4.4rem 1fr; }
    .calendar-list.is-open .calendar-list-header .btn-close { transform: rotate(180deg); }
    .calendar-list-header { display: flex; justify-content: space-between; align-items: center; padding-top: 0; }
    .calendar-list-header .btn { font-size: 1.8rem; padding: 1.2rem 0.8rem; }
    .calendar-list-header .btn-close { display: inline-block; }
    .calendar-items,
    .calendar-items:has(.schedule-item-2)  { overflow: hidden; min-height: 0; padding: 0; overflow-y: auto; }
}


/* 공지사항 포틀릿 */
.dcu-portlet.notice { gap: 3.2rem; }
.notice__header { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding: 0.6rem 0; }
.notice-tabs { position: relative; flex: 0 1 auto; overflow: hidden; touch-action: pan-y; margin-left:0; min-width:0; }
/* .notice-tabs:after { content: ''; position: absolute; top: 0; right: 0; width: 2.6rem; height: 100%; background: linear-gradient(90deg, rgba(245, 248, 250, 0.00) 0%, #F5F8FA 100%); z-index: 10; } */
.notice-tabs__wrapper { display: flex; align-items: center; }
.notice-tabs .swiper-slide { width: auto !important; flex: 0 0 auto; }
.notice__body { overflow-y: auto; }
.notice-list { list-style: none; margin: 0; padding: 0 2rem; display: flex; flex-direction: column; gap: 2.2rem; }
.notice-item { display: flex; align-items: center; justify-content: space-between; gap: 2.4rem; }
.notice-item__main { display: flex; align-items: center; gap: 0.8rem; min-width: 0; flex: 1; }
.notice-item__title { display: inline-flex; align-items: center; gap: 0.4rem; min-width: 0; text-decoration: none; color: var(--dcu-color-text-500); }
.notice-item__title:focus-visible { outline: 2px solid var(--dcu-color-primary-400) !important; }
.notice-item__title-text { display: block; max-width: 100%; font-size: 1.4rem; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notice-item__date { flex-shrink: 0; font-size: 1.3rem; color: var(--dcu-color-text-300); white-space: nowrap; }

@media (max-width: 768px) {
    .notice__body { max-height: 28.2rem; }
    .notice-item__date { display: none; }
}

/* 성적 포틀릿 */
.dcu-portlet.score { gap: 1.2rem; }
.score-inner { display: flex; gap: 2rem; height: 100%; }
.score-inner > * { display: flex; flex-direction: column; justify-content: space-between; flex: 1; min-width: 0; max-width: 50%; }
.score-left { gap: 1.2rem; }
.score-left .dcu-portlet-header__utils { align-self: flex-start; }
.score-left .score-body { align-items: flex-start; }
.score-right { gap: 2rem; }
.score-tabs { display: flex; align-items: center; gap: 0.6rem; }
.score-body { display: flex; align-items: safe center; overflow-y: auto; }
.score-list { width: 100%; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.score-list:empty { display: none; }
.score-list-wrap { display: flex; height: 100%; width: 100%; }
.score-list-empty-wrap { display: flex; justify-content: center; align-items: center; flex-direction:column; gap: 1.2rem; height: 100%; width: 100%; }
.score-list-empty {display: flex; justify-content: center; align-items: center; width: 7.2rem; height: 7.2rem; background-color: rgba(192, 201, 210, 0.80); border-radius: 50%;}

.score-chart { min-width: 0; width: 100%; }
.score-chart canvas { width: 100%; max-width: 100%; }
.score-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.2rem; width: 100%; padding: 1.8rem 1.2rem; border-top: 1px solid var(--dcu-color-common-line-150); line-height: 1.2; transition: background-color 0.2s; }
.score-item__title { min-width: 0; font-size: 1.6rem; font-weight: 700; }
.score-item__info { flex-shrink: 0; display: flex; align-items: center; gap: 1.2rem; font-size: 1.4rem; color: var(--dcu-color-text-300); }
.score-item__info em { font-weight: 600; color: var(--dcu-color-text-400); }
.score-item__info em.blue { color: var(--dcu-color-blue-600); }


@media (min-width: 769px) {
    .score-item:hover { background-color: var(--dcu-color-common-solid-150); }
}

@media (max-width: 1279px) {
    .score-item { flex-direction: column; gap: 0.8rem; padding: 1.4rem 1.2rem; }
}

@media (max-width: 768px) {
    .score-inner { flex-direction: column; }
    .score-inner > * { flex: auto; max-width: none; }
    .score-left .score-body { max-height: 28.2rem; }
}

/* 졸업생 취업 우수사례 포틀릿 */
.dcu-portlet.case { gap: 2.2rem; }
.case-body { overflow-y: auto; }
.case-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.case-item { display: flex; align-items: flex-start; gap: 1.2rem; width: 100%; padding: 1.8rem 1.2rem; border-top: 1px solid var(--dcu-color-common-line-150); line-height: 1.2; transition: background-color 0.2s; }

.case-item__title { flex: 0 0 min(50%, 16rem); max-width: 100%; min-width: 0; font-size: 1.5rem; font-weight: 700; }
.case-item__content { flex: 1; max-width: 100%; min-width: 0; font-size: 1.4rem; color: var(--dcu-color-text-300); }

.case-item:hover,
.case-item:focus-visible { background-color: var(--dcu-color-common-solid-150); }

@media (max-width: 1279px) {
    .case-item { flex-direction: column; gap: 0.8rem; padding: 1.4rem 1.2rem 1.4rem 0.8rem; }
}

@media (max-width: 768px) {
    .case-body { max-height: 28.2rem; }
}

/* 기숙사 포틀릿 */
.dcu-portlet.dormitory { gap: 2rem; }
.dcu-portlet.dormitory .home-link-list { grid-template-columns: 1fr; }

/* 봉사 활동 포틀릿 */
.dcu-portlet.volunteer { gap: 2rem; }

/* 상담신청 포틀릿 */
.dcu-portlet.consulting { gap: 2rem; }
.dcu-portlet.consulting .home-link-list li { min-width: 0; }

@media (max-width: 1279px) {
    .dcu-portlet.consulting { gap: 1.6rem; }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .dcu-portlet.consulting .home-link-text__content { font-size: 1.3rem; }
}

/* 게시판 포틀릿 */
.dcu-portlet.board { gap: 1.2rem; }
.dcu-portlet.board .board__header { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding: 0.6rem 0; }
.board-tabs { position: relative; flex: 0 1 auto; overflow: hidden; touch-action: pan-y; margin-left:0; min-width:0; }
/* .board-tabs:after { content: ''; position: absolute; top: 0; right: 0; width: 2.6rem; height: 100%; background: linear-gradient(90deg, rgba(245, 248, 250, 0.00) 0%, #F5F8FA 100%); z-index: 10; } */
.board-tabs__wrapper { display: flex; align-items: center; }
.board-tabs .swiper-slide { width: auto !important; flex: 0 0 auto; }
.board-tabs .btn-home-tab.btn-board-inquiry { background-color: #96F4FF; color: var(--dcu-color-text-400); }
.board-list { max-height: 100%; list-style: none; margin: 0; padding: 0 1.6rem 1rem 0; display: flex; flex-direction: column; overflow-y: auto; }
.board-item { display: flex; flex-direction: column; gap: 0.8rem; padding: 1.4rem 0.8rem; border-top: 1px solid var(--dcu-color-common-line-150); line-height: 1.2; }
.board-item__content { display: flex; gap: 0.8rem; min-width: 0; }
.board-item__category { flex-shrink: 0; flex-basis: 4.8rem; font-size: 1.5rem; color: var(--dcu-color-text-300); }
.board-item__title { margin: 0; flex: 1; min-width: 0; font-size: 1.6rem; font-weight: 600; word-break: keep-all; word-wrap: break-word; }
.board-item__answer { display: flex; align-items: flex-start; gap: 0.6rem; min-width: 0; padding-left: 1.6rem; font-size: var(--dcu-text-size-xs); position: relative; }
.board-item__answer::before { content: ''; flex-shrink: 0; width: 1rem; height: 1.2rem; transform: translateY(0.2rem); background-image: url('../../images/icon/reply.svg'); background-size: contain; background-repeat: no-repeat; }
.board-item__answer-prefix { flex-shrink: 0; font-weight: 700; color: var(--dcu-color-text-300); }
.board-item__answer-content { margin: 0; flex: 1; min-width: 0; font-weight: 600; color: var(--dcu-color-semantic-infomatic-500); word-break: keep-all; word-wrap: break-word; }

.board-item:hover,
.board-item:focus-visible { background-color: var(--dcu-color-common-solid-200); }

@media (max-width: 1279px) {
    .board-item__category { flex-basis: 4.4rem; font-size: 1.4rem; }
    .board-item__title { font-size: 1.5rem; }
}

@media (max-width: 768px) {
    .dcu-portlet.board .dcu-portlet-body { max-height: 28.2rem; }
}

/* 나의 전문성 STELLA 포틀릿 */
.dcu-portlet.stella-major { gap: 2rem; }
.stella-major__chart { min-height: 0; }

@media (min-width: 1280px) {
    .stella-major__chart { padding-right: 7.3%; padding-left: 7.3%; }
}

/* 나의 STELLA 성장지수 포틀릿 (헤더 count-graph + Figma 도넛/총합계) */
.dcu-portlet.stella-count { gap: 2rem; }
.stella-count__chart { display: flex; flex-direction: column; align-items: center; gap: 1.6rem; width: 100%; height: 100%; padding: 0.4rem 0; }
.stella-count__graph-wrap { position: relative; display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 100%;}
.stella-count__graph { position: relative; aspect-ratio: 1 / 1; width: 30rem; max-width: 100%; border-radius: 50%; background-image: conic-gradient(var(--color-human) 0 var(--percent-human), var(--color-creative) var(--percent-human) calc(var(--percent-human) + var(--percent-creative)), var(--color-community) calc(var(--percent-human) + var(--percent-creative)) calc(var(--percent-human) + var(--percent-creative) + var(--percent-community)), var(--color-major) calc(var(--percent-human) + var(--percent-creative) + var(--percent-community)) 100%); }
.stella-count__graph::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); aspect-ratio: 1 / 1; width: 84%; background-color: var(--dcu-color-common-solid-white, #fff); border-radius: 50%; pointer-events: none; }
.stella-count__legend { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem; width: fit-content; }
.stella-count__legend-item { display: flex; align-items: center; gap: 0.4rem; width: 100%; font-weight: 700; color: var(--dcu-color-text-500); line-height: 1.2; }
.stella-count__legend-item em { font-weight: 700; font-style: normal; font-weight: 600; color: var(--dcu-color-text-500); }
.stella-count__legend-separator { flex-shrink: 0; font-weight: 600; color: var(--dcu-color-text-200); }
.stella-count__legend-label { display: flex; align-items: center; gap: 0.6rem; flex-shrink: 0; }
.stella-count__legend-label::before { content: ''; width: 1.2rem; height: 1.2rem; border-radius: 50%; flex-shrink: 0; }
.stella-count__legend-item.COS_HUMAN .stella-count__legend-label::before { background-color: var(--color-human); }
.stella-count__legend-item.COS_CREATIVE .stella-count__legend-label::before { background-color: var(--color-creative); }
.stella-count__legend-item.COS_COMUNITY .stella-count__legend-label::before { background-color: var(--color-community); }
.stella-count__legend-item.COS_MAJOR .stella-count__legend-label::before { background-color: var(--color-major); }
.stella-count__total { display: flex; align-items: center; gap: 1.2rem; line-height: 1.2; }
.stella-count__total-label { margin: 0 0 0.4rem 0; font-size: var(--dcu-text-size-sm); font-weight: 600; }
.stella-count__total-value { font-family: "Inter", sans-serif; margin: 0; font-size: 4.4rem; font-weight: 700; color: var(--dcu-color-text-500); }

@media (min-width: 769px) and (max-width: 1279px) { 
    .stella-count__graph { width: 25rem; } 
    .stella-count__legend { width: 14rem; }
    .stella-count__legend-item { font-size: 1.0rem; } 
    .stella-count__legend-label::before { width: 1rem; height: 1rem; }
    .stella-count__total-value { font-size: 2rem; } 
}
@media (min-width: 1280px) and (max-width: 1425px) { 
    .stella-count__legend-item { font-size: 1.35rem; } 
}

@media (max-width: 768px) {
    .stella-count__graph { width: 26rem; }
    .stella-count__legend { width: 18rem; }
}




/* 간단보기 탭 */

.simple-wrap {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    min-height: 100dvh;
    z-index: 15;
    background-color: #fff;
    padding-top: 5.4rem;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.4s;
    pointer-events: none;
}
.simple-wrap.active {
    transform: translateX(0);
    pointer-events: auto;
}
.simple-wrap.no-transition {
    transition: none !important;
}


.simple-wrap > .section-profile { position: relative; width: 100%; padding: 0.8rem 1.6rem; padding-right: 9.6rem; border-top: 1px solid #E6E8EA; }
.simple-wrap > .section-profile .profile-wrap { display: flex; align-items: center; gap: 1rem; padding: 0.8rem 0.4rem 0.8rem 0.2rem; }
.simple-wrap > .section-profile .user-info-wrap { display: flex; flex-direction: column; gap: 0.2rem; line-height: 1.2; }
.simple-wrap > .section-profile .user-info-wrap .user-info__name { font-size: 1.6rem; font-weight: 700; }
.simple-wrap > .section-profile .user-info-wrap .user-info__meta { font-size: 1.4rem; color: var(--dcu-color-text-300); }
.simple-wrap > .section-search { width: 100%; padding: 1.6rem; border-top: 1px solid #E6E8EA; }
.simple-wrap > .section-links { width: 100%; padding: 0 1.6rem 2.4rem; }
.simple-wrap > .section-links > h3 { padding: 1.2rem 0; font-size: 1.6rem; font-weight: 700; }
.simple-wrap > .section-links > .simple-quick-links { width: 100%; padding: 1rem 0; }
.simple-wrap > .section-links > .simple-quick-links .service__list { display: flex; padding-bottom: 1.6rem; overflow-x: auto; }
.simple-wrap > .section-links > .simple-quick-links .service__link { min-width: 8rem; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08); }
.simple-wrap > .section-links > .simple-quick-links .service__icon { width: 2.4rem; }
.simple-wrap > .section-links > .simple-quick-links .service__icon svg { width: 2.4rem; height: 2.4rem; }
.simple-wrap > .section-links > .simple-quick-links .service__label { font-size: 1.2rem; }
.simple-wrap > .section-widgets { width: 100%; background-color: #b1f1f9; min-height: 50vh; display: flex; flex-direction: column; padding: 3.2rem 2.4rem 4rem; }
.simple-wrap > .section-widgets .widgets-wrap { display: grid; grid-template-columns: repeat(3, 1fr); justify-items: center; gap: 1.6rem 0.8rem; }
.simple-wrap > .section-widgets .simple-btn-wrap { display: flex; justify-content: center; align-items: center; padding: 1.6rem 0; }


@media (max-width: 768px) {
    .simple-wrap .widget-icon { max-width: 11rem; }
    .simple-wrap .widget-icon-object { width: 8.8rem; height: 8.8rem; }
    .simple-wrap .widget-icon-text { font-size: 1.4rem; }
}

@media (min-width: 640px) {
    .simple-wrap { padding-top: 6.8rem; }
}

@media (min-width: 1280px) {
    .simple-wrap { padding-right: 6.3rem; }
    .simple-wrap > .section-widgets .widgets-wrap { grid-template-columns: repeat(6, 1fr); }
}


/* 포털 진입 시 에니메이션 스킵상태를 확인하고, 해당 엘리멘트 를 보이지 않게 처리 */
.skip-animation .cover-2,
.skip-animation .avatar-cover,
.skip-animation .splash-letters {
    display: none !important;
}