/* ==========================================================================
   수강신청 목록 (Register List) V3 Styles
   리뉴얼 디자인 - 2026.08.25
   ========================================================================== */

/* ================================================
   Note: CSS 변수는 tokens.css에서 정의됨
   주요 사용 변수:
   - 색상: --edu-primary-*, --edu-neutral-*, --edu-secondary-*
   - 폰트: --edu-text-*, --edu-font-*
   - 간격: --edu-spacing-*
   - Border: --edu-radius-*
   ================================================ */

/* ================================================
   0. 페이지 레이아웃
   ================================================ */

/* document overflow 오버라이드 - sticky 동작을 위해 */
.document:has(.register-container),
.document > .container:has(.register-container) {
    overflow: visible !important;
}

/* base.css .container 1170px 제한 오버라이드 */
.document > .container:has(.register-container) {
    width: 100%;
    max-width: 100%;
}

.register-container {
    position: relative;
    background: var(--edu-neutral-50);
    min-height: 100vh;
    max-width: 1380px;
    margin: 0 auto;
    color: var(--edu-neutral-700);
    overflow: visible !important;
}

.register-section {
    width: 100%;
    max-width: 100%;  /* register.css 1170px 오버라이드 */
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-4);
    position: relative;
}

/* 2열 레이아웃: 사이드바(왼쪽) + 메인 */
.register-layout {
    display: flex;
    gap: var(--edu-spacing-5);
    align-items: flex-start;
}

.register-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-4);
}

/* ================================================
   Guide Box 스타일 (학점인정 안내)
   ================================================ */
.guide-box {
    display: flex;
    align-items: flex-start;
    gap: var(--edu-spacing-3);
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    border-radius: var(--edu-radius-lg);
    background: var(--edu-neutral-50);
    border: 1px solid var(--edu-neutral-200);
}

.guide-box--warning {
    background: var(--edu-warning-50);
    border-color: var(--edu-accent-300);
}

.guide-box__icon {
    flex-shrink: 0;
    width: var(--edu-spacing-5);
    height: var(--edu-spacing-5);
    color: var(--edu-accent-600);
    margin-top: 2px;
}

.guide-box__content {
    flex: 1;
    min-width: 0;
}

.guide-box__title {
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-bold);
    color: var(--edu-accent-900);
    margin: 0 0 var(--edu-spacing-1);
}

.guide-box__text {
    font-size: var(--edu-text-section-label);
    color: var(--edu-accent-900);
    margin: 0;
    line-height: var(--edu-leading-normal);
}

/* register-main-layout 제거됨 - register-container가 2열 레이아웃 담당 */

.register-sidebar {
    flex-shrink: 0;
    width: 220px;
    align-self: stretch;
}

/* 과목 리스트 섹션 - bulletin 스타일 card */
.register-courses-section {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    overflow: hidden;
}

.register-course-card {
    padding: 0;
}

.register-filter-bar {
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    background: var(--edu-neutral-0);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--edu-spacing-2);
}

/* ================================================
   1. 섹션 라벨
   ================================================ */

.section-label {
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-500);
    margin-bottom: var(--edu-spacing-2);
    letter-spacing: -0.01em;
}

/* 학사 일정 래퍼 (라벨 + 카드) */
.register-semester-schedule-wrapper {
    /* display 속성은 JavaScript로 제어됨 */
}

/* ================================================
   2. 기수 탭 네비게이션 (Semester Tabs)
   ================================================ */

.register-semester-tabs {
    display: flex;
    gap: var(--edu-spacing-3);
    overflow-x: auto;
    padding-bottom: var(--edu-spacing-2);
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    /* 스크롤바 표시 */
    scrollbar-width: thin;
    scrollbar-color: var(--edu-neutral-300) transparent;
    position: relative;
}

/* 로딩 오버레이 기준점 - register-section에 설정됨 */

/* 로딩 오버레이 */
.register-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.9);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 10;
    backdrop-filter: blur(2px);
    border-radius: var(--edu-radius-lg);
}

.register-loading-overlay.show {
    display: flex;
}

/* 로딩 스피너 */
.register-loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--edu-spacing-4);
}

.register-loading-spinner__icon {
    width: 48px;
    height: 48px;
    border: 4px solid var(--edu-neutral-200);
    border-top-color: var(--edu-primary-600);
    border-radius: 50%;
    animation: register-loading-spin 0.8s linear infinite;
}

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

.register-loading-spinner__text {
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-500);
}

/* 웹킷 스크롤바 스타일 */
.register-semester-tabs::-webkit-scrollbar {
    display: block;
    height: 6px;
}

.register-semester-tabs::-webkit-scrollbar-track {
    background: transparent;
}

.register-semester-tabs::-webkit-scrollbar-thumb {
    background: var(--edu-neutral-300);
    border-radius: 3px;
}

.register-semester-tabs::-webkit-scrollbar-thumb:hover {
    background: var(--edu-neutral-400);
}

/* 탭이 2개 이하일 때 폭 꽉 채우기 */
.register-semester-tabs:has(.register-semester-tab:nth-child(2):last-child) .register-semester-tab {
    flex: 1 1 0;
    min-width: 0;
}

.register-semester-tabs:has(.register-semester-tab:only-child) .register-semester-tab {
    flex: 1 1 0;
    min-width: 0;
}

.register-semester-tab {
    flex: 0 0 auto;
    min-width: 420px;
    display: flex;
    flex-direction: column;
    padding: var(--edu-spacing-4) var(--edu-spacing-5);
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    cursor: pointer;
    transition: all 0.15s ease;
    text-decoration: none;
    scroll-snap-align: start;
}

.register-semester-tab:hover {
    border-color: var(--edu-primary-600);
    background: var(--edu-primary-50);
    text-decoration: none;
}

.register-semester-tab.active {
    border: 2px solid var(--edu-primary-600);
    background: var(--edu-primary-50);
}

/* 탭 헤더 영역 */
.register-semester-tab__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--edu-spacing-3);
    margin-bottom: var(--edu-spacing-1);
}

.register-semester-tab__header-left {
    flex: 1;
    min-width: 0;
}

.register-semester-tab__label {
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-500);
    margin: 0 0 var(--edu-spacing-1);
}

.register-semester-tab__title {
    font-size: var(--edu-text-card-title);
    font-weight: var(--edu-font-bold);
    letter-spacing: -0.01em;
    color: var(--edu-neutral-900);
    margin: 0;
}

.register-semester-tab.active .register-semester-tab__title {
    color: var(--edu-primary-600);
}

.register-semester-tab__period {
    font-size: var(--edu-text-caption);
    color: var(--edu-neutral-500);
    margin: var(--edu-spacing-3) 0 0;
    padding: var(--edu-spacing-3) 0 0 22px;
    border-top: 1px solid var(--edu-neutral-200);
    position: relative;
    line-height: var(--edu-leading-normal);
}

.register-semester-tab__period::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14px;
    width: var(--edu-spacing-4);
    height: var(--edu-spacing-4);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.register-semester-tab__badge {
    display: inline-block;
    flex-shrink: 0;
    padding: 2px var(--edu-spacing-2);
    background: var(--edu-warning-50);
    color: var(--edu-warning-600);
    border-radius: var(--edu-radius-full);
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-bold);
}

/* 활성 탭 내 학습일정 그리드 (사용 안 함 - 분리됨) */
.register-semester-tab__schedule {
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 115, 230, 0.15);
}

/* 탭에서 분리된 일정 섹션 */
.register-semester-schedule {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    padding: var(--edu-spacing-4) var(--edu-spacing-5);
}

.register-semester-schedule__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--edu-spacing-3);
}

.register-semester-schedule__header .section-label {
    margin-bottom: 0;
}

.register-semester-schedule__notice {
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-400);
}

.register-semester-tab__schedule-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--edu-spacing-2) var(--edu-spacing-4);
}

.register-semester-tab__schedule-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}

.schedule-cell {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: var(--edu-spacing-3) var(--edu-spacing-3);
    transition: transform 0.15s ease;
}

.schedule-cell:hover {
    transform: scale(1.02);
}

.schedule-cell__label {
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-500);
}

.schedule-cell__value {
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-900);
}

/* 주요 일정 강조 스타일 */
.schedule-cell--primary {
    background: var(--edu-primary-50);
    padding: var(--edu-spacing-3) var(--edu-spacing-3);
    border-radius: var(--edu-radius-md);
}

.schedule-cell--primary .schedule-cell__label {
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-bold);
}

.schedule-cell--primary .schedule-cell__value {
    font-weight: var(--edu-font-bold);
}

/* 보더 스타일 (배경 없는 셀) */
.schedule-cell--bordered {
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-md);
}

/* ================================================
   수강신청 중요 안내 박스 (3열)
   ================================================ */

.register-notice-section {
    padding: var(--edu-spacing-4);
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
}

.register-notice-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--edu-spacing-3);
    margin-bottom: var(--edu-spacing-3);
}

.register-notice-box {
    display: flex;
    gap: var(--edu-spacing-3);
    padding: var(--edu-spacing-3);
	background: var(--edu-warning-50);
	border: 1px solid var(--edu-accent-300);
}

