/**
 * 跳转模块 · 无边框 + 底部动态线 + 悬停微放大
 */
:root {
    --ktp-jump-grow: 1.06;
    --ktp-jump-grow-sm: 1.04;
    --ktp-jump-grow-lg: 1.08;
    --ktp-jump-ease: 0.22s cubic-bezier(0.22, 1, 0.36, 1);
    --ktp-jump-line-h: 2px;
    --ktp-jump-line-bg: linear-gradient(90deg, #0ea5e9, #06b6d4, #10b981, #6366f1, #0ea5e9);
}

/* 无边框（卡片保留阴影） */
.ktp-nav-item,
.ktp-menu-item,
.ktp-filter-tab,
.ktp-wb-group-tab,
.join-tab-btn,
.tp-detail-tab,
.tp-wb-subnav-item,
.auth-tab,
.edu-wb-nav-item,
.hw-student-chip,
.portal-student-chip,
.portal-resource-chip,
.tp-unit-item,
.tp-student-row,
.ktp-link-btn,
.ktp-kdp-link-btn,
.portal-course-actions .ktp-btn:not(.ktp-btn-danger),
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger),
.portal-hero-actions .ktp-btn,
.ktp-student-mobile-bar button,
.auth-footer a,
.ktp-course-tab,
.ktp-cr-nav-item,
.ktp-cr-subtab,
.ktp-score-tab,
.cl-tab-btn,
.cg-tab-btn,
.ktp-wb-side-tab,
.edu-wb-mode-tab,
.ktp-wenk-mode-tab {
    border: none !important;
    box-shadow: none !important;
}

.ktp-module-card,
.portal-chooser-card,
.ktp-home-todo-row,
.ktp-signin-method-card,
.ktp-signin-method-showcase-item,
.ktp-todo-item,
.ktp-attendance-card,
.ktp-notify-item {
    border: none !important;
}

/* 所有小跳转模块 — 布局与动效 */
.ktp-nav-item,
.ktp-menu-item,
.ktp-module-card,
.portal-chooser-card,
.ktp-home-todo-row,
.ktp-signin-method-card,
.ktp-signin-method-showcase-item,
.ktp-todo-item,
.ktp-attendance-card,
.ktp-notify-item,
.join-tab-btn,
.tp-detail-tab,
.tp-unit-item,
.tp-student-row,
.hw-student-chip,
.auth-tab,
.edu-wb-nav-item,
.ktp-filter-tab,
.ktp-wb-group-tab,
.tp-wb-subnav-item,
.portal-student-chip,
.portal-resource-chip,
.portal-course-actions .ktp-btn:not(.ktp-btn-danger),
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger),
.portal-hero-actions .ktp-btn,
.ktp-student-mobile-bar button,
.auth-footer a,
.ktp-link-btn,
.ktp-kdp-link-btn,
.ktp-course-tab,
.ktp-cr-nav-item,
.ktp-cr-subtab,
.ktp-score-tab,
.cl-tab-btn,
.cg-tab-btn,
.ktp-wb-side-tab,
.edu-wb-mode-tab,
.ktp-wenk-mode-tab {
    position: relative;
    border: none !important;
    outline: none;
    transition: transform var(--ktp-jump-ease), background var(--ktp-jump-ease), color 0.2s;
    transform-origin: center center;
}

.ktp-nav-item,
.ktp-menu-item,
.ktp-filter-tab,
.ktp-wb-group-tab,
.join-tab-btn,
.tp-detail-tab,
.tp-wb-subnav-item,
.auth-tab,
.edu-wb-nav-item,
.hw-student-chip,
.portal-student-chip,
.portal-resource-chip,
.tp-unit-item,
.tp-student-row,
.ktp-link-btn,
.ktp-kdp-link-btn,
.portal-course-actions .ktp-btn:not(.ktp-btn-danger),
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger),
.portal-hero-actions .ktp-btn,
.ktp-student-mobile-bar button,
.auth-footer a,
.ktp-course-tab,
.ktp-cr-nav-item,
.ktp-cr-subtab,
.ktp-score-tab,
.cl-tab-btn,
.cg-tab-btn,
.ktp-wb-side-tab,
.edu-wb-mode-tab,
.ktp-wenk-mode-tab {
    box-shadow: none !important;
}

