:root{--bg:#f3f6fb;--card:#ffffff;--card2:#f8fafc;--text:#172033;--muted:#66758a;--line:#dbe3ee;--blue:#1d4ed8;--blue2:#2563eb;--green:#168957;--orange:#b7791f;--red:#c2414b;--shadow:0 14px 36px rgba(18,38,63,.08)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}.bg{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#eef4fb 0%,#f7f9fc 45%,#ffffff 100%)}a{color:var(--blue);text-decoration:none}.hero{padding:22px clamp(16px,4vw,60px) 28px;background:linear-gradient(135deg,#0f2f63 0%,#174178 55%,#1e5aa0 100%);color:#fff}.hero::after{content:"";display:block;position:absolute}.hero nav{max-width:1240px;margin:0 auto 34px}.brand{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:10px;background:#fff;color:#174178;display:grid;place-items:center;font-weight:900;font-size:23px}.school-logo{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:50%;padding:4px;box-shadow:0 8px 20px rgba(0,0,0,.12)}.brand b{display:block;font-size:18px}.brand small{display:block;color:#c8d7ed;font-size:12px;margin-top:2px}nav{display:flex;align-items:center;justify-content:space-between}.nav-actions{display:flex;gap:8px}.nav-actions a{padding:9px 13px;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#eaf2ff;background:rgba(255,255,255,.08)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:32px;align-items:center;max-width:1240px;margin:0 auto}.eyebrow{margin:0 0 10px;color:#2f6fd6;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.hero .eyebrow{color:#bed6ff}.hero h1{font-size:clamp(30px,4.2vw,54px);line-height:1.12;margin:0 0 16px;letter-spacing:-.04em}.hero h1 span{color:#dbeafe}.lead{color:#dce9fa;font-size:17px;line-height:1.8;max-width:760px}.hero-stats{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.hero-stats div{min-width:128px;padding:14px 16px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.1)}.hero-stats b{display:block;font-size:24px}.hero-stats span{color:#d1dff1;font-size:13px}.panel{border:1px solid var(--line);background:var(--card);border-radius:16px;box-shadow:var(--shadow)}.search-card{padding:22px;color:var(--text)}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.panel-title span{width:30px;height:30px;border-radius:8px;background:#eaf2ff;display:grid;place-items:center;color:var(--blue);font-weight:900}label{display:block;color:#334155;font-size:13px;margin:12px 0 0;font-weight:700}input,select{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #cfd9e6;border-radius:10px;background:#fff;color:var(--text);outline:none;font-size:15px}input:focus,select:focus{border-color:var(--blue2);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}button{border:0;cursor:pointer;font-family:inherit}form button{width:100%;margin-top:18px;padding:14px;border-radius:10px;background:var(--blue);color:#fff;font-weight:900;font-size:16px}.hint{color:var(--muted);font-size:12px;line-height:1.6}main{max-width:1240px;margin:0 auto;padding:24px clamp(16px,4vw,60px) 54px}.notice{padding:13px 16px;border:1px solid #f1d49c;border-radius:12px;background:#fff8eb;color:#7c4a03;line-height:1.7;margin:0 0 18px}.rank-card{padding:22px;display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:center}.rank-card h2,.section-title h2{margin:0 0 8px;font-size:26px}.rank-card p{color:var(--muted);line-height:1.7}.meter{height:24px;border-radius:999px;background:#e6edf5;overflow:hidden;position:relative}.meter div{height:100%;width:10%;background:linear-gradient(90deg,#6aa6ff,#1d4ed8);transition:.35s}.meter span{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;color:#fff;font-size:12px}.tabs{display:flex;gap:10px;margin:18px 0;position:sticky;top:0;z-index:2;padding:10px 0;background:rgba(243,246,251,.94);backdrop-filter:blur(10px)}.tab{padding:10px 17px;border-radius:10px;background:#fff;border:1px solid var(--line);color:#334155}.tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.bucket{display:flex;flex-direction:column;gap:12px}.bucket-title{padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:#fff;display:flex;justify-content:space-between}.bucket-title span{color:var(--muted)}.card{padding:16px;border-radius:14px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 22px rgba(18,38,63,.06)}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.card h3{margin:0 0 5px;font-size:19px;color:#0f172a}.dept{color:var(--muted);font-size:13px}.badge{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.badge.冲刺{background:#fff3df;color:var(--orange)}.badge.稳妥{background:#eaf3ff;color:var(--blue)}.badge.保底{background:#e9f8f1;color:var(--green)}.badge.较难{background:#fff0f1;color:var(--red)}.prob{display:flex;align-items:end;gap:6px;margin:13px 0}.prob b{font-size:32px;color:#0f2f63}.prob span{color:var(--muted);margin-bottom:7px}.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.kv div{padding:10px;border-radius:10px;background:#f7f9fc;border:1px solid #edf1f6}.kv small{display:block;color:var(--muted);font-size:11px}.kv b{font-size:14px}.tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.tag{font-size:12px;color:#46566b;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#fff}.contact{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.phone-btn{padding:5px 9px;border-radius:999px;border:1px solid #bfd0e8;background:#f1f6ff;color:var(--blue);font-size:12px;font-weight:800}.phone{display:none;color:#0f2f63;font-weight:800}.phone-mask{color:#94a3b8}.contact.revealed .phone{display:inline}.contact.revealed .phone-btn,.contact.revealed .phone-mask{display:none}.explain{color:#66758a;font-size:12px;line-height:1.6;margin:10px 0 0}.table-panel,.sources{padding:22px;margin-top:24px}.major-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-height:420px;overflow:auto;padding-right:5px}.major-item{padding:12px;border-radius:12px;background:#f8fafc;border:1px solid var(--line)}.major-item b{display:block}.major-item span{font-size:12px;color:var(--muted)}#sourceList{display:grid;gap:10px;padding-left:0;list-style:none}#sourceList li{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;word-break:break-all}.source-note{color:var(--muted);line-height:1.7}footer{text-align:center;color:var(--muted);padding:26px}
@media(max-width:980px){.hero-grid,.rank-card{grid-template-columns:1fr}.results{grid-template-columns:1fr}.major-list{grid-template-columns:1fr 1fr}.nav-actions{display:none}.hero{padding-bottom:22px}}
@media(max-width:560px){.school-logo{width:46px;height:46px;padding:3px}.two{grid-template-columns:1fr}.major-list{grid-template-columns:1fr}.hero{padding:16px 14px 20px}.hero h1{font-size:30px}.lead{font-size:15px}.tabs{overflow:auto}.hero-stats div{flex:1}.search-card{padding:16px}.rank-card h2,.section-title h2{font-size:22px}main{padding-left:14px;padding-right:14px}.card{padding:14px}.kv{grid-template-columns:1fr}.brand b{font-size:16px}.brand small{font-size:11px}}
.nav-btn{padding:9px 13px;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#eaf2ff;background:rgba(255,255,255,.08);font-weight:700}.nav-btn[hidden]{display:none!important}.hidden{display:none!important}.login-mask{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:linear-gradient(135deg,#0f2f63,#174178 58%,#1e5aa0);padding:18px}.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 26px 80px rgba(0,0,0,.25);text-align:center}.login-logo{width:74px;height:74px;object-fit:contain;margin:0 auto 12px}.login-card h2{margin:0 0 8px;font-size:28px;color:#0f2f63}.login-card p{margin:0 0 18px;color:var(--muted);line-height:1.7}.login-card input{margin-top:0}.login-card button,.access-form button{width:100%;margin-top:14px;padding:13px;border-radius:10px;background:var(--blue);color:white;font-weight:900;font-size:16px}.login-msg,.save-msg{min-height:22px;margin-top:10px;color:#c2414b;font-size:13px}.modal{position:fixed;inset:0;z-index:40;background:rgba(15,23,42,.54);display:grid;place-items:center;padding:18px}.modal.hidden{display:none!important}.modal-card{position:relative;width:min(920px,100%);max-height:88vh;overflow:auto;background:white;border-radius:20px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.22)}.modal-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:24px;line-height:1}.access-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.access-form .wide{grid-column:1/-1}.access-form button{grid-column:1/-1;margin-top:0}.access-list{display:grid;gap:10px;margin-top:14px}.access-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:12px}.access-item b{font-size:17px;color:#0f2f63}.access-item span{font-size:13px;color:var(--muted);line-height:1.7}.access-item p{margin:6px 0 0;color:var(--muted);font-size:13px}.access-item button{border:1px solid #fecdd3;background:#fff1f2;color:#be123c;border-radius:9px;padding:8px 12px;font-weight:800}.access-empty{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#f8fafc}@media(max-width:560px){.access-form{grid-template-columns:1fr}.access-item{display:block}.access-item button{margin-top:10px;width:100%}}
/* access manager mobile visibility fix */
@media(max-width:980px){.nav-actions{display:flex!important;flex-wrap:wrap;justify-content:flex-end}.nav-actions a{display:none}.nav-btn{font-size:12px;padding:8px 10px}}
.disclaimer-mask{position:fixed;inset:0;z-index:60;background:rgba(15,23,42,.58);display:grid;place-items:center;padding:18px}.disclaimer-card{width:min(560px,100%);background:white;border-radius:20px;padding:24px;box-shadow:0 28px 90px rgba(0,0,0,.24);color:var(--text)}.disclaimer-card h2{margin:0 0 12px;color:#0f2f63;font-size:26px}.disclaimer-card p{margin:10px 0;color:#475569;line-height:1.8}.disclaimer-card button{width:100%;margin-top:16px;padding:13px;border-radius:10px;background:var(--blue);color:white;font-weight:900;font-size:16px}
.export-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.export-actions button{margin-top:0;padding:10px;border-radius:9px;background:#eef4fb;color:#174178;border:1px solid #bfd0e8;font-weight:900;font-size:13px}@media(max-width:560px){.export-actions{grid-template-columns:1fr 1fr}.export-actions button{font-size:12px;padding:9px}}
/* JZU official horizontal logo fix */
.school-logo.jzu-wordmark{width:150px;height:auto;max-height:58px;object-fit:contain;border-radius:0;background:transparent;padding:0;box-shadow:none}.login-logo.jzu-login-logo{width:180px;height:auto;object-fit:contain;border-radius:0;background:transparent;padding:0}@media(max-width:560px){.school-logo.jzu-wordmark{width:120px;max-height:48px}.brand{gap:8px}.login-logo.jzu-login-logo{width:160px}}
/* JZU wordmark already contains school name; avoid duplicate text */
.brand .jzu-wordmark + div b{display:none}.brand .jzu-wordmark + div small{font-size:13px;color:#d8e6fb}.login-logo.jzu-login-logo + h2{margin-top:10px}
/* Login page uses the exact same horizontal JZU wordmark style as header */
.login-card .school-logo.jzu-wordmark.login-wordmark{display:block;width:150px;height:auto;max-height:58px;object-fit:contain;border-radius:0;background:transparent;padding:0;box-shadow:none;margin:0 auto 12px}.login-card .school-logo.jzu-wordmark.login-wordmark + h2{margin-top:10px}@media(max-width:560px){.login-card .school-logo.jzu-wordmark.login-wordmark{width:150px;max-height:58px}}
/* JZU v5: force horizontal logo + contact QR */
.school-logo.jzu-wordmark,.login-card .school-logo.jzu-wordmark.login-wordmark{width:210px!important;height:auto!important;max-height:none!important;object-fit:contain!important;border-radius:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}.login-card .school-logo.jzu-wordmark.login-wordmark{display:block;margin:0 auto 12px}.wechat-contact{display:inline-flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.12);color:#fff}.wechat-contact[hidden]{display:none!important}.wechat-contact img{width:86px;height:86px;object-fit:cover;border-radius:10px;background:#fff;padding:4px}.wechat-contact-title{font-weight:900;font-size:16px}.wechat-contact-text{font-size:13px;color:#dbeafe}.login-wechat{display:flex;margin:12px auto 14px;background:#f8fafc;color:#172033;border-color:#dbe3ee;justify-content:center}.login-wechat .wechat-contact-text{color:#66758a}.settings-card{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.qr-preview{display:flex;align-items:center;gap:12px;margin:10px 0;color:var(--muted);font-size:13px}.qr-preview img{width:96px;height:96px;object-fit:cover;border-radius:12px;background:white;border:1px solid var(--line);padding:4px}@media(max-width:560px){.school-logo.jzu-wordmark,.login-card .school-logo.jzu-wordmark.login-wordmark{width:180px!important}.wechat-contact{display:flex;width:100%;justify-content:center}.wechat-contact img{width:76px;height:76px}}
/* JZU v6: official website wordmark */
.school-logo.jzu-wordmark,.login-card .school-logo.jzu-wordmark.login-wordmark{width:245px!important;max-width:100%;height:auto!important;max-height:55px!important;object-fit:contain!important}.login-card .school-logo.jzu-wordmark.login-wordmark{width:270px!important;max-height:65px!important}@media(max-width:560px){.school-logo.jzu-wordmark{width:205px!important}.login-card .school-logo.jzu-wordmark.login-wordmark{width:245px!important}}
/* JZU v7: official combined seal + wordmark */
.school-logo.jzu-wordmark,.login-card .school-logo.jzu-wordmark.login-wordmark{width:300px!important;max-width:100%!important;height:auto!important;max-height:86px!important;object-fit:contain!important}.login-card .school-logo.jzu-wordmark.login-wordmark{width:320px!important;max-height:92px!important}@media(max-width:560px){.school-logo.jzu-wordmark{width:245px!important}.login-card .school-logo.jzu-wordmark.login-wordmark{width:280px!important}}
/* JZU v8: use emblem + explicit school name */
.school-logo.jzu-emblem{width:58px!important;height:58px!important;object-fit:contain!important;border-radius:50%!important;background:#fff!important;padding:4px!important;box-shadow:0 4px 18px rgba(0,0,0,.12)!important}.brand b{display:block!important}.login-school-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 12px}.login-school-brand .jzu-emblem{width:64px!important;height:64px!important}.login-school-brand b{font-size:26px;color:#0f2f63;font-weight:900;letter-spacing:.04em}@media(max-width:560px){.school-logo.jzu-emblem{width:50px!important;height:50px!important}.login-school-brand .jzu-emblem{width:58px!important;height:58px!important}.login-school-brand b{font-size:24px}}
/* JZU v10: no logo, text-only school brand */
.brand.no-logo b{font-size:24px;letter-spacing:.06em}.brand.no-logo small{font-size:12px}.login-school-brand.no-logo{display:block;text-align:center;margin:0 auto 14px}.login-school-brand.no-logo b{font-size:32px;color:#0f2f63;font-weight:900;letter-spacing:.08em}@media(max-width:560px){.brand.no-logo b{font-size:20px}.login-school-brand.no-logo b{font-size:30px}}
/* JZU v11: login-only QR with zoom */
.qr-open{display:block;border:0;background:transparent;padding:0;margin:0 auto;cursor:zoom-in}.qr-open img{display:block}.login-wechat{flex-direction:column;gap:8px}.login-wechat img{width:132px!important;height:132px!important}.qr-zoom-mask{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.72);display:grid;place-items:center;padding:18px}.qr-zoom-card{position:relative;width:min(420px,94vw);background:#fff;border-radius:22px;padding:22px;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.35)}.qr-zoom-card img{width:min(320px,80vw);height:min(320px,80vw);object-fit:contain;border-radius:14px}.qr-zoom-card p{margin:12px 0 0;color:#0f2f63;font-weight:900}.qr-zoom-close{position:absolute;right:10px;top:8px;width:34px;height:34px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:24px;line-height:1}
