@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&family=ZCOOL+XiaoWei&display=swap";:root{color:#11233f;font-synthesis:none;--ink:#11233f;--navy:#123a67;--blue:#19598c;--orange:#ef762f;--paper:#fffdf8;--mist:#edf2f5;background:#dfe7ef;font-family:Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.shell{background:var(--paper);width:min(100%,470px);min-height:100vh;margin:0 auto;padding:0 20px 100px;position:relative;overflow:hidden}.topbar{justify-content:space-between;align-items:center;height:78px;display:flex}.brand{letter-spacing:.06em;font-size:15px;font-weight:700}.brand span{color:var(--orange);margin-right:5px;font-family:ZCOOL XiaoWei,serif;font-size:25px}.avatar{width:38px;height:38px;color:var(--navy);background:#f1f5f7;border:1px solid #d7dee5;border-radius:50%;font-weight:700}.icon-button{width:40px;height:40px;color:var(--ink);background:#f1f5f7;border:0;border-radius:50%;place-items:center;display:grid}.icon-button svg{width:20px}.page-title{font-size:15px;position:absolute;left:50%;transform:translate(-50%)}.pass-card{background:var(--navy);color:#fff;border-radius:28px;min-height:264px;padding:25px 25px 20px;position:relative;overflow:hidden;box-shadow:0 22px 45px #123a6738}.pass-card:before{content:"";border:40px solid #ffffff09;border-radius:50%;width:230px;height:230px;position:absolute;top:-90px;right:-90px}.pass-card.is-verified{background:#174f63}.pass-label{opacity:.82;align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.pass-card h1{letter-spacing:.02em;width:78%;margin:30px 0 10px;font-family:ZCOOL XiaoWei,serif;font-size:28px;font-weight:400;line-height:1.25}.pass-card p{opacity:.7;margin:0;font-size:13px}.pass-rule{background:repeating-linear-gradient(90deg,#ffffff4d 0 7px,#0000 7px 12px);height:1px;margin:25px 0 13px}.verify-button{color:#fff;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;width:100%;padding:7px 0 0;font-weight:700;display:flex}.verify-button svg:last-child{margin-left:auto}.stamp{letter-spacing:.18em;opacity:.5;border:1px solid #ffffff40;border-radius:4px;padding:4px 8px;font:700 9px/1 monospace;position:absolute;top:22px;right:22px;transform:rotate(4deg)}.teacher-context{background:#fff;border:1px solid #e1e7ea;border-radius:19px;grid-template-columns:1fr auto;align-items:center;gap:16px;margin:2px 0 18px;padding:18px 19px;display:grid}.teacher-context h1{margin:6px 0 4px;font:400 22px/1.2 ZCOOL XiaoWei,serif}.teacher-context p{color:#7d8992;margin:0;font-size:11px}.context-facts{justify-items:end;gap:7px;display:grid}.context-facts span{color:#557080;align-items:center;gap:6px;font-size:9px;display:flex}.context-facts svg{color:#e27036;width:14px;height:14px}.steps{grid-template-columns:1fr 28px 1fr;align-items:center;margin:32px 2px 14px;display:grid}.steps>div:not(.step-line){grid-template-columns:38px 1fr;align-items:center;gap:9px;display:grid;position:relative}.steps svg{width:38px;height:38px;color:var(--orange);background:#fff1e8;border-radius:12px;padding:9px}.steps span{background:var(--ink);color:#fff;text-align:center;border-radius:50%;width:17px;height:17px;font:700 9px/17px sans-serif;position:absolute;top:-7px;left:-6px}.steps p{color:#6c7887;margin:0;font-size:11px;line-height:1.45}.steps strong{color:var(--ink);font-size:12px;display:block}.step-line{background:#dbe2e7;height:1px;margin:0 7px}.course-section{margin-top:34px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:17px;display:flex}.eyebrow{letter-spacing:.2em;color:var(--orange);font:700 9px/1 monospace}.section-heading h2{margin:5px 0 0;font-size:23px}.section-heading button{color:#7b8794;background:0 0;border:0;align-items:center;padding:6px 0;font-size:12px;display:flex}.course-list{gap:10px;display:grid}.course{text-align:left;width:100%;color:var(--ink);background:#fff;border:1px solid #e6eaed;border-radius:18px;align-items:center;padding:13px;display:flex;box-shadow:0 8px 20px #1c344b0a}.course:disabled{opacity:.62}.course-mark{color:#fff;border-radius:13px 8px 8px 13px;place-items:center;width:54px;height:58px;font:400 23px/1 ZCOOL XiaoWei,serif;display:grid;box-shadow:inset -5px 0 #00000012}.course-mark.orange{background:#ed7436}.course-mark.blue{background:#2d6090}.course-mark.jade{background:#408277}.course-copy{gap:6px;margin-left:14px;display:grid}.course-copy strong{font-size:15px}.course-copy small{color:#84909c;font-size:11px}.open-icon{color:#9aa5ae;margin-left:auto}.open-icon svg{width:18px}.locked-note{text-align:center;color:#8b96a0;margin:15px 0 0;font-size:11px}.verify-intro{padding:24px 2px 27px}.verify-intro h1,.simple-heading h1{margin:8px 0;font:400 30px/1.25 ZCOOL XiaoWei,serif}.verify-intro p,.simple-heading p{color:#74808c;margin:0;font-size:13px}.verify-stack{gap:14px;display:grid}.verify-panel{background:#fff;border:1px solid #e1e6e9;border-radius:22px;grid-template-columns:50px 1fr;gap:15px;padding:22px 19px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 30px #1b324b0f}.verify-panel.muted{opacity:.48}.verify-panel.done{background:#f6fbf9;border-color:#a8d3c7}.panel-number{color:#b0b8bf;letter-spacing:.12em;font:700 10px/1 monospace;position:absolute;top:12px;right:15px}.panel-icon{width:50px;height:50px;color:var(--orange);background:#fff0e6;border-radius:16px;place-items:center;display:grid}.verify-panel.done .panel-icon{color:#297361;background:#def1ec}.verify-panel h2{margin:2px 0 5px;font-size:16px}.verify-panel p{color:#7d8994;margin:0;font-size:12px;line-height:1.6}.verify-panel button{background:var(--navy);color:#fff;border:0;border-radius:14px;grid-column:1/-1;justify-content:center;align-items:center;gap:6px;min-height:46px;font-weight:700;display:flex}.verify-panel button:disabled{color:#8c969e;background:#d6dce0}.verify-panel.done button{color:#fff;background:#2c7563}.verify-panel button svg{width:17px}.privacy-note{color:#65727d;background:#f2f5f6;border-radius:15px;gap:11px;margin-top:21px;padding:15px;display:flex}.privacy-note svg{color:#3d766b;flex:0 0 19px}.privacy-note p{margin:0;font-size:11px;line-height:1.65}.privacy-note strong{color:var(--ink);display:block}.desktop-verify{background:#fff;border:1px solid #dfe5e8;border-radius:24px;grid-template-columns:390px 1fr;max-width:940px;display:grid;overflow:hidden;box-shadow:0 18px 45px #1b324b17}.qr-area{background:#f2f6f7;flex-direction:column;justify-content:center;align-items:center;min-height:460px;padding:45px;display:flex}.live-qr{background:#fff;border-radius:14px;place-items:center;width:250px;height:250px;padding:10px;display:grid;box-shadow:0 12px 30px #19314724}.live-qr img{width:100%;height:100%;display:block}.live-qr>svg{color:#173f62;width:42px;height:42px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fake-qr{background:repeating-conic-gradient(#173a58 0 25%, transparent 0 50%) 0 / 22px 22px;border:16px solid #fff;border-radius:12px;width:235px;height:235px;position:relative;box-shadow:0 12px 30px #19314724}.fake-qr:before,.fake-qr:after,.fake-qr i{content:"";background:#fff;border:11px solid #173a58;width:52px;height:52px;position:absolute}.fake-qr:before{top:5px;left:5px}.fake-qr:after{top:5px;right:5px}.fake-qr i{bottom:5px;left:5px}.fake-qr span{background:var(--orange);color:#fff;border:6px solid #fff;border-radius:12px;place-items:center;width:47px;height:47px;font:16px/1 ZCOOL XiaoWei,serif;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fake-qr.checking{opacity:.45}.qr-timer{color:#7c8993;align-items:center;gap:6px;margin:20px 0 15px;font-size:10px;display:flex}.qr-timer svg{width:14px}.qr-area button{color:#fff;background:#173f62;border:0;border-radius:12px;min-width:190px;height:42px;font-size:11px;font-weight:700}.verify-guide{flex-direction:column;justify-content:center;padding:52px 45px;display:flex}.guide-step{color:#a0a9b0;grid-template-columns:42px 1fr;gap:14px;min-height:86px;display:grid;position:relative}.guide-step:not(:last-of-type):after{content:"";background:#dfe5e8;width:1px;height:44px;position:absolute;top:42px;left:20px}.guide-step>span{border:1px solid #dbe1e4;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.guide-step>span svg{width:18px}.guide-step strong{color:#687782;margin:3px 0 5px;font-size:14px;display:block}.guide-step p{margin:0;font-size:11px}.guide-step.active>span{color:#e66d2c;background:#fff0e7;border-color:#ef762f}.guide-step.active strong{color:#172f48}.guide-step.done>span{color:#fff;background:#39816e;border-color:#39816e}.guide-step.done strong{color:#2f6f60}.verify-guide .privacy-note{margin-top:12px}.course-hero{color:#fff;border-radius:24px;align-items:center;gap:21px;min-height:160px;padding:24px;display:flex;box-shadow:0 18px 35px #123a6729}.course-hero.orange{background:#dd6a31}.course-hero.blue{background:#295d8a}.course-hero.jade{background:#3b7a70}.course-hero>span{background:#ffffff29;border-radius:18px 9px 9px 18px;place-items:center;width:72px;height:86px;font:36px/1 ZCOOL XiaoWei,serif;display:grid;box-shadow:inset -7px 0 #00000017}.course-hero p,.course-hero h1{margin:0}.course-hero p{opacity:.72;font-size:11px}.course-hero h1{margin:5px 0 8px;font:400 24px/1.2 ZCOOL XiaoWei,serif}.course-hero small{opacity:.75}.unit-list{gap:22px;padding:28px 0 15px;display:grid}.unit{border-top:1px solid #dfe4e7;padding-top:16px}.unit-heading{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.unit-heading span{color:var(--orange);font:700 10px/1 monospace}.unit-heading h2{margin:0;font-size:15px}.unit>button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-bottom:1px solid #edf0f2;grid-template-columns:38px 1fr 18px;align-items:center;gap:11px;padding:14px 4px;display:grid}.unit>button>svg:first-child{color:#32638c;background:#eaf1f6;border-radius:11px;width:38px;height:38px;padding:9px}.unit>button>svg:last-child{color:#a2abb2;width:17px}.unit button span{gap:4px;display:grid}.unit button strong{font-size:13px}.unit button small,.empty-row{color:#8a949c;font-size:10px}.empty-row{margin:0;padding:15px 0}.viewer-shell .topbar{height:64px}.viewer{background:#edf1f3;padding-left:14px;padding-right:14px}.readonly-tag{color:#397466;background:#dbede8;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700}.viewer-toolbar{color:#4b746a;justify-content:space-between;align-items:center;margin:4px 1px 13px;font-size:11px;display:flex}.viewer-toolbar span{align-items:center;gap:5px;font-weight:700;display:flex}.viewer-toolbar svg{width:15px}.viewer-toolbar small{color:#8a949c}.slide-page{aspect-ratio:4/3;background:#fff;min-height:460px;padding:42px 30px;position:relative;overflow:hidden;box-shadow:0 12px 35px #23324026}.slide-kicker{color:#dd6a31;letter-spacing:.18em;font:700 9px/1 monospace}.slide-title{color:#173b5d;margin-top:29px;font:400 30px/1.2 ZCOOL XiaoWei,serif}.slide-title em{color:#dd6a31;font-style:normal}.sound-card{background:#fff1e7;border-radius:50% 50% 46% 54%/54% 48% 52% 46%;justify-items:center;width:190px;margin:40px auto 25px;padding:20px;display:grid;transform:rotate(-2deg)}.sound-card span{color:#dd6a31;font:45px/1 ZCOOL XiaoWei,serif}.sound-card strong{margin-top:7px;font-size:18px}.sound-card small{color:#8b6c5b}.slide-page>p{text-align:center;color:#5e6e7b;font-size:12px}.watermark{color:#19304817;white-space:nowrap;font:700 11px/1 sans-serif;position:absolute;transform:rotate(-24deg)}.w0{top:130px;left:-25px}.w1{top:205px;right:-35px}.w2{bottom:110px;left:-10px}.w3{bottom:45px;right:-25px}.page-control{justify-content:space-between;align-items:center;height:67px;display:flex}.page-control button{color:var(--ink);background:#fff;border:0;border-radius:12px;padding:10px 16px}.page-control span{color:#687581;font-size:12px}.local-pdf{background:#fff;border:0;width:min(100%,1000px);height:calc(100vh - 180px);min-height:620px;margin:0 auto;display:block;box-shadow:0 12px 35px #23324026}.simple-heading{padding:28px 0 24px}.grant-list{gap:12px;display:grid}.grant-list article{background:#fff;border:1px solid #e3e7ea;border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.grant-list article>div{gap:5px;display:grid}.grant-list small{color:#84909a}.grant-status{color:#317565;margin-top:5px;font-size:10px}.grant-status i{background:#42a78e;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.staff-hero{color:#fff;background:#174f63;border-radius:23px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:24px;display:flex;box-shadow:0 18px 35px #174f6329}.staff-hero h1{margin:8px 0 6px;font:400 28px/1.2 ZCOOL XiaoWei,serif}.staff-hero p{color:#ffffffa6;margin:0;font-size:11px}.staff-hero button{color:#174f63;background:#fff;border:0;border-radius:11px;align-items:center;gap:6px;height:40px;padding:0 14px;font-size:10px;font-weight:700;display:flex}.staff-hero button svg{width:16px}.staff-form,.staff-edit{background:#fff;border:1px solid #dfe5e8;border-radius:18px;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;padding:18px;display:grid}.staff-form label,.staff-edit label{color:#61727f;gap:6px;font-size:10px;display:grid}.staff-form input,.staff-edit input{height:39px;font:inherit;border:1px solid #d4dde1;border-radius:9px;padding:0 10px}.staff-form fieldset{border:1px solid #d9e1e4;border-radius:10px;flex-wrap:wrap;grid-column:1/-1;gap:8px 18px;padding:11px;display:flex}.staff-form fieldset label,.staff-edit>label{align-items:center;gap:6px;display:flex}.staff-form fieldset input,.staff-edit>label input{width:14px;height:14px}.staff-form>button{color:#fff;background:#ef762f;border:0;border-radius:10px;grid-column:1/-1;height:40px;font-weight:700}.staff-list{gap:12px;display:grid}.staff-list>.section-heading{margin-bottom:3px}.staff-list>.section-heading>small{color:#81909a}.staff-list article{background:#fff;border:1px solid #e0e6e9;border-radius:17px;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:16px;display:grid}.staff-list article>.mini-avatar{background:#2f7180}.staff-list article>div:nth-child(2){gap:3px;display:grid}.staff-list article small{color:#87939c}.staff-list article p{color:#5f7482;grid-column:1/-1;align-items:center;gap:5px;margin:5px 0 0;font-size:9px;display:flex}.staff-list article p svg{width:13px}.staff-active,.staff-inactive{border-radius:999px;align-self:start;padding:4px 7px;font-size:8px}.staff-active{color:#347664;background:#e8f3ef}.staff-inactive{color:#a75842;background:#f8eae5}.staff-actions{grid-column:2/-1;gap:7px;display:flex!important}.staff-actions button,.staff-edit button{color:#315b79;background:#fff;border:1px solid #d5dee2;border-radius:8px;height:30px;padding:0 10px;font-size:9px}.staff-edit{grid-template-columns:1fr;box-shadow:0 15px 40px #19324617}.staff-edit h2{margin:0 0 4px;font-size:16px}.staff-edit>div{justify-content:flex-end;gap:8px;display:flex}.staff-edit>div button:last-child{color:#fff;background:#174f63;border:0}.bottom-nav{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(100%,470px);height:78px;padding-bottom:env(safe-area-inset-bottom);background:#fffdf8f2;border-top:1px solid #e6e9eb;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#99a2ac;background:0 0;border:0;flex:1;align-content:center;justify-items:center;gap:4px;font-size:10px;display:grid}.bottom-nav svg{width:20px}.bottom-nav .active{color:var(--orange);font-weight:700}button:focus-visible{outline-offset:3px;outline:3px solid #ef762f59}@media (prefers-reduced-motion:no-preference){.pass-card{transition:background .35s,transform .2s}.verify-button:active{transform:translate(3px)}}@media (width>=800px){body{background:#eef2f4}.shell{background:#f8faf9;width:100%;max-width:none;min-height:100vh;margin:0;padding:0 54px 60px 244px;overflow:visible}.topbar{border-bottom:1px solid #e5e9ea;height:92px;margin-bottom:30px}.topbar .brand{font-size:17px}.topbar .brand span{font-size:29px}.avatar{width:42px;height:42px}.pass-card{border-radius:24px;max-width:none;min-height:230px;padding:30px 34px}.pass-card h1{margin:27px 0 9px;font-size:31px}.pass-card .pass-rule{margin:22px 0 11px}.pass-card .verify-button{max-width:390px}.steps{max-width:600px;margin:28px 4px 6px}.course-section{margin-top:38px}.course-list{grid-template-columns:repeat(3,minmax(230px,1fr));gap:16px}.course{min-height:92px;padding:17px}.locked-note{text-align:left}.bottom-nav{z-index:10;color:#fff;background:#123453;border:0;border-radius:0;flex-direction:column;justify-content:center;gap:8px;width:190px;height:100vh;padding:150px 18px 18px;position:fixed;top:0;bottom:auto;left:0;transform:none}.bottom-nav:before{content:"老师工作台";color:#fff;font:400 23px/1.2 ZCOOL XiaoWei,serif;position:absolute;top:42px;left:25px}.bottom-nav:after{content:"上妈在线课堂";color:#ffffff73;letter-spacing:.12em;font-size:10px;position:absolute;top:76px;left:25px}.bottom-nav button{color:#ffffff94;border-radius:12px;flex:0 0 52px;grid-template-columns:22px 1fr;align-content:center;place-items:center start;gap:11px;padding:0 14px;font-size:12px}.bottom-nav .active{color:#fff;box-shadow:inset 3px 0 var(--orange);background:#ffffff1c}.course-hero,.unit-list{max-width:1020px}.unit>button{grid-template-columns:42px 1fr 20px}.viewer{padding-left:244px;padding-right:54px}.viewer .slide-page{width:min(900px,75vw);min-height:600px;margin:0 auto}.viewer .page-control{width:min(900px,75vw);margin:auto}.simple-heading,.grant-list{max-width:1050px}.grant-list{grid-template-columns:repeat(3,1fr)}.verify-intro{max-width:940px;padding-top:4px}.verify-intro h1{font-size:34px}.staff-hero,.staff-list,.staff-form,.staff-edit{max-width:1050px}.staff-list{grid-template-columns:repeat(2,minmax(280px,1fr))}.staff-list>.section-heading,.staff-list>.empty-row{grid-column:1/-1}}@media (width<=799px){.desktop-verify{grid-template-columns:1fr}.qr-area{min-height:390px;padding:30px}.verify-guide{padding:32px 25px}.fake-qr{width:205px;height:205px}.staff-hero{flex-direction:column;align-items:flex-start}.staff-form{grid-template-columns:1fr}.staff-form fieldset,.staff-form>button{grid-column:1}}.admin-shell{color:#172c45;background:#eef2f4;grid-template-columns:236px 1fr;min-height:100vh;display:grid}.admin-sidebar{color:#fff;background:#123453;flex-direction:column;height:100vh;padding:30px 20px 22px;display:flex;position:sticky;top:0}.admin-brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:0 8px 32px;display:flex}.admin-brand>span{background:var(--orange);border-radius:13px;place-items:center;width:43px;height:43px;font:21px/1 ZCOOL XiaoWei,serif;display:grid}.admin-brand div{gap:3px;display:grid}.admin-brand strong{font-size:15px}.admin-brand small{opacity:.5;letter-spacing:.08em;font-size:10px}.admin-sidebar nav{gap:6px;padding-top:25px;display:grid}.admin-sidebar nav button,.exit-admin{color:#ffffff9e;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;min-height:44px;padding:0 13px;font-size:13px;display:flex}.admin-sidebar nav button svg,.exit-admin svg{width:18px}.admin-sidebar nav button.active{color:#fff;box-shadow:inset 3px 0 var(--orange);background:#ffffff1c}.exit-admin{border-top:1px solid #ffffff1a;border-radius:0;margin-top:auto;padding-top:20px}.admin-main{min-width:0;padding:32px clamp(24px,4vw,58px) 60px}.admin-top{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.admin-top h1{margin:6px 0 0;font:400 30px/1 ZCOOL XiaoWei,serif}.admin-account{color:#72808c;align-items:center;gap:10px;font-size:11px;display:flex}.admin-account b{color:#fff;background:#315f82;border-radius:50%;place-items:center;width:35px;height:35px;display:grid}.admin-hero{color:#fff;background:#174f63;border-radius:25px;justify-content:space-between;align-items:center;min-height:218px;padding:36px 42px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px #1546572b}.admin-hero:after{content:"";border:55px solid #ffffff09;border-radius:50%;width:300px;height:300px;position:absolute;right:-70px}.admin-hero p{color:#b8d6d5;margin:0 0 8px;font-size:13px}.admin-hero strong{font:400 64px/1 ZCOOL XiaoWei,serif;display:block}.admin-hero span{color:#b8d6d5;font-size:12px}.pulse-map{z-index:1;border:1px solid #ffffff21;border-radius:70% 42% 65% 48%;width:220px;height:120px;position:relative}.pulse-map i{background:var(--orange);border:3px solid #ffd2b7;border-radius:50%;width:11px;height:11px;position:absolute;box-shadow:0 0 0 8px #ef762f21}.pulse-map i:first-child{top:38px;left:40px}.pulse-map i:nth-child(2){top:28px;right:55px}.pulse-map i:nth-child(3){bottom:25px;left:103px}.pulse-map span{color:#b8d6d5;position:absolute;bottom:-25px;right:8px}.metric-row{grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0;display:grid}.metric-row article{background:#fff;border:1px solid #e3e8eb;border-radius:17px;align-items:center;gap:13px;min-height:105px;padding:18px;display:flex}.metric-row svg{color:#326889;background:#e9f0f4;border-radius:12px;width:38px;height:38px;padding:9px}.metric-row span{gap:3px;display:grid}.metric-row strong{font-size:23px}.metric-row small{color:#7d8992}.metric-row em{color:#4a8a79;margin-left:auto;font-size:9px;font-style:normal}.admin-grid{grid-template-columns:1.15fr .85fr;gap:18px;display:grid}.admin-card{background:#fff;border:1px solid #e0e6e9;border-radius:19px;padding:22px}.card-title,.list-toolbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.card-title h2,.list-toolbar h2{margin:5px 0 0;font-size:16px}.card-title button,.list-toolbar>button:not(.primary-action){color:#677784;background:0 0;border:0;font-size:11px}.campus-bar{margin:18px 0}.campus-bar>div{justify-content:space-between;font-size:11px;display:flex}.campus-bar span{color:#7d8992}.campus-bar>i{background:#e9eef0;border-radius:10px;height:7px;margin-top:9px;display:block;overflow:hidden}.campus-bar b{background:#ef7d3c;border-radius:10px;height:100%;display:block}.recent-list{gap:14px;display:grid}.recent-list>div{grid-template-columns:34px 1fr auto;align-items:center;gap:10px;display:grid}.recent-list p{gap:3px;margin:0;display:grid}.recent-list strong{font-size:11px}.recent-list small,.recent-list time{color:#84909a;font-size:9px}.mini-avatar{color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-style:normal;display:grid}.mini-avatar.a0{background:#e37a43}.mini-avatar.a1{background:#477da1}.mini-avatar.a2{background:#4a8b7e}.mini-avatar.a3{background:#8471a3}.wide-card{min-height:530px}.list-toolbar.standalone{margin-bottom:20px}.list-toolbar p{color:#82909a;margin:4px 0 0;font-size:11px}.primary-action{color:#fff;background:#ef762f;border:0;border-radius:11px;align-items:center;gap:7px;min-height:39px;padding:0 15px;font-size:11px;font-weight:700;display:flex}.primary-action svg{width:16px}.search-box{border:1px solid #dae1e5;border-radius:11px;align-items:center;gap:8px;width:min(370px,55%);height:40px;padding:0 13px;display:flex}.search-box svg{color:#87939c;width:16px}.search-box input{width:100%;font:inherit;border:0;outline:0;font-size:11px}.data-table{overflow-x:auto}.table-head,.table-row{grid-template-columns:1.4fr 1.2fr .7fr .9fr .6fr;align-items:center;gap:15px;min-width:720px;padding:12px 8px;display:grid}.table-head{color:#87939c;border-bottom:1px solid #dfe5e8;font-size:10px}.table-row{border-bottom:1px solid #edf0f2;font-size:11px}.person-cell{align-items:center;gap:10px;display:flex}.person-cell i{gap:2px;font-style:normal;display:grid}.person-cell small{color:#89949c}.status-ok{color:#327765}.status-ok i,.status-live i{background:#49a98f;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.campus-cards,.admin-course-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px;display:grid}.campus-cards article,.admin-course-grid article{background:#fff;border:1px solid #dfe5e8;border-radius:19px;padding:22px;position:relative}.campus-pin{color:#e87335;background:#fff0e7;border-radius:14px;place-items:center;width:45px;height:45px;margin-bottom:25px;display:grid}.status-live{color:#438171;font-size:9px;position:absolute;top:20px;right:17px}.campus-cards h2{margin:5px 0;font-size:16px}.campus-cards p{color:#84909a;margin:0;font-size:10px}.campus-cards dl{border-block:1px solid #edf0f2;grid-template-columns:1fr 1fr;margin:22px 0 16px;padding:15px 0;display:grid}.campus-cards dl div{gap:4px;display:grid}.campus-cards dt{color:#8a959e;font-size:9px}.campus-cards dd{margin:0;font-size:13px;font-weight:700}.campus-cards article>button{color:#315f82;background:#eaf1f5;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;height:38px;font-size:10px;font-weight:700;display:flex}.campus-cards button svg{width:15px}.admin-course-grid article{grid-template-columns:65px 1fr;align-content:start;gap:16px;min-height:230px;display:grid}.admin-course-grid .course-mark{width:65px;height:75px}.admin-course-grid h2{margin:5px 0;font-size:17px}.admin-course-grid p,.admin-course-grid small{color:#83909a;font-size:9px}.publish-state{color:#3b7a69;font-size:9px;position:absolute;top:18px;right:16px}.admin-course-grid button{color:#506575;background:#fff;border:1px solid #dfe5e8;border-radius:10px;grid-column:1/-1;justify-content:space-between;align-items:center;height:38px;margin-top:23px;padding:0 13px;font-size:10px;display:flex}.admin-course-grid button svg{width:15px}.grant-summary{color:#fff;background:#174f63;border-radius:16px;align-items:center;gap:32px;min-height:130px;margin-bottom:20px;padding:23px;display:flex}.grant-summary>svg{background:#ffffff1f;border-radius:13px;width:42px;height:42px;padding:9px}.grant-summary div{gap:3px;display:grid}.grant-summary strong{font-size:24px}.grant-summary span{color:#b9d3d1;font-size:10px}.grant-summary+.admin-card{border:0;min-height:0;padding:0}.timeline{display:grid}.timeline>div{border-bottom:1px solid #edf0f2;grid-template-columns:10px 90px 90px 1fr 70px;align-items:center;gap:12px;padding:16px 5px;font-size:10px;display:grid}.timeline>div>i{background:#48a58c;border-radius:50%;width:8px;height:8px}.timeline>div>i.warn{background:#e97438}.timeline time{color:#89949d}.timeline em{color:#408170;font-style:normal}.timeline .warn~em{color:#d56631}.account-tabs{border-bottom:1px solid #e3e8eb;gap:4px;margin-bottom:20px;display:flex}.account-tabs button{color:#7d8992;background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 18px;font-size:11px}.account-tabs button.active{border-color:var(--orange);color:#183a57;font-weight:700}.inline-form,.grant-form{background:#f7f9f9;border:1px solid #dfe6e9;border-radius:15px;grid-template-columns:repeat(4,1fr) auto;align-items:end;gap:13px;margin:0 0 22px;padding:19px;display:grid}.inline-form label,.grant-form label,.upload-fields label{color:#65747f;gap:7px;font-size:10px;display:grid}.inline-form input,.inline-form select,.grant-form input,.grant-form select,.upload-fields select,.upload-fields input{color:#263d51;width:100%;height:38px;font:inherit;background:#fff;border:1px solid #d6dee2;border-radius:9px;padding:0 10px;font-size:10px}.inline-form>button,.grant-form>button{color:#fff;background:#174f63;border:0;border-radius:9px;height:38px;padding:0 16px;font-size:10px;font-weight:700}.campus-form{grid-template-columns:1fr 1.3fr .7fr .7fr auto}.account-form{grid-template-columns:repeat(3,minmax(150px,1fr));align-items:end}.account-form fieldset{background:#fff;border:1px solid #d6dee2;border-radius:9px;flex-wrap:wrap;gap:5px 12px;min-height:72px;padding:8px 10px;display:flex}.account-form legend{color:#65747f;font-size:9px}.account-identity{gap:3px;font-style:normal;display:grid}.account-identity small{color:#89949c}.table-row>span:nth-child(2)>.secondary-action{min-height:28px;margin-top:5px;padding:0 9px;font-size:8px}.profile-editor{grid-template-columns:1fr 1fr 1.4fr auto}.profile-editor h2{margin:0;font-size:15px}.admin-users{gap:9px;display:grid}.admin-users article{border-bottom:1px solid #edf0f2;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.admin-users article>div{gap:4px;display:grid}.admin-users small{color:#84909a}.admin-users em{color:#347563;font-size:10px;font-style:normal}.upload-panel{background:#fff;border:1px solid #dce4e7;border-radius:18px;margin-bottom:22px;padding:22px}.upload-fields{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.drop-zone{color:#71818c;background:#f7fafa;border:1px dashed #aebdc6;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:165px;display:flex;position:relative}.drop-zone svg{color:#ef762f;width:32px}.drop-zone strong{color:#29465e;font-size:12px}.drop-zone span{font-size:9px}.drop-zone input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-actions{justify-content:flex-end;gap:9px;margin-top:15px;display:flex}.upload-actions button{background:#fff;border:1px solid #d6dfe3;border-radius:9px;height:38px;padding:0 17px;font-size:10px}.upload-actions .primary-action{color:#fff;background:#ef762f;border:0}.grant-form{grid-template-columns:1fr 1.6fr .8fr .8fr 1fr auto}.grant-form fieldset{background:#fff;border:1px solid #d6dee2;border-radius:9px;flex-wrap:wrap;gap:5px 12px;height:72px;padding:8px 10px;display:flex}.grant-form legend{color:#65747f;font-size:9px}.check-course{grid-template-columns:auto 1fr;align-items:center;color:#30495e!important;gap:4px!important;display:flex!important}.check-course input{width:13px;height:13px}.permission-list{overflow-x:auto}.permission-head,.permission-row{grid-template-columns:1fr 2.2fr .9fr .9fr .6fr;align-items:center;gap:12px;min-width:840px;padding:13px 8px;display:grid}.permission-head{color:#84909a;border-bottom:1px solid #dfe5e8;font-size:9px}.permission-row{border-bottom:1px solid #edf0f2;font-size:10px}.course-rights{color:#315f82;font-weight:600;line-height:1.6}@media (width<=900px){.admin-shell{grid-template-columns:72px 1fr}.admin-sidebar{padding:22px 10px}.admin-brand{padding:0 4px 22px}.admin-brand>span{width:43px}.admin-brand div,.admin-sidebar nav button:not(.active){font-size:0}.admin-sidebar nav button{justify-content:center;padding:0}.admin-sidebar nav button.active{font-size:0}.exit-admin{justify-content:center;font-size:0}.admin-main{padding:24px 18px 50px}.admin-grid,.metric-row,.campus-cards,.admin-course-grid{grid-template-columns:1fr}.pulse-map{display:none}}@media (width<=1150px){.inline-form,.campus-form,.grant-form{grid-template-columns:repeat(2,1fr)}.inline-form>button,.grant-form>button{grid-column:1/-1}.upload-fields{grid-template-columns:1fr}}.portal-shell{color:#17314c;background:#edf2f4;min-height:100vh;padding:64px clamp(24px,8vw,120px)}.portal-brand{align-items:center;gap:15px;margin-bottom:70px;display:flex}.portal-brand>span{color:#fff;background:var(--orange);border-radius:17px;place-items:center;width:55px;height:55px;font:26px/1 ZCOOL XiaoWei,serif;display:grid}.portal-brand>div{gap:4px;display:grid}.portal-brand strong{font-size:18px}.portal-brand small{color:#82909a;font-size:11px}.portal-options{grid-template-columns:repeat(2,1fr);gap:24px;max-width:1050px;display:grid}.portal-options>a{min-height:410px;color:inherit;background:#fff;border:1px solid #dbe3e7;border-radius:26px;flex-direction:column;padding:42px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 18px 48px #20364a14}.portal-options>a:hover{transform:translateY(-5px);box-shadow:0 25px 55px #20364a24}.portal-icon{border-radius:21px;place-items:center;width:70px;height:70px;margin-bottom:48px;display:grid}.portal-icon svg{width:31px;height:31px}.portal-icon.teacher{color:#d9652d;background:#fff0e7}.portal-icon.manager{color:#2f6c64;background:#e6f2ef}.portal-options h1{margin:9px 0 12px;font:400 31px/1.2 ZCOOL XiaoWei,serif}.portal-options p{color:#71808c;max-width:380px;margin:0;font-size:13px;line-height:1.8}.portal-options>a>strong{color:#244c6b;border-top:1px solid #e7ebed;justify-content:space-between;align-items:center;margin-top:auto;padding-top:34px;font-size:13px;display:flex}.portal-options>a>strong svg{width:18px}@media (width<=750px){.portal-shell{padding:35px 20px}.portal-brand{margin-bottom:35px}.portal-options{grid-template-columns:1fr}.portal-options>a{min-height:330px;padding:30px}.portal-icon{margin-bottom:30px}}.toolbar-actions{gap:9px;display:flex}.secondary-action{color:#315b79;background:#fff;border:1px solid #cfd9de;border-radius:11px;align-items:center;gap:7px;min-height:39px;padding:0 15px;font-size:11px;font-weight:700;display:flex}.secondary-action svg{width:16px}.folder-panel{background:#f6f9f9;border:1px solid #dce4e7;border-radius:17px;margin-bottom:20px;padding:20px}.folder-panel>div:first-child{align-items:center;gap:11px;margin-bottom:16px;display:flex}.folder-panel>div:first-child>svg{color:#e46d31;background:#fff0e7;border-radius:11px;width:38px;height:38px;padding:9px}.folder-panel>div:first-child span{gap:3px;display:grid}.folder-panel small{color:#82909a;font-size:9px}.folder-fields{grid-template-columns:1.2fr 1.5fr 1fr .5fr auto;align-items:end;gap:11px;display:grid}.folder-fields label{color:#62727e;gap:6px;font-size:9px;display:grid}.folder-fields input,.folder-fields select{height:38px;font:inherit;background:#fff;border:1px solid #d4dde1;border-radius:9px;padding:0 9px;font-size:10px}.folder-fields button{color:#fff;background:#174f63;border:0;border-radius:9px;height:38px;padding:0 15px;font-size:10px;font-weight:700}.directory-view{background:#fff;border:1px solid #dfe5e8;border-radius:17px;margin-bottom:22px;overflow:hidden}.directory-head{border-bottom:1px solid #e7ebed;align-items:center;gap:10px;padding:15px 18px;display:flex}.directory-head>svg{color:#e67337}.directory-head span{gap:3px;display:grid}.directory-head small{color:#89949c;font-size:9px}.directory-tree{grid-template-columns:repeat(3,1fr);gap:0;padding:8px;display:grid}.directory-tree>div{border-radius:9px;grid-template-columns:25px 1fr 28px;align-items:center;min-height:48px;padding:9px 12px;display:grid}.directory-tree>div:hover{background:#f3f6f7}.directory-tree svg{color:#e69155;width:18px}.directory-tree small{color:#8b969e;grid-column:2;font-size:8px}.directory-tree .child{padding-left:30px}.delete-folder{color:#a3adb4;background:0 0;border:0;border-radius:8px;grid-area:1/3/3;place-items:center;width:28px;height:28px;display:grid}.delete-folder svg{width:14px;color:inherit}.delete-folder:hover{color:#c9503c;background:#fbecea}.login-shell{background:#f7f9f8;grid-template-columns:minmax(420px,45%) 1fr;min-height:100vh;display:grid}.login-story{color:#fff;background:#123f61;flex-direction:column;padding:54px clamp(40px,6vw,90px);display:flex;position:relative;overflow:hidden}.login-story:after{content:"";border:80px solid #ffffff09;border-radius:50%;width:480px;height:480px;position:absolute;bottom:-210px;right:-230px}.login-logo{align-items:center;gap:12px;display:flex}.login-logo>span{background:var(--orange);border-radius:15px;place-items:center;width:50px;height:50px;font:23px/1 ZCOOL XiaoWei,serif;display:grid}.login-logo>div{gap:3px;display:grid}.login-logo strong{font-size:16px}.login-logo small{color:#ffffff75;letter-spacing:.13em;font-size:9px}.login-message{margin:auto 0}.login-message .eyebrow{color:#f3a06e}.login-message h1{margin:18px 0;font:400 clamp(38px,4vw,58px)/1.2 ZCOOL XiaoWei,serif}.login-message p{color:#ffffff9e;font-size:13px}.login-books{z-index:1;align-items:end;gap:9px;display:flex;position:relative}.login-books i{background:#e8793e;border-radius:8px 4px 4px 8px;place-items:center;width:54px;height:70px;font:22px/1 ZCOOL XiaoWei,serif;display:grid;box-shadow:inset -6px 0 #00000014}.login-books i:nth-child(2){background:#397597;height:82px}.login-books i:nth-child(3){background:#4a897d;height:62px}.login-panel{flex-direction:column;padding:45px clamp(40px,10vw,160px);display:flex}.back-portal{color:#71808b;align-items:center;gap:7px;font-size:11px;text-decoration:none;display:flex}.back-portal svg{width:16px}.login-box{width:min(430px,100%);margin:auto}.login-box h2{margin:10px 0 8px;font:400 34px/1.2 ZCOOL XiaoWei,serif}.login-box>p{color:#7c8993;margin:0;font-size:12px}.login-tabs{border-bottom:1px solid #dfe5e8;margin:35px 0 25px;display:flex}.login-tabs button{color:#87929b;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 17px;font-size:11px}.login-tabs button.active{border-color:var(--orange);color:#193a56;font-weight:700}.phone-login{gap:18px;display:grid}.phone-login label{color:#566a79;gap:7px;font-size:10px;display:grid}.phone-field,.code-field{background:#fff;border:1px solid #d6dee2;border-radius:11px;align-items:center;height:46px;display:flex}.phone-field span{color:#667785;border-right:1px solid #e2e6e8;padding:0 13px}.phone-field input,.code-field input{height:100%;font:inherit;border:0;outline:0;flex:1;padding:0 13px;font-size:11px}.code-field button{color:#d9662e;background:#fff0e7;border:0;border-radius:8px;height:30px;margin-right:8px;padding:0 12px;font-size:9px}.login-action{color:#fff;background:#ef762f;border:0;border-radius:12px;height:48px;font-weight:700}.phone-login>small{text-align:center;color:#9aa3aa}.wechat-login{justify-items:center;gap:12px;display:grid}.wechat-login .fake-qr{width:190px;height:190px;margin:-15px;transform:scale(.8)}.wechat-login small{color:#87939c}.wechat-login>button{color:#fff;background:#174f63;border:0;border-radius:9px;height:38px;padding:0 16px}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh;padding:30px}.folder-fields{grid-template-columns:1fr 1fr}.folder-fields button{grid-column:1/-1}.directory-tree,.teacher-context{grid-template-columns:1fr}.context-facts{justify-items:start}}.weboffice-wrap{background:#f5f3ee;flex:1;min-height:620px;position:relative}.weboffice-zone,.weboffice-zone iframe{border:0;min-height:620px;width:100%!important;height:100%!important}.viewer-status{color:#5d594f;background:#f5f3ee;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.viewer-status.preview-limit{text-align:center;color:#9a4f26;background:#fff8f2;padding:32px}.viewer-status.preview-limit>div{background:#fff;border:1px solid #f0cdb8;border-radius:18px;max-width:620px;padding:34px}.viewer-status.preview-limit strong{font-size:22px;display:block}.viewer-status.preview-limit small{color:#75665d;margin-top:14px;font-size:14px;font-weight:500;line-height:1.7;display:block}.phone-login>label>input{box-sizing:border-box;width:100%;height:46px;font:inherit;background:#fff;border:1px solid #d6dee2;border-radius:11px;outline:0;padding:0 13px;font-size:11px}.admin-course-list{background:#fff;border:1px solid #dfe5e8;border-radius:17px;margin-bottom:24px;overflow:hidden}.course-list-head,.course-list-row{grid-template-columns:minmax(280px,2fr) .6fr .6fr .8fr 1.1fr;align-items:center;gap:14px;padding:13px 18px;display:grid}.course-list-head{color:#7b8993;background:#f3f6f7;font-size:9px;font-weight:700}.course-list-row{cursor:pointer;border-top:1px solid #edf0f1;min-height:66px}.course-list-row:hover,.course-list-row.selected{background:#fff7f1}.course-list-row .course-mark{width:40px;height:40px;font-size:14px}.course-list-row .toolbar-actions{justify-content:flex-end}.course-list-row .delete-folder{grid-area:auto;position:static}.courseware-table{padding:0 16px 12px}.courseware-head,.courseware-row{grid-template-columns:minmax(260px,2fr) 1.2fr .6fr .8fr 42px;align-items:center;gap:12px;padding:11px 8px;display:grid}.courseware-head{color:#7d8992;font-size:9px;font-weight:700}.courseware-row{color:#536673;border-top:1px solid #edf0f1;font-size:10px}.courseware-row>span:first-child{color:#233f55;align-items:center;gap:9px;display:flex}.courseware-row>span:first-child svg{color:#e67337;width:17px}.courseware-row .delete-folder{grid-area:auto;position:static}@media (width<=900px){.course-list-head{display:none}.course-list-row{grid-template-columns:1fr 1fr}.course-list-row>span:first-child{grid-column:1/-1}.courseware-head{display:none}.courseware-row{grid-template-columns:1fr auto}.courseware-row>span:first-child{grid-column:1/-1}}.upload-progress{color:#45606f;background:#f3f7f7;border-radius:12px;grid-template-columns:1fr 46px;align-items:center;gap:7px;margin:16px 0;padding:13px;font-size:10px;display:grid}.upload-progress>div{background:#dce5e7;border-radius:999px;height:9px;overflow:hidden}.upload-progress i{border-radius:inherit;background:linear-gradient(90deg,#ef762f,#f3a66f);height:100%;transition:width .2s;display:block}.upload-progress>span{text-align:right;font-weight:800}.upload-progress>strong{grid-column:1/-1;font-size:10px}.draft-status{color:#c16b2f;font-weight:700}.draft-status small,.status-ok small{color:#87949d;font-weight:400}.courseware-row>.toolbar-actions{justify-content:flex-end}.courseware-row>.toolbar-actions .primary-action{min-height:32px;padding:0 11px;font-size:9px}.courseware-head,.courseware-row{grid-template-columns:minmax(260px,2fr) 1.2fr .6fr .8fr minmax(130px,1fr)}
