/* 专业百科样式 */
#major-app { display:none; max-width:1180px; margin:0 auto; padding:20px 16px 60px; min-height:100vh; background:#fffaf3; }
#major-app a { color:#ff7a1a; text-decoration:none; }
.mj-back { display:inline-block; color:#ff7a1a; font-size:14px; margin-bottom:8px; cursor:pointer; }
.mj-header h2 { font-size:26px; font-weight:700; margin:8px 0 16px; color:#1a1a2e; }
.mj-search { display:flex; gap:8px; margin-bottom:12px; }
.mj-search input { flex:1; padding:10px 14px; border:1px solid #ddd; border-radius:8px; font-size:15px; outline:none; }
.mj-search input:focus { border-color:#ff7a1a; }
.mj-search button { padding:10px 20px; background:#ff7a1a; color:#fff; border:none; border-radius:8px; font-size:15px; cursor:pointer; }
.mj-filters { display:flex; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.mj-filters select { padding:8px 12px; border:1px solid #ddd; border-radius:6px; font-size:14px; background:#fff; }
.mj-toast { position:fixed; bottom:30px; left:50%; transform:translateX(-50%); background:#333; color:#fff; padding:10px 24px; border-radius:8px; font-size:14px; z-index:9999; opacity:0; transition:opacity .3s; }
.mj-toast.on { opacity:1; }

/* Cards */
.mj-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.mj-card { background:#fff; border:1px solid #eee; border-radius:12px; padding:18px; cursor:pointer; transition:box-shadow .2s; }
.mj-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.06); }
.mj-card-top { display:flex; justify-content:space-between; margin-bottom:6px; }
.mj-card-code { font-size:12px; color:#999; }
.mj-card-edu { font-size:12px; color:#ff7a1a; }
.mj-card h3 { font-size:17px; font-weight:600; margin:0 0 8px; color:#1a1a2e; }
.mj-card-meta { display:flex; justify-content:space-between; font-size:13px; color:#777; }
.mj-card-sat { color:#ff8f00; }
.mj-card-nosat { color:#bbb; font-style:italic; }
.mj-card-desc { font-size:13px; color:#aaa; margin:8px 0 0; line-height:1.4; }

/* Pagination */
.mj-pages { display:flex; gap:6px; justify-content:center; margin-top:24px; align-items:center; }
.mj-pg { padding:6px 12px; border:1px solid #ddd; border-radius:6px; background:#fff; cursor:pointer; font-size:14px; }
.mj-pg.on { background:#ff7a1a; color:#fff; border-color:#ff7a1a; }
.mj-pg-info { margin-left:10px; font-size:13px; color:#999; }

/* Detail */
.mj-detail h1 { font-size:26px; font-weight:700; margin:8px 0; }
.mj-dtags { display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.mj-tag { padding:2px 10px; border-radius:4px; font-size:12px; }
.mj-tag.c { background:#e8f5e9; color:#2e7d32; }
.mj-tag.e { background:#e3f2fd; color:#1565c0; }
.mj-tag.g { background:#fff3e0; color:#e65100; }
.mj-dacts { margin-bottom:16px; }
.mj-btn { padding:8px 18px; border-radius:20px; border:2px solid #ff7a1a; color:#ff7a1a; background:#fff; font-size:14px; cursor:pointer; font-weight:600; }
.mj-btn:hover { background:#fff7ed; }

/* Satisfaction */
.mj-sat { display:flex; align-items:center; gap:10px; padding:14px 18px; background:#f9fafb; border-radius:12px; margin-bottom:18px; flex-wrap:wrap; }
.mj-sat-num { font-size:28px; font-weight:700; color:#ff7a1a; }
.mj-sat-stars { color:#ff8f00; font-size:18px; }
.mj-sat-cnt { font-size:13px; color:#999; }
.mj-src { margin-left:auto; font-size:11px; color:#bbb; }

/* Tabs */
.mj-tabs { display:flex; gap:0; border-bottom:2px solid #eee; margin-bottom:18px; overflow-x:auto; }
.mj-tb { padding:10px 18px; border:none; background:none; font-size:14px; color:#777; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; white-space:nowrap; }
.mj-tb.on { color:#ff7a1a; border-bottom-color:#ff7a1a; font-weight:600; }

/* Panels */
.mj-panel { animation:fadeIn .3s; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.mj-igrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin-bottom:18px; }
.mj-ig { padding:12px 14px; background:#f9fafb; border-radius:8px; }
.mj-ig span { display:block; font-size:12px; color:#999; }
.mj-ig b { display:block; font-size:15px; color:#333; margin-top:4px; }
.mj-intro { margin-bottom:18px; line-height:1.8; color:#444; }
.mj-intro h3 { font-size:15px; margin-bottom:8px; color:#1a1a2e; }
.mj-sec { margin-bottom:20px; }
.mj-sec h3 { font-size:15px; margin-bottom:10px; }
.mj-cloud { display:flex; flex-wrap:wrap; gap:6px; }
.mj-cloud span { padding:5px 12px; background:#f5f5f5; border-radius:16px; font-size:13px; color:#555; }
.mj-occlist { max-width:500px; }
.mj-occ { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid #f5f5f5; font-size:14px; }
.mj-occ span:last-child { color:#ff7a1a; }
.mj-pglist { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px; }
.mj-pg { padding:8px 12px; background:#f9fafb; border-radius:6px; font-size:14px; }
.mj-pgc { color:#999; margin-right:6px; }
.mj-simlist { display:flex; flex-wrap:wrap; gap:6px; }
.mj-sim { padding:6px 14px; background:#fff7ed; border-radius:16px; font-size:13px; color:#ff7a1a; border:1px solid #ffedd5; }
.mj-sim:hover { background:#ffedd5; }

/* Universities */
.mj-uni { padding:14px; border:1px solid #eee; border-radius:10px; margin-bottom:10px; }
.mj-uni-h { display:flex; justify-content:space-between; }
.mj-uni-n { font-size:15px; font-weight:600; }
a.mj-uni-n { color:#ff7a1a; cursor:pointer; }
a.mj-uni-n:hover { text-decoration:underline; }
.mj-uni-p { font-size:12px; color:#999; }
.mj-uni-b { display:flex; gap:4px; margin:6px 0; }
.mj-badge { padding:1px 8px; border-radius:10px; font-size:11px; background:#fef3c7; color:#92400e; }
.mj-ug { display:flex; gap:10px; padding:5px 0; border-top:1px solid #f5f5f5; font-size:12px; color:#666; flex-wrap:wrap; }
.mj-ugr { color:#ff7a1a; font-weight:600; }
.mj-courses { display:flex; flex-wrap:wrap; gap:8px; }
.mj-courses span { padding:6px 14px; background:#f5f5f5; border-radius:18px; font-size:13px; color:#555; }

/* Abilities */
.mj-abilities { display:flex; flex-wrap:wrap; gap:6px; }
.mj-ab { padding:4px 12px; background:#e8f5e9; border-radius:16px; font-size:13px; color:#2e7d32; }

/* Recommendations */
.mj-recs { margin-top:28px; padding-top:20px; border-top:1px solid #eee; }
.mj-recs h3 { font-size:15px; margin-bottom:10px; }
.mj-reclist { display:flex; flex-wrap:wrap; gap:6px; }
.mj-rec { padding:6px 14px; background:#fff; border:1px solid #eee; border-radius:8px; font-size:13px; color:#333; }
.mj-rec:hover { border-color:#ff7a1a; }

/* Compare */
.mj-compare { overflow-x:auto; }
.mj-ct { width:100%; border-collapse:collapse; font-size:14px; }
.mj-ct td,.mj-ct th { padding:10px 12px; border:1px solid #eee; }
.mj-ct th { background:#f9fafb; font-weight:600; text-align:left; }

/* Misc */
.mj-nodata { text-align:center; padding:30px; color:#bbb; }
.mj-empty { text-align:center; padding:50px; color:#bbb; }
.mj-loading { text-align:center; padding:60px; color:#bbb; }
.mj-error { text-align:center; padding:60px; }
.mj-error a { display:inline-block; margin-top:16px; }

@media (max-width:768px) {
  .mj-grid { grid-template-columns:1fr; }
  .mj-igrid { grid-template-columns:1fr 1fr; }
  .mj-detail h1 { font-size:22px; }
}