.register-notice-box__icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

.register-notice-box__icon svg {
    width: 100%;
    height: 100%;
}

.register-notice-box__content {
    flex: 1;
    min-width: 0;
}

.register-notice-box__title {
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-bold);
    margin: 0 0 var(--edu-spacing-2);
}

.register-notice-box__text {
    font-size: var(--edu-text-xs);
    line-height: var(--edu-leading-relaxed);
    margin: 0 0 var(--edu-spacing-1);
}

.register-notice-box__text:last-child {
    margin-bottom: 0;
}

.register-notice-box__text strong {
    font-weight: var(--edu-font-semibold);
}

.register-notice-box__highlight {
    font-weight: var(--edu-font-semibold);
}

/* 박스 기본 색상 (앰버) */
.register-notice-box__icon {
    color: var(--edu-accent-600);
}

.register-notice-box__title {
    color: var(--edu-accent-900);
}

.register-notice-box__text {
    color: var(--edu-accent-800);
}

/* 수강신청 안내사항 목록 */
.register-notice-list {
    margin-top: var(--edu-spacing-2);
    padding: 0 var(--edu-spacing-3);
    list-style: none;
}

.register-notice-list li {
    position: relative;
    padding-left: var(--edu-spacing-4);
    font-size: var(--edu-text-sm);
    line-height: var(--edu-leading-relaxed);
    color: var(--edu-neutral-700);
}

.register-notice-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--edu-accent-500);
}

.register-notice-list li + li {
    margin-top: var(--edu-spacing-2);
}

.register-notice-list li strong {
    font-weight: var(--edu-font-semibold);
    color: var(--edu-accent-900);
}

/* 반응형 - 태블릿 */
@media (max-width: 1024px) {
    .register-notice-container {
        grid-template-columns: 1fr;
    }
}

/* 반응형 - 모바일 */
@media (max-width: 768px) {
    .register-notice-box {
        padding: var(--edu-spacing-3);
    }

    .register-notice-box__icon {
        width: 20px;
        height: 20px;
    }
}

/* ================================================
   3. TIP 박스 / 안내 영역
   ================================================ */

/* 탭에서 분리된 TIP 섹션 래퍼 */
.register-tip-section {
    /* 기본 스타일 없음 - 내부 register-tip-box가 스타일 처리 */
}

.register-tip-box {
    background: var(--edu-neutral-700);
    border-radius: var(--edu-radius-lg);
}

.register-tip-box__content {
    padding: var(--edu-spacing-4);
    font-size: var(--edu-text-sm);
    line-height: var(--edu-leading-relaxed);
    color: #fff;
}

.register-tip-box__content p {
    margin: 0 0 12px;
}

.register-tip-box__content p:last-child {
    margin-bottom: 0;
}

/* TIP 박스 리스트 스타일 */
.register-tip-box__content ul,
.register-tip-box__content ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.register-tip-box__content > ul,
.register-tip-box__content > ol {
    display: flex;
    flex-direction: column;
    gap: 10px;
	padding: 0 var(--edu-spacing-3);
}

.register-tip-box__content li {
    position: relative;
    line-height: 1.65;
	padding-left: var(--edu-spacing-4);
}

.register-tip-box__content li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, 0.6);
}

/* 중첩 리스트 처리 */
.register-tip-box__content li ul,
.register-tip-box__content li ol {
    margin-top: 8px;
    gap: 6px;
}

.register-tip-box__content li li::before {
    color: rgba(255, 255, 255, 0.4);
}

/* 강조 텍스트 */
.register-tip-box__content .txt-po1 {
    color: var(--edu-primary-200);
    font-weight: 600;
}

.register-tip-box__content b,
.register-tip-box__content strong {
    color: #fff;
    font-weight: 600;
}

.register-tip-box__content a {
    color: var(--edu-primary-200);
    text-decoration: underline;
}

.register-tip-box__content a:hover {
    color: var(--edu-primary-100);
}

/* 학점인정 안내 섹션 */
.register-credit-info {
    margin-top: 20px;
    margin-bottom: 24px;
    padding: 16px 20px;
    background: #fefce8;
    border-left: 3px solid #eab308;
    border-radius: 0 8px 8px 0;
}

.register-credit-info__notice {
    font-size: 17px;
    font-weight: 600;
    color: #a16207;
    margin-bottom: 14px;
}

/* 학점 인정 안내 카드 그리드 */
.register-credit-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.register-credit-card {
    padding: 14px 12px;
    background: #fff;
    border: 1px solid #fde047;
    border-radius: 6px;
    text-align: center;
}

.register-credit-card__label {
    font-size: 18px;
    color: #a16207;
    margin-bottom: 6px;
}

.register-credit-card__value {
    font-size: 18px;
    font-weight: 600;
    color: var(--edu-neutral-700);
}

.register-credit-card__value .highlight {
    color: #ca8a04;
    font-weight: 700;
}

/* ================================================
   4. 학습 일정 섹션
   ================================================ */

.register-schedule-section h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--edu-neutral-500);
    margin: 0 0 10px;
}

.register-schedule-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--edu-neutral-200);
    border-radius: 10px;
    background: #fff;
}

.register-schedule-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 17px;
    background: #fff;
    table-layout: fixed;
}

.register-schedule-table th,
.register-schedule-table td {
    display: table-cell !important;
    padding: 10px 12px;
    text-align: center;
    width: 25%;
}

.register-schedule-table th {
    background: var(--edu-neutral-100);
    color: var(--edu-neutral-500);
    font-weight: 600;
    border-bottom: 1px solid var(--edu-neutral-200);
}

.register-schedule-table td {
    padding: 12px;
    color: var(--edu-neutral-700);
}

/* ================================================
   5. 필터 탭 - underline 스타일
   ================================================ */

.register-filter-tabs {
    display: flex;
    width: 100%;
    border-bottom: 1px solid var(--edu-neutral-200);
    margin-bottom: 0;
}

.register-filter-tab {
    flex: 1;
    position: relative;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 0 14px;
    font-size: 18px;
    font-weight: 600;
    background: transparent;
    color: var(--edu-neutral-500);
    border: none;
    border-radius: 0;
    transition: color 0.15s ease;
    text-decoration: none;
}

.register-filter-tab::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    border-radius: 2px 2px 0 0;
    background: var(--edu-primary-600);
    transform: scaleX(0);
    transition: transform 0.25s ease;
}

.register-filter-tab:hover {
    color: var(--edu-primary-600);
    text-decoration: none;
}

.register-filter-tab.active {
    color: var(--edu-primary-600);
}

.register-filter-tab.active::after {
    transform: scaleX(1);
}

/* 서브 필터 (전공별) - 컴팩트 태그 스타일 */
.register-sub-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 16px;
    margin-bottom: 16px;
}

.register-sub-filter__item {
    padding: 6px 12px;
    font-size: 17px;
    font-weight: 500;
    border-radius: 6px;
    background: var(--edu-neutral-50);
    border: 1px solid var(--edu-neutral-200);
    color: var(--edu-neutral-700);
    cursor: pointer;
    transition: all 0.15s ease;
    text-decoration: none;
}

.register-sub-filter__item:hover {
    border-color: var(--edu-primary-600);
    color: var(--edu-primary-600);
    text-decoration: none;
}

.register-sub-filter__item.active {
    background: var(--edu-primary-600);
    border-color: var(--edu-primary-600);
    color: #fff;
}

/* ================================================
   6. 과목 리스트 - 카드형 행 스타일
   ================================================ */

/* 카드형 과목 리스트 */
.register-course-list {
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-2);
    padding: var(--edu-spacing-4);
}

.register-course-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    padding: 24px;
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.register-course-row:hover {
    border: 2px solid var(--edu-primary-300);
    box-shadow: 0 4px 12px rgba(0, 115, 230, 0.08);
}

/* 과목 정보 영역 */
.register-course-row__info {
    flex: 1 1 320px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.register-course-row__name-line {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    flex-wrap: wrap;
}

.register-course-row__name {
    font-size: 18px;
    font-weight: var(--edu-font-bold);
    line-height: 1.4;
    letter-spacing: -0.02em;
    color: var(--edu-neutral-900);
    text-decoration: none;
    transition: color 0.15s ease;
}

.register-course-row__name:hover {
    color: var(--edu-primary-600);
    text-decoration: none;
}

.register-course-row__meta-item {
    display: inline-flex;
    align-items: center;
}

.register-course-row__meta-divider {
    color: var(--edu-neutral-300);
}

.register-course-row__sample {
    color: var(--edu-primary-600);
    text-decoration: none;
    font-weight: 500;
}

.register-course-row__sample:hover {
    color: var(--edu-primary-700);
    text-decoration: underline;
}

/* 가격 영역 */
.register-course-row__price-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-variant-numeric: tabular-nums;
}

.register-course-row__orig {
    font-size: 13px;
    color: var(--edu-neutral-400);
    text-decoration: line-through;
}

.register-course-row__price {
    font-size: var(--edu-text-2xl);
    font-weight: var(--edu-font-extrabold);
    letter-spacing: -0.02em;
    color: var(--edu-neutral-900);
}

