.cm-heart-btn{position:absolute;top:8px;right:8px;z-index:5;background:rgba(255,255,255,.85);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#7a8594;transition:color .2s,background .2s,transform .15s;padding:0;line-height:1;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cm-heart-btn:hover{background:rgba(255,255,255,.95);color:var(--cmx-red,#D8404B);transform:scale(1.1)}.cm-heart-btn .cm-heart-filled{display:none;color:var(--cmx-red,#D8404B)}.cm-heart-btn .cm-heart-outline{display:block}.cm-heart-btn.active .cm-heart-filled{display:block}.cm-heart-btn.active .cm-heart-outline{display:none}.cm-heart-btn.active{color:var(--cmx-red,#D8404B)}@keyframes cm-heart-pop{0%{transform:scale(1)}30%{transform:scale(1.3)}100%{transform:scale(1)}}.cm-heart-btn.cm-pop{animation:cm-heart-pop .35s ease}.college-card,.cdp-related-card,.sp-card{position:relative}.cm-login-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--cmx-navy,#16243A);color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-family:Inter,sans-serif;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.2);opacity:0;transition:opacity .3s;pointer-events:none}.cm-login-toast.show{opacity:1;pointer-events:auto}.cm-login-toast a{color:#fff;text-decoration:underline;font-weight:600}.sp{max-width:1120px;margin:0 auto;padding:32px 20px 64px;font-family:Inter,sans-serif;color:#1e293b}.sp h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:28px;color:var(--cmx-navy,#16243A);margin:0 0 8px}.sp .sp-subtitle{color:#64748b;font-size:15px;margin:0 0 32px}.sp-stats{display:flex;gap:16px;margin-bottom:36px;flex-wrap:wrap}.sp-stat{flex:1;min-width:140px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center}.sp-stat-num{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:32px;color:var(--cmx-navy,#16243A);line-height:1.1}.sp-stat-label{font-size:13px;color:#64748b;margin-top:4px}.sp-section-title{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:20px;color:var(--cmx-navy,#16243A);margin:0 0 16px;display:flex;align-items:center;justify-content:space-between}.sp-section-title a{font-size:14px;font-weight:500;color:var(--cmx-red,#D8404B);text-decoration:none}.sp-section-title a:hover{text-decoration:underline}.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:48px}.sp-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:box-shadow .2s,transform .15s}.sp-card:hover{box-shadow:0 4px 16px rgba(22,36,58,.08);transform:translateY(-2px)}.sp-card-img{width:100%;height:160px;object-fit:cover;display:block;background:#e2e8f0}.sp-card-initials{width:100%;height:160px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8ecf1,#d1d9e4);font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:48px;color:#94a3b8}.sp-card-body{padding:16px}.sp-card-name{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:16px;color:var(--cmx-navy,#16243A);margin:0 0 4px;line-height:1.3}.sp-card-name a{color:inherit;text-decoration:none}.sp-card-name a:hover{color:var(--cmx-red,#D8404B)}.sp-card-meta{font-size:13px;color:#64748b}.sp-card-meta span+span::before{content:'·';margin:0 6px}.sp-card-viewed{font-size:12px;color:#94a3b8;margin-top:8px}.sp-empty{text-align:center;padding:48px 20px;color:#94a3b8}.sp-empty svg{width:64px;height:64px;margin-bottom:16px;opacity:.4}.sp-empty p{font-size:15px;margin:0 0 16px}.sp-empty a{display:inline-block;background:var(--cmx-red,#D8404B);color:#fff;padding:10px 24px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px}.sp-empty a:hover{background:var(--cmx-red-dk,#B93641)}.sp-pagination{display:flex;justify-content:center;gap:8px;margin-top:32px}.sp-pagination a,.sp-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:8px;font-size:14px;text-decoration:none;border:1px solid #e2e8f0;color:#475569}.sp-pagination span[aria-current]{background:var(--cmx-red,#D8404B);color:#fff;border-color:var(--cmx-red,#D8404B)}.sp-pagination a:hover{background:#f1f5f9}.an{max-width:1120px;margin:0 auto;padding:32px 20px 64px;font-family:Inter,sans-serif;color:#1e293b}.an h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:26px;color:var(--cmx-navy,#16243A);margin:0 0 4px}.an .an-breadcrumb{font-size:13px;color:#94a3b8;margin-bottom:28px}.an .an-breadcrumb a{color:var(--cmx-red,#D8404B);text-decoration:none}.an-stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:32px}.an-stat{flex:1;min-width:130px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px;text-align:center}.an-stat-num{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:28px;color:var(--cmx-navy,#16243A)}.an-stat-label{font-size:12px;color:#64748b;margin-top:4px}.an-chart-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;margin-bottom:32px}.an-chart-title{font-weight:700;font-size:16px;margin:0 0 16px;color:var(--cmx-navy,#16243A)}.an-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:32px;overflow-x:auto}.an-table-wrap h3{font-weight:700;font-size:16px;margin:0 0 12px;color:var(--cmx-navy,#16243A)}.an-table{width:100%;border-collapse:collapse;font-size:14px}.an-table th{text-align:left;font-weight:600;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:2px solid #e2e8f0}.an-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#334155}.an-table tr:last-child td{border-bottom:none}.an-table a{color:var(--cmx-red,#D8404B);text-decoration:none}@media(max-width:768px){.sp{padding:20px 16px 48px}.sp h1{font-size:22px}.sp-stats{gap:10px}.sp-stat{min-width:100px;padding:14px 10px}.sp-stat-num{font-size:24px}.sp-grid{grid-template-columns:1fr;gap:14px}.sp-card-img,.sp-card-initials{height:140px}.an{padding:20px 16px 48px}.an h1{font-size:20px}.an-stats{gap:10px}.an-stat{min-width:45%;padding:14px 10px}.an-stat-num{font-size:22px}}@media(max-width:380px){.sp-stats{flex-direction:column}.sp-stat{min-width:100%}.cm-heart-btn{width:32px;height:32px}.cm-heart-btn svg{width:18px;height:18px}}