.ktp-module-card,
.portal-chooser-card,
.ktp-home-todo-row,
.ktp-signin-method-card,
.ktp-signin-method-showcase-item,
.ktp-todo-item,
.ktp-attendance-card,
.ktp-notify-item {
    position: relative;
    outline: none;
    transition: transform var(--ktp-jump-ease), background var(--ktp-jump-ease), color 0.2s;
    transform-origin: center center;
}

.ktp-menu-item,
.edu-wb-nav-item {
    transform-origin: left center;
}

/* 底部动态线 */
.ktp-nav-item::after,
.ktp-menu-item::after,
.ktp-module-card::after,
.portal-chooser-card::after,
.ktp-home-todo-row::after,
.ktp-signin-method-card::after,
.ktp-signin-method-showcase-item::after,
.ktp-todo-item::after,
.ktp-attendance-card::after,
.ktp-notify-item::after,
.join-tab-btn::after,
.tp-detail-tab::after,
.tp-unit-item::after,
.tp-student-row::after,
.hw-student-chip::after,
.auth-tab::after,
.edu-wb-nav-item::after,
.ktp-filter-tab::after,
.ktp-wb-group-tab::after,
.tp-wb-subnav-item::after,
.portal-student-chip::after,
.portal-resource-chip::after,
.portal-course-actions .ktp-btn:not(.ktp-btn-danger)::after,
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger)::after,
.portal-hero-actions .ktp-btn::after,
.ktp-student-mobile-bar button::after,
.auth-footer a::after,
.ktp-link-btn::after,
.ktp-kdp-link-btn::after,
.ktp-course-tab::after,
.ktp-score-tab::after,
.ktp-cr-nav-item::after,
.ktp-cr-subtab::after,
.cl-tab-btn::after,
.cg-tab-btn::after,
.ktp-wb-side-tab::after,
.edu-wb-mode-tab::after,
.ktp-wenk-mode-tab::after {
    content: '';
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: 0;
    height: var(--ktp-jump-line-h);
    border-radius: 2px;
    background: var(--ktp-jump-line-bg);
    background-size: 300% 100%;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s;
    opacity: 0;
    pointer-events: none;
    animation: ktpJumpLineFlow 2.2s linear infinite;
}

.ktp-nav-item::after,
.ktp-filter-tab::after,
.auth-tab::after {
    left: 18%;
    right: 18%;
    bottom: 2px;
}

.ktp-menu-item::after,
.edu-wb-nav-item::after,
.ktp-cr-nav-item::after {
    left: 12px;
    right: 12px;
    bottom: 2px;
}

.cr-embedded-mount .edu-wb-nav-item::after {
    left: 12%;
    right: 12%;
    bottom: 2px;
}

.ktp-cr-nav-item::after,
.ktp-cr-subtab::after,
.cl-tab-btn::after,
.cg-tab-btn::after,
.ktp-wb-side-tab::after {
    left: 16%;
    right: 16%;
    bottom: 2px;
}

.ktp-module-card::after,
.ktp-signin-method-card::after,
.ktp-signin-method-showcase-item::after,
.ktp-home-todo-row::after,
.ktp-todo-item::after,
.ktp-attendance-card::after,
.ktp-notify-item::after,
.join-tab-btn::after,
.tp-detail-tab::after,
.tp-unit-item::after,
.portal-student-chip::after,
.portal-resource-chip::after {
    left: 10%;
    right: 10%;
    bottom: 4px;
}