.register-course-row__price small {
    margin-left: 2px;
    font-size: 15px;
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-700);
}

.register-course-row__price--sale {
    color: var(--edu-error-600);
}

/* 액션 영역 */
.register-course-row__action-col {
    width: 90px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.register-course-row__added {
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-bold);
    color: var(--edu-secondary-600);
}

.register-course-row__closed {
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-400);
}

/* 검색 결과 없음 */
.register-course-list .register-no-results {
    padding: 40px 20px;
}

/* 기존 테이블 스타일 (fallback 용) */
.register-course-table-wrap {
    background: #fff;
}

.register-course-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 17px;
}

.register-course-table caption {
    position: absolute;
    left: -9999px;
}

.register-course-table thead th {
    padding: 10px 12px;
    background: #F9FAFB;
    color: var(--edu-neutral-500);
    font-weight: 600;
    text-align: center;
    border-bottom: 1px solid var(--edu-neutral-200);
}

.register-course-table thead th:first-child {
    text-align: left;
    padding-left: 16px;
}

.register-course-table tbody td {
    padding: 12px;
    color: var(--edu-neutral-700);
    text-align: center;
    border-bottom: 1px solid var(--edu-neutral-100);
    vertical-align: middle;
}

.register-course-table tbody th {
    padding: 12px;
    padding-left: 16px;
    font-weight: 600;
    text-align: left;
    border-bottom: 1px solid var(--edu-neutral-100);
    vertical-align: middle;
}

.register-course-table tbody tr:last-child td,
.register-course-table tbody tr:last-child th {
    border-bottom: none;
}

.register-course-table tbody tr {
    transition: background 0.15s ease;
}

.register-course-table tbody tr:hover td,
.register-course-table tbody tr:hover th {
    background: #F4F9FF;
}

/* 과목명 - 강조 스타일 */
.register-course-table .course-name {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: var(--edu-neutral-900);
    text-decoration: none;
    transition: color 0.15s ease;
    margin-bottom: 4px;
}

.register-course-table .course-name:hover {
    color: var(--edu-primary-600);
}

/* 샘플강의 링크 */
.register-course-table .sample-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--edu-primary-600);
    font-size: 18px;
    text-decoration: none;
}

.register-course-table .sample-link:hover {
    color: var(--edu-primary-700);
    text-decoration: underline;
}

/* 가격 스타일 */
.register-course-table .price-original {
    display: block;
    text-decoration: line-through;
    color: var(--edu-neutral-400);
    font-size: 18px;
}

.register-course-table .price {
    font-size: 18px;
    font-weight: 700;
    color: var(--edu-neutral-900);
}

.register-course-table .price-sale {
    font-size: 18px;
    font-weight: 700;
    color: var(--edu-primary-600);
}

/* 이수구분 */
.register-course-table td p {
    margin: 0 0 2px;
    font-size: 17px;
}

.register-course-table td p:last-child {
    margin-bottom: 0;
}

/* 상태 배지 - 참고 디자인 스타일 */
.register-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 18px;
    font-weight: 700;
}

.register-badge--recruiting {
    background: var(--edu-primary-50);
    color: var(--edu-primary-600);
}

/* 장바구니 버튼 - Primary CTA 스타일 */
.register-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--edu-spacing-1);
    min-width: 64px;
    height: 32px;
    padding: 0 var(--edu-spacing-3);
    background: var(--edu-primary-500);
    border: 1px solid var(--edu-primary-500);
    border-radius: var(--edu-radius-md);
    cursor: pointer;
    transition: all 0.15s ease;
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-0);
}

.register-cart-btn:hover {
    background: var(--edu-primary-700);
    border-color: var(--edu-primary-700);
	color: var(--edu-neutral-0);
}

.register-cart-btn img {
    width: var(--edu-spacing-4);
    height: var(--edu-spacing-4);
}

.register-cart-btn[data-show="hidden"] {
    display: none;
}

/* 담김 버튼 - 비활성화 아웃라인 스타일 */
.register-cart-btn:disabled,
.register-cart-btn[data-cartid] {
    background: var(--edu-neutral-100);
    border-color: var(--edu-neutral-300);
    color: var(--edu-neutral-500);
    cursor: pointer;
}

.register-cart-btn:disabled:hover {
    background: var(--edu-neutral-100);
    border-color: var(--edu-neutral-300);
}

/* 담김 상태 텍스트 */
.register-course-table .cart-added {
    font-size: 18px;
    font-weight: 700;
    color: var(--edu-secondary-600);
}

/* ================================================
   7. 모집요강 접기/펼치기
   ================================================ */

.register-prospectus-toggle {
    display: flex;
    justify-content: center;
    margin-top: 24px;
}

.register-prospectus-toggle .btn-edu {
    min-width: 140px;
}

/* ================================================
   8. 빈 상태
   ================================================ */

.register-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    text-align: center;
    background: var(--edu-neutral-50);
    border-radius: 8px;
}

.register-empty__icon {
    font-size: 48px;
    color: var(--edu-neutral-400);
    margin-bottom: 16px;
}

.register-empty__text {
    font-size: 18px;
    color: var(--edu-neutral-500);
}

/* ================================================
   9. 스크롤 컨테이너 (제거됨 - 쭉 나열)
   ================================================ */

.register-scroll-container {
    /* 스크롤 제거, 전체 표시 */
}

/* ================================================
   10. 장바구니 사이드바
   ================================================ */

.register-cart-card {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    overflow: hidden;
}

.register-cart-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    border-bottom: 1px solid var(--edu-neutral-200);
    background: var(--edu-neutral-50);
}

.register-cart-card__title {
    margin: 0;
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-500);
}

.register-cart-clear-btn {
    appearance: none;
    padding: var(--edu-spacing-2) var(--edu-spacing-3);
    border: none;
    background: transparent;
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-600);
    cursor: pointer;
    transition: color 0.15s ease;
    border-radius: var(--edu-radius-md);
}

.register-cart-clear-btn:hover {
    color: var(--edu-error-600);
}

.register-cart-card__body {
    padding: 0;  /* 패딩 제거 - items에서 처리 */
}

.register-cart-items {
    padding: var(--edu-spacing-2) var(--edu-spacing-5) var(--edu-spacing-1);
    min-height: 50px;
    max-height: 240px;
    overflow-y: auto;
}

.register-cart-semester:last-child {
    margin-bottom: 0;
}

/* 과목 없을 때 학기 섹션 전체 숨기기 */
.register-cart-semester:not(:has(.register-cart-item)) {
    display: none;
}

.register-cart-semester__title {
    font-size: var(--edu-text-mini);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-secondary-600);
    white-space: nowrap;
    margin: 0 0 var(--edu-spacing-2);
    padding-bottom: 0;
    border-bottom: none;
}

.register-cart-items .choice-item {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;  /* 8px → 6px */
}

/* 장바구니 아이템 - grid 3열 레이아웃 */
.register-cart-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 24px;
    gap: var(--edu-spacing-2);
    padding: var(--edu-spacing-2) var(--edu-spacing-3);
    background: var(--edu-neutral-50);
    border: none;
    border-radius: var(--edu-radius-md);
    font-size: var(--edu-text-xs);
    transition: background-color 0.15s;
}

.register-cart-item:hover {
    background: var(--edu-neutral-100);
    border-color: transparent;
    box-shadow: none;
}

.register-cart-item__name {
    min-width: 0;
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-800);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.register-cart-item__credit {
    flex-shrink: 0;
	align-self: center;
    font-size: var(--edu-text-mini);
    font-weight: var(--edu-font-semibold);
    font-variant-numeric: tabular-nums;
    color: var(--edu-neutral-600);
}

/* 둥근 사각형 X 버튼 */
.register-cart-item__remove {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    border-radius: var(--edu-radius-md);
    background: none;
    color: var(--edu-neutral-400);
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
}

.register-cart-item__remove:hover {
    color: var(--edu-error-600);
    background: var(--edu-error-50);
}

.register-cart-item__remove::before,
.register-cart-item__remove::after {
    content: '';
    position: absolute;
    width: 13px;
    height: 2px;
    background: currentColor;
    top: 50%;
    left: 50%;
}

.register-cart-item__remove::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.register-cart-item__remove::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.register-cart-item__remove:hover::before,
.register-cart-item__remove:hover::after {
    background: currentColor;
}

.register-cart-empty {
    font-size: var(--edu-text-section-label);
    color: var(--edu-neutral-400);
    text-align: center;
    margin: 0;
}

/* Divider */
.register-cart-divider {
    height: 1px;
    background: var(--edu-neutral-200);
    margin: var(--edu-spacing-3) 0;
}

.register-cart-summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--edu-spacing-3) var(--edu-spacing-5);
    margin-top: 0;
    border-top: 1px solid var(--edu-neutral-200);
    background: var(--edu-neutral-50);
}

.register-cart-summary__label {
    font-size: var(--edu-text-section-label);
    color: var(--edu-neutral-500);
}

.register-cart-summary__value {
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-bold);
    color: var(--edu-primary-600);
}

