/* ==========================================================================
   启航升学 · 智能推荐 + 大学库 专用样式
   与 style.css 共用同一套设计变量
   ========================================================================== */

/* ---------------- 通用面板 / 标签 / 徽章 ---------------- */
.ft-panel{
  background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);
  padding:30px;box-shadow:var(--shadow-sm);
}
.ft-panel + .ft-panel{margin-top:24px}

.ft-chip{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none;
  font-size:.88rem;font-weight:600;color:var(--c-body);background:#fff;
  border:1px solid var(--c-line);border-radius:999px;padding:7px 15px;
  transition:.18s;line-height:1.3;
}
.ft-chip:hover{border-color:var(--c-primary-400);color:var(--c-primary-600)}
.ft-chip.is-on{
  background:var(--c-primary);border-color:var(--c-primary);color:#fff;
  box-shadow:0 4px 12px rgba(18,58,143,.18);
}
.ft-chip.is-on:hover{color:#fff}
.ft-chip--gold.is-on{background:var(--c-accent);border-color:var(--c-accent);box-shadow:0 4px 12px rgba(201,154,53,.24)}
.ft-chip .n{font-size:.78rem;opacity:.72;font-weight:500}

.ft-badge{
  display:inline-block;font-size:.76rem;font-weight:700;padding:3px 9px;border-radius:6px;
  background:var(--c-primary-50);color:var(--c-primary-600);white-space:nowrap;
}
.ft-badge--gold{background:var(--c-accent-soft);color:#8a6415}
.ft-badge--green{background:#eaf7ee;color:#1c7a3e}
.ft-badge--red{background:#fdeeec;color:#c0392b}
.ft-badge--grey{background:#f0f3f8;color:#6b7686}
.ft-badge--ind{background:#eef3fd;color:#2a4f9e}

.ft-note{
  font-size:.83rem;color:var(--c-muted);background:var(--c-bg-soft);
  border-left:3px solid var(--c-accent);border-radius:0 8px 8px 0;padding:12px 16px;margin:0;
}

/* ==========================================================================
   一、智能推荐
   ========================================================================== */

.rec-form{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.rec-form .field--wide{grid-column:span 2}
.rec-form .field--full{grid-column:1/-1}
@media (max-width:900px){
  .rec-form{grid-template-columns:1fr 1fr}
  .rec-form .field--wide{grid-column:span 2}
}
@media (max-width:600px){
  .rec-form{grid-template-columns:1fr}
  .rec-form .field--wide{grid-column:span 1}
}

.rec-subjects{display:flex;flex-wrap:wrap;gap:9px}
.rec-subjects .ft-chip{padding:8px 16px}

.rec-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:24px}
.rec-actions .btn{min-width:150px}

/* 换算流程 */
.rec-eq{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;
  gap:0;background:linear-gradient(135deg,#0d2a69,#1b4bb5);
  border-radius:var(--radius-lg);padding:26px 20px;color:#fff;
}
.rec-eq-step{text-align:center;padding:4px 8px}
.rec-eq-step .k{font-size:.82rem;color:rgba(255,255,255,.72);margin-bottom:8px}
.rec-eq-step .v{font-size:2rem;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}
.rec-eq-step .v small{font-size:.95rem;font-weight:600;opacity:.8;margin-left:3px}
.rec-eq-step .s{font-size:.78rem;color:rgba(255,255,255,.6);margin-top:6px}
.rec-eq-arrow{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:1.3rem;padding:0 4px}
@media (max-width:820px){
  .rec-eq{grid-template-columns:1fr;gap:0}
  .rec-eq-arrow{padding:8px 0;transform:rotate(90deg)}
}
.rec-eq-foot{
  margin:16px 0 0;font-size:.85rem;color:var(--c-body);line-height:1.7;
}
.rec-eq-foot b{color:var(--c-ink)}

/* 冲稳保切换 */
.rec-tabs{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px}
.rec-tab{
  flex:1;min-width:180px;cursor:pointer;text-align:left;background:#fff;
  border:1px solid var(--c-line);border-radius:var(--radius);padding:16px 18px;transition:.18s;
}
.rec-tab:hover{border-color:var(--c-primary-400)}
.rec-tab .t{font-weight:800;font-size:1rem;color:var(--c-ink);display:flex;align-items:center;gap:8px}
.rec-tab .t i{width:8px;height:8px;border-radius:50%;display:inline-block}
.rec-tab .d{font-size:.82rem;color:var(--c-muted);margin-top:6px;line-height:1.55}
.rec-tab.is-on{border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(63,116,224,.12)}
.rec-tab.is-on .t{color:var(--c-primary-600)}
.rec-tab[data-cat="chong"] .t i{background:#d9534f}
.rec-tab[data-cat="wen"] .t i{background:#2e9e5b}
.rec-tab[data-cat="bao"] .t i{background:#3f74e0}
.rec-tab .cnt{font-size:.78rem;color:var(--c-muted);font-weight:600}

/* 院校卡片 */
.sch-card{
  border:1px solid var(--c-line);border-radius:var(--radius);background:#fff;
  padding:22px;margin-bottom:16px;transition:.18s;
}
.sch-card:hover{border-color:var(--c-primary-400);box-shadow:var(--shadow-sm)}
.sch-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}
.sch-name{font-size:1.16rem;font-weight:800;color:var(--c-ink);margin:0}
.sch-sub{font-size:.86rem;color:var(--c-muted)}
.sch-fit{
  margin-left:auto;display:inline-flex;align-items:center;gap:7px;
  font-size:.82rem;font-weight:700;color:var(--c-primary-600);
  background:var(--c-primary-50);border-radius:999px;padding:5px 13px;white-space:nowrap;
}
.sch-tags{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 0}
.sch-reason{
  margin:14px 0 0;font-size:.92rem;color:var(--c-body);line-height:1.75;
  background:var(--c-bg-soft);border-radius:10px;padding:13px 16px;
}
.sch-reason b{color:var(--c-ink)}
.sch-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
@media (max-width:700px){.sch-cols{grid-template-columns:1fr}}
.sch-col h5{
  font-size:.85rem;font-weight:800;margin:0 0 9px;display:flex;align-items:center;gap:6px;
}
.sch-col--pro h5{color:#1c7a3e}
.sch-col--con h5{color:#c0392b}
.sch-col ul{margin:0;padding-left:1.15em}
.sch-col li{font-size:.88rem;color:var(--c-body);margin-bottom:.4em;line-height:1.6}
.sch-similar{
  margin-top:16px;padding-top:14px;border-top:1px dashed var(--c-line);
  font-size:.86rem;color:var(--c-body);
}
.sch-similar b{color:var(--c-ink);font-size:.87rem}
.sch-similar span{display:inline-block;margin:6px 8px 0 0;background:var(--c-bg-soft);
  border:1px solid var(--c-line);border-radius:8px;padding:5px 11px;font-size:.83rem}

/* 专业卡片 */
.mj-card{
  border:1px solid var(--c-line);border-radius:var(--radius);background:#fff;overflow:hidden;
}
.mj-top{padding:20px 22px 0}
.mj-name{font-size:1.08rem;font-weight:800;color:var(--c-ink);margin:0 0 6px}
.mj-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:4px}
.mj-rows{margin-top:14px;border-top:1px solid var(--c-line)}
.mj-row{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:14px 22px;border-bottom:1px solid var(--c-line)}
.mj-row:last-child{border-bottom:0}
.mj-row .k{font-size:.84rem;font-weight:700;color:var(--c-primary-600);line-height:1.6}
.mj-row .v{font-size:.89rem;color:var(--c-body);line-height:1.7}
.mj-row .v ul{margin:0;padding-left:1.15em}
.mj-row .v li{margin-bottom:.3em}
@media (max-width:600px){
  .mj-row{grid-template-columns:1fr;gap:6px}
}

/* ==========================================================================
   二、大学库
   ========================================================================== */

.lib-bar{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  padding:18px 22px;background:#fff;border:1px solid var(--c-line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
}
.lib-search{
  flex:1;min-width:220px;display:flex;align-items:center;gap:10px;
  border:1px solid var(--c-line);border-radius:10px;padding:0 14px;background:#fff;transition:.2s;
}
.lib-search:focus-within{border-color:var(--c-primary-400);box-shadow:0 0 0 3px rgba(63,116,224,.14)}
.lib-search input{
  flex:1;border:0;outline:none;font-family:inherit;font-size:.95rem;
  color:var(--c-ink);padding:12px 0;background:transparent;
}
.lib-search svg{flex:none;color:var(--c-muted)}

.lib-filters{margin-top:22px}
.lib-frow{display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--c-line)}
.lib-frow:last-of-type{border-bottom:0}
.lib-flabel{
  flex:none;width:82px;font-size:.86rem;font-weight:700;color:var(--c-ink);
  padding-top:5px;letter-spacing:.02em;
}
.lib-fvals{flex:1;display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:600px){
  .lib-frow{flex-direction:column;gap:9px}
  .lib-flabel{width:auto;padding-top:0}
}
.lib-more{
  font-size:.84rem;color:var(--c-primary-600);cursor:pointer;font-weight:600;
  background:none;border:0;padding:7px 2px;font-family:inherit;
}
.lib-more:hover{text-decoration:underline}

.lib-result{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  margin:26px 0 18px;padding-bottom:16px;border-bottom:2px solid var(--c-line);
}
.lib-count{font-size:1rem;color:var(--c-ink);font-weight:700;margin:0}
.lib-count b{color:var(--c-primary);font-size:1.25rem;font-variant-numeric:tabular-nums}
.lib-reset{
  font-size:.85rem;color:var(--c-body);background:#fff;border:1px solid var(--c-line);
  border-radius:999px;padding:7px 16px;cursor:pointer;font-family:inherit;transition:.18s;
}
.lib-reset:hover{border-color:var(--c-primary-400);color:var(--c-primary-600)}

.lib-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:820px){.lib-list{grid-template-columns:1fr}}

.lib-item{
  border:1px solid var(--c-line);border-radius:var(--radius);background:#fff;
  padding:18px 20px;transition:.18s;
}
.lib-item:hover{border-color:var(--c-primary-400);box-shadow:var(--shadow-sm)}
.lib-item-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.lib-item-name{font-size:1.04rem;font-weight:800;color:var(--c-ink);margin:0}
.lib-item-loc{font-size:.85rem;color:var(--c-muted)}
.lib-item-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.lib-item-desc{
  margin:11px 0 0;font-size:.87rem;color:var(--c-body);line-height:1.7;
}
.lib-item-desc--auto{color:var(--c-muted);font-size:.84rem}
.lib-item-rank{
  margin-top:11px;padding-top:10px;border-top:1px dashed var(--c-line);
  font-size:.82rem;color:var(--c-muted);
}
.lib-item-rank b{color:var(--c-primary-600);font-variant-numeric:tabular-nums}

.lib-empty{
  text-align:center;padding:60px 20px;color:var(--c-muted);
  border:1px dashed var(--c-line);border-radius:var(--radius);background:var(--c-bg-soft);
}
.lib-empty h4{color:var(--c-ink);font-size:1.05rem;margin:0 0 8px}
.lib-empty p{margin:0;font-size:.9rem}

.lib-pager{display:flex;justify-content:center;gap:10px;margin-top:26px;flex-wrap:wrap}
.lib-pager button{
  font-family:inherit;font-size:.9rem;padding:9px 18px;border-radius:999px;cursor:pointer;
  border:1px solid var(--c-line);background:#fff;color:var(--c-body);transition:.18s;
}
.lib-pager button:hover:not(:disabled){border-color:var(--c-primary-400);color:var(--c-primary-600)}
.lib-pager button:disabled{opacity:.45;cursor:not-allowed}
.lib-pager .cur{background:var(--c-primary);border-color:var(--c-primary);color:#fff;font-weight:700}

/* 隐藏（筛选用） */
.is-hidden{display:none !important}

/* ---------------- 后台发布文章（报考知识页） ---------------- */
.cms-article-body{margin-top:12px}
.cms-article-body summary{
  cursor:pointer;color:var(--c-primary-600);font-weight:700;font-size:.9rem;
  list-style:none;display:inline-flex;align-items:center;gap:6px;
}
.cms-article-body summary::-webkit-details-marker{display:none}
.cms-article-body summary::after{content:"▾";font-size:.8rem;transition:.2s}
.cms-article-body[open] summary::after{transform:rotate(180deg)}
.cms-article-body > div{
  margin-top:12px;padding-top:12px;border-top:1px dashed var(--c-line);
  font-size:.93rem;color:var(--c-body);line-height:1.85;
}
.cms-article-body p{margin:0 0 .7em}
.cms-article-body p:last-child{margin-bottom:0}

/* 结果区未生成时的占位 */
.rec-placeholder,#recResult,#libList{min-height:0}