/* 悬停 / 选中：显示动态线 */
.ktp-nav-item:hover::after,
.ktp-menu-item:hover::after,
.ktp-module-card:hover::after,
.portal-chooser-card:hover::after,
.ktp-home-todo-row:hover::after,
.ktp-signin-method-card:hover::after,
.ktp-signin-method-showcase-item:hover::after,
.ktp-todo-item:hover::after,
.ktp-attendance-card:hover::after,
.ktp-notify-item:hover::after,
.join-tab-btn:hover::after,
.tp-detail-tab:hover::after,
.tp-unit-item:hover::after,
.tp-student-row:hover::after,
.hw-student-chip:hover::after,
.auth-tab:hover::after,
.edu-wb-nav-item:hover::after,
.ktp-filter-tab:hover::after,
.ktp-wb-group-tab:hover::after,
.tp-wb-subnav-item:hover::after,
.portal-student-chip:hover::after,
.portal-resource-chip:hover::after,
.portal-course-actions .ktp-btn:not(.ktp-btn-danger):hover::after,
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger):hover::after,
.portal-hero-actions .ktp-btn:hover::after,
.ktp-student-mobile-bar button:hover::after,
.auth-footer a:hover::after,
.ktp-link-btn:hover::after,
.ktp-kdp-link-btn:hover::after,
.ktp-course-tab:hover::after,
.ktp-score-tab:hover::after,
.ktp-cr-nav-item:hover::after,
.ktp-cr-subtab:hover::after,
.cl-tab-btn:hover::after,
.cg-tab-btn:hover::after,
.ktp-wb-side-tab:hover::after,
.edu-wb-mode-tab:hover::after,
.ktp-wenk-mode-tab:hover::after,
.ktp-nav-item.active::after,
.ktp-menu-item.active::after,
.ktp-signin-method-card.active::after,
.join-tab-btn.active::after,
.tp-detail-tab.active::after,
.tp-wb-subnav-item.active::after,
.auth-tab.active::after,
.edu-wb-nav-item.active::after,
.ktp-filter-tab.active::after,
.ktp-wb-group-tab.active::after,
.ktp-course-tab.active::after,
.ktp-score-tab.active::after,
.ktp-cr-nav-item.active::after,
.ktp-cr-subtab.active::after,
.cl-tab-btn.active::after,
.cg-tab-btn.active::after,
.ktp-wb-side-tab.active::after,
.edu-wb-mode-tab.active::after,
.ktp-wenk-mode-tab.active::after,
.tp-unit-item.active::after,
.hw-student-chip.active::after {
    transform: scaleX(1);
    opacity: 1;
}

@keyframes ktpJumpLineFlow {
    0% { background-position: 0% 50%; }
    100% { background-position: 300% 50%; }
}

/* 悬停放大 */
.ktp-nav-item:hover { transform: scale(var(--ktp-jump-grow-sm)); }
.ktp-menu-item:hover { transform: scale(1.02); }
.ktp-module-card:hover { transform: scale(var(--ktp-jump-grow)) translateY(-2px); }
.portal-chooser-card:hover { transform: scale(var(--ktp-jump-grow)) translateY(-4px); }
.ktp-home-todo-row:hover,
.ktp-todo-item:hover,
.ktp-notify-item:hover { transform: scale(1.02); }
.ktp-signin-method-card:hover,
.ktp-signin-method-showcase-item:hover { transform: scale(var(--ktp-jump-grow-sm)); }
.ktp-attendance-card:hover { transform: scale(var(--ktp-jump-grow-sm)); }
.join-tab-btn:hover,
.tp-detail-tab:hover,
.ktp-filter-tab:hover,
.ktp-wb-group-tab:hover,
.auth-tab:hover,
.tp-wb-subnav-item:hover,
.ktp-course-tab:hover,
.ktp-score-tab:hover,
.ktp-cr-nav-item:hover,
.ktp-cr-subtab:hover,
.cl-tab-btn:hover,
.cg-tab-btn:hover,
.ktp-wb-side-tab:hover,
.edu-wb-mode-tab:hover,
.ktp-wenk-mode-tab:hover { transform: scale(var(--ktp-jump-grow-sm)); }
.tp-unit-item:hover,
.hw-student-chip:hover,
.portal-student-chip:hover,
.portal-resource-chip:hover { transform: scale(1.03); }
.tp-student-row:hover { transform: scale(1.01); }
.edu-wb-nav-item:hover { transform: scale(1.02); }
.portal-course-actions .ktp-btn:not(.ktp-btn-danger):hover,
.ktp-course-actions .ktp-btn:not(.ktp-btn-danger):hover,
.portal-hero-actions .ktp-btn:hover { transform: scale(var(--ktp-jump-grow-sm)); }
.ktp-student-mobile-bar button:hover { transform: scale(var(--ktp-jump-grow-lg)); }
.auth-footer a:hover { transform: scale(1.05); display: inline-block; }

