.cpm-upgrade-notice { color: #8d2525; background: #fff3ed; border: 1px solid #f1cebf; padding: 1.5rem; margin: 1.5rem 0; border-radius: 1rem; font-size: 1.6rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.cpm-upgrade-notice p { margin-top: 1rem; }
.cpm-college-picker { height: 100%; display: flex; flex-direction: column; color: #333; font-size: 1.6rem; background: white; }
.cpm-picker-heading { display: flex; justify-content: space-between; align-items: center; padding: 2rem; }
.cpm-picker-heading button { color: #666; background: transparent; border: 0; cursor: pointer; padding: .5rem 1rem; }
.cpm-college-results { overflow-y: auto; flex: 1; padding: 0 2rem 2rem; }
.cpm-college-option { display: block; width: 100%; padding: 1.8rem 1rem; border: 0; border-bottom: 1px solid #eee; text-align: left; background: white; color: #333; line-height: 1.5; cursor: pointer; }
.cpm-college-option:hover, .cpm-college-option:focus-visible { background: #eff6ff; color: #276bb0; }
.cpm-college-empty { color: #777; padding: 2rem 1rem; }
.cpm-withdraw-wrapper { position: relative; z-index: 10; display: flex; justify-content: center; margin: 0 0 3rem; }
.cpm-withdraw-button { width: 34rem; max-width: 90%; min-height: 5rem; }
.cpm-rank-card { position: relative; overflow: hidden; }
.cpm-rank-watermark { display: flex; align-items: center; justify-content: center; padding: 2rem 0 .5rem; pointer-events: none; }
.cpm-rank-watermark img { display: block; width: 11.2rem; height: auto; max-width: 30%; object-fit: contain; }
.cpm-rank-slogan { margin: 2rem 1rem 1rem; color: #215e91; font-weight: bold; font-size: 2rem; text-align: center; }
.cpm-rank-export-section { position: relative; z-index: 20; margin: 0 2.5rem 3rem; }
.cpm-rank-export-actions { display: flex; gap: 1.2rem; justify-content: center; }
.cpm-rank-export-button { flex: 1; min-width: 0; min-height: 44px; }
.cpm-rank-export-help { margin: 1rem 0 0; color: #52606d; font-size: 1.3rem; line-height: 1.5; text-align: center; }
.cpm-rank-preview { position: fixed; inset: 0; z-index: 5000; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(0, 0, 0, .72); }
.cpm-rank-preview-panel { position: relative; display: flex; flex-direction: column; width: min(92vw, 48rem); max-height: 92vh; padding: 2rem 1.5rem 1.5rem; border-radius: 1.2rem; background: #fff; box-shadow: 0 1rem 4rem rgba(0, 0, 0, .3); }
.cpm-rank-preview-close { position: absolute; top: .5rem; right: .8rem; width: 4rem; height: 4rem; border: 0; color: #555; background: transparent; font-size: 3rem; line-height: 1; cursor: pointer; }
.cpm-rank-preview-title { color: #222; font-size: 1.8rem; text-align: center; }
.cpm-rank-preview-hint { margin: .8rem 2rem 1.2rem; color: #555; font-size: 1.4rem; line-height: 1.5; text-align: center; }
.cpm-rank-preview-scroll { flex: 1; min-height: 0; overflow: auto; border: 1px solid #d9e1e8; border-radius: .8rem; background: #eef7fb; -webkit-overflow-scrolling: touch; }
.cpm-rank-preview-image { display: block; width: 100%; height: auto; -webkit-touch-callout: default; user-select: auto; }
.cpm-rank-preview-share, .cpm-rank-preview-done { width: 100%; min-height: 44px; margin-top: 1.2rem; border: 0; border-radius: 999px; color: #fff; background: #07c160; font-size: 1.6rem; cursor: pointer; }
.cpm-rank-preview-done { margin-top: .8rem; color: #34495e; background: #edf1f4; }
.cpm-home-actions { width: 100%; gap: 1.75rem; }
.cpm-home-actions > .van-button { width: min(34rem, calc(100vw - 6rem)); min-height: 44px; margin-bottom: 0; }
.cpm-rank-card .tableHeader, .cpm-rank-card .tableDataItem { min-height: 3.75rem; }
.cpm-rank-card .tableHeader { align-items: center; }
@media (max-width: 360px) {
  .cpm-home-2027 .title { font-size: 2rem; }
  .cpm-rank-slogan { font-size: 1.8rem; }
}