.register-cart-summary__value .txt-po1 {
    font-size: var(--edu-text-card-title);
    font-weight: var(--edu-font-extrabold);
    color: var(--edu-primary-600);
    font-variant-numeric: tabular-nums;
}

.register-cart-card__footer {
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    border-top: 1px solid var(--edu-neutral-200);
}

/* ================================================
   학습일정 인라인 - 참고 디자인 테이블 스타일
   ================================================ */

.register-schedule-inline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1px;
    padding: 0;
    background: var(--edu-neutral-200);
    border: 1px solid var(--edu-neutral-200);
    border-radius: 12px;
    overflow: hidden;
}

.schedule-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    background: #fff;
    text-align: center;
}

.schedule-label {
    font-size: 18px;
    color: var(--edu-neutral-500);
    font-weight: 600;
}

.schedule-value {
    font-size: 17px;
    color: var(--edu-neutral-900);
    font-weight: 600;
}

.schedule-content {
    /* 기수별 동적 표시 */
}

/* ================================================
   사이드바 TIP 박스 - 공통 스타일 상속
   ================================================ */

.register-sidebar .register-tip-box {
    margin-bottom: 0;
}

.register-sidebar .register-tip-box__title {
    padding: 10px 14px;
    font-size: 17px;
}

.register-sidebar .register-tip-box__content {
    padding: 12px 14px;
    font-size: 18px;
}

.register-sidebar .register-tip-box__content > ul,
.register-sidebar .register-tip-box__content > ol {
    gap: 8px;
}

.register-sidebar .register-tip-box__content li {
    padding-left: 12px;
}

.register-sidebar .register-tip-box__content li::before {
    top: 7px;
    width: 3px;
    height: 3px;
}

/* 학습설계 안내 카드 */
.register-consult-card {
    appearance: none;
    -webkit-appearance: none;
    display: block;
    position: relative;
    width: 100%;
    padding: 0;
    background: var(--edu-neutral-0);
    border: 2px solid var(--edu-accent-300);
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    min-height: 120px;
    outline: 0 solid var(--edu-accent-300);
    outline-offset: -1px;
    transition: outline-width 0.1s ease, box-shadow 0.3s ease;
}

.register-consult-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('https://it.livestudy.com/files/images/202610/planer_banner.png') no-repeat center;
    background-size: cover;
    opacity: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.register-consult-card:hover {
    outline-width: 1px;
    box-shadow: 0 4px 12px rgba(0, 115, 230, 0.15);
}

.register-consult-card:hover::before {
    opacity: 0.9;
    transform: scale(1.05);
}

/* ================================================
   11. 반응형 - 참고 디자인 기반
   ================================================ */

/* 모바일에서만 레이아웃 변경 */
@media (max-width: 768px) {
    .register-layout {
        flex-direction: column;
    }

    .register-sidebar {
        position: static;
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--edu-spacing-3);
    }

    .register-semester-radio-group,
    .register-filter-list {
        flex: 1 1 100%;
        min-width: 0;
    }

    .register-schedule-inline {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    }

    .register-cart-fixed-bar,
    .register-cart-panel {
        max-width: 100%;
        border-radius: 0;
    }
}

@media (max-width: 1024px) {
    .register-credit-cards {
        grid-template-columns: 1fr;
    }

    .register-semester-tabs {
        gap: 12px;
    }

    .register-semester-tab {
        flex: 0 0 260px;
    }
}

@media (max-width: 768px) {
    .register-container {
        padding: 20px 12px 60px;
    }

    /* Guide Box 모바일 */
    .guide-box {
        padding: 12px 14px;
        gap: 10px;
    }

    .guide-box__icon {
        width: 18px;
        height: 18px;
    }

    .guide-box__title {
        font-size: 18px;
    }

    .guide-box__text {
        font-size: 18px;
    }

    .register-semester-tabs {
        gap: 10px;
    }

    .register-semester-tab {
        flex: 0 0 280px;
        min-width: 280px;
        padding: 14px 16px;
    }

    .register-semester-tab__title {
        font-size: 17px;
    }

    .register-semester-tab__schedule-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px 10px;
    }

    .register-semester-tab__schedule-grid--4col {
        grid-template-columns: repeat(2, 1fr);
    }

    .register-filter-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: 20px;
        -webkit-overflow-scrolling: touch;
    }

    .register-filter-tab {
        flex-shrink: 0;
        font-size: 17px;
        padding: 8px 0 12px;
    }

    .register-sub-filter {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .register-sub-filter__item {
        flex-shrink: 0;
    }

    /* 카드형 과목 리스트 - 모바일 반응형 */
    .register-course-list {
        padding: 12px;
        gap: 8px;
    }

    .register-course-row {
        padding: 20px;
        gap: 16px;
    }

    .register-course-row__info {
        flex: 1 1 100%;
        min-width: 0;
    }

    .register-course-row__name-line {
        flex-wrap: wrap;
        gap: 6px;
    }

    .register-course-row__name {
        font-size: 16px;
    }

    .register-course-row__meta {
        flex-wrap: wrap;
        gap: 6px;
        font-size: 13px;
    }

    .register-course-row__right {
        width: 100%;
        justify-content: space-between;
    }

    .register-course-row__price-col {
        flex: none;
    }

    .register-course-row__price {
        font-size: 18px;
    }

    .register-course-row__price small {
        font-size: 13px;
    }

    .register-course-row__action-col {
        width: auto;
        flex-shrink: 0;
    }

    .register-schedule-inline {
        grid-template-columns: repeat(2, 1fr);
    }

    .schedule-item {
        padding: 12px 10px;
    }

    .schedule-label {
        font-size: 17px;
    }

    .schedule-value {
        font-size: 18px;
    }

    .register-schedule-table {
        font-size: 18px;
    }

    .register-schedule-table th,
    .register-schedule-table td {
        padding: 10px 8px;
    }

    .register-sidebar {
        flex-direction: column;
    }

    .register-cart-card,
    .register-consult-card {
        min-width: 100%;
        flex: 1 1 100%;
    }

    .register-cart-item__name {
        /* flex 기반 자동 계산 - max-width 제거 */
    }
}

@media (max-width: 480px) {
    .register-semester-tab {
        flex: 0 0 260px;
        min-width: 260px;
        padding: 12px 14px;
    }

    .register-semester-tab__schedule-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px 8px;
    }

    .schedule-cell__label {
        font-size: 18px;
    }

    .schedule-cell__value {
        font-size: 17px;
    }

    .register-schedule-inline {
        grid-template-columns: 1fr 1fr;
    }

    .schedule-item:only-child,
    .schedule-item:last-child:nth-child(odd) {
        grid-column: span 2;
    }
}

/* ================================================
   12. 링크 스타일
   ================================================ */

a {
    color: var(--edu-primary-600);
    text-decoration: none;
}

a:hover {
    color: var(--edu-primary-700);
    text-decoration: underline;
}

/* ================================================
   13. ico-smartlearning 숨김
   ================================================ */

.ico-smartlearning {
    display: none;
}

/* ================================================
   14. 검색 및 토글 영역
   ================================================ */

.register-search-row {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-4);
    padding: var(--edu-spacing-4);
    background: var(--edu-neutral-50);
}

.register-search-input-wrap {
    position: relative;
    flex: 1;
    max-width: 280px;
}

.register-search-input-wrap::before {
    content: '';
    position: absolute;
    left: var(--edu-spacing-3);
    top: 50%;
    transform: translateY(-50%);
    width: var(--edu-spacing-4);
    height: var(--edu-spacing-4);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239CA3AF'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.register-search-input {
    width: 100%;
    height: 38px;
    padding: 0 var(--edu-spacing-3) 0 36px;
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-md);
    font-size: var(--edu-text-section-label);
    color: var(--edu-neutral-700);
    background: var(--edu-neutral-0);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* 과목 메타 정보 */
.register-course-row__meta {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    font-size: var(--edu-text-section-label);
    color: var(--edu-neutral-500);
}

