:root{--red:#9E1010;--orange:#FF6B35;--bg:#FFF8F5;--card:#FFFFFF;--text:#2B2320;--sub:#8A7B74;--line:#F3E4DE}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,HarmonyOS Sans SC,Microsoft YaHei,sans-serif;color:var(--text);font-size:15px;line-height:1.7}#app,body{background:var(--bg)}#app{max-width:480px;margin:0 auto;position:relative;box-shadow:0 0 24px rgba(158,16,16,.06)}#app,.view{min-height:100vh}.view{display:none;flex-direction:column}.view.active{display:flex;animation:slideIn .28s ease}@keyframes slideIn{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}.navbar{gap:10px;padding:12px 16px;background:var(--bg);position:-webkit-sticky;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.nav-back,.navbar{display:flex;align-items:center}.nav-back{border:none;background:none;color:var(--red);font-size:15px;font-weight:600;cursor:pointer;gap:2px;padding:4px 0}.nav-title{flex:1 1;text-align:center;font-size:16px;font-weight:700}.nav-share{border:none;background:none;font-size:18px;cursor:pointer;padding:4px}.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;line-height:1.6}.tag-level{background:#FDEAEA;color:var(--red)}.tag-cat{background:#FFF0E7;color:var(--orange)}.tag-campus{background:var(--red);color:#fff}.card{background:var(--card);border-radius:14px;padding:16px;margin:12px 16px 0;box-shadow:0 2px 10px rgba(158,16,16,.05)}.card-title{font-size:15px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:6px}.card-title:before{content:"";width:4px;height:16px;border-radius:2px;background:var(--red)}.card p{font-size:14px;color:#4A3F3A}.course-tags{display:flex;flex-wrap:wrap;gap:8px}.course-tags span{background:#F6F1EE;color:#5B4F49;font-size:13px;padding:4px 12px;border-radius:16px}.home-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 6px}.home-header img{height:44px;width:auto}.ver-badge{background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px}.hero{padding:14px 24px 4px}.hero h1{font-size:21px;font-weight:800;line-height:1.45}.hero h1 em{font-style:normal;color:var(--red)}.hero p{color:var(--sub);font-size:13px;margin-top:6px}.search-wrap{padding:16px 20px 4px;position:relative;z-index:30}.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--red);border-radius:28px;padding:11px 18px;box-shadow:0 4px 14px rgba(158,16,16,.1)}.search-box input{border:none;outline:none;flex:1 1;font-size:15px;background:transparent;color:var(--text)}.search-box input::placeholder{color:#BBAEA8}.search-results{position:absolute;left:20px;right:20px;top:100%;margin-top:6px;background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden;display:none;max-height:320px;overflow-y:auto}.search-results.show{display:block}.sr-item{padding:11px 16px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;align-items:center;gap:8px}.sr-item:last-child{border-bottom:none}.sr-item:active{background:#FDF3F1}.sr-item .n{font-weight:600;font-size:14px;flex:1 1}.sr-item .c{font-size:12px;color:var(--sub)}.sr-empty{padding:14px 16px;color:var(--sub);font-size:13px;text-align:center}.quick-tags{display:flex;gap:10px;padding:12px 20px 4px;flex-wrap:wrap}.quick-tags button{border:1.5px solid var(--line);background:#fff;border-radius:22px;padding:7px 16px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer}.quick-tags button:active{background:#FDF3F1;border-color:var(--red)}.home-cta{padding:22px 20px 10px}.home-cta button{width:100%;border:none;background:linear-gradient(135deg,#B31414,#9E1010);color:#fff;font-size:17px;font-weight:700;padding:15px;border-radius:16px;cursor:pointer;box-shadow:0 6px 16px rgba(158,16,16,.28)}.home-cta button:active{transform:scale(.98)}.home-stats{text-align:center;color:var(--sub);font-size:12px;padding:8px 20px 30px}.home-stats b{color:var(--orange)}.home-lead{margin:0 20px 26px;background:#fff;border:1px dashed #e8c9c4;border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:12px;cursor:pointer}.home-lead img{width:52px;height:52px;border-radius:8px;object-fit:cover}.home-lead .t{flex:1 1;font-size:13px;color:#5B4F49}.home-lead .t b{color:var(--red);font-size:14px}.college-body{flex:1 1;display:flex;overflow:hidden}.college-left{width:132px;flex-shrink:0;overflow-y:auto;background:#FBF1ED;padding:8px 0}.college-item{padding:13px 10px;font-size:13px;line-height:1.4;color:#6B5B54;cursor:pointer;border-left:3px solid transparent;display:flex;gap:5px;align-items:flex-start}.college-item .ic{flex-shrink:0}.college-item.on{background:var(--bg);color:var(--red);font-weight:700;border-left-color:var(--red)}.college-right{flex:1 1;overflow-y:auto;padding:12px 12px 24px}.major-card{background:#fff;border-radius:12px;padding:13px 14px;margin-bottom:10px;cursor:pointer;box-shadow:0 2px 8px rgba(158,16,16,.05);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.major-card:active{transform:scale(.98)}.major-card .name{font-size:15px;font-weight:700;width:100%}.major-card .arrow{margin-left:auto;color:#C9B6AF;font-size:14px}.campus-note{margin:6px 4px 0;padding:10px 14px;background:#FDF3F1;border-radius:12px;font-size:13px;color:var(--red);font-weight:600;display:flex;align-items:center;gap:6px}.empty-tip{padding:40px 16px;text-align:center;color:var(--sub);font-size:13px}.detail-head{padding:18px 20px 6px}.detail-head h1{font-size:24px;font-weight:800;line-height:1.35}.detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}.honor-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#FF6B35,#FF8F5C);color:#fff;font-size:12px;font-weight:700;padding:3px 12px;border-radius:20px}.detail-scroll{flex:1 1;overflow-y:auto;padding-bottom:96px}.intro-card p{color:#6B5B54;font-size:13px}.detail-cta{position:fixed;bottom:0;left:0;right:0;z-index:40}.detail-cta .inner{max-width:480px;margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 78%,transparent)}.cta-btn{width:100%;border:none;background:linear-gradient(135deg,#B31414,#9E1010);color:#fff;border-radius:16px;padding:14px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(158,16,16,.32)}.cta-btn small{display:block;font-size:12px;font-weight:400;opacity:.9;margin-top:2px}.modal-mask{position:fixed;inset:0;background:rgba(30,10,8,.55);z-index:100;display:none;align-items:flex-end;justify-content:center}.modal-mask.show{display:flex}.modal{background:var(--bg);width:100%;max-width:480px;border-radius:22px 22px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;animation:up .28s ease}@keyframes up{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.modal h3{font-size:17px;font-weight:800;text-align:center}.modal .sub{text-align:center;color:var(--sub);font-size:12px;margin:4px 0 14px}.qr-block{background:#fff;border-radius:16px;padding:16px;display:flex;gap:14px;align-items:center;box-shadow:0 2px 10px rgba(158,16,16,.06);margin-bottom:12px}.qr-block.primary{border:2px solid var(--red)}.qr-block img{width:110px;height:110px;border-radius:10px;object-fit:cover;flex-shrink:0}.qr-block .qt b{font-size:15px;display:flex;align-items:center;gap:6px}.qr-block .qt .rec{background:var(--orange);color:#fff;font-size:10px;padding:1px 8px;border-radius:10px}.qr-block .qt p{font-size:12px;color:var(--sub);margin-top:5px;line-height:1.6}.modal-close{width:100%;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:12px;font-size:15px;font-weight:600;color:var(--sub);cursor:pointer}#toast{position:fixed;left:50%;bottom:120px;transform:translateX(-50%);background:rgba(40,20,16,.88);color:#fff;font-size:13px;padding:9px 18px;border-radius:22px;z-index:200;display:none}