@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{color:#18233c;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6fa;font-family:Inter,Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}.app-boot{background:#f7f9fc;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.app-boot h4.ant-typography{margin:4px 0 0}.callback-error-icon{color:#d9534f;font-size:42px}.login-page{background:#fff;grid-template-columns:minmax(420px,1.05fr) minmax(480px,.95fr);min-height:100vh;display:grid}.login-visual{color:#fff;background:radial-gradient(circle at 18% 20%,#24498e 0,#0000 30%),linear-gradient(145deg,#0b1d43 0%,#102b60 55%,#183c78 100%);min-height:720px;padding:clamp(42px,6vw,76px);position:relative;overflow:hidden}.login-visual:before{content:"";opacity:.18;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}.login-visual:after{content:"";aspect-ratio:1;border:1px solid #ffffff1f;border-radius:50%;width:78%;position:absolute;bottom:-30%;right:-12%;box-shadow:0 0 0 60px #ffffff06,0 0 0 120px #ffffff05}.visual-orb{filter:blur(2px);border-radius:50%;position:absolute}.orb-one{background:#86a9ff;width:9px;height:9px;top:18%;right:12%;box-shadow:0 0 28px 8px #5b87ffa6}.orb-two{background:#f5cc73;width:6px;height:6px;bottom:22%;left:22%;box-shadow:0 0 24px 7px #f5cc7373}.visual-content{z-index:1;flex-direction:column;min-height:calc(100vh - clamp(84px,12vw,152px));display:flex;position:relative}.login-brand,.dashboard-brand{align-items:center;gap:13px;display:flex}.brand-symbol{color:#15346e;background:linear-gradient(145deg,#ffe1a1,#e9b84f);border-radius:13px;flex:none;place-items:center;width:44px;height:44px;font-size:22px;display:grid;box-shadow:0 8px 24px #e7b44838}.login-brand strong,.login-brand small,.dashboard-brand strong,.dashboard-brand small{display:block}.login-brand strong{color:#fff;letter-spacing:.06em;font-size:18px}.login-brand small{color:#91a7d0;letter-spacing:.18em;margin-top:2px;font-size:9px}.visual-copy{max-width:620px;margin:auto 0}.platform-tag{color:#c6d5f1;background:#ffffff17;border-radius:999px;margin:0 0 24px;padding:6px 12px}.visual-copy h1.ant-typography{color:#fff;letter-spacing:-.055em;margin:0 0 24px;font-size:clamp(42px,5.2vw,70px);line-height:1.16}.visual-copy .ant-typography{color:#aebfde;max-width:540px;font-size:16px;line-height:1.9}.trust-list{color:#c8d4eb;flex-wrap:wrap;gap:16px 28px;font-size:12px;display:flex}.trust-list .anticon{color:#67d2a5;margin-right:7px}.login-panel{background:#fff;justify-content:center;align-items:center;min-height:720px;padding:48px clamp(32px,7vw,100px);display:flex}.login-card{width:100%;max-width:450px;box-shadow:none}.login-card>.ant-card-body{padding:0}.mobile-brand{display:none}.login-heading{margin-bottom:34px}.welcome-kicker{color:#315be8;letter-spacing:.18em;font-size:11px;font-weight:700}.login-heading h2.ant-typography{letter-spacing:-.03em;margin:10px 0 8px;font-size:30px}.login-heading .ant-typography{color:#8390a7;margin-bottom:0}.login-card .ant-form-item{margin-bottom:22px}.login-card .ant-form-item-label>label{color:#33405a;font-size:13px;font-weight:600}.login-card .ant-input-affix-wrapper{border-color:#dce2ec}.login-card .ant-input-prefix{color:#8c98ad;margin-right:10px}.login-alert{margin-bottom:22px}.caps-warning{color:#d77a1f;font-size:12px}.login-help-row{justify-content:space-between;align-items:center;margin-top:-8px;display:flex}.login-help-row>.ant-typography{font-size:12px}.login-help-row .anticon{color:#29a472}.login-help-row .ant-btn{padding-right:0;font-size:13px}.submit-item{margin-top:24px}.submit-item .ant-btn{height:50px;font-weight:600;box-shadow:0 10px 24px #315be838}.login-footer{border-top:1px solid #edf0f5;flex-direction:column;align-items:center;gap:8px;margin-top:32px;padding-top:24px;display:flex}.login-footer .ant-typography{font-size:11px}.app-layout{min-height:100vh}.app-sider{height:100vh;top:0;overflow:auto;box-shadow:8px 0 30px #1122480f;position:sticky!important}.dashboard-brand{height:86px;padding:0 22px}.dashboard-brand.collapsed{justify-content:center;padding:0}.dashboard-brand .brand-symbol{border-radius:11px;width:38px;height:38px;font-size:19px}.dashboard-brand strong{color:#fff;font-size:16px}.dashboard-brand small{color:#8297c0;margin-top:2px;font-size:10px}.app-sider .ant-menu{padding:10px 12px;border-inline-end:0!important}.app-sider .ant-menu-item{margin-block:5px}.sider-security{color:#75d6ae;background:#ffffff0b;border:1px solid #ffffff14;border-radius:11px;align-items:flex-start;gap:10px;padding:14px;display:flex;position:absolute;bottom:68px;left:16px;right:16px}.sider-security strong,.sider-security span{display:block}.sider-security strong{color:#d7e1f5;font-size:11px}.sider-security span{color:#7890bc;margin-top:3px;font-size:9px}.app-header{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-bottom:1px solid #e8ebf1;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(20px,4vw,48px);display:flex;position:sticky;top:0}.user-menu-button{align-items:center;gap:9px;height:54px;display:flex}.user-copy{flex-direction:column;align-items:flex-start;line-height:1.3;display:flex}.user-copy strong{font-size:12px}.user-copy small{color:#8995aa;font-size:10px}.dashboard-content{padding:36px clamp(20px,4vw,48px) 60px}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;display:flex}.page-heading h2.ant-typography{margin:0 0 6px;font-size:27px}.page-heading .ant-typography{color:#8894a8;margin:0}.dashboard-content>.ant-alert{margin-bottom:20px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px;display:grid}.stat-card{border-color:#e7eaf0;position:relative;overflow:hidden;box-shadow:0 7px 24px #1a2a4b0b}.stat-card:after{content:"";background:#6687ef;width:4px;height:100%;position:absolute;top:0;right:0}.stat-card.gold:after{background:#e5b94f}.stat-card.green:after{background:#31b982}.stat-card .ant-statistic-content{margin:7px 0 13px;font-size:28px;font-weight:650}.stat-card .ant-statistic-content-prefix{color:#4f74e8;margin-right:12px;font-size:21px}.stat-card.gold .ant-statistic-content-prefix{color:#c99622}.stat-card.green .ant-statistic-content-prefix{color:#20a56f}.stat-card>.ant-card-body>.ant-typography{font-size:11px}.success-dot{color:#20a56f}.student-card{border-color:#e7eaf0;box-shadow:0 7px 24px #1a2a4b0b}.student-card .ant-card-head-title>div{flex-direction:column;gap:4px;display:flex}.student-card .ant-card-head-title .ant-typography{font-size:11px;font-weight:400}.student-card .ant-card-extra .ant-input-affix-wrapper{width:min(280px,32vw)}.student-card>.ant-card-body{padding:0}.student-card .ant-table-wrapper{border-radius:0 0 10px 10px;overflow:hidden}.student-card .ant-table-thead>tr>th{color:#7d899d;background:#fafbfc;font-size:11px}.student-card .ant-table-tbody>tr>td{padding-block:15px}.student-avatar{color:#315be8;background:#edf2ff}.muted-column{color:#78849a}.points-value{color:#9d721a}.student-card .ant-result{padding:38px}.student-card .ant-result-icon{color:#a1acc0;margin-bottom:12px;font-size:38px}.student-card .ant-result-title{font-size:16px}.student-card .ant-result-subtitle{font-size:12px}.huatu-connect-content{grid-template-columns:52px 1fr;gap:18px;padding:18px 2px 8px;display:grid}.huatu-connect-icon{color:#315be8;background:#edf2ff;border-radius:15px;place-items:center;width:52px;height:52px;font-size:25px;display:grid}.huatu-connect-content h4.ant-typography{margin:0 0 8px}.huatu-connect-content .ant-typography{color:#68758c;line-height:1.75}.huatu-connect-content .ant-alert{margin-top:16px}.attendance-page{width:100%}.attendance-filter-card{border-color:#e7eaf0;box-shadow:0 7px 24px #1a2a4b0b}.attendance-filters{grid-template-columns:minmax(220px,1.2fr) minmax(160px,.7fr) minmax(290px,1.4fr) auto;align-items:end;gap:14px;display:grid}.attendance-filters label{flex-direction:column;gap:7px;min-width:0;display:flex}.attendance-filters label>.ant-typography{color:#526078;font-size:12px;font-weight:600}.attendance-filters .ant-select{min-width:106px}.attendance-filters>.ant-btn{min-width:108px}.attendance-card .ant-card-head-title>div{flex-direction:column;gap:4px;display:flex}.attendance-card .ant-card-head-title .ant-typography{font-size:11px;font-weight:400}.attendance-card .ant-table-cell{white-space:nowrap}.attendance-card .ant-table-cell:nth-child(8){white-space:normal}.ant-drawer .ant-descriptions-item-label{color:#69768c;width:165px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.ant-drawer .ant-descriptions-item-content{word-break:break-all}.drawer-footer-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.drawer-content-stack{width:100%}.batch-summary-grid{background:#f7f9fc;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;display:grid}.batch-summary-grid .ant-statistic-title{font-size:12px}.batch-summary-grid .ant-statistic-content{font-size:22px}.manual-award-alert{margin-bottom:18px}.daily-settlement-card{border-color:#dfe6f5;box-shadow:0 7px 24px #1a2a4b0b}.daily-settlement-card .ant-alert{margin-bottom:18px}.daily-settlement-grid{grid-template-columns:minmax(260px,1.2fr) minmax(170px,.65fr) minmax(300px,1.35fr) minmax(260px,1.1fr) auto;align-items:end;gap:14px;display:grid}.daily-settlement-scope-grid{grid-template-columns:minmax(300px,1.2fr) minmax(190px,.65fr);margin-bottom:18px}.daily-settlement-exam-grid{grid-template-columns:minmax(340px,1.35fr) minmax(300px,1.1fr) auto}.daily-settlement-section-title{color:#17233d;margin-bottom:10px;display:block}.daily-settlement-section-help{margin:-6px 0 10px;display:block}.reversal-reason-input{margin-top:16px}.identity-binding-editor,.identity-binding-editor .ant-select,.identity-binding-editor .ant-input{width:100%}.daily-settlement-grid>.ant-form-item{margin-bottom:0}.daily-settlement-grid .ant-space-compact .ant-select{flex:1;min-width:0}.daily-settlement-submit .ant-btn{min-width:210px}.full-width-control{width:100%}.learning-sync-filters{grid-template-columns:minmax(180px,.7fr) minmax(300px,1.5fr) auto;align-items:end;gap:14px;display:grid}.learning-sync-filters label,.practice-filters label{flex-direction:column;gap:7px;display:flex}.learning-sync-filters label>.ant-typography,.practice-filters label>.ant-typography{color:#526078;font-size:12px;font-weight:600}.practice-filters{grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:14px;max-width:620px;display:grid}.point-consumption-filters{grid-template-columns:minmax(180px,1fr) minmax(130px,.65fr) minmax(160px,.8fr) minmax(260px,1.25fr) auto;align-items:end;gap:14px;display:grid}.point-consumption-filters label{flex-direction:column;gap:7px;min-width:0;display:flex}.point-consumption-filters label>.ant-typography{color:#526078;font-size:12px;font-weight:600}.student-consumption-page{color:#18233c;background:linear-gradient(165deg,#eef3ff 0,#f8faff 42%,#f4f6fa 100%);min-height:100vh}.student-consumption-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe6;border-bottom:1px solid #d6ddebd9;justify-content:space-between;align-items:center;height:72px;padding:0 max(22px,50vw - 460px);display:flex}.student-consumption-brand{align-items:center;gap:12px;display:flex}.student-consumption-brand .brand-symbol{border-radius:11px;width:38px;height:38px;font-size:18px}.student-consumption-brand strong,.student-consumption-brand small{display:block}.student-consumption-brand strong{color:#173366;font-size:16px}.student-consumption-brand small{color:#8a97ad;letter-spacing:.12em;margin-top:2px;font-size:9px}.student-consumption-content{width:min(920px,100% - 32px);margin:0 auto;padding:48px 0 72px}.student-consumption-loading{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:52vh;display:flex}.student-identity-card{width:min(470px,100%);margin:5vh auto 0;box-shadow:0 22px 60px #1b356c1a}.student-identity-card>.ant-card-body{padding:38px}.student-consumption-intro{margin-bottom:26px}.student-consumption-intro h2.ant-typography{margin:8px 0;font-size:27px}.student-consumption-intro .ant-typography{color:#7d899d}.student-identity-card>.ant-alert{margin-bottom:20px}.student-identity-card .ant-btn-primary{height:46px}.student-privacy-note{text-align:center;margin-top:18px;font-size:11px;display:block}.student-class-choice{flex-direction:column;gap:18px;display:flex}.student-consumption-dashboard{width:100%}.student-profile-card,.student-request-card,.student-request-history{border-color:#e3e8f2;box-shadow:0 8px 28px #1a2a4b0e}.student-profile-card{background:linear-gradient(135deg,#fff,#f6f8ff);overflow:hidden}.student-profile-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.student-profile-heading h3.ant-typography{margin:3px 0 0}.student-balance-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.student-balance-grid .ant-statistic{background:#ffffffc7;border:1px solid #e8ecf4;border-radius:10px;padding:16px}.student-balance-grid .ant-statistic-title{font-size:12px}.student-balance-grid .ant-statistic-content{color:#173d8c;font-size:25px}.student-request-card>.ant-card-body{padding-top:20px}.student-request-card .ant-alert{margin-bottom:20px}.student-request-card .ant-form{max-width:520px}.student-balance-warning{text-align:center;margin-top:10px;font-size:12px;display:block}.student-request-history .ant-card-body{padding-top:4px}.student-request-history .ant-list-item{align-items:flex-start;padding:18px 0}.student-request-history .ant-list-item-meta-description .ant-space{width:100%}.student-request-history .ant-result{padding:36px 12px}@media (width<=960px){.login-page{display:block}.login-visual{display:none}.login-panel{background:linear-gradient(160deg,#f3f6fc,#fff 50%);min-height:100vh;padding:40px 24px}.mobile-brand{color:#173366;align-items:center;gap:12px;margin-bottom:44px;font-size:18px;display:flex}.stats-grid{grid-template-columns:1fr}.attendance-filters,.batch-summary-grid,.learning-sync-filters{grid-template-columns:1fr 1fr}.learning-sync-filters>.ant-btn{grid-column:1/-1}.daily-settlement-grid{grid-template-columns:1fr 1fr}.daily-settlement-submit{grid-column:1/-1}.point-consumption-filters{grid-template-columns:1fr 1fr}.point-consumption-filters>.ant-space{grid-column:1/-1}}@media (width<=680px){.app-header{justify-content:flex-end;padding:0 16px}.app-header>div:first-child,.user-copy{display:none}.dashboard-content{padding:25px 14px 40px}.page-heading{align-items:flex-start}.page-heading>.ant-space{flex-direction:column;align-items:flex-end}.page-heading h2.ant-typography{font-size:23px}.student-card .ant-card-head{padding:14px 16px}.student-card .ant-card-head-wrapper{flex-direction:column;align-items:stretch;gap:14px}.student-card .ant-card-extra{margin:0}.student-card .ant-card-extra .ant-space{flex-direction:column;align-items:stretch;width:100%}.student-card .ant-card-extra .ant-space-item,.student-card .ant-card-extra .ant-input-affix-wrapper{width:100%}.attendance-filters{grid-template-columns:1fr}.attendance-filters>.ant-btn{width:100%}.drawer-footer-actions{flex-direction:column;align-items:stretch}.learning-sync-filters,.practice-filters{grid-template-columns:1fr;max-width:none}.daily-settlement-grid{grid-template-columns:1fr}.daily-settlement-submit{grid-column:auto}.daily-settlement-submit .ant-btn{width:100%}.point-consumption-filters{grid-template-columns:1fr}.point-consumption-filters>.ant-space{grid-column:auto}.student-consumption-header{height:64px;padding:0 16px}.student-consumption-header .ant-btn{padding-inline:4px}.student-consumption-content{width:min(100% - 24px,920px);padding:24px 0 48px}.student-identity-card{margin-top:0}.student-identity-card>.ant-card-body{padding:25px 20px}.student-consumption-intro h2.ant-typography{font-size:23px}.student-balance-grid{grid-template-columns:1fr}.student-balance-grid .ant-statistic{justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.student-balance-grid .ant-statistic-content{font-size:21px}.student-request-history .ant-list-item{flex-direction:column;align-items:stretch;gap:6px}.student-request-history .ant-list-item-action{margin-inline-start:0}}@media (width<=480px){.login-panel{align-items:flex-start;padding-top:28px}.login-heading h2.ant-typography{font-size:26px}.mobile-brand{margin-bottom:35px}}