.register-course-row__meta-toggle {
    display: inline-flex;
    align-items: center;
    padding: 0;
    margin-left: 4px;
    background: none;
    border: none;
    font-size: 18px;
    font-weight: 500;
    color: var(--edu-primary-600);
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

.register-course-row__meta-toggle:hover {
    color: var(--edu-primary-700);
    text-decoration: underline;
}

/* "외 N개" 더보기 텍스트 + 툴팁 */
.register-course-row__meta-more-wrap {
    position: relative;
    display: inline-flex;
}

.register-course-row__meta-more {
    color: var(--edu-primary-600);
    font-size: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.register-course-row__meta-more:hover {
    color: var(--edu-primary-700);
}

.register-course-row__meta-tooltip {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    background: var(--edu-neutral-900);
    color: #fff;
    font-size: var(--edu-text-xs);
    line-height: 1.6;
    border-radius: 6px;
    white-space: nowrap;
    z-index: 9999;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.register-course-row__meta-tooltip::before {
    content: '';
    position: absolute;
    top: -5px;
    left: 12px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid var(--edu-neutral-900);
}

.register-course-row__meta-more-wrap:hover .register-course-row__meta-tooltip {
    display: block;
}

/* 호버 시 행의 z-index 상승 */
.register-course-row:has(.register-course-row__meta-more-wrap:hover) {
    z-index: 10;
    position: relative;
}

/* ================================================
   과목 카드 - 리디자인 (3열 구조)
   ================================================ */

/* 오버레이가 필요한 행 (마감/수강중) */
.register-course-row--overlay {
    position: relative;
}

/* 장바구니에 담긴 과목 */
.register-course-row--in-cart {
    border: 2px solid var(--edu-primary-600);
}

/* 과목 카드 오버레이 */
.register-course-row__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--edu-spacing-1);
    color: #fff;
    text-align: center;
    border-radius: var(--edu-radius-md);
    z-index: 5;
}

.register-course-row__overlay-title {
    font-size: var(--edu-text-lg);
    font-weight: var(--edu-font-bold);
    line-height: 1.4;
}

.register-course-row__overlay-contact {
    font-size: var(--edu-text-sm);
    font-weight: var(--edu-font-medium);
    color: #ffd54f;
}

/* 패키지 카드 오버레이 (카드 전체를 감싸는 형태) */
.register-package-card--overlay {
    position: relative;
}

/* 중간 영역: 액션 버튼 그룹 */
.register-course-row__actions {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    flex-shrink: 0;
}

.register-course-row__actions .btn-edu {
    padding: 0 var(--edu-spacing-3);
    height: 32px;
    font-size: var(--edu-text-xs);
}

/* 우측 영역: 가격 + 담기 통합 (가로 배치) */
.register-course-row__right {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin-left: auto;
}

.register-course-row__right .register-course-row__price-col {
    min-width: auto;
    text-align: right;
}

/* 과목명 크게 표시 */
.register-course-row__name--large {
    font-size: 18px;
    font-weight: var(--edu-font-bold);
    line-height: 1.4;
    letter-spacing: -0.02em;
}

/* 뱃지 상단 영역 */
.register-course-row__badge-line {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* 과목 로우 내 배지 - 패키지 스타일 통일 */
.register-course-row__badge-line .badge-edu {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: var(--edu-font-medium);
    line-height: 1.25;
    white-space: nowrap;
    background: var(--edu-error-600);
    color: var(--edu-neutral-0);
}

/* 민간자격증 배지 */
.register-course-row__badge-line .badge-edu.badge-edu--info {
    position: relative;
    background-color: #6A24C3 !important;
    color: #F3E8FF !important;
    cursor: help;
}

.register-course-row__badge-line .badge-edu.badge-edu--info::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    padding: var(--edu-spacing-2) var(--edu-spacing-3);
    background: var(--edu-neutral-800);
    color: var(--edu-neutral-0);
    font-size: var(--edu-text-mini);
    font-weight: var(--edu-font-normal);
    white-space: nowrap;
    border-radius: var(--edu-radius-sm);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease;
    z-index: 100;
    pointer-events: none;
}

.register-course-row__badge-line .badge-edu.badge-edu--info:hover::after {
    opacity: 1;
    visibility: visible;
}

/* 과목명 + 전공필수/선택 라인 */
.register-course-row__title-line {
    display: flex;
    align-items: flex-end;
    gap: var(--edu-spacing-2);
}

.register-course-row__major-type {
    flex-shrink: 0;
    font-size: var(--edu-text-xs);
    padding-bottom: 2px;
}

.register-course-row__major-type--required {
    color: var(--edu-primary-600);
}

.register-course-row__major-type--elective {
    color: var(--edu-neutral-500);
}

/* 가격 빨간색 강조 */
.register-course-row__price--highlight {
    color: var(--edu-error-600);
    font-size: var(--edu-text-2xl);
    font-weight: var(--edu-font-extrabold);
}

/* 반응형 - 액션 버튼 영역 */
@media (max-width: 1024px) {
    .register-course-row__actions {
        gap: var(--edu-spacing-1);
    }

    .register-course-row__actions .btn-edu {
        padding: 0 var(--edu-spacing-2);
        font-size: var(--edu-text-mini);
    }
}

@media (max-width: 768px) {
    .register-course-row__actions {
        flex: 1 1 100%;
        order: 3;
        justify-content: flex-start;
    }

    .register-course-row__right {
        gap: var(--edu-spacing-3);
    }
}

.register-search-input:focus {
    outline: none;
    border-color: var(--edu-primary-600);
    box-shadow: 0 0 0 3px rgba(0, 115, 230, 0.1);
}

.register-search-input::placeholder {
    color: var(--edu-neutral-400);
}

/* 전공필수 필터 토글 */
.register-toggle {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    font-size: var(--edu-text-sm);
    color: var(--edu-neutral-600);
}

.register-toggle input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--edu-primary-600);
    cursor: pointer;
}

.register-toggle:hover {
    color: var(--edu-primary-600);
}

/* 검색 결과 없음 표시 */
.register-no-results {
    display: none;
    padding: var(--edu-spacing-10) var(--edu-spacing-5);
    text-align: center;
    color: var(--edu-neutral-500);
    font-size: var(--edu-text-base);
}

.register-no-results.show {
    display: block;
}

@media (max-width: 768px) {
    .register-search-row {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 12px;
    }

    .register-search-input-wrap {
        max-width: 100%;
    }
}

/* ================================================
   15. 학점 제한 알림 모달
   ================================================ */

/* credit-modal 전용 스타일 */
.bootbox-confirm:has(.credit-modal) .modal-body {
    max-height: 500px !important;
    overflow: visible !important;
    padding: 0 !important;
}

/* ================================================
   bootbox 공통 버튼 스타일
   ================================================ */
.bootbox .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--edu-spacing-2);
    padding: var(--edu-spacing-4) var(--edu-spacing-6) var(--edu-spacing-6);
    border-top: 1px solid var(--edu-neutral-100);
    background: transparent;
}

/* alert은 버튼 1개 */
.bootbox-alert .modal-footer {
    grid-template-columns: 1fr;
}

.bootbox .modal-footer .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0 var(--edu-spacing-7);
    font-family: inherit;
    font-weight: var(--edu-font-semibold);
    font-size: var(--edu-text-sm);
    line-height: 1;
    border-radius: var(--edu-radius-md);
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    text-decoration: none;
    white-space: nowrap;
}

.bootbox .modal-footer .btn-default {
    background: transparent;
    border-color: var(--edu-neutral-300);
    color: var(--edu-neutral-700);
}

.bootbox .modal-footer .btn-default:hover {
    background: var(--edu-neutral-100);
}

.bootbox .modal-footer .btn-primary {
    background: var(--edu-primary-600);
    color: #fff;
}

.bootbox .modal-footer .btn-primary:hover {
    background: var(--edu-primary-700);
}

/* 24학점 초과 모달 */
.credit-modal {
    word-break: keep-all;
}

/* 헤더 영역 */
.credit-modal__head {
    padding: var(--edu-spacing-8) var(--edu-spacing-6) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--edu-spacing-3);
    text-align: center;
}

.credit-modal__icon {
    width: 48px;
    height: 48px;
    border-radius: var(--edu-radius-full);
    background: var(--edu-error-50);
    display: flex;
    align-items: center;
    justify-content: center;
}

.credit-modal__title {
    margin: 0;
    font-size: var(--edu-text-xl);
    font-weight: var(--edu-font-bold);
    letter-spacing: var(--edu-tracking-tight);
    color: var(--edu-neutral-900);
}

.credit-modal__desc {
    margin: 0;
    font-size: var(--edu-text-sm);
    line-height: var(--edu-leading-normal);
    color: var(--edu-neutral-500);
}

.credit-modal__desc strong {
    color: var(--edu-error-600);
    font-weight: var(--edu-font-semibold);
}

/* 본문 영역 */
.credit-modal__body {
    padding: var(--edu-spacing-6);
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-4);
}

/* 요약 박스 */
.credit-modal__summary {
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    padding: var(--edu-spacing-5);
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-3);
    font-variant-numeric: tabular-nums;
}

.credit-modal__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--edu-spacing-3);
    font-size: var(--edu-text-sm);
    color: var(--edu-neutral-700);
}

.credit-modal__row b {
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-900);
    white-space: nowrap;
}

.credit-modal__row--total {
    color: var(--edu-neutral-900);
    font-weight: var(--edu-font-semibold);
}

.credit-modal__row--total b {
    font-size: var(--edu-text-xl);
    font-weight: var(--edu-font-bold);
    color: var(--edu-error-600);
}

.credit-modal__divider {
    height: 1px;
    background: var(--edu-neutral-200);
}

/* 진행률 바 */
.credit-modal__meter {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.credit-modal__bar {
    height: 8px;
    border-radius: var(--edu-radius-full);
    background: var(--edu-neutral-100);
    display: flex;
    overflow: hidden;
}

.credit-modal__bar-attending {
    background: var(--edu-secondary-500);
}

.credit-modal__bar-base {
    background: var(--edu-primary-600);
}

.credit-modal__bar-over {
    background: var(--edu-error-600);
}

.credit-modal__scale {
    position: relative;
    height: 16px;
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-500);
}

