*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{background:radial-gradient(1200px 600px at 85% -10%,rgba(76,141,255,.2),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(45,212,191,.15),transparent 60%),radial-gradient(700px 500px at 30% 120%,rgba(155,123,255,.1),transparent 60%),#0e1220;background-attachment:fixed;color:#f0f4fff5;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums}.glass-card,.ant-card{backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 10px 32px #0000004d,inset 0 1px #ffffff0f}.ant-modal .ant-modal-content,.ant-drawer .ant-drawer-content{background:#171c30eb!important;backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%)}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#151a2c!important}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.app-sider{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 12px;border-right:1px solid rgba(255,255,255,.08);background:#0e122099;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}.app-sider .brand{display:flex;align-items:center;gap:10px;padding:0 10px 18px}.app-sider .brand .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#4c8dff,#9b7bff);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;flex-shrink:0}.app-sider .brand .name{font-size:15px;font-weight:600}.app-sider .brand .sub{font-size:11px;color:#f0f4ff73}.sider-nav{display:flex;flex-direction:column;gap:4px;flex:1}.sider-nav .nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#f0f4ffb3;cursor:pointer;font-size:14px;border:none;background:transparent;text-align:left;width:100%;transition:background .15s,color .15s}.sider-nav .nav-item:hover{background:#ffffff0f;color:#f0f4fff2}.sider-nav .nav-item.active{background:#4c8dff2e;color:#4c8dff;font-weight:600}.sider-footer{padding:12px 10px 0;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#f0f4ff80;display:flex;flex-direction:column;gap:8px}.app-main{min-width:0;padding:24px 28px 64px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.page-header h1{font-size:22px;margin:0}.page-header .actions{display:flex;gap:10px;flex-wrap:wrap}.mobile-topbar,.mobile-tabbar{display:none}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.metric-card{padding:14px 16px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}.metric-card .label{font-size:12px;color:#f0f4ff8c;margin-bottom:6px}.metric-card .value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.metric-card .extra{font-size:11px;color:#f0f4ff73;margin-top:4px}.metric-card.clickable{cursor:pointer;transition:border-color .15s}.metric-card.clickable:hover{border-color:#4c8dff80}.grid-dashboard{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.class-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.class-card{position:relative;border-radius:16px;padding:16px;cursor:pointer;overflow:hidden;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);transition:transform .15s,border-color .15s}.class-card:hover{transform:translateY(-2px);border-color:#ffffff38}.class-card .type-tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#fff}.class-card .name{font-size:17px;font-weight:700;margin:10px 0 6px}.class-card .meta{font-size:12px;color:#f0f4ff99;display:flex;flex-direction:column;gap:3px}.campus-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.campus-card{border-radius:16px;padding:18px;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);position:relative;overflow:hidden}.student-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:background .15s}.student-row:hover{background:#ffffff0d}.avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0;font-size:15px}.initial-divider{padding:10px 4px 4px;font-size:12px;font-weight:700;color:#f0f4ff66}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:min(400px,100%);padding:32px 28px;border-radius:20px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);box-shadow:0 18px 48px #0006}.login-card .logo{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#4c8dff,#9b7bff);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;color:#fff;margin:0 auto 14px;box-shadow:0 8px 24px #4c8dff59}.login-card h1{text-align:center;font-size:22px;margin:0 0 4px}.login-card .subtitle{text-align:center;font-size:13px;color:#f0f4ff8c;margin-bottom:24px}.login-version{position:fixed;left:16px;bottom:14px;font-size:11px;color:#f0f4ff59}.chart-box{width:100%;height:280px}.chart-scroll{overflow-x:auto}.chart-scroll .chart-box{min-width:560px}.hw-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.hw-image-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;cursor:zoom-in;border:1px solid rgba(255,255,255,.1)}.audio-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#4c8dff24;border:1px solid rgba(76,141,255,.35);color:#4c8dff;cursor:pointer;font-size:13px;margin:4px 6px 4px 0}.audio-chip.playing{background:#4c8dff52}.parent-shell{max-width:720px;margin:0 auto;padding:16px 16px 96px;min-height:100vh}.parent-header{display:flex;align-items:center;gap:12px;padding:12px 4px 18px}.stat-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);margin:3px 6px 3px 0;white-space:nowrap}.text-secondary{color:#f0f4ff99}.text-tertiary{color:#f0f4ff61}.text-danger{color:#e0655f}.text-success{color:#44a385}.text-warning{color:#e8b339}.text-primary{color:#4c8dff}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}@media (max-width: 960px){.grid-dashboard,.grid-two,.grid-four{grid-template-columns:minmax(0,1fr)}}@media (max-width: 860px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-sider{display:none}.app-main{padding:70px 16px 90px}.mobile-topbar{display:flex;position:fixed;top:0;left:0;right:0;z-index:100;align-items:center;justify-content:space-between;padding:10px 16px;background:#0e1220d1;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.08)}.mobile-topbar .brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px}.mobile-topbar .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#4c8dff,#9b7bff);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff}.mobile-tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:#0e1220e0;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom)}.mobile-tabbar .tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;font-size:10px;color:#f0f4ff8c;background:transparent;border:none;cursor:pointer}.mobile-tabbar .tab-item.active{color:#4c8dff}.mobile-tabbar .tab-item .anticon{font-size:20px}}@media (max-width: 640px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card .value{font-size:22px}.page-header h1{font-size:18px}.class-card-grid{grid-template-columns:minmax(0,1fr)}}
