/* School-library and school-detail styles only.
   Intentionally isolated from the global stylesheet so other pages remain unchanged. */
/* ===== School cards: logo + book-count summary ===== */
.school-card-main { min-height: 112px; padding: 14px 15px 12px; }
.school-card-top { display:flex; align-items:center; gap:12px; min-width:0; }
.school-logo-wrap {
  inline-size:48px; block-size:48px; flex:0 0 48px;
  display:grid; place-items:center; overflow:hidden;
  border:1px solid #e2e8f0; border-radius:12px; background:#fff;
}
.school-logo { inline-size:40px; block-size:40px; object-fit:contain; display:block; }
.school-card-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:5px; }
.school-name-row { align-items:center; }
.school-book-count { color:#8793a6; font-size:11px; line-height:1.35; }
.school-book-count.has-data { color:var(--blue-strong); font-weight:800; }
.school-card .school-meta { margin-top:11px; padding-top:10px; border-top:1px solid #f0f3f7; }
.school-card:hover .school-logo-wrap { border-color:#c8d8ef; box-shadow:0 5px 13px rgba(25,64,115,.08); }


/* Cross-major restriction badge: school pages only. */
.tag-cross-major {
  color:#b42318;
  background:#fff0ed;
  border:1px solid #ffd1c7;
  white-space:nowrap;
}

/* ===== School detail page ===== */
.school-detail-page { background:#f4f7fb; }
.school-detail-hero { padding:38px 0 34px; background:linear-gradient(135deg,#f7fbff 0%,#edf4ff 100%); border-bottom:1px solid #dfe8f5; }
.school-detail-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:center; }
.school-detail-identity { display:flex; align-items:center; gap:20px; min-width:0; }
.school-detail-logo { inline-size:96px; block-size:96px; flex:0 0 96px; display:grid; place-items:center; border:1px solid #dbe4ef; border-radius:22px; background:#fff; box-shadow:0 12px 28px rgba(24,53,95,.08); }
.school-detail-logo img { inline-size:78px; block-size:78px; object-fit:contain; }
.school-detail-kicker { display:flex; align-items:center; gap:8px; margin-bottom:8px; color:var(--blue-strong); font-size:12px; font-weight:850; }
.school-detail-title { margin:0 0 10px; font:850 clamp(30px,4vw,46px)/1.16 var(--font-display); letter-spacing:-.025em; }
.school-detail-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.school-detail-stats { display:grid; grid-template-columns:repeat(3,minmax(112px,1fr)); overflow:hidden; border:1px solid #cbdaf0; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(26,61,111,.06); }
.school-detail-stat { min-width:112px; padding:17px 18px; text-align:center; border-left:1px solid #e4ebf5; }
.school-detail-stat:first-child { border-left:0; }
.school-detail-stat strong { display:block; color:#0d356f; font:850 22px/1.15 var(--font-display); }
.school-detail-stat span { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.school-detail-body { padding:28px 0 48px; }
.school-detail-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:20px; align-items:start; }
.school-detail-section { margin-bottom:20px; border:1px solid var(--line); border-radius:18px; background:#fff; padding:22px; box-shadow:0 5px 18px rgba(18,35,61,.04); }
.school-detail-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding-bottom:14px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.school-detail-section-head h2 { margin:0; font:800 20px/1.3 var(--font-display); }
.school-detail-section-head p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.school-detail-count { color:var(--blue-strong); font-size:12px; font-weight:800; }
.school-book-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.school-book-card { display:grid; grid-template-columns:68px minmax(0,1fr); gap:13px; align-items:center; padding:13px; border:1px solid #e1e7f0; border-radius:13px; background:#fbfdff; }
.school-book-card figure { width:68px; height:94px; margin:0; display:grid; place-items:center; }
.school-book-card img { max-width:68px; max-height:94px; width:auto; height:auto; object-fit:contain; border:0; border-radius:2px; box-shadow:0 7px 14px rgba(25,48,82,.12); }
.school-book-card h3 { margin:0 0 5px; font-size:15px; line-height:1.4; }
.school-book-card p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.school-book-card .book-edition { margin-top:6px; display:inline-flex; padding:3px 7px; border-radius:6px; color:#fff; background:#0b63d8; font-size:10px; font-weight:800; }
.school-detail-empty { min-height:130px; display:grid; place-items:center; text-align:center; border:1px dashed #cbd6e5; border-radius:13px; background:#fafcff; color:var(--muted); padding:18px; }
.school-score-table { width:100%; border-collapse:collapse; font-size:12px; }
.school-score-table th,.school-score-table td { padding:11px 12px; border-bottom:1px solid #e8edf4; text-align:left; vertical-align:top; }
.school-score-table th { color:#59677d; background:#f7f9fc; font-weight:800; }
.school-score-table tr:last-child td { border-bottom:0; }
.school-detail-side { position:sticky; top:150px; }
.school-quick-list { display:grid; gap:10px; }
.school-quick-item { padding:13px 14px; border:1px solid #e2e8f0; border-radius:12px; background:#fafcff; }
.school-quick-item span { display:block; color:var(--muted); font-size:10px; margin-bottom:4px; }
.school-quick-item strong { display:block; font-size:13px; line-height:1.55; }
.school-detail-actions { display:grid; gap:9px; margin-top:14px; }
.school-detail-actions a { min-height:42px; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:12px; font-weight:800; }
.school-detail-actions .primary { background:var(--blue); color:#fff; }
.school-detail-actions .secondary { border:1px solid #cbd7e7; color:var(--blue-strong); background:#fff; }
.school-detail-note { margin:0; color:var(--muted); font-size:12px; line-height:1.8; }

@media (max-width:900px) {
  .school-detail-hero-grid,.school-detail-grid { grid-template-columns:1fr; }
  .school-detail-stats { max-width:520px; }
  .school-detail-side { position:static; }
}
@media (max-width:700px) {
  .school-card-main { min-height:104px; }
  .school-logo-wrap { inline-size:44px; block-size:44px; flex-basis:44px; border-radius:10px; }
  .school-logo { inline-size:36px; block-size:36px; }
  .school-detail-hero { padding:26px 0; }
  .school-detail-identity { align-items:flex-start; gap:14px; }
  .school-detail-logo { inline-size:72px; block-size:72px; flex-basis:72px; border-radius:16px; }
  .school-detail-logo img { inline-size:58px; block-size:58px; }
  .school-detail-stats { grid-template-columns:repeat(3,1fr); width:100%; }
  .school-detail-stat { min-width:0; padding:13px 7px; }
  .school-detail-stat strong { font-size:18px; }
  .school-detail-section { padding:16px; border-radius:15px; }
  .school-book-list { grid-template-columns:1fr; }
  .school-score-table { display:block; overflow-x:auto; white-space:nowrap; }
}


/* ===== School detail v2: user-facing information page ===== */
.school-year-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 16px}.school-year-tabs[hidden]{display:none}.school-year-tabs button{min-height:34px;padding:0 13px;border:1px solid #d7e1ef;border-radius:9px;background:#f7f9fc;color:#536178;font:750 12px/1 var(--font-body);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.school-year-tabs button:hover{border-color:#9eb9df;color:var(--blue-strong)}.school-year-tabs button.active{border-color:#1d5fd1;background:#1d5fd1;color:#fff;box-shadow:0 5px 14px rgba(29,95,209,.16)}
.school-book-card{position:relative;grid-template-columns:22px 68px minmax(0,1fr);gap:12px;background:#fff}.school-book-index{align-self:start;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#edf4ff;color:#145bc4;font-size:10px;font-weight:850}.school-book-card p{font-size:12px}.school-detail-empty{grid-auto-flow:row;align-content:center;gap:6px}.school-detail-empty strong{color:#304056;font-size:14px}.school-detail-empty span{max-width:520px;line-height:1.75}.school-score-wrap{overflow:auto;border:1px solid #e5ebf3;border-radius:12px}.school-score-table{min-width:620px}.school-score-table th{background:#f7f9fc}.school-score-table td strong{color:#0d356f;font-size:13px}.school-quick-item{background:#fff}.school-detail-section-head.school-book-section-head{align-items:flex-end}
@media(max-width:700px){.school-year-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;scrollbar-width:none}.school-year-tabs::-webkit-scrollbar{display:none}.school-year-tabs button{flex:0 0 auto}.school-book-card{grid-template-columns:20px 56px minmax(0,1fr);gap:10px}.school-book-card figure{width:56px;height:78px}.school-book-card img{max-width:56px;max-height:78px}}
@media(prefers-reduced-motion:reduce){.school-year-tabs button{transition:none}.school-year-tabs button:hover{transform:none}}

/* Softer user-facing unavailable states */
.school-detail-stats[hidden]{display:none!important}.school-detail-empty{min-height:108px;border:1px solid #e1eaf6!important;border-radius:14px!important;background:linear-gradient(135deg,#f8fbff,#f3f7fc)!important;color:#67758a!important}.school-detail-empty strong{color:#314158!important}.school-detail-empty span{color:#76849a}.school-detail-section:has(.school-detail-empty) .school-detail-section-head{margin-bottom:14px}


/* ===== 专业 / 初试科目层级：院校详情页 ===== */
.school-program-groups,.school-degree-group,.school-program-list{display:grid;gap:14px}.school-degree-group{padding:0}.school-degree-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}.school-degree-head span{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:9px;background:#eaf2ff;color:#155abc;font-size:12px;font-weight:850}.school-degree-head strong{color:#6d7b90;font-size:11px;font-weight:750}.school-program-card{border:1px solid #dfe7f2;border-radius:15px;background:#fbfdff;padding:16px}.school-program-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:14px;align-items:start;margin-bottom:14px}.school-program-title>span{display:inline-flex;margin-bottom:5px;color:#1e61bd;font-size:10px;font-weight:850;letter-spacing:.04em}.school-program-title h3{margin:0;color:#122b4d;font:820 17px/1.45 var(--font-display)}.school-program-title p{margin:5px 0 0;color:#728096;font-size:11px;line-height:1.6}.school-exam-box{padding:11px 13px;border:1px solid #d8e5f5;border-radius:11px;background:#fff}.school-exam-box span{display:block;margin-bottom:4px;color:#7b8799;font-size:10px}.school-exam-box strong{display:block;color:#0e3f81;font-size:13px;line-height:1.5}.school-exam-box small{display:block;margin-top:5px;color:#66758a;font-size:10px}.school-program-books{grid-template-columns:repeat(2,minmax(0,1fr))}.school-program-note{margin:12px 0 0;padding-top:10px;border-top:1px dashed #dbe5f1;color:#6d7b90;font-size:11px;line-height:1.75}.school-legacy-books{display:grid;gap:12px}.school-program-simple-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 2px}.school-program-simple-head>div{display:flex;align-items:center;gap:10px}.school-program-simple-head span{color:#52627a;font-size:12px;font-weight:800}.school-program-simple-head strong{color:#155abc;font-size:12px}.school-program-simple-head p{margin:0;color:#7b8798;font-size:11px}.school-book-card h4{margin:0 0 5px;font-size:15px;line-height:1.4}.school-detail-empty.compact{min-height:80px}.school-detail-count{white-space:nowrap}
@media(max-width:700px){.school-program-head{grid-template-columns:1fr}.school-program-card{padding:13px}.school-program-books{grid-template-columns:1fr}.school-degree-head{align-items:flex-start}.school-program-simple-head{align-items:flex-start;flex-direction:column;gap:5px}}

/* Prevent long merged professional names / book metadata from forcing the detail grid wider than small screens. */
.school-detail-grid>*{min-width:0}
@media(max-width:360px){.school-program-title h3,.school-detail-section-head,.school-degree-head{overflow-wrap:anywhere}}