.credit-modal__limit {
    position: absolute;
    transform: translateX(-50%);
    white-space: nowrap;
}

/* 안내 박스 - guide-edu 스타일 적용 */
.credit-modal__guide {
    align-items: flex-start;
    padding: 16px 20px;
    background: #FFFBEB;
    border: 1px solid #FDE68A;
    border-radius: 10px;
    text-align: left;
}

.credit-modal__guide-title {
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-semibold);
    color: #92400E;
    margin: 0 0 var(--edu-spacing-2);
}

.credit-modal__guide-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.credit-modal__guide-list li {
    position: relative;
    padding-left: 14px;
    font-size: var(--edu-text-base);
    line-height: 1.5;
    color: #92400E;
}

.credit-modal__guide-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 5px;
    height: 5px;
    background: #F59E0B;
    border-radius: 50%;
}

/* 질문 영역 */
.credit-modal__ask {
    padding: 0 var(--edu-spacing-6) var(--edu-spacing-6);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.credit-modal__ask p {
    margin: 0;
}

.credit-modal__question {
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-900);
}

.credit-modal__contact {
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-500);
}

.credit-modal__contact a {
    color: var(--edu-primary-600);
    font-weight: var(--edu-font-semibold);
    text-decoration: none;
}

.credit-modal__contact a:hover {
    text-decoration: underline;
}

/* ================================================
   16. 교육훈련기관 제한학점 모달
   ================================================ */

/* 교육훈련기관 제한학점 모달 */
.credit-limit-dialog .modal-dialog {
    max-width: 520px;
}

.credit-limit-dialog .modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid var(--edu-neutral-200);
}

.credit-limit-dialog .modal-title {
    font-size: var(--edu-text-lg, 20px);
    font-weight: 700;
    color: var(--edu-neutral-900);
}

.credit-limit-dialog .modal-body {
    padding: 24px;
    max-height: none !important;
    overflow: visible !important;
}

.credit-limit-modal__notice {
    font-size: var(--edu-text-sm, 16px);
    line-height: 1.7;
    color: var(--edu-neutral-700);
    margin: 0 0 18px;
}

.credit-limit-modal__guide {
    background: #FFFBEB;
    border: 1px solid #FDE68A;
    border-radius: 8px;
    padding: 16px 18px;
    margin-bottom: 18px;
}

.credit-limit-modal__guide-title {
    display: block;
    font-size: var(--edu-text-xs, 14px);
    font-weight: 700;
    color: #92400E;
    margin-bottom: 10px;
}

.credit-limit-modal__list {
    margin: 0;
    padding-left: 20px;
    font-size: var(--edu-text-sm, 16px);
    line-height: 1.7;
    color: #78350F;
}

.credit-limit-modal__list li {
    margin-bottom: 6px;
}

.credit-limit-modal__list li:last-child {
    margin-bottom: 0;
}

.credit-limit-modal__contact {
    font-size: var(--edu-text-sm, 16px);
    color: var(--edu-neutral-700);
    margin: 0 0 14px;
    text-align: center;
}

.credit-limit-modal__contact strong {
    color: var(--edu-primary-600);
    font-weight: 700;
}

.credit-limit-modal__notice-sub {
    font-size: var(--edu-text-mini, 13px);
    color: #DC2626;
    text-align: center;
    margin: 0 0 18px;
}

/* 체크박스 영역 */
.credit-limit-modal__checkbox-wrap {
    padding: 16px 18px;
    background: var(--edu-neutral-50);
    border: 1px solid var(--edu-neutral-200);
    border-radius: 8px;
    margin-top: 18px;
    display: flex;
    justify-content: center;
}

.credit-limit-modal__checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    margin: 0;
    font-size: var(--edu-text-sm, 16px);
    color: var(--edu-neutral-900);
    user-select: none;
}

.credit-limit-modal__checkbox {
    width: 20px;
    height: 20px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--edu-primary-600);
    flex-shrink: 0;
}

/* 모달 확인 버튼 기본 비활성화 */
.credit-limit-dialog .credit-limit-confirm-btn {
    opacity: 0.5;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* 활성화 상태 */
.credit-limit-dialog .credit-limit-confirm-btn.active {
    opacity: 1;
    cursor: pointer !important;
    pointer-events: auto !important;
}

/* ================================================
   17. 개강반 라디오 버튼 그룹
   ================================================ */

.register-semester-radio-group {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    padding: var(--edu-spacing-4);
    margin-bottom: var(--edu-spacing-3);
}

.register-semester-radio-group .section-label {
    margin-bottom: var(--edu-spacing-3);
}

/* 학기별 그룹 (yy년 n학기) */
.register-semester-group {
    margin-bottom: var(--edu-spacing-3);
}

.register-semester-group:last-child {
    margin-bottom: 0;
}

.register-semester-group__label {
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-primary-600);
    padding-bottom: var(--edu-spacing-1);
}

/* 개강반 라디오 - 기본 */
.register-semester-radio {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: var(--edu-spacing-3);
    margin-bottom: var(--edu-spacing-2);
    background: var(--edu-neutral-50);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-md);
    cursor: pointer;
    transition: all 0.15s ease;
}

.register-semester-radio:last-of-type {
    margin-bottom: 0;
}

.register-semester-radio:hover {
    border-color: var(--edu-primary-400);
    background: var(--edu-primary-50);
}

.register-semester-radio input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.register-semester-radio__subtitle {
    margin-bottom: var(--edu-spacing-1);
    font-size: 11px;
    color: #db2777;
    line-height: 1.4;
}

.register-semester-radio__text {
    flex: 1;
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-700);
    line-height: 1.5;
}

.register-semester-radio__deadline {
    position: absolute;
    top: -8px;
    right: -8px;
    padding: var(--edu-spacing-1) var(--edu-spacing-2);
    background: var(--edu-error-100);
    color: var(--edu-error-700);
    font-size: 14px;
    font-weight: var(--edu-font-bold);
    line-height: 1;
    white-space: nowrap;
    border-radius: var(--edu-radius-full);
}

/* 개강반 라디오 - 활성화 */
.register-semester-radio.active {
    border-color: var(--edu-primary-600);
    background: var(--edu-primary-50);
}

.register-semester-radio.active .register-semester-radio__text {
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-semibold);
}

/* ================================================
   18. 단과/패키지 토글
   ================================================ */

.register-type-toggle {
    position: relative;
    display: flex;
    background: var(--edu-neutral-100);
    border-radius: var(--edu-radius-md);
    padding: 2px;
    margin-top: var(--edu-spacing-4);
}

.register-type-toggle::before {
    content: '';
    position: absolute;
    top: calc(-1 * var(--edu-spacing-2) - 1px);
    left: 0;
    right: 0;
    border-top: 1px solid var(--edu-neutral-200);
}

.register-type-toggle__btn {
    flex: 1;
    padding: var(--edu-spacing-2) var(--edu-spacing-3);
    background: transparent;
    border: none;
    border-radius: var(--edu-radius-sm);
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-600);
    cursor: pointer;
    transition: all 0.15s ease;
}

.register-type-toggle__btn:hover {
    color: var(--edu-neutral-900);
}

.register-type-toggle__btn.active {
    background: var(--edu-neutral-0);
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-semibold);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* ================================================
   19. 필터 리스트
   ================================================ */

/* 사이드바 스티키 래퍼 */
.register-sidebar-sticky {
    --register-sidebar-height: calc(100vh - 78px);
    position: sticky;
    top: 62px;
    display: flex;
    flex-direction: column;
    max-height: var(--register-sidebar-height);
}

@supports (height: 100dvh) {
    .register-sidebar-sticky {
        --register-sidebar-height: calc(100dvh - 78px);
    }
}

.register-sidebar-sticky .register-filter-list {
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;
    min-height: 0;
    margin-bottom: var(--edu-spacing-4);
    overflow-y: auto;
}

/* 버튼 높이는 유지하고 펼친 세부전공 영역만 가용 높이에 맞춰 줄인다. */
.register-sidebar-sticky .register-filter-item,
.register-sidebar-sticky .register-filter-item__header,
.register-sidebar-sticky .register-consult-card {
    flex-shrink: 0;
}

.register-sidebar-sticky .register-consult-card {
    flex: 0 0 auto;
}

.register-sidebar-sticky .register-filter-item--accordion.is-open {
    display: flex;
    flex-direction: column;
    flex-shrink: 1;
    min-height: 0;
}

.register-sidebar-sticky .register-filter-item__body {
    min-height: 0;
    flex: 0 1 auto;
}

.register-filter-list {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    overflow: hidden;
}

/* 필터 아이템 (단순 링크) */
.register-filter-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-700);
    text-decoration: none;
    border-bottom: 1px solid var(--edu-neutral-100);
    transition: background-color 0.15s ease;
    cursor: pointer;
    width: 100%;
}

.register-filter-item:last-child {
    border-bottom: none;
}

.register-filter-item:hover {
    background: var(--edu-neutral-50);
    text-decoration: none;
}

