/* css/recommend.css */

/* 卡片标题内的附属小提示（如"点击学校展开专业组/专业"）：
   字号小一号、超深灰、不抢眼，与主标题形成层级差，且不继承 text-primary 的蓝色 */
.title-hint {
    font-size: 0.85rem;
    font-weight: 400;
    color: #495057;
    vertical-align: middle;
}

/* 冲稳保标签样式 */
.badge-reach {
    background: linear-gradient(135deg, #ff6b6b, #ee5a24) !important;
    color: white !important;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 13px;
    letter-spacing: 1px;
}

.badge-steady {
    background: linear-gradient(135deg, #51cf66, #2b8a3e) !important;
    color: white !important;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 13px;
    letter-spacing: 1px;
}

.badge-safe {
    background: linear-gradient(135deg, #339af0, #1864ab) !important;
    color: white !important;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 13px;
    letter-spacing: 1px;
}

/* 冲稳保行背景色（专业行：浅色） */
.row-reach td {
    background-color: #ffeaea !important;
}

.row-reach:hover td {
    background-color: #ffd9d9 !important;
}

.row-steady td {
    background-color: #e6faea !important;
}

.row-steady:hover td {
    background-color: #c6f2cd !important;
}

.row-safe td {
    background-color: #dceefc !important;
}

.row-safe:hover td {
    background-color: #c4e3fa !important;
}

/* 专业组行在冲稳保基础上加深（同步加深，保持与专业行的层次差） */
.row-reach.group-row td {
    background-color: #ffd9d9 !important;
    font-weight: 600;
}

.row-reach.group-row:hover td {
    background-color: #ffc9c9 !important;
}

.row-steady.group-row td {
    background-color: #c6f2cd !important;
    font-weight: 600;
}

.row-steady.group-row:hover td {
    background-color: #adeeb8 !important;
}

.row-safe.group-row td {
    background-color: #c4e3fa !important;
    font-weight: 600;
}

.row-safe.group-row:hover td {
    background-color: #a5d8ff !important;
}

/* 统计卡片 */
.stat-card {
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.stat-card-reach {
    background: linear-gradient(135deg, #fff5f5, #ffe3e3);
    border: 2px solid #ff8787;
}

.stat-card-steady {
    background: linear-gradient(135deg, #f0fff4, #d3f9d8);
    border: 2px solid #69db7c;
}

.stat-card-safe {
    background: linear-gradient(135deg, #e7f5ff, #d0ebff);
    border: 2px solid #74c0fc;
}

.stat-card .stat-number {
    font-size: 36px;
    font-weight: 800;
    line-height: 1.2;
}

.stat-card-reach .stat-number {
    color: #e03131;
}

.stat-card-steady .stat-number {
    color: #2b8a3e;
}

.stat-card-safe .stat-number {
    color: #1864ab;
}

.stat-card .stat-label {
    font-size: 15px;
    font-weight: 600;
    margin-top: 4px;
}

.stat-card-reach .stat-label {
    color: #c92a2a;
}

.stat-card-steady .stat-label {
    color: #2b8a3e;
}

.stat-card-safe .stat-label {
    color: #1864ab;
}

/* 阈值信息提示 */
.threshold-info {
    background: linear-gradient(135deg, #fff9db, #fff3bf);
    border: 1px solid #ffd43b;
    border-radius: 10px;
    padding: 12px 20px;
    font-size: 14px;
    color: #664d03;
}

.threshold-info i {
    color: #f59f00;
}

/* 排名输入框特殊样式 */
.rank-input-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rank-input-label {
    margin-bottom: 0 !important;
    white-space: nowrap;
    flex-shrink: 0;
}

.rank-input-group {
    position: relative;
    flex: 1;
    min-width: 0;
}

/* 去掉 number 输入框的上下箭头 */
#userRank::-webkit-inner-spin-button,
#userRank::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#userRank {
    -moz-appearance: textfield;
}

/* 位次/分数切换按钮样式 */
#toggleInputMode {
    color: #0d6efd;
    border-color: #86b7fe;
    background: #e7f1ff;
}

#toggleInputMode:hover {
    color: #0a58ca;
    background: #cfe2ff;
    border-color: #6ea8fe;
}

/* 分数模式时按钮变浅绿色 */
#toggleInputMode.score-mode {
    color: #198754;
    border-color: #75b798;
    background: #d1e7dd;
}

#toggleInputMode.score-mode:hover {
    color: #146c43;
    background: #a3cfbb;
    border-color: #479f76;
}

/* 隐藏输入框下方的提示文字 */
#inputModeHint {
    display: none;
}

/* 分隔线 */
.section-divider {
    height: 3px;
    background: linear-gradient(90deg, #ff6b6b, #51cf66, #339af0);
    border-radius: 2px;
    margin: 8px 0;
}

/* 专业组代码补0后的badge */
.group-code-badge {
    min-width: 28px;
    text-align: center;
}

/* 结果区域筛选按钮 */
.filter-btn {
    border-radius: 20px;
    padding: 6px 18px;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
    border: 2px solid transparent;
}

.filter-btn:hover {
    transform: translateY(-1px);
}

.filter-btn-active-reach {
    background: #ff6b6b;
    color: white;
    border-color: #e03131;
}

.filter-btn-active-steady {
    background: #51cf66;
    color: white;
    border-color: #2b8a3e;
}

.filter-btn-active-safe {
    background: #339af0;
    color: white;
    border-color: #1864ab;
}

.filter-btn-active-all {
    background: #868e96;
    color: white;
    border-color: #495057;
}

.filter-btn-inactive {
    background: white;
    color: #495057;
    border-color: #dee2e6;
}

/* 空结果 */
.empty-result {
    text-align: center;
    padding: 60px 20px;
    color: #868e96;
}

.empty-result i {
    font-size: 48px;
    margin-bottom: 16px;
    color: #dee2e6;
}

.empty-result h5 {
    color: #adb5bd;
    margin-bottom: 8px;
}

/* 选中行 */
.selected-row {
    outline: 2px solid #0d6efd !important;
    outline-offset: -2px;
}

/* 专业组行展开图标 */
.group-row .expand-icon {
    color: #868e96;
    transition: transform 0.2s ease;
    display: inline-block;
}

.group-row:hover .expand-icon {
    color: #0d6efd;
}

/* 专业行缩进 */
.major-row td:first-child {
    padding-left: 2em;
}

/* 专业组行可点击提示 */
.group-row {
    cursor: pointer !important;
}

.major-row {
    cursor: default !important;
}

/* 省份标签选择器（youzy.cn风格） */
.province-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 0;
}

.province-tag {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 18px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border: 1.5px solid #dee2e6;
    background: #fff;
    color: #495057;
    transition: all 0.2s ease;
    user-select: none;
    white-space: nowrap;
}

.province-tag:hover {
    border-color: #0d6efd;
    color: #0d6efd;
    background: #f0f6ff;
}

.province-tag.active {
    background: linear-gradient(135deg, #0d6efd, #3b82f6);
    color: #fff;
    border-color: #0d6efd;
    box-shadow: 0 2px 6px rgba(13, 110, 253, 0.25);
}

.province-tag.active:hover {
    background: linear-gradient(135deg, #0b5ed7, #2563eb);
    color: #fff;
}

@media (max-width: 768px) {
    .province-tags {
        gap: 6px;
    }
    .province-tag {
        padding: 4px 10px;
        font-size: 12px;
    }
}

/* ==================== 意向专业三级多选筛选器 ==================== */
.major-filter-container {
    border: 1px solid #dee2e6;
    border-radius: 10px;
    background: #fafbfc;
    overflow: hidden;
}

.major-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    cursor: pointer;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
    user-select: none;
    transition: background 0.2s;
}

.major-filter-header:hover {
    background: #e9ecef;
}

.major-filter-header .header-left {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 14px;
    color: #495057;
}

.major-filter-header .header-left i {
    color: #0d6efd;
    font-size: 16px;
}

.major-filter-header .header-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.major-filter-header .selected-count {
    font-size: 12px;
    color: #0d6efd;
    background: rgba(13, 110, 253, 0.1);
    padding: 2px 10px;
    border-radius: 12px;
    font-weight: 600;
}

.major-filter-header .toggle-icon {
    transition: transform 0.3s ease;
    font-size: 14px;
    color: #868e96;
}

.major-filter-header.expanded .toggle-icon {
    transform: rotate(180deg);
}

/* 三级面板 */
.major-filter-panel {
    display: flex;
    height: 320px;
    border-top: 1px solid #dee2e6;
}

.major-filter-column {
    flex: 1;
    overflow-y: auto;
    border-right: 1px solid #e9ecef;
    background: #fff;
}

.major-filter-column:last-child {
    border-right: none;
}

.major-filter-column .column-title {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f1f3f5;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* 专业列全选标签 */
.major-filter-column .column-title .select-all-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 400;
    color: #0d6efd;
    cursor: pointer;
    user-select: none;
    margin: 0;
}

.major-filter-column .column-title .select-all-label:hover {
    color: #0a58ca;
}

.major-filter-column .column-title .select-all-checkbox {
    width: 14px;
    height: 14px;
    cursor: pointer;
    accent-color: #0d6efd;
    margin: 0;
}

.major-filter-column .filter-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    cursor: pointer;
    font-size: 13px;
    color: #495057;
    transition: all 0.15s ease;
    border-bottom: 1px solid #f1f3f5;
    user-select: none;
}

.major-filter-column .filter-item:hover {
    background: #f0f6ff;
    color: #0d6efd;
}

.major-filter-column .filter-item.selected {
    background: rgba(13, 110, 253, 0.08);
    color: #0d6efd;
    font-weight: 600;
}

.major-filter-column .filter-item.active-level {
    background: rgba(13, 110, 253, 0.15);
    color: #0a58ca;
}

.major-filter-column .filter-item .item-check {
    width: 16px;
    height: 16px;
    border: 2px solid #ced4da;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.2s;
}

.major-filter-column .filter-item.selected .item-check {
    background: #0d6efd;
    border-color: #0d6efd;
}

.major-filter-column .filter-item.selected .item-check::after {
    content: '';
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin-top: -2px;
}

.major-filter-column .filter-item .item-text {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.major-filter-column .filter-item .item-arrow {
    font-size: 11px;
    color: #adb5bd;
    transition: transform 0.2s;
}

.major-filter-column .filter-item.active-level .item-arrow {
    color: #0d6efd;
}

/* 筛选底部操作栏 */
.major-filter-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.major-filter-footer .selected-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1;
    max-height: 60px;
    overflow-y: auto;
}

.major-filter-footer .selected-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: default;
}

.major-filter-footer .selected-tag .remove-tag {
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.major-filter-footer .selected-tag .remove-tag:hover {
    opacity: 1;
}

.major-filter-footer .btn-sm {
    font-size: 12px;
    padding: 4px 12px;
}

/* 多选分组标题（二级列按门类分组、三级列按专业类分组） */
.major-filter-column .filter-group-title {
    padding: 6px 12px 4px;
    font-size: 11px;
    font-weight: 600;
    color: #868e96;
    background: #f8f9fa;
    border-bottom: 1px solid #f1f3f5;
    user-select: none;
    cursor: default;
}

/* 列级手风琴元素（mf-col-value / mf-col-arrow）：仅移动端显示，桌面端三列横排不参与 */
.major-filter-column .mf-col-value {
    display: none;
}

.major-filter-column .mf-col-arrow {
    display: none;
}

/* 响应式：移动端三级改为纵向折叠 */
@media (max-width: 768px) {
    .major-filter-panel {
        flex-direction: column;
        height: auto;
        max-height: 360px;
    }

    .major-filter-column {
        border-right: none;
        border-bottom: 1px solid #e9ecef;
        max-height: 180px;
    }

    .major-filter-column:last-child {
        border-bottom: none;
    }

    .major-filter-column .filter-item {
        padding: 7px 12px;
        font-size: 12px;
    }

    /* 手风琴：选中下一级后自动折叠上一级（仅移动端生效，桌面端横排不受影响） */
    .major-filter-column .mf-col-title {
        cursor: pointer;
    }

    .major-filter-column .mf-col-value {
        display: block;
        flex: 1;
        min-width: 0;
        padding-left: 8px;
        font-size: 12px;
        font-weight: 400;
        color: #adb5bd;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .major-filter-column .mf-col-value.has-value {
        color: #0d6efd;
        font-weight: 600;
    }

    .major-filter-column .mf-col-arrow {
        display: inline-block;
        margin-left: 8px;
        font-size: 11px;
        color: #adb5bd;
        transition: transform 0.2s;
    }

    .major-filter-column.mf-collapsed .mf-col-arrow {
        transform: rotate(180deg);
    }

    /* 展开态隐藏标题行中的值文本（仅折叠态显示，visibility 保持占位防跳动） */
    .major-filter-column:not(.mf-collapsed) .mf-col-value {
        visibility: hidden;
    }

    .major-filter-column.mf-collapsed .filter-list {
        display: none;
    }

    .major-filter-column .column-title .select-all-label {
        margin-left: 8px;
    }
}

/* 中外合作开关 - 正方形checkbox */
.zhongwai-switch .form-check-input {
    width: 1.2em;
    height: 1.2em;
    cursor: pointer;
}

.zhongwai-switch .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.zhongwai-switch .form-check-label {
    cursor: pointer;
    font-weight: 500;
}

/* 确保页面在手机上可以滚动 */
html {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.table-responsive {
    max-height: 70vh;
    overflow-y: auto;
}

/* 响应式 */
@media (max-width: 768px) {
    .stat-card .stat-number {
        font-size: 28px;
    }

    .stat-card {
        padding: 14px;
    }

    .filter-btn {
        padding: 4px 12px;
        font-size: 13px;
    }

    /* 年份下拉框加宽 */
    .year-select-col {
        flex: 0 0 30% !important;
        max-width: 160px !important;
        min-width: 130px !important;
    }

    /* 手机端排名输入label和输入框恢复上下排列 */
    .rank-input-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .rank-input-label {
        margin-bottom: 0 !important;
    }

    .rank-input-group {
        width: 100%;
    }
}

/* 意向专业筛选：专业行状态 */
/* 名称命中的专业行：粗体（无论是否够得到） */
tr.row-m-hit td,
tr.row-m-hit td * {
    font-weight: bold !important;
}

/* 名称未命中的专业行：普通字体 */
tr.row-m-miss td,
tr.row-m-miss td * {
    font-weight: normal !important;
}

/* 未入选的专业行（名称不匹配，或名称命中但位次够不到）：浅灰背景 */
tr.row-m-out td {
    background-color: #f1f3f5 !important;
}

tr.row-m-out:hover td {
    background-color: #e9ecef !important;
}

/* 意向专业匹配分层提示标签（常驻，不依赖悬浮） */
.match-label {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}
/* 强命中：备注列举段内真实方向 —— 低调灰 */
.match-strong {
    background: #eef1f4;
    color: #5b6b7b;
    border: 1px solid #d6dde4;
}
/* 弱命中：备注段外边缘关联 —— 醒目橙，提示用户自行判断（不覆盖备注） */
.match-weak {
    background: #fff4e5;
    color: #b45309;
    border: 1px solid #f0c98a;
}

/* 左侧空白列的标签容器：调剂风险标签与强/弱命中标签可能并存，上下堆叠不撑宽表格 */
.match-labels {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
/* 调剂风险：红色系，比弱命中的橙更重；只给常驻短语 + tooltip，不覆盖备注 */
.match-risk {
    background: #fdecec;
    color: #b42318;
    border: 1px solid #f3b5b0;
}

/* 结果表格 Tooltip：内容较长（含调剂风险提示、保专业政策备注），放宽宽度并左对齐 */
.tooltip-inner {
    max-width: 340px;
    text-align: left;
}

/* 专业组的「组号 + 组名 + ℹ️ 备注图标」作为一个整体，不允许拆到两行。
   为什么不能只靠 &nbsp;：中文可在任意字符处断行，&nbsp; 仅保证图标紧贴它前一个字符，
   整块放不下时浏览器仍会在图标前面断开，把图标挤到下一行（真机上即此现象）。 */
.group-name-nowrap {
    white-space: nowrap;
}

/* 专业组的备注图标（仅手机端渲染：电脑端已改为整行悬停显示备注）
   点它看备注，点行本身仍是展开/收起
   （组行若整行挂 Tooltip，手机端会把展开操作抢掉） */
.group-tip-icon {
    color: #495057;
    cursor: pointer;
    font-size: 15px;
    padding: 4px 7px;                   /* 放大触摸热区，手指更容易点中 */
    border-radius: 6px;
    background: rgba(13, 110, 253, 0.10);  /* 淡蓝底，提示"这里可以点" */
    vertical-align: middle;
    /* 整体不拆行：inline 元素若跨行，padding / 圆角 / 底色会被切成两段，看起来像"折行" */
    display: inline-block;
    white-space: nowrap;
    line-height: 1;
}

/* 鼠标悬停在组行上时图标高亮（提示可点） */
.group-row:hover .group-tip-icon {
    color: #0d6efd;
    background: rgba(13, 110, 253, 0.18);
}

/* 鼠标直接悬停图标：反色，明确反馈 */
.group-row .group-tip-icon:hover {
    color: #fff;
    background: #0d6efd;
}

/* 结果过少时的放宽建议 */
.fallback-tip {
    background: linear-gradient(135deg, #e7f5ff, #d0ebff);
    border: 1px solid #74c0fc;
    border-radius: 10px;
    padding: 12px 20px;
    font-size: 14px;
    color: #1864ab;
}

.fallback-tip i {
    color: #1c7ed6;
}

.fallback-tip ul {
    font-size: 14px;
}

/* ==========================================================================
   一键导入模拟填报 · 多选模态框（2026-10-26）
   ========================================================================== */
.import-sim-btn {
    border-radius: 20px;
    padding: 4px 14px;
    font-size: 13px;
}

/* 平时淡绿底色（2026-10-30）：覆盖 btn-outline-success 的白底，悬停才转深绿 */
.import-sim-btn:not(:disabled) {
    background-color: #d8f3e0;
    border-color: #198754;
    color: #0f5132;
}
.import-sim-btn:not(:disabled):hover,
.import-sim-btn:not(:disabled):focus {
    background-color: #198754;
    border-color: #198754;
    color: #fff;
}

.import-sim-btn:disabled {
    opacity: .55;
}

/* 停留超时引导：按钮闪烁 3 下（2026-10-30） */
@keyframes importGuideBlink {
    0%   { box-shadow: 0 0 0 0 rgba(25, 135, 84, .55); transform: scale(1); }
    50%  { box-shadow: 0 0 0 9px rgba(25, 135, 84, 0);  transform: scale(1.07); }
    100% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0);    transform: scale(1); }
}
.import-sim-btn.import-guide-blink {
    animation: importGuideBlink .7s ease-in-out 3;
}

/* 停留超时引导：指向导入按钮的浮窗（2026-10-30） */
.import-guide-box {
    position: fixed;
    z-index: 1080;
    max-width: 260px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #198754;
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
    color: #0f5132;
    font-size: 13px;
    line-height: 1.5;
    transform: translateX(-50%);
    cursor: pointer;
}
.import-guide-box::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 0;
    height: 0;
    border: 8px solid transparent;
    transform: translateX(-50%);
}
/* 默认箭头朝下（浮窗在按钮上方） */
.import-guide-box:not(.below)::after {
    bottom: -16px;
    border-top-color: #198754;
}
/* 若浮窗被放到按钮下方，箭头朝上 */
.import-guide-box.below::after {
    top: -16px;
    border-bottom-color: #198754;
}

.import-list {
    max-height: 52vh;
    overflow-y: auto;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.import-item {
    border-bottom: 1px solid #f1f3f5;
    padding: 6px 10px;
}

.import-item:last-child {
    border-bottom: 0;
}

.import-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    cursor: pointer;
    font-size: 13px;
}

.import-group input[type="checkbox"] {
    margin: 0 2px 0 0;
    flex: none;
}

.import-college {
    font-weight: 600;
    color: #1f2933;
}

.import-gcode {
    flex: none;
    background: #0d6efd;
    color: #fff;
    border-radius: 4px;
    padding: 0 6px;
    font-size: 12px;
    line-height: 18px;
}

.import-gname {
    color: #495057;
}

/* 跨年映射提示：组号变了 / 当年已拆分 / 当年无对应组 */
.import-hint {
    flex: none;
    font-size: 12px;
    color: #0a7ea4;
    background: #e7f5ff;
    border-radius: 4px;
    padding: 0 6px;
    line-height: 18px;
}

.import-hint-split {
    color: #a15c00;
    background: #fff4e5;
}

.import-hint-warn {
    color: #868e96;
    background: #f1f3f5;
}

/* 参考年过早（<2024）时的顶部红字提示：映射率断崖，别让用户以为"导入了就是对的" */
.import-year-warn {
    margin: 0 0 8px;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 1.5;
    color: #b02a37;
    background: #f8d7da;
    border: 1px solid #f5c2c7;
    border-radius: 4px;
}

/* 未指定意向专业时的顶部说明：本次只导入专业组，专业不带过去 */
.import-note {
    margin: 0 0 8px;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 1.5;
    color: #0a5c78;
    background: #e7f5ff;
    border: 1px solid #b8e0f5;
    border-radius: 4px;
}

.import-majors {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    padding: 4px 0 2px 22px;
}

.import-major {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    font-size: 12px;
    color: #495057;
    cursor: pointer;
}

.import-major input[type="checkbox"] {
    margin: 0;
}

.import-major-mapped .import-major-name {
    color: #0a7ea4;
}

/* 导入弹窗专业行里的命中分层 / 调剂风险标签，与前面的「序号/留空」提示留出间距 */
.import-major .match-label {
    margin-left: 6px;
}

/* 当年没有这个专业 / 整组没有所报专业：置灰不可勾（2026-11-05）
   仍然显示（不隐藏），否则用户以为系统漏了这些组，会反复找。 */
.import-major-off,
.import-group-off {
    color: #adb5bd;
    cursor: default;
}

.import-major-off input[type="checkbox"],
.import-group-off input[type="checkbox"] {
    cursor: not-allowed;
}

@media (max-width: 576px) {
    .import-group {
        font-size: 12px;
    }
    .import-majors {
        padding-left: 18px;
    }
    /* 手机屏矮：把列表压短一些，抬头描述、计数条与底部按钮都能同时看到 */
    .import-list {
        max-height: 42vh;
    }
}
