:root{--red: #c62828;--red-d: #a91c1c;--red-l: #e53935;--orange: #ff8a1f;--bg: #f4f4f4;--line: #ececec;--t1: #212121;--t2: #8a8a8a;--card: #ffffff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--t1);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}#app{height:100%}.app{display:flex;flex-direction:column;height:100%;max-width:520px;margin:0 auto;background:var(--bg);position:relative;overflow:hidden}.topbar{flex:0 0 auto;height:46px;background:var(--red);color:#fff;display:flex;align-items:center;position:relative;z-index:20;padding-top:env(safe-area-inset-top);height:calc(46px + env(safe-area-inset-top))}.tb-side{flex:0 0 52px;display:flex;align-items:center;padding-left:10px}.tb-side.right{justify-content:flex-end;padding-right:12px}.tb-side button{border:0;background:transparent;color:#fff;padding:4px;display:flex;align-items:center;cursor:pointer}.tb-title{flex:1;text-align:center;font-size:17px;font-weight:600;letter-spacing:1px}.page{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:62px}.banner{position:relative;width:100%;height:186px;overflow:hidden;background:#8e1b1b}.banner-track{display:flex;height:100%;transition:transform .45s cubic-bezier(.4,0,.2,1)}.banner-item{flex:0 0 100%;height:100%;background-size:cover;background-position:center}.banner-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px}.banner-dot{width:6px;height:6px;border-radius:50%;background:#ffffff73;transition:all .2s}.banner-dot.on{background:#fff;width:14px;border-radius:3px}.grid{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-bottom:1px solid var(--line)}.grid-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;height:88px;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;cursor:pointer;background:#fff}.grid-item:nth-child(3n){border-right:0}.grid-item:active{background:#fafafa}.grid-t{font-size:13px;color:#333}.sec{display:flex;align-items:center;gap:7px;padding:15px 13px 9px;background:var(--bg)}.sec-bar{width:3px;height:15px;border-radius:2px;background:var(--orange)}.sec-t{font-size:15.5px;font-weight:600;color:var(--t1)}.sec-more{margin-left:auto;font-size:12px;color:var(--t2);display:flex;align-items:center;gap:1px}.news-list{background:#fff}.news-item{display:flex;gap:11px;padding:13px;border-bottom:1px solid #f3f3f3;cursor:pointer;background:#fff}.news-item:active{background:#fafafa}.news-bd{flex:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.news-t{font-size:15px;line-height:1.45;color:#1a1a1a;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-m{display:flex;align-items:center;gap:9px;font-size:11.5px;color:#aaa;margin-top:7px}.news-top{color:var(--red);font-size:11.5px}.news-cover{flex:0 0 104px;height:70px;border-radius:4px;background-size:cover;background-position:center;background-color:#efe6e6}.notice-bar{display:flex;align-items:center;gap:8px;margin:10px 12px 0;padding:10px 12px;background:#fff;border-radius:8px;font-size:13px;color:#444;border:1px solid #f3e7d8}.notice-bar .tag{flex:0 0 auto;font-size:11px;color:#fff;background:var(--orange);border-radius:3px;padding:1px 5px}.notice-bar .txt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cats{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;background:#fff;border-bottom:1px solid var(--line);scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.cat{flex:0 0 auto;border:0;background:#f5f5f5;color:#666;padding:6px 14px;border-radius:16px;font-size:13px;font-family:inherit;cursor:pointer}.cat.on{background:var(--red);color:#fff}.card-list{padding:11px 12px;display:flex;flex-direction:column;gap:10px}.lcard{background:#fff;border-radius:9px;padding:12px 13px;display:flex;gap:10px;cursor:pointer}.lcard:active{background:#fcfcfc}.lcard-bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.lcard-t{font-size:14.5px;line-height:1.45;font-weight:500}.lcard-m{font-size:11.5px;color:#aaa;display:flex;gap:9px;flex-wrap:wrap}.lcard-s{font-size:12.5px;color:#777;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lcard-thumb{flex:0 0 84px;height:62px;border-radius:6px;background:linear-gradient(135deg,#c62828,#8e1b1b);display:flex;align-items:center;justify-content:center;color:#fff}.pill{display:inline-block;font-size:11px;color:var(--red);background:#fdecec;border-radius:3px;padding:1px 6px;margin-right:6px}.detail{background:#fff;padding:16px 15px 30px;min-height:100%}.detail-t{font-size:19px;font-weight:600;line-height:1.45}.detail-m{display:flex;gap:10px;font-size:12px;color:#aaa;margin:11px 0 14px;padding-bottom:13px;border-bottom:1px solid #f2f2f2}.detail-cover{width:100%;border-radius:8px;margin-bottom:14px;display:block}.detail-c{font-size:15px;line-height:1.85;color:#333;white-space:pre-wrap;word-break:break-word}.mine-head{background:linear-gradient(135deg,#c62828,#8e1b1b);padding:22px 16px 46px;color:#fff;position:relative}.mine-row{display:flex;align-items:center;gap:12px}.mine-av{width:54px;height:54px;border-radius:50%;background:#ffffff38;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;border:1.5px solid rgba(255,255,255,.45)}.mine-name{font-size:17px;font-weight:600}.mine-sub{font-size:12px;opacity:.82;margin-top:4px}.mine-stats{position:relative;z-index:2;margin:-32px 12px 0;background:#fff;border-radius:10px;display:grid;grid-template-columns:repeat(3,1fr);padding:14px 0;box-shadow:0 2px 10px #0000000d}.mine-stat{text-align:center}.mine-stat-n{font-size:20px;font-weight:700;color:var(--red)}.mine-stat-l{font-size:11.5px;color:var(--t2);margin-top:3px}.menu{margin:12px;background:#fff;border-radius:10px;overflow:hidden}.menu-item{display:flex;align-items:center;gap:11px;padding:15px 14px;border-bottom:1px solid #f4f4f4;cursor:pointer;font-size:14.5px}.menu-item:last-child{border-bottom:0}.menu-item:active{background:#fafafa}.menu-item .mi{flex:0 0 26px;display:flex;color:var(--red)}.menu-item .mt{flex:1}.menu-item .mv{font-size:12.5px;color:#bbb}.tabbar{position:absolute;left:0;right:0;bottom:0;height:calc(54px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #ebebeb;display:flex;z-index:30}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:#9a9a9a;font-size:10.5px;font-family:inherit;cursor:pointer;padding-top:4px}.tab.on{color:var(--red)}.empty{text-align:center;color:#b5b5b5;font-size:13px;padding:46px 0}.loading{text-align:center;color:#b5b5b5;font-size:13px;padding:40px 0}.more-btn{display:block;width:calc(100% - 24px);margin:10px 12px 0;padding:11px;border:0;border-radius:8px;background:#fff;color:#999;font-size:13px;font-family:inherit}.more-btn:active{background:#fafafa}.sk{background:linear-gradient(90deg,#f0f0f0 25%,#f7f7f7 37%,#f0f0f0 63%);background-size:400% 100%;animation:shimmer 1.3s infinite;border-radius:5px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.boot-splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#f4f4f4}.boot-ring{width:26px;height:26px;border-radius:50%;border:2.5px solid #f2d4d4;border-top-color:var(--red);animation:bootspin .8s linear infinite}@keyframes bootspin{to{transform:rotate(360deg)}}.boot-txt{font-size:12.5px;color:#9a9a9a}.login-page{position:relative;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#f4f4f4;display:flex;flex-direction:column}.login-page:before{content:"";position:absolute;top:0;left:0;right:0;height:268px;background:linear-gradient(158deg,#d32f2f,#b71c1c 58%,#8b1a1a);border-radius:0 0 30px 30px}.login-hero{position:relative;z-index:1;padding:calc(42px + env(safe-area-inset-top)) 24px 0;color:#fff}.login-logo{width:56px;height:56px;border-radius:16px;background:#fff url(/img/logo-sg.png) center / 84% auto no-repeat;border:1px solid rgba(255,255,255,.42);box-shadow:0 4px 14px #0000001f;margin-bottom:16px}.login-title{font-size:25px;font-weight:700;letter-spacing:4px}.login-title .lt-dot{display:inline-block;width:.4em;text-align:center;letter-spacing:0}.login-sub{font-size:12.5px;opacity:.82;margin-top:9px;letter-spacing:.6px}.login-card{position:relative;z-index:1;margin:30px 20px 0;background:#fff;border-radius:14px;padding:22px 18px 20px;box-shadow:0 6px 24px #0000001a}.login-card-hd{font-size:15.5px;font-weight:600;margin-bottom:18px;color:var(--t1)}.lf{display:flex;align-items:center;gap:10px;background:#f7f7f7;border-radius:9px;padding:0 12px;height:48px;margin-bottom:13px;border:1px solid transparent}.lf:focus-within{border-color:#e8b4b4;background:#fff}.lf-ico{width:18px;height:18px;flex:0 0 18px}.lf input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:15px;color:var(--t1);font-family:inherit}.lf input::placeholder{color:#bcbcbc;font-size:14px}.code-btn{flex:0 0 auto;border:0;background:transparent;color:var(--red);font-size:13px;font-weight:500;padding:6px 0 6px 11px;border-left:1px solid #e8e8e8;font-family:inherit;cursor:pointer}.code-btn:disabled{color:#bdbdbd;border-left-color:#eee}.login-tip-line{font-size:12px;color:#2e7d32;margin:-3px 0 10px;line-height:1.65}.login-tip-line.err{color:#c62828}.login-btn{width:100%;height:46px;border:0;border-radius:9px;background:linear-gradient(135deg,#d32f2f,#b01a1a);color:#fff;font-size:16px;font-weight:600;letter-spacing:3px;font-family:inherit;cursor:pointer;margin-top:3px}.login-btn:disabled{opacity:.62}.login-btn:active:not(:disabled){background:#9e1717}.login-note{font-size:11.5px;color:#a2a2a2;line-height:1.75;margin-top:14px;text-align:center}.login-feats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 20px 0}.lf-item{background:#fff;border-radius:10px;padding:15px 6px;text-align:center;box-shadow:0 1px 6px #0000000a}.lf-item b{display:block;font-size:12.5px;color:var(--red);font-weight:600}.lf-item span{display:block;font-size:10.5px;color:#a8a8a8;margin-top:5px}.login-foot{position:relative;z-index:1;margin-top:auto;text-align:center;font-size:11px;color:#b8b8b8;padding:26px 0 calc(16px + env(safe-area-inset-bottom))}.mine-badge{margin-left:auto;flex:0 0 auto;font-size:10.5px;padding:3px 9px;border-radius:10px;background:#ffffff2e;border:1px solid rgba(255,255,255,.32);color:#fff;white-space:nowrap}.logout-btn{display:block;width:calc(100% - 24px);margin:14px 12px 0;height:44px;border-radius:9px;border:1px solid #f0c9c9;background:#fff;color:var(--red);font-size:15px;font-family:inherit;cursor:pointer}.logout-btn:active{background:#fff5f5}.topbar{background:linear-gradient(135deg,#d32f2f,#8e1b1b)}.tabbar .tab.on{color:var(--red)}.grid{grid-template-columns:repeat(4,1fr)}.grid-item{height:84px}.grid-item:nth-child(3n){border-right:1px solid #f2f2f2}.grid-item:nth-child(4n){border-right:0}.hi-card{display:flex;align-items:baseline;justify-content:space-between;margin:12px 12px 0;padding:13px 15px;border-radius:10px;background:linear-gradient(120deg,#fff,#fdf6f2);border:1px solid #f5e3dc}.hi-name{font-size:15.5px;font-weight:700;color:var(--t1)}.hi-date{font-size:12px;color:#a08a7e;margin-top:3px}.notice-bar .txt{display:inline-block}.notice-cnt{flex:0 0 auto;font-size:10px;color:#cbb9ac}.roll-enter-active,.roll-leave-active{transition:all .3s ease}.roll-enter-from{opacity:0;transform:translateY(8px)}.roll-leave-to{opacity:0;transform:translateY(-8px)}.study-card{align-items:stretch;padding:11px 12px}.study-thumb{flex:0 0 76px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff}.study-thumb-t{font-size:10.5px;opacity:.92}.study-thumb.st1{background:linear-gradient(135deg,#c62828,#8e1b1b)}.study-thumb.st2{background:linear-gradient(135deg,#4a90d9,#2c6fb2)}.study-thumb.st3{background:linear-gradient(135deg,#7e57c2,#5b3a9e)}.study-thumb.st4{background:linear-gradient(135deg,#f0932b,#d97706)}.study-arrow{align-self:center;flex:0 0 auto}.sd-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sd-type{font-size:11px;color:#8a6a6a;background:#f7ecec;border-radius:3px;padding:1px 7px}.sd-dur{font-size:11px;color:#aaa}.sd-media{margin:12px 0 4px}.sd-video{width:100%;border-radius:8px;background:#000;max-height:240px;display:block}.sd-audio{width:100%}.sd-file{margin:12px 0 4px}.sd-file-btn{display:flex;align-items:center;justify-content:center;gap:7px;height:44px;border-radius:9px;background:linear-gradient(135deg,#c62828,#a91c1c);color:#fff;font-size:14px;text-decoration:none}.sd-file-btn:active{opacity:.88}.timeline{padding:14px 14px 4px;position:relative}.timeline:before{content:"";position:absolute;left:47px;top:20px;bottom:16px;width:2px;background:#f0e2e2}.tl-item{display:flex;gap:12px;margin-bottom:12px;cursor:pointer;position:relative}.tl-side{flex:0 0 40px;display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:14px;background:transparent}.tl-dot{width:10px;height:10px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #c628282e}.tl-date{font-size:10.5px;color:#b8a49e;writing-mode:horizontal-tb;white-space:nowrap}.tl-card{flex:1;min-width:0;background:#fff;border-radius:9px;padding:11px 13px}.tl-card:active{background:#fdfafa}.tl-t{font-size:14.5px;font-weight:600;color:#1a1a1a;line-height:1.45;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.tl-pill{flex:0 0 auto;font-size:10.5px;border-radius:3px;padding:1px 6px;font-weight:500}.tl-s{margin-top:6px;font-size:12.5px;color:#8a8a8a;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tl-m{margin-top:6px;font-size:11.5px;color:#b0a29c}.act-badge{display:inline-block;font-size:11px;color:#fff;border-radius:4px;padding:2px 9px;margin-bottom:10px}.act-badge.nb{background:var(--orange)}.notice-list{background:#fff}.notice-item{display:flex;align-items:center;gap:11px;padding:13px;border-bottom:1px solid #f3f3f3;cursor:pointer}.notice-item:active{background:#fafafa}.notice-ico{flex:0 0 38px;height:38px;border-radius:8px;color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}.notice-ico.nt1{background:linear-gradient(135deg,#4a90d9,#2c6fb2)}.notice-ico.nt2{background:linear-gradient(135deg,#c62828,#8e1b1b)}.notice-ico.nt3{background:linear-gradient(135deg,#f0932b,#d97706)}.notice-bd{flex:1;min-width:0}.notice-t{font-size:14.5px;color:#1a1a1a;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-weight:500}.notice-top{color:var(--red);font-size:10.5px;border:1px solid #f0c9c9;border-radius:3px;padding:0 4px;margin-left:5px;vertical-align:1px}.notice-s{margin-top:3px;font-size:12px;color:#999;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.notice-m{margin-top:5px;display:flex;align-items:center;gap:9px;font-size:11px;color:#b3b3b3}.notice-tag{border-radius:3px;padding:0 5px;font-size:10.5px}.notice-tag.nt1{color:#4a90d9;background:#eaf3fc}.notice-tag.nt2{color:var(--red);background:#fdecec}.notice-tag.nt3{color:#d9822b;background:#fdf3e3}.rich-c{line-height:1.85}.rich-c p{margin:0 0 10px}.rich-c img{max-width:100%;height:auto;border-radius:6px}.rich-c h2{font-size:17px;margin:14px 0 8px}.rich-c h3{font-size:15.5px;margin:12px 0 7px}.rich-c blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--red);background:#faf5f5;color:#666;border-radius:0 6px 6px 0}.rich-c ul,.rich-c ol{padding-left:22px;margin:0 0 10px}.rich-c video{width:100%;border-radius:8px;background:#000}