.register-filter-item.active {
    background: var(--edu-primary-50);
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-semibold);
}

/* 아코디언 타입 필터 아이템 */
.register-filter-item--accordion {
    display: block;
    padding: 0;
}

.register-filter-item__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--edu-spacing-3) var(--edu-spacing-4);
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-700);
    text-decoration: none;
    cursor: pointer;
    background: none;
    border: none;
    transition: background-color 0.15s ease;
}

.register-filter-item__header:hover {
    background: var(--edu-neutral-50);
    text-decoration: none;
}

.register-filter-item--accordion.active > .register-filter-item__header {
    background: var(--edu-primary-50);
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-semibold);
}

.register-filter-item__icon {
    display: flex;
    align-items: center;
    color: var(--edu-neutral-400);
    transition: transform 0.2s ease;
}

.register-filter-item--accordion.is-open .register-filter-item__icon {
    transform: rotate(180deg);
}

/* 아코디언 바디 */
.register-filter-item__body {
    max-height: 0;
    overflow: hidden;
    background: var(--edu-neutral-50);
    transition: max-height 0.25s ease;
}

.register-filter-item--accordion.is-open .register-filter-item__body {
    max-height: calc(var(--register-sidebar-height, 100vh) * 0.5);
    overflow-y: auto;
    overscroll-behavior-y: contain;
	width: 100%;
}

/* 세부 전공 서브아이템 */
.register-filter-subitem {
    display: block;
    padding: var(--edu-spacing-2) var(--edu-spacing-4) var(--edu-spacing-2) var(--edu-spacing-6);
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-600);
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.register-filter-subitem:hover {
    background: var(--edu-neutral-100);
    text-decoration: none;
}

.register-filter-subitem.active {
    background: var(--edu-primary-100);
    color: var(--edu-primary-700);
    font-weight: var(--edu-font-semibold);
}

.register-filter-subitem:last-child {
    padding-bottom: var(--edu-spacing-3);
}

/* ================================================
   19. 장바구니 Fixed Wrapper
   ================================================ */

.register-cart-fixed-wrapper {
    position: fixed;
    bottom: var(--edu-spacing-4);
    left: 50%;
    transform: translateX(-50%);
    width: fit-content;
    max-width: calc(100% - var(--edu-spacing-8));
    background: rgba(255, 212, 77, 0.9);
    border-radius: var(--edu-radius-xl);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    z-index: 100;
    min-width: 300px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* 패키지 모드: 장바구니 아래로 숨김 */
.register-cart-fixed-wrapper.is-hidden {
    transform: translateX(-50%) translateY(calc(100% + var(--edu-spacing-8)));
    opacity: 0;
    pointer-events: none;
}

/* ================================================
   20. 장바구니 패널 (본문만)
   ================================================ */

/* 패널 본문 (토글) */
.register-cart-panel__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.register-cart-panel.is-open .register-cart-panel__body {
    max-height: 600px;
    overflow-y: auto;
}

/* 패널 내부 콘텐츠 - 기본 숨김 + fade-in/out */
.register-cart-panel__body .register-cart-items {
    padding: var(--edu-spacing-3) var(--edu-spacing-5);
    max-height: none;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.register-cart-panel.is-open .register-cart-panel__body .register-cart-items {
    opacity: 1;
    transition: opacity 0.2s ease 0.1s;
}

/* 패널 내부 아이템 - 라이트 테마 (accent-100 배경) */
.register-cart-fixed-wrapper .register-cart-item {
    background: rgba(255, 255, 255, 0.6);
    border: none;
}

.register-cart-fixed-wrapper .register-cart-item:hover {
    background: rgba(255, 255, 255, 0.8);
}

.register-cart-fixed-wrapper .register-cart-item__name {
    color: var(--edu-neutral-900);
}

.register-cart-fixed-wrapper .register-cart-item__credit {
    color: var(--edu-neutral-600);
}

.register-cart-fixed-wrapper .register-cart-item__remove {
    color: var(--edu-neutral-500);
}

.register-cart-fixed-wrapper .register-cart-item__remove:hover {
    color: var(--edu-error-600);
    background: rgba(239, 68, 68, 0.1);
}

.register-cart-fixed-wrapper .register-cart-semester__title {
    color: var(--edu-primary-600);
    font-weight: var(--edu-font-bold);
}

.register-cart-fixed-wrapper .register-cart-empty {
    color: var(--edu-neutral-500);
}

.register-cart-panel__actions {
    display: flex;
    justify-content: flex-end;
    padding: var(--edu-spacing-2) var(--edu-spacing-5) var(--edu-spacing-3);
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.register-cart-fixed-wrapper .register-cart-items {
    position: relative;
    padding-top: var(--edu-spacing-6);
}

.register-cart-fixed-wrapper .register-cart-clear-btn {
    position: absolute;
    top: var(--edu-spacing-2);
    right: var(--edu-spacing-4);
    padding: var(--edu-spacing-1) var(--edu-spacing-2);
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-500);
}

.register-cart-fixed-wrapper .register-cart-clear-btn:hover {
    color: var(--edu-neutral-800);
}

/* ================================================
   21. 하단 고정 바 (토글 + 버튼)
   ================================================ */

.register-cart-fixed-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--edu-spacing-2);
}

/* 장바구니 토글 버튼 - 보더 없음 */
.register-cart-fixed-bar__toggle {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-5);
    padding: 0 var(--edu-spacing-6);
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: var(--edu-text-section-label);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-800);
    transition: color 0.15s ease;
}

.register-cart-fixed-bar__toggle:hover {
    color: var(--edu-neutral-900);
}

/* 장바구니 아이콘 + 뱃지 */
.register-cart-fixed-bar__icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.register-cart-fixed-bar__icon svg {
    width: 20px;
    height: 20px;
}

.register-cart-fixed-bar__badge {
    position: absolute;
    top: -8px;
    right: -10px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: var(--edu-primary-500);
    color: #fff;
    font-size: 14px;
    font-weight: var(--edu-font-bold);
    line-height: 20px;
    text-align: center;
    border-radius: 10px;
    transition: transform 0.2s ease;
}

.register-cart-fixed-bar__badge.bounce {
    animation: cartBadgeBounce 0.4s ease;
}

@keyframes cartBadgeBounce {
    0% { transform: scale(1); }
    30% { transform: scale(1.4); }
    50% { transform: scale(0.9); }
    70% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

.register-cart-fixed-bar__arrow {
    display: flex;
    align-items: center;
    color: var(--edu-neutral-500);
    transition: transform 0.2s ease;
}

.register-cart-fixed-wrapper.is-open .register-cart-fixed-bar__arrow {
    transform: rotate(180deg);
}

/* 수강신청 버튼 - 학점 포함 */
.register-cart-fixed-bar__submit {
    min-width: 300px;
    font-size: var(--edu-text-section-label);
}

.register-cart-fixed-bar__submit .total-credit {
    font-weight: var(--edu-font-extrabold);
}

/* 페이지 하단 패딩 - fixed 영역 높이만큼 */
.register-container {
    padding-bottom: 80px;
}

/* ================================================
   22. 반응형 - Fixed 바 & 패널
   ================================================ */

@media (max-width: 768px) {
    .register-cart-fixed-wrapper {
        left: var(--edu-spacing-3);
        right: var(--edu-spacing-3);
        transform: none;
        width: auto;
        max-width: none;
        bottom: var(--edu-spacing-3);
    }

    .register-cart-fixed-wrapper.is-hidden {
        transform: translateY(calc(100% + var(--edu-spacing-6)));
    }

    .register-cart-panel__body .register-cart-items {
        padding: var(--edu-spacing-3) var(--edu-spacing-4);
    }

    .register-cart-panel__actions {
        padding: var(--edu-spacing-2) var(--edu-spacing-4) var(--edu-spacing-3);
    }

    .register-cart-fixed-bar {
        padding: var(--edu-spacing-3) var(--edu-spacing-4);
    }

    .register-cart-fixed-bar__toggle {
        font-size: var(--edu-text-xs);
    }

    .register-cart-fixed-bar__submit {
        min-width: auto;
        font-size: var(--edu-text-section-label);
    }

    .register-container {
        padding-bottom: 80px;
    }

    /* 사이드바 반응형 */
    .register-sidebar {
        width: 100%;
        flex-direction: column;
        gap: var(--edu-spacing-3);
    }

    .register-semester-radio-group,
    .register-filter-list {
        flex: 1 1 100%;
    }
}

/* ================================================
   23. 패키지 아코디언 & 유의사항
   ================================================ */

/* 패키지 카드 래퍼 */
.register-package-card {
    background: var(--edu-neutral-0);
    border: 1px solid var(--edu-neutral-200);
    border-radius: var(--edu-radius-lg);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.register-package-card:hover {
    border-color: var(--edu-primary-300);
    box-shadow: 0 4px 12px rgba(0, 115, 230, 0.08);
}

.register-package-card.is-open {
    border-color: var(--edu-primary-200);
}

/* 패키지 카드 안의 course-row */
.register-package-card .register-course-row {
    padding: 24px;
    gap: 24px;
    border: none;
    border-radius: 0;
}

/* 패키지 카드는 통합 컴포넌트이므로 row 호버 효과 제거 */
.register-package-card .register-course-row:hover {
    box-shadow: none;
    transform: none;
}

.register-package-card .register-course-row__info {
    gap: 10px;
}

/* 배지 영역 */
.register-course-row__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* 패키지 배지 공통 */
.register-course-row__badges .register-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: var(--edu-font-medium);
    line-height: 1.25;
    white-space: nowrap;
}

/* 패키지 배지 */
.register-badge--package {
    background: var(--edu-primary-50);
    color: var(--edu-primary-700);
}

/* 과목수 배지 */
.register-badge--count {
    background: var(--edu-neutral-100);
    color: var(--edu-neutral-700);
}

/* 할인율 배지 */
.register-badge--discount {
    background: var(--edu-error-50);
    color: var(--edu-error-700);
}

/* 과목 미리보기 */
.register-course-row__preview {
    font-size: 13px;
    line-height: 1.5;
    color: var(--edu-neutral-500);
}

/* 원래가격 (취소선) */
.register-course-row__original-price {
    font-size: var(--edu-text-xs);
    color: var(--edu-neutral-400);
    text-decoration: line-through;
}

/* 패키지 가격 */
.register-package-card .register-course-row__price {
    font-size: 22px;
    font-weight: var(--edu-font-extrabold);
    letter-spacing: -0.02em;
    color: var(--edu-neutral-900);
}

.register-package-card .register-course-row__price.is-discount {
    color: var(--edu-error-600);
}

.register-package-card .register-course-row__price small {
    margin-left: 2px;
    font-size: 15px;
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-700);
}

