:root{--bg:#f3f5fa;--panel:#fff;--ink:#1d2942;--muted:#778198;--line:#e5e9f1;--primary:#4e5bd4;--primary-dark:#3844b5;--teal:#0b9b86;--coral:#d96859;--amber:#d89b35;--shadow:0 16px 45px #25325214}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.app-shell{min-height:100vh}.page{width:min(1440px,100vw - 64px);margin:0 auto;padding:42px 0 70px}.overline{color:var(--primary);letter-spacing:.16em;margin:0 0 8px;font-size:10px;font-weight:800}.overline.light{color:#abb6ff}.primary-button,.secondary-button{border-radius:10px;min-height:42px;padding:0 17px;font-size:12px;font-weight:700}.primary-button{border:1px solid var(--primary);color:#fff;background:var(--primary);box-shadow:0 9px 22px #4e5bd42e}.primary-button:hover{background:var(--primary-dark)}.secondary-button{color:#4f5b72;background:#fff;border:1px solid #dce1ec}.secondary-button:hover{color:var(--ink);border-color:#bfc7d8}.compact{min-height:36px;padding:0 13px;font-size:11px}.login-page{background:#f7f8fc;grid-template-columns:minmax(430px,.8fr) minmax(700px,1.2fr);min-height:100vh;display:grid}.login-intro{color:#fff;background:#26336f;flex-direction:column;min-height:100vh;padding:54px clamp(42px,5vw,82px);display:flex;position:relative;overflow:hidden}.login-intro:before,.login-intro:after{content:"";border:1px solid #ffffff17;border-radius:50%;position:absolute}.login-intro:before{width:480px;height:480px;top:-150px;right:-230px;box-shadow:0 0 0 90px #ffffff06,0 0 0 180px #ffffff05}.login-intro:after{width:240px;height:240px;bottom:-80px;left:-120px}.login-brand{z-index:1;align-items:center;gap:13px;display:flex;position:relative}.login-brand>span{color:#26336f;background:#dbe1ff;border-radius:13px;place-items:center;width:44px;height:44px;font-size:19px;font-weight:900;display:grid}.login-brand b,.login-brand small{display:block}.login-brand b{font-size:17px}.login-brand small{color:#aab3df;letter-spacing:.12em;margin-top:5px;font-size:8px}.login-copy{z-index:1;max-width:620px;margin:auto 0;position:relative}.login-copy h1{letter-spacing:-.04em;margin:18px 0 22px;font-size:clamp(43px,4.3vw,70px);line-height:1.16}.login-copy>p:last-child{color:#c4cae6;max-width:560px;margin:0;font-size:15px;line-height:1.95}.login-proof{z-index:1;border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f;grid-template-columns:repeat(3,1fr);margin-top:35px;padding:24px 0;display:grid;position:relative}.login-proof div+div{border-left:1px solid #ffffff1c;padding-left:26px}.login-proof b,.login-proof span{display:block}.login-proof b{font-size:24px}.login-proof span{color:#abb4da;margin-top:5px;font-size:10px}.login-footnote{z-index:1;color:#9099c2;margin:26px 0 0;font-size:9px;position:relative}.login-area{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:48px clamp(38px,6vw,100px);display:flex}.login-heading{margin:0 0 28px}.login-heading,.single-login{width:min(620px,100%)}.login-heading>span{color:var(--primary);font-size:11px;font-weight:800}.login-heading h2{letter-spacing:-.03em;margin:10px 0 8px;font-size:34px}.login-heading p{color:var(--muted);margin:0;font-size:13px}.login-panels{grid-template-columns:repeat(2,minmax(290px,1fr));gap:18px;display:grid}.login-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:25px;position:relative;overflow:hidden}.login-panel:before{content:"";background:var(--primary);height:4px;position:absolute;inset:0 0 auto}.login-panel.school_admin:before{background:var(--teal)}.login-panel.site_admin:before{background:var(--coral)}.single-login{padding:30px}.role-selector-label{color:#59647a;margin-bottom:9px;font-size:11px;font-weight:800}.role-selector{background:#f6f7fa;border:1px solid #e2e6ef;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:26px;padding:5px;display:grid}.role-selector button{color:#707a8e;background:0 0;border:1px solid #0000;border-radius:8px;min-height:38px;padding:0 8px;font-size:11px;font-weight:700}.role-selector button.active{color:var(--primary);background:#fff;border-color:#d9def6;box-shadow:0 5px 14px #2a375b14}.school_admin .role-selector button.active{color:var(--teal)}.site_admin .role-selector button.active{color:var(--coral)}.role-head{align-items:center;gap:13px;margin-bottom:24px;display:flex}.role-head>span{width:44px;height:44px;color:var(--primary);background:#eef0ff;border-radius:12px;place-items:center;font-size:20px;font-weight:900;display:grid}.school_admin .role-head>span{color:var(--teal);background:#eaf8f5}.site_admin .role-head>span{color:var(--coral);background:#fff0ed}.role-head h3{margin:0;font-size:18px}.role-head p{color:var(--muted);margin:5px 0 0;font-size:10px}.login-panel>label{margin-top:14px;display:block}.login-panel>label>span{color:#59647a;margin-bottom:7px;font-size:10px;font-weight:700;display:block}.login-panel>label input{width:100%;height:43px;color:var(--ink);background:#fbfcfe;border:1px solid #dfe4ee;border-radius:9px;outline:none;padding:0 12px}.login-panel>label input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4e5bd417}.login-options{color:var(--muted);justify-content:space-between;align-items:center;margin:14px 0 20px;font-size:9px;display:flex}.login-options label{align-items:center;gap:6px;display:flex}.login-options button{color:var(--primary);background:0 0;border:0;font-size:9px}.login-submit{color:#fff;background:var(--primary);border:0;border-radius:10px;justify-content:space-between;align-items:center;width:100%;height:44px;padding:0 15px;font-size:11px;font-weight:800;display:flex}.school_admin .login-submit{background:var(--teal)}.site_admin .login-submit{background:var(--coral)}.topbar{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-bottom:1px solid #e7eaf1;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;padding:0 32px;display:grid;position:sticky;top:0;box-shadow:0 4px 18px #232e4c0a}.brand{color:inherit;text-align:left;background:0 0;border:0;justify-self:start;align-items:center;gap:10px;padding:0;display:flex}.brand>span{color:#fff;background:#29366e;border-radius:11px;place-items:center;width:38px;height:38px;font-size:16px;font-weight:900;display:grid}.brand b,.brand small{display:block}.brand b{font-size:14px}.brand small{color:#8c95a8;margin-top:3px;font-size:8px}.topbar nav{align-self:stretch;gap:6px;display:flex}.topbar nav button{color:#778198;background:0 0;border:0;min-width:102px;padding:0 14px;font-size:11px;font-weight:700;position:relative}.topbar nav button.active{color:var(--primary)}.topbar nav button.active:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:25%;right:25%}.account-box{justify-self:end;align-items:center;gap:10px;display:flex}.account-box>span{width:34px;height:34px;color:var(--primary);background:#eef0ff;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.account-box b,.account-box small{display:block}.account-box b{font-size:10px}.account-box small{color:#959dad;margin-top:3px;font-size:8px}.account-box button{color:#778198;background:#fff;border:1px solid #e0e4ec;border-radius:7px;margin-left:7px;padding:6px 9px;font-size:9px}.welcome-row,.simple-heading,.report-heading,.section-title,.panel-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.welcome-row h1,.simple-heading h1,.report-heading h1{letter-spacing:-.03em;margin:0;font-size:31px}.heading-emoji{margin-right:4px;font-size:.8em}.workspace-badge{color:var(--teal);background:#edf9f6;border:1px solid #bce3db;border-radius:99px;align-self:center;padding:10px 14px;font-size:11px;font-weight:800}.workspace-badge.site{color:var(--coral);background:#fff3f0;border-color:#f1c9c2}.welcome-row>div>p:last-child,.simple-heading>div>p:last-child,.report-heading>div>p:last-child{color:var(--muted);margin:9px 0 0;font-size:12px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin-top:30px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:16px;align-items:center;gap:15px;min-height:120px;padding:20px;display:flex;box-shadow:0 10px 30px #2633510d}.stat-card>span{width:48px;height:48px;color:var(--primary);background:#eef0ff;border-radius:13px;flex:0 0 48px;place-items:center;font-size:22px;font-weight:900;display:grid}.stat-card.teal>span{color:var(--teal);background:#e9f8f4}.stat-card.amber>span{color:var(--amber);background:#fff6e7}.stat-card.coral>span{color:var(--coral);background:#fff0ed}.stat-card strong,.stat-card b,.stat-card small{display:block}.stat-card strong{font-size:27px;line-height:1}.stat-card b{margin-top:7px;font-size:11px}.stat-card small{color:var(--muted);margin-top:5px;font-size:8px}.course-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;margin-top:24px;padding:24px}.panel-heading h2{margin:0;font-size:18px}.panel-heading p{color:var(--muted);margin:6px 0 0;font-size:10px}.course-tools{gap:8px;display:flex}.course-tools>button{color:#626d83;background:#fff;border:1px solid #dde2eb;border-radius:9px;min-width:62px;font-size:10px}.search-box{color:#9099ab;background:#fbfcfe;border:1px solid #dde2eb;border-radius:9px;align-items:center;gap:8px;width:250px;height:37px;padding:0 11px;display:flex}.search-box input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:10px}.course-list-head{color:#7f899d;background:#fafbfc;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5;grid-template-columns:minmax(330px,1.55fr) .5fr .8fr .35fr .65fr .5fr;gap:14px;margin:22px -24px 0;padding:12px 24px;font-size:12px;font-weight:700;display:grid}.course-list{margin-bottom:-10px}.course-row{color:#4f5b72;border-bottom:1px solid #edf0f5;grid-template-columns:52px minmax(240px,1.3fr) .5fr .8fr .35fr .65fr .5fr;align-items:center;gap:14px;min-height:92px;font-size:13px;display:grid}.course-row:last-child{border-bottom:0}.course-avatar{width:44px;height:44px;color:var(--primary);background:#eef0ff;border-radius:12px;place-items:center;font-size:20px;display:grid}.subject-数学{color:var(--teal);background:#e9f8f4}.subject-科学{color:var(--amber);background:#fff6e7}.course-name b,.course-name small{display:block}.course-name b{color:var(--ink);font-size:15px}.course-name small{color:#858fa3;margin-top:7px;font-size:11px}.course-status{align-items:center;gap:7px;display:flex}.course-status i{white-space:nowrap;border-radius:99px;padding:6px 8px;font-size:10px;font-style:normal}.course-status i.ready{color:var(--teal);background:#eaf8f5}.course-status i.processing{color:var(--amber);background:#fff6e6}.course-status i.draft{color:#7e8799;background:#f0f2f6}.course-status b{color:var(--ink);font-size:12px}.row-action{color:var(--primary);background:0 0;border:0;justify-self:end;padding:8px 0;font-size:12px;font-weight:800}.admin-management-grid,.site-admin-grid{grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr);gap:18px;margin-top:24px;display:grid}.site-admin-grid{grid-template-columns:minmax(330px,.7fr) minmax(0,1.5fr)}.management-panel,.quick-create-card,.account-opening-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px}.management-panel{padding:23px}.count-chip{color:var(--teal);background:#eaf8f5;border-radius:99px;padding:6px 10px;font-size:10px;font-weight:800}.management-list{border-top:1px solid #edf0f4;margin-top:18px}.management-list article{color:#5f6a80;border-bottom:1px solid #edf0f4;grid-template-columns:38px minmax(140px,1.1fr) .9fr .55fr .45fr auto;align-items:center;gap:12px;min-height:67px;font-size:11px;display:grid}.person-avatar{width:34px;height:34px;color:var(--primary);background:#eef0ff;border-radius:10px;place-items:center;font-size:12px;font-weight:900;display:grid}.management-list article b,.management-list article small{display:block}.management-list article b{color:var(--ink);font-size:12px}.management-list article small{color:#939bad;margin-top:4px;font-size:9px}.management-list article i,.platform-account-list i{color:var(--amber);background:#fff5e5;border-radius:99px;justify-self:start;padding:5px 7px;font-size:9px;font-style:normal}.management-list article i.active,.platform-account-list i.active{color:var(--teal);background:#e9f8f4}.management-list article button,.platform-account-list article>button{color:var(--primary);background:#fff;border:1px solid #dfe3eb;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:700}.quick-create-card,.account-opening-card{padding:24px}.quick-create-icon,.card-illustration{width:50px;height:50px;color:var(--primary);background:#eef0ff;border-radius:14px;place-items:center;margin-bottom:16px;font-size:24px;display:grid}.card-illustration{color:var(--coral);background:#fff0ed}.quick-create-card h2,.account-opening-card h2{margin:0;font-size:20px}.quick-create-card>div:nth-child(2)>p:last-child,.account-opening-card>div:nth-child(2)>p:last-child{color:var(--muted);margin:7px 0 17px;font-size:10px;line-height:1.6}.quick-create-card>label,.account-opening-card>label,.inline-fields label{margin-top:12px;display:block}.quick-create-card label>span,.account-opening-card label>span{color:#687389;margin-bottom:6px;font-size:10px;font-weight:700;display:block}.quick-create-card input,.quick-create-card select,.account-opening-card input,.account-opening-card select{width:100%;height:39px;color:var(--ink);background:#fbfcfe;border:1px solid #dfe4ed;border-radius:8px;padding:0 10px;font-size:11px}.school-picker{margin-top:12px}.school-picker-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.school-picker-head>span{color:#687389;font-size:10px;font-weight:700}.school-picker-head button{color:var(--primary);background:#eef0ff;border:0;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:800}.new-school-row{background:#f7f8fd;border:1px dashed #cfd5e5;border-radius:9px;grid-template-columns:1fr auto;gap:7px;margin-top:8px;padding:9px;display:grid}.new-school-row button{border:1px solid var(--primary);color:#fff;background:var(--primary);border-radius:7px;padding:0 10px;font-size:9px;font-weight:800}.inline-fields{grid-template-columns:1fr 1fr;gap:9px;display:grid}.quick-create-card>button,.account-opening-card>button{width:100%;margin-top:18px}.grouped-course-panel{margin-top:18px}.segmented-control{background:#f6f7fa;border:1px solid #e0e4ec;border-radius:9px;gap:4px;padding:4px;display:flex}.segmented-control button{color:#727c90;background:0 0;border:0;border-radius:6px;min-height:29px;padding:0 10px;font-size:9px;font-weight:700}.segmented-control button.active{color:var(--primary);background:#fff;box-shadow:0 4px 10px #26335114}.course-group+.course-group{border-top:1px solid #e8ebf1;margin-top:12px;padding-top:12px}.course-group-title{background:#f5f7fb;border-radius:9px;align-items:center;gap:8px;margin-top:18px;padding:9px 12px;display:flex}.course-group-title b{font-size:12px}.course-group-title small{color:var(--muted);font-size:9px}.course-group .course-list-head{margin-top:10px}.platform-account-panel .search-box{width:220px}.platform-account-head,.platform-account-list article{grid-template-columns:1.05fr 1fr .7fr .5fr .35fr;align-items:center;gap:12px;display:grid}.platform-account-head{color:#8b94a6;background:#fafbfc;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4;margin:18px -23px 0;padding:10px 23px;font-size:9px;font-weight:700}.platform-account-list article{color:#5b667c;border-bottom:1px solid #edf0f4;min-height:65px;font-size:10px}.platform-account-list article b,.platform-account-list article small{display:block}.platform-account-list article b{color:var(--ink);font-size:11px}.platform-account-list article small{color:#929bad;margin-top:4px;font-size:8px}.role-chip{color:var(--primary);background:#eef0ff;border-radius:7px;justify-self:start;padding:5px 7px;font-size:9px;font-weight:700}.school-course-table{border:1px solid #e7eaf1;border-radius:13px;margin-top:20px;overflow-x:auto}.school-course-head,.school-course-row{grid-template-columns:minmax(265px,1.45fr) .55fr .48fr .46fr .82fr .34fr .72fr .52fr;align-items:center;gap:11px;min-width:1120px;display:grid}.school-course-head{color:#727d92;background:#f7f8fb;min-height:62px;padding:8px 15px;font-size:11px;font-weight:800}.school-course-head label{min-width:0}.school-course-head label b{color:#727d92;margin-bottom:4px;font-size:10px;display:block}.school-course-head select{color:#48556d;background:#fff;border:1px solid #d7dce6;border-radius:7px;outline:none;width:100%;height:29px;padding:0 5px;font-size:10px;font-weight:700}.school-course-head select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4e5bd414}.school-course-row{color:#4f5b72;background:#fff;border-top:1px solid #edf0f4;min-height:86px;padding:10px 15px;font-size:12px}.school-course-row:hover{background:#fcfcff}.school-course-main{align-items:center;gap:12px;min-width:0;display:flex}.school-course-main .course-avatar{flex:0 0 44px}.school-course-empty{color:#8992a5;text-align:center;background:#fff;padding:34px 20px;font-size:12px}.upload-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:18px;margin-top:28px;display:grid}.upload-card,.upload-aside{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px}.upload-card{padding:26px}.step-title{align-items:center;gap:12px;display:flex}.step-title.second{margin-top:26px}.step-title>span{color:#fff;background:var(--primary);border-radius:9px;place-items:center;width:31px;height:31px;font-size:10px;font-weight:800;display:grid}.step-title h2{margin:0;font-size:16px}.step-title p{color:var(--muted);margin:5px 0 0;font-size:9px}.drop-zone{min-height:215px;color:var(--muted);text-align:center;cursor:pointer;background:#fafbfe;border:1px dashed #cbd2e1;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;margin-top:18px;display:flex}.drop-zone:hover,.drop-zone.has-file{border-color:var(--primary);background:#f6f7ff}.drop-zone input{opacity:0;pointer-events:none;position:absolute}.drop-zone>span{color:#fff;background:var(--primary);border-radius:14px;place-items:center;width:48px;height:48px;margin-bottom:13px;font-size:23px;display:grid}.drop-zone b{color:var(--ink);font-size:11px}.drop-zone small{color:#939cad;margin-top:7px;font-size:9px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.form-grid label>span{color:#626d82;margin-bottom:7px;font-size:9px;font-weight:700;display:block}.form-grid input,.form-grid select{width:100%;height:42px;color:var(--ink);background:#fbfcfe;border:1px solid #dfe4ed;border-radius:9px;padding:0 11px;font-size:10px}.upload-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.upload-aside{padding:27px}.upload-aside h2{margin:7px 0 25px;font-size:22px;line-height:1.4}.aside-step{gap:12px;margin-top:18px;display:flex}.aside-step>span{width:31px;height:31px;color:var(--primary);background:#eef0ff;border-radius:9px;flex:0 0 31px;place-items:center;font-size:8px;font-weight:800;display:grid}.aside-step b,.aside-step small{display:block}.aside-step b{font-size:10px}.aside-step small{color:var(--muted);margin-top:5px;font-size:8px}.api-note{background:#f5f6ff;border:1px solid #dce1f7;border-radius:12px;margin-top:28px;padding:16px}.api-note b{color:var(--primary);font-size:10px}.api-note p{color:#67728a;margin:7px 0 0;font-size:9px;line-height:1.75}.processing-page{place-items:center;min-height:calc(100vh - 72px);padding:40px 20px;display:grid}.processing-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:22px;width:min(650px,94vw);padding:34px 46px;box-shadow:0 25px 80px #25325221}.processing-visual{--progress:0%;background:conic-gradient(var(--primary) var(--progress), #edf0f6 0);border-radius:50%;width:145px;height:145px;margin:0 auto 22px;padding:10px}.processing-visual>div{background:#fff;border-radius:50%;place-content:center;width:100%;height:100%;display:grid}.processing-visual strong,.processing-visual span{display:block}.processing-visual strong{font-size:31px}.processing-visual span{color:var(--muted);margin-top:5px;font-size:9px}.processing-card h1{margin:6px 0 8px;font-size:27px}.processing-card>p:not(.overline){color:var(--muted);margin:0;font-size:10px}.process-steps{text-align:left;margin:25px 0}.process-steps>div{color:#a2a9b8;align-items:center;gap:11px;padding:8px 0;display:flex}.process-steps span{border:1px solid #dfe3eb;border-radius:50%;place-items:center;width:25px;height:25px;font-size:8px;display:grid}.process-steps b{font-size:10px}.process-steps .active{color:var(--primary)}.process-steps .active span{border-color:var(--primary);background:#eff1ff}.process-steps .done{color:var(--teal)}.process-steps .done span{background:#eaf8f5;border-color:#a9dfd5}.processing-card>small{color:#9aa2b2;font-size:8px}.report-page{min-height:calc(100vh - 72px)}.report-toolbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;min-height:58px;padding:0 max(32px,50vw - 790px);display:flex}.report-toolbar>div{align-items:center;gap:10px;display:flex}.report-toolbar>div:first-child button{color:#6e788d;background:0 0;border:0;padding:0;font-size:10px}.report-toolbar span{color:#c1c6d1}.report-toolbar b{font-size:11px}.report-toolbar i{color:var(--amber);background:#fff5e5;border-radius:99px;padding:4px 7px;font-size:8px;font-style:normal}.report-tabs{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;align-items:center;gap:7px;height:58px;padding:0 max(32px,50vw - 790px);display:flex;position:sticky;top:72px}.report-tabs button{color:#6f798e;background:0 0;border:1px solid #0000;border-radius:9px;height:36px;padding:0 15px;font-size:10px;font-weight:700}.report-tabs button span{margin-right:6px}.report-tabs button.active{color:var(--primary);background:#f2f3ff;border-color:#dfe3f3}.report-content{width:min(1580px,100vw - 48px);margin:0 auto;padding:30px 0 70px}.report-heading h1{font-size:28px}.overview-content .report-heading h1{font-size:32px}.overview-content .report-heading>div>p:last-child{font-size:14px}.quality-badge{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:auto auto;align-items:center;gap:3px 8px;padding:11px 14px;display:grid}.quality-badge span{color:var(--muted);font-size:8px}.quality-badge b{color:var(--teal);font-size:15px}.quality-badge small{color:#98a0af;grid-column:1/-1;font-size:7px}.card-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title>div{align-items:center;gap:8px;display:flex}.card-title span{min-width:26px;height:26px;color:var(--primary);background:#eef0ff;border-radius:8px;place-items:center;font-size:9px;font-weight:900;display:grid}.card-title h2{margin:0;font-size:16px}.card-title small{color:#8791a4;font-size:10px}.overview-hero{grid-template-columns:.88fr 1.05fr 1.07fr;gap:15px;margin-top:24px;display:grid}.course-info-card,.radar-card,.overall-card,.dimension-score-card,.dimension-radar-card,.dimension-ai-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:17px}.course-info-card,.radar-card,.overall-card{min-height:430px;padding:23px}.course-info-card dl{margin:17px 0 0}.course-info-card dl>div{border-bottom:1px solid #eff1f5;justify-content:space-between;gap:15px;padding:10px 0;display:flex}.course-info-card dt{color:var(--muted);font-size:11px}.course-info-card dd{margin:0;font-size:13px;font-weight:700}.total-score{text-align:center;background:#f5f6ff;border:1px solid #dfe3fa;border-radius:13px;margin-top:17px;padding:18px;position:relative}.total-score span,.total-score small{display:block}.total-score span{color:#65708a;font-size:11px}.total-score strong{color:var(--primary);margin:7px 8px 4px 0;font-size:42px;line-height:1;display:inline-block}.total-score i{color:var(--teal);background:#e5f7f2;border-radius:99px;padding:4px 7px;font-size:8px;font-style:normal}.total-score small{color:#929bad;font-size:9px}.radar-card{flex-direction:column;align-items:center;display:flex}.radar-card .card-title{width:100%}.radar-svg{margin:8px auto 0;display:block;overflow:visible}.radar-legend{color:#657087;margin-top:-5px;font-size:10px}.radar-legend i{background:var(--primary);border-radius:2px;width:16px;height:5px;margin-right:5px;display:inline-block}.radar-legend span{color:#99a1b1;margin-left:13px}.overall-card>p{color:#5f6a80;margin:18px 0 0;font-size:13px;line-height:1.9}.overall-callout{border-left:3px solid var(--primary);background:#f5f6ff;border-radius:0 10px 10px 0;margin-top:18px;padding:15px}.overall-callout b{color:var(--primary);font-size:11px}.overall-callout p{color:#647088;margin:6px 0 0;font-size:11px;line-height:1.7}.summary-numbers{border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4;grid-template-columns:repeat(3,1fr);margin-top:18px;padding:14px 0;display:grid}.summary-numbers div{text-align:center}.summary-numbers div+div{border-left:1px solid #edf0f4}.summary-numbers strong,.summary-numbers span{display:block}.summary-numbers strong{font-size:20px}.summary-numbers span{color:var(--muted);margin-top:4px;font-size:10px}.overall-card>small{color:#9aa2b1;margin-top:15px;font-size:9px;display:block}.section-title{margin:32px 0 15px}.section-title h2{margin:0;font-size:22px}.section-title>p{color:var(--muted);margin:0;font-size:11px}.dimension-overview-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.dimension-overview-card{--tone:var(--primary);--soft:#eef0ff;border:1px solid var(--line);color:inherit;text-align:left;background:#fff;border-radius:16px;padding:21px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 10px 32px #2633510d}.dimension-overview-card:before{content:"";background:var(--tone);height:4px;position:absolute;inset:0 0 auto}.dimension-overview-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.dimension-card-head{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.dimension-card-head>span{width:39px;height:39px;color:var(--tone);background:var(--soft);border-radius:11px;place-items:center;font-weight:900;display:grid}.dimension-card-head h3{margin:0;font-size:16px}.dimension-card-head p{color:var(--muted);margin:5px 0 0;font-size:10px;line-height:1.55}.dimension-card-head strong{color:var(--tone);font-size:27px}.dimension-progress,.score-meter{background:#edf0f5;border-radius:99px;height:6px;margin:17px 0;overflow:hidden}.dimension-progress i,.score-meter i{border-radius:inherit;background:var(--tone);height:100%;display:block}.mini-indicators{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.mini-indicators div{border-bottom:1px dashed #e8ebf1;justify-content:space-between;gap:8px;padding:9px 0;display:flex}.mini-indicators span{color:#59657c;font-size:11px;font-weight:600}.mini-indicators b{color:var(--tone);font-size:11px}.dimension-overview-card footer{color:#838da0;justify-content:space-between;margin-top:15px;font-size:10px;display:flex}.dimension-overview-card footer b{color:var(--tone)}.dimension-hero{grid-template-columns:.82fr 1.05fr 1.13fr;gap:15px;display:grid}.dimension-score-card,.dimension-radar-card,.dimension-ai-card{min-height:355px;padding:23px}.dimension-score-card>div:first-of-type{align-items:baseline;gap:6px;margin-top:21px;display:flex}.dimension-score-card>div strong{color:var(--tone);font-size:56px;line-height:1}.dimension-score-card>div span{color:#9ca4b4;font-size:14px}.dimension-score-card>div i{color:var(--tone);background:var(--soft);border-radius:99px;margin-left:7px;padding:4px 8px;font-size:8px;font-style:normal}.dimension-score-card>p:nth-of-type(2){color:#687389;min-height:40px;margin:17px 0 0;font-size:10px;line-height:1.7}.dimension-score-card dl{border-top:1px solid #edf0f4;grid-template-columns:repeat(3,1fr);margin:20px 0 0;padding-top:18px;display:grid}.dimension-score-card dl>div{text-align:center}.dimension-score-card dl>div+div{border-left:1px solid #edf0f4}.dimension-score-card dt,.dimension-score-card dd{margin:0}.dimension-score-card dt{color:var(--muted);font-size:8px}.dimension-score-card dd{color:var(--tone);margin-top:5px;font-size:11px;font-weight:800}.dimension-radar-card{flex-direction:column;align-items:center;display:flex}.dimension-radar-card .card-title{width:100%}.dimension-radar-card .radar-svg{margin-top:-2px}.dimension-ai-card>p{color:#606c82;margin:18px 0 0;font-size:11px;line-height:1.9}.dimension-highlights{margin-top:22px}.dimension-highlights div{border-top:1px solid #edf0f4;padding:13px 0}.dimension-highlights b,.dimension-highlights span{display:block}.dimension-highlights b{color:var(--tone);font-size:8px}.dimension-highlights span{margin-top:6px;font-size:10px;font-weight:700}.indicator-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.indicator-switcher{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.indicator-switcher>button{--tone:var(--primary);--soft:#eef0ff;min-height:92px;color:inherit;text-align:left;background:#fff;border:1px solid #e0e5ef;border-radius:14px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;transition:border-color .16s,transform .16s,box-shadow .16s;display:grid;box-shadow:0 8px 24px #2633510a}.indicator-switcher>button:hover{transform:translateY(-2px);box-shadow:0 13px 30px #26335114}.indicator-switcher>button.active{border-color:color-mix(in srgb, var(--tone) 45%, #dfe4ed);background:linear-gradient(135deg, white, var(--soft));box-shadow:0 13px 34px color-mix(in srgb, var(--tone) 14%, transparent)}.indicator-switcher>button>span{width:48px;height:48px;color:var(--tone);background:var(--soft);border-radius:13px;place-items:center;font-size:18px;font-weight:900;display:grid}.indicator-switcher>button>div{min-width:0}.indicator-switcher>button b,.indicator-switcher>button small{display:block}.indicator-switcher>button b{font-size:14px}.indicator-switcher>button>div small{color:#8992a4;white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:9px;overflow:hidden}.indicator-switcher>button>strong{color:var(--tone);text-align:right;font-size:20px}.indicator-switcher>button>strong small{color:#9aa2b2;margin-top:3px;font-size:8px}.focused-indicator{margin-top:18px}.focused-indicator-label{align-items:center;gap:9px;margin-bottom:9px;padding:0 4px;display:flex}.focused-indicator-label>span{font-size:18px}.focused-indicator-label p{color:#8a93a5;margin:0;font-size:10px}.focused-indicator-label b{font-size:12px}.focused-indicator-label i{color:var(--tone);margin-left:auto;font-size:11px;font-style:normal;font-weight:800}.indicator-detail-card{background:#fff;border:1px solid #e0e5ef;border-radius:18px;flex-direction:column;padding:25px;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:visible;box-shadow:0 14px 38px #2633510f}.indicator-detail-grid .indicator-detail-card{padding:21px}.indicator-detail-card:hover{transform:translateY(-2px);box-shadow:0 20px 48px #2633511a}.indicator-detail-card.mode-manual{border-color:color-mix(in srgb, var(--tone) 24%, #e0e5ef)}.card-accent{border-radius:18px 18px 0 0;height:4px;position:absolute;inset:0 0 auto}.indicator-card-header{border-bottom:1px solid #edf0f5;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:22px;padding-bottom:18px;display:grid}.indicator-name{gap:12px;display:flex}.indicator-name>span{width:44px;height:44px;color:var(--tone);background:var(--soft);border-radius:12px;flex:0 0 44px;place-items:center;font-size:17px;font-weight:900;display:grid}.indicator-name h3{letter-spacing:-.02em;margin:1px 0 0;font-size:18px}.indicator-name p{color:#6f7a90;margin:8px 0 0;font-size:12px;line-height:1.7}.score-display{border:1px solid color-mix(in srgb, var(--tone) 20%, #e2e6ef);min-width:94px;color:inherit;background:var(--soft);text-align:center;border-radius:12px;padding:12px 14px;position:relative}.score-display strong,.score-display span{display:block}.score-display strong{color:var(--tone);font-size:33px;line-height:1}.score-display span{color:#737d90;margin-top:7px;font-size:10px;font-weight:700}.score-display:after{content:attr(data-rule);z-index:15;color:#59647a;text-align:left;opacity:0;visibility:hidden;background:#fff;border:1px solid #dfe3eb;border-radius:10px;width:280px;padding:13px 14px;font-size:11px;line-height:1.65;transition:all .15s;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-3px);box-shadow:0 14px 35px #212d4c29}.score-display:hover:after,.score-display:focus:after{opacity:1;visibility:visible;transform:none}.manual-score-box{border:1px solid color-mix(in srgb, var(--tone) 22%, #dfe4ed);background:var(--soft);text-align:center;border-radius:12px;min-width:126px;padding:11px 12px}.manual-score-box>span{color:var(--tone);margin-bottom:6px;font-size:9px;font-weight:800;display:block}.manual-score-box label{justify-content:center;align-items:baseline;gap:5px;display:flex}.manual-score-box input{width:66px;height:38px;color:var(--tone);text-align:center;background:#fff;border:1px solid #cfd5e2;border-radius:8px;padding:0 5px;font-size:20px;font-weight:900}.manual-score-box label b{color:#7d8798;font-size:10px}.manual-score-box i{color:#7d8798;margin-top:6px;font-size:9px;font-style:normal;display:block}.na-score{color:#737d90;background:#f0f2f5;border-radius:99px;padding:8px 11px;font-size:10px;font-weight:800}.manual-note,.na-note{color:#5e6980;background:var(--soft);border-radius:10px;align-items:center;gap:9px;margin-top:15px;padding:11px 13px;font-size:11px;line-height:1.55;display:flex}.manual-note b{color:var(--tone);font-size:10px}.na-note{background:#f2f4f7}.indicator-detail-columns{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:start;gap:18px;display:grid}.indicator-detail-grid .indicator-detail-columns{grid-template-columns:1fr;gap:0}.card-section{margin-top:18px}.ai-block{background:#f8f9fd;border:1px solid #e7eaf3;border-radius:12px;padding:17px}.ai-block h4,.advice-block h4,.inline-evidence h4,.supplement-block h4{align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.ai-block h4 span,.advice-block h4 span,.inline-evidence h4 span,.supplement-block h4 span{min-width:28px;height:26px;color:var(--tone);background:var(--soft);border-radius:7px;place-items:center;font-size:9px;font-weight:900;display:grid}.advice-block h4 span{color:var(--amber);background:#fff5e6}.ai-block p{color:#556177;margin:11px 0 0;font-size:13px;line-height:1.8}.inline-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.inline-section-head button{color:var(--tone);background:0 0;border:0;padding:0;font-size:11px;font-weight:800}.evidence-preview-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.indicator-side-column .evidence-preview-grid{grid-template-columns:1fr}.evidence-preview-grid article{background:#f5fbf9;border:1px solid #dce9e5;border-radius:11px;min-width:0;padding:13px}.evidence-preview-grid article.negative{background:#fff8f7;border-color:#f0dedb}.evidence-preview-grid article>div{align-items:center;gap:7px;display:flex}.evidence-preview-grid article b{color:var(--teal);background:#dff4ef;border-radius:5px;padding:3px 6px;font-size:9px}.evidence-preview-grid article.negative b{color:var(--coral);background:#fde9e6}.evidence-preview-grid article span,.evidence-preview-grid article i{color:#7c8698;font-size:9px;font-style:normal}.evidence-preview-grid article p{color:#566177;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:9px 0 0;font-size:11px;line-height:1.65;display:-webkit-box;overflow:hidden}.evidence-empty-inline{color:#8c95a6;text-align:center;background:#fafbfc;border:1px dashed #dfe4ec;border-radius:10px;grid-column:1/-1;padding:16px;font-size:11px}.advice-block{background:#fffbf4;border:1px solid #f0e5d2;border-radius:12px;padding:17px}.advice-block ul{gap:9px;margin:12px 0 0;padding:0;list-style:none;display:grid}.advice-block li{color:#5f6879;padding-left:17px;font-size:12px;line-height:1.65;position:relative}.advice-block li:before{content:"";background:var(--amber);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}.supplement-block{border:1px dashed color-mix(in srgb, var(--tone) 35%, #dfe4ed);background:var(--soft);border-radius:12px;padding:17px}.supplement-block h4 span{color:#fff;background:var(--tone)}.supplement-block>div:first-child p{color:#667187;margin:9px 0 0;font-size:11px;line-height:1.65}.supplement-actions{align-items:center;gap:9px;margin-top:13px;display:flex}.file-button,.ai-score-button{border-radius:8px;justify-content:center;align-items:center;height:34px;padding:0 12px;font-size:10px;font-weight:800;display:inline-flex}.file-button{border:1px solid color-mix(in srgb, var(--tone) 35%, #d7dce6);color:var(--tone);cursor:pointer;background:#fff}.file-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-name{color:#536078;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:10px;overflow:hidden}.ai-score-button{border:1px solid var(--tone);color:#fff;background:var(--tone)}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#161d317a;place-items:center;padding:24px;animation:.16s fadeIn;display:grid;position:fixed;inset:0}.evidence-modal{background:#fff;border:1px solid #dfe3eb;border-radius:19px;flex-direction:column;width:min(850px,96vw);max-height:88vh;animation:.2s modalIn;display:flex;overflow:hidden;box-shadow:0 30px 100px #18213a47}.evidence-modal>header{justify-content:space-between;align-items:flex-start;padding:23px 25px 18px;display:flex}.evidence-modal h2{margin:0;font-size:22px}.evidence-modal header p:last-child{color:var(--muted);margin:7px 0 0;font-size:9px}.evidence-modal header>button{color:#7c8597;background:#fff;border:1px solid #e0e4eb;border-radius:9px;width:34px;height:34px;font-size:19px}.evidence-modal>nav{border-bottom:1px solid #e9ecf2;gap:7px;padding:0 25px 15px;display:flex}.evidence-modal>nav button{color:#7b8495;background:#fff;border:1px solid #e0e4eb;border-radius:8px;height:34px;padding:0 13px;font-size:9px;font-weight:700}.evidence-modal>nav button.active.positive{color:var(--teal);background:#effaf7;border-color:#b7e4db}.evidence-modal>nav button.active.negative{color:var(--coral);background:#fff3f1;border-color:#efc5be}.evidence-modal nav b{margin-left:5px}.evidence-list{background:#f8f9fc;flex:1;padding:20px 25px;overflow-y:auto}.evidence-list article{border:1px solid #e2e6ee;border-left:3px solid var(--teal);background:#fff;border-radius:11px;margin-bottom:12px;padding:16px}.evidence-list article.negative{border-left-color:var(--coral)}.evidence-meta{align-items:center;gap:8px;display:flex}.evidence-meta button{color:var(--primary);background:0 0;border:0;padding:0;font-size:8px;font-weight:800}.evidence-meta span,.evidence-meta i{border-radius:99px;padding:4px 7px;font-size:7px;font-style:normal}.evidence-meta span.teacher{color:var(--primary);background:#eef0ff}.evidence-meta span.student{color:var(--teal);background:#eaf8f5}.evidence-meta i{color:#747e91;background:#f0f2f5}.evidence-list blockquote{color:#3f4b62;margin:12px 0 0;font-size:11px;line-height:1.8}.evidence-list article>p{color:#768095;border-top:1px solid #edf0f4;margin:11px 0 0;padding-top:10px;font-size:8px;line-height:1.65}.evidence-list article>p b{color:#566177}.empty-evidence{color:#9aa2b1;text-align:center;place-items:center;min-height:230px;display:grid}.empty-evidence span{font-size:30px}.empty-evidence b{color:#717b8f;margin-top:10px;font-size:11px}.empty-evidence p{margin:6px 0 0;font-size:8px}.evidence-modal>footer{color:#929aab;border-top:1px solid #e7eaf0;justify-content:space-between;align-items:center;padding:14px 25px;font-size:8px;display:flex}.toast{z-index:100;color:var(--teal);background:#fff;border:1px solid #bfe3dc;border-radius:9px;padding:11px 16px;font-size:9px;animation:.18s toastIn;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 16px 44px #1e2e4929}@keyframes fadeIn{0%{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.985)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}}@media (max-width:1350px){.login-page{grid-template-columns:.75fr 1.25fr}.login-area{padding-top:32px;padding-bottom:32px}.login-panel{padding:20px}.indicator-detail-grid,.overview-hero,.dimension-hero{grid-template-columns:1fr 1fr}.overall-card,.dimension-ai-card{grid-column:1/-1;min-height:auto}.indicator-detail-columns{grid-template-columns:1fr 1fr}}@media (max-width:1050px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.stats-grid{grid-template-columns:1fr 1fr}.course-list-head{display:none}.course-row{grid-template-columns:52px 1fr auto;padding:14px 0}.course-row>span,.course-status{display:none}.row-action{grid-area:1/3}.upload-layout,.admin-management-grid,.site-admin-grid{grid-template-columns:1fr}.indicator-switcher{grid-template-columns:1fr 1fr}.indicator-detail-columns,.dimension-overview-grid,.login-page{grid-template-columns:1fr}.login-intro{min-height:auto;padding:34px}.login-copy{margin:70px 0}.login-copy h1{font-size:48px}.login-area{min-height:auto;padding:45px 34px}}@media (max-width:760px){.page{width:min(92vw,680px);padding-top:30px}.topbar{height:64px;padding:0 16px}.account-box div{display:none}.report-tabs{padding:0 16px;top:64px;overflow-x:auto}.report-tabs button{white-space:nowrap}.report-toolbar{padding:10px 16px}.report-toolbar>div:first-child span,.report-toolbar>div:first-child i{display:none}.report-content{width:min(92vw,680px)}.welcome-row,.simple-heading,.report-heading,.section-title,.panel-heading{flex-direction:column;align-items:flex-start}.stats-grid,.form-grid,.overview-hero,.dimension-hero,.indicator-detail-grid{grid-template-columns:1fr}.overall-card,.dimension-ai-card{grid-column:auto}.course-tools,.search-box{width:100%}.course-tools{flex-wrap:wrap}.segmented-control{width:100%}.segmented-control button,.search-box{flex:1}.course-row{grid-template-columns:45px 1fr}.row-action{grid-area:2/2;justify-self:start}.course-panel{padding:18px}.management-list article{grid-template-columns:38px 1fr auto;padding:10px 0}.management-list article>span:not(.person-avatar),.management-list article>i,.platform-account-head{display:none}.platform-account-list article{grid-template-columns:1fr auto;padding:12px 0}.platform-account-list article>span,.platform-account-list article>i{display:none}.indicator-switcher{grid-template-columns:1fr}.single-login{padding:22px}.role-selector{grid-template-columns:1fr}.login-copy h1{font-size:40px}.login-proof div+div{padding-left:12px}.radar-svg{max-width:100%;height:auto}.upload-actions{flex-direction:column}.upload-actions button{width:100%}.quality-badge{align-self:stretch}}@media print{body{background:#fff}.topbar,.report-toolbar,.report-tabs,.indicator-switcher,.focused-indicator-label,.inline-section-head button,.supplement-actions,.manual-score{display:none!important}.report-content{width:100%;padding:10px}.indicator-detail-columns{grid-template-columns:1fr 1fr}.course-info-card,.radar-card,.overall-card,.dimension-overview-card,.dimension-score-card,.dimension-radar-card,.dimension-ai-card,.indicator-detail-card{box-shadow:none;break-inside:avoid}}