/* 选中态：去边框底色，保留文字高亮 */
.ktp-nav-item.active,
.ktp-filter-tab.active {
    background: transparent !important;
    color: var(--ktp-primary, #1890ff) !important;
    font-weight: 600;
    border-bottom-color: transparent !important;
}

.ktp-menu-item.active {
    background: transparent !important;
    border-right: none !important;
    color: var(--ktp-primary, #1890ff) !important;
    font-weight: 600;
}

.edu-wb-nav-item.active {
    background: transparent !important;
    border-left-color: transparent !important;
    color: var(--edu-blue, #1890ff) !important;
    font-weight: 600;
}

.tp-detail-tab.active {
    background: #fff !important;
    color: #1890ff !important;
    font-weight: 600;
}

.join-tab-btn.active,
.ktp-signin-method-card.active {
    background: transparent !important;
    color: #1890ff !important;
    font-weight: 600;
}

.tp-wb-subnav-item.active {
    background: transparent !important;
    color: #1890ff !important;
    font-weight: 600;
}

.ktp-course-tab.active,
.ktp-score-tab.active {
    background: transparent !important;
    color: var(--ktp-primary, #1890ff) !important;
    font-weight: 600;
}

.ktp-cr-nav-item.active,
.ktp-cr-subtab.active,
.cl-tab-btn.active,
.cg-tab-btn.active,
.ktp-wb-side-tab.active {
    background: transparent !important;
    color: var(--ktp-primary, #1890ff) !important;
    font-weight: 600;
    border-left-color: transparent !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
}

.edu-wb-mode-tab.active {
    background: transparent !important;
    color: var(--edu-blue, #00a0e9) !important;
    font-weight: 600;
    border-color: transparent !important;
}

.ktp-wenk-mode-tab.active {
    background: transparent !important;
    color: var(--ktp-primary, #1890ff) !important;
    font-weight: 600;
    box-shadow: none !important;
}

.ktp-cr-nav-item:hover,
.ktp-cr-subtab:hover {
    background: transparent !important;
}

.edu-wb-nav-item:hover,
.edu-wb-nav-item.active {
    background: transparent !important;
}

/* 强制去除旧式侧栏/下划线指示 */
.ktp-cr-nav-item,
.ktp-cr-subtab,
.ktp-filter-tab,
.cl-tab-btn,
.cg-tab-btn,
.ktp-wb-side-tab,
.ktp-score-tab,
.edu-wb-nav-item,
.edu-wb-mode-tab,
.ktp-wenk-mode-tab,
.tp-wb-subnav-item,
.join-tab-btn,
.tp-detail-tab,
.ktp-wb-group-tab,
.ktp-course-tab {
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

.tp-unit-item.active,
.hw-student-chip.active {
    background: rgba(230, 247, 255, 0.45) !important;
    color: #1890ff !important;
    font-weight: 600;
}

.ktp-signin-method-card:hover,
.ktp-signin-method-card.active {
    background: rgba(230, 247, 255, 0.45) !important;
}

.ktp-home-todo-row:hover,
.ktp-todo-item:hover {
    background: rgba(240, 249, 255, 0.65) !important;
}

.ktp-notify-item.unread {
    border-left: none !important;
    background: rgba(246, 255, 237, 0.85) !important;
}

@media (prefers-reduced-motion: reduce) {
    .ktp-nav-item::after,
    .ktp-menu-item::after,
    .ktp-module-card::after,
    .portal-chooser-card::after,
    .ktp-home-todo-row::after,
    .ktp-signin-method-card::after,
    .ktp-signin-method-showcase-item::after,
    .ktp-todo-item::after,
    .ktp-attendance-card::after,
    .ktp-notify-item::after,
    .join-tab-btn::after,
    .tp-detail-tab::after,
    .tp-unit-item::after,
    .tp-student-row::after,
    .hw-student-chip::after,
    .auth-tab::after,
    .edu-wb-nav-item::after,
    .ktp-filter-tab::after,
    .ktp-wb-group-tab::after,
    .tp-wb-subnav-item::after,
    .portal-student-chip::after,
    .portal-resource-chip::after,
    .portal-course-actions .ktp-btn:not(.ktp-btn-danger)::after,
    .ktp-course-actions .ktp-btn:not(.ktp-btn-danger)::after,
    .portal-hero-actions .ktp-btn::after,
    .ktp-student-mobile-bar button::after,
    .auth-footer a::after,
    .ktp-link-btn::after,
    .ktp-kdp-link-btn::after,
    .ktp-cr-nav-item::after,
    .ktp-cr-subtab::after,
    .cl-tab-btn::after,
    .cg-tab-btn::after,
    .ktp-wb-side-tab::after,
    .edu-wb-mode-tab::after,
    .ktp-wenk-mode-tab::after {
        animation: none;
    }
}