/* 토글 버튼 */
.register-package-toggle {
    width: 100%;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    border-top: 1px solid var(--edu-neutral-200);
    background: var(--edu-neutral-0);
    color: var(--edu-neutral-600);
    font: inherit;
    font-size: 14px;
    font-weight: var(--edu-font-semibold);
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.register-package-toggle:hover {
    color: var(--edu-primary-600);
}

.register-package-toggle i {
    font-size: 18px;
    transition: transform 0.2s;
}

.is-open .register-package-toggle {
    background: var(--edu-neutral-50);
    color: var(--edu-primary-600);
}

.is-open .register-package-toggle i {
    transform: rotate(180deg);
}

/* Syllabus 영역 */
.register-package-syllabus {
    border-top: 1px solid var(--edu-neutral-200);
    background: var(--edu-neutral-50);
    padding: 8px 24px 16px;
}

.register-package-syllabus__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 28px 0;
    font-size: 14px;
    color: var(--edu-neutral-500);
}

.register-package-syllabus__loading::before {
    content: "";
    width: 18px;
    height: 18px;
    border: 2px solid var(--edu-neutral-200);
    border-top-color: var(--edu-primary-600);
    border-radius: 50%;
    animation: register-spin 0.8s linear infinite;
}

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

.register-package-syllabus__empty {
    color: var(--edu-neutral-500);
    font-size: 14px;
    text-align: center;
    padding: 28px 0;
}

/* Syllabus 그룹 */
.register-syllabus-group {
    margin-bottom: 16px;
}

.register-syllabus-group:last-of-type {
    margin-bottom: 0;
}

.register-syllabus-group__label {
    font-size: 13px;
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-600);
    padding: 8px 0;
    border-bottom: 1px solid var(--edu-neutral-200);
    margin-bottom: 4px;
}

.register-syllabus-group__items {
    display: flex;
    flex-direction: column;
}

/* Syllabus 아이템 (좌우 배치) */
.register-syllabus-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--edu-neutral-100);
}

.register-syllabus-item:last-child {
    border-bottom: none;
}

.register-syllabus-item__no {
    flex: none;
    font-size: 14px;
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-500);
    font-variant-numeric: tabular-nums;
}

.register-syllabus-item__name {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    font-weight: var(--edu-font-medium);
    line-height: 1.4;
    color: var(--edu-neutral-800);
    text-decoration: none;
    transition: color 0.15s ease;
}

.register-syllabus-item__name:hover {
    color: var(--edu-primary-600);
}

.register-syllabus-item__type {
    flex: none;
    font-size: 13px;
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-500);
}

.register-syllabus-item__type--required {
    color: var(--edu-primary-600);
}

.register-syllabus-item__price {
    flex: none;
    width: 88px;
    text-align: right;
    font-size: 14px;
    color: var(--edu-neutral-600);
    font-variant-numeric: tabular-nums;
}

/* Syllabus 합계 */
.register-syllabus-total {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 8px;
    padding-top: 14px;
    font-size: 13px;
    color: var(--edu-neutral-500);
}

.register-syllabus-total strong {
    font-size: 14px;
    font-weight: var(--edu-font-semibold);
    color: var(--edu-neutral-700);
    font-variant-numeric: tabular-nums;
}

/* 학기/기수 그룹 (기존 - 호환용) */
.register-package-semester {
    border-bottom: 1px solid var(--edu-neutral-100);
}

.register-package-semester:last-child {
    border-bottom: none;
}

.register-package-semester__header {
    padding: 12px 20px;
    background: var(--edu-neutral-50);
    font-size: 14px;
    font-weight: 600;
    color: var(--edu-neutral-700);
    border-bottom: 1px solid var(--edu-neutral-100);
}

.register-package-semester__courses {
    display: flex;
    flex-wrap: wrap;
    gap: 0 14px;
    padding: 16px 20px;
}

/* 패키지 과목 목록 (2열 그리드) */
.register-package-course-item {
    width: calc(50% - 7px);
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    margin-bottom: 12px;
}

.register-package-course-item__type {
    flex-shrink: 0;
    min-width: 52px;
    padding: 2px 8px;
    background: var(--edu-primary-50);
    border-radius: var(--edu-radius-sm);
    font-size: var(--edu-text-xs);
    font-weight: var(--edu-font-medium);
    color: var(--edu-primary-700);
    text-align: center;
}

/* 배지 색상 - 전필/전선/교양 */
.register-package-course-item__type--required {
    background: #fee2e2;
    color: #991b1b;
}

.register-package-course-item__type--elective {
    background: #fef3c7;
    color: #92400e;
}

.register-package-course-item__type--liberal {
    background: #e0e7ff;
    color: #4338ca;
}

.register-package-course-item__name {
    flex: 1;
    font-size: var(--edu-text-sm);
    font-weight: var(--edu-font-medium);
    color: var(--edu-neutral-700);
}

.register-package-notice {
    background: var(--edu-secondary-50);
    border: 1px solid var(--edu-secondary-200);
    border-radius: var(--edu-radius-lg);
    padding: var(--edu-spacing-4) var(--edu-spacing-5);
}

.register-package-notice__title {
    display: flex;
    align-items: center;
    gap: var(--edu-spacing-2);
    font-size: var(--edu-text-base);
    font-weight: var(--edu-font-semibold);
    color: var(--edu-secondary-700);
    margin-bottom: var(--edu-spacing-3);
}

.register-package-notice__title i {
    font-size: 20px;
    color: var(--edu-secondary-500);
}

.register-package-notice__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--edu-spacing-2);
    counter-reset: notice-counter;
}

.register-package-notice__list li {
    position: relative;
    padding-left: var(--edu-spacing-5);
    font-size: var(--edu-text-sm);
    color: var(--edu-neutral-600);
    line-height: 1.6;
    counter-increment: notice-counter;
}

.register-package-notice__list li::before {
    content: counter(notice-counter) ".";
    position: absolute;
    left: 0;
    color: var(--edu-secondary-500);
    font-weight: var(--edu-font-medium);
}

.register-package-notice__list li a {
    color: var(--edu-primary-600);
    text-decoration: underline;
}

.register-package-notice__list li a:hover {
    color: var(--edu-primary-700);
}

.txt-danger {
    color: var(--edu-error-600);
    font-weight: var(--edu-font-semibold);
}

/* 반응형 - 패키지 카드 */
@media (max-width: 768px) {
    .register-package-card .register-course-row {
        padding: 20px;
        gap: 16px;
    }

    .register-package-card .register-course-row__right {
        width: 100%;
        justify-content: space-between;
    }

    .register-package-syllabus {
        padding: 8px 20px 16px;
    }

    .register-syllabus-item__type {
        display: none;
    }

    /* 기존 호환 스타일 */
    .register-package-semester__header {
        padding: 10px 16px;
        font-size: 13px;
    }

    .register-package-semester__courses {
        padding: 12px 16px;
    }

    .register-package-course-item {
        width: 100%;
        gap: var(--edu-spacing-2);
        margin-bottom: 8px;
    }

    .register-package-course-item__type {
        min-width: 50px;
        font-size: 11px;
    }

    .register-package-course-item__name {
        font-size: 13px;
    }

    .register-package-notice-section {
        padding: var(--edu-spacing-4) 0 0 0;
    }

    .register-package-notice {
        padding: var(--edu-spacing-3) var(--edu-spacing-4);
    }

    .register-package-notice__list li {
        font-size: 13px;
    }
}
