:root{--bg-deep: #060a12;--panel: rgba(20, 30, 51, .82);--panel-border: rgba(74, 112, 186, .26);--text: #e8eefc;--muted: #8ba0c6;--accent: #3d8bff;--warn: #ff9f43;--danger: #ff5c5c;--success: #34d399}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,Source Han Sans SC,sans-serif;color:var(--text);background:var(--bg-deep)}.viewport{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 20% 0%,rgba(61,139,255,.16),transparent 55%),radial-gradient(circle at 85% 100%,rgba(123,92,255,.14),transparent 50%),var(--bg-deep)}.stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center center;overflow:hidden}.board{display:flex;flex-direction:column;width:100%;height:100%;padding:24px 32px 12px}.status-bar{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 6px 18px}.status-bar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(77,155,255,.55),rgba(77,155,255,.04))}.status-brand{display:flex;align-items:center}.status-accent{width:6px;height:58px;border-radius:3px;margin-right:18px;background:linear-gradient(180deg,#4d9bff,#7b5cff);box-shadow:0 0 20px rgba(77,155,255,.55)}.status-titles{display:flex;flex-direction:column}.status-school{font-size:18px;letter-spacing:3px;color:#7f96bd;margin-bottom:7px}.status-title{font-size:42px;font-weight:800;letter-spacing:5px;color:#f2f7ff;text-shadow:0 4px 24px rgba(77,155,255,.35)}.status-right,.stats{display:flex;align-items:center}.stat{display:flex;flex-direction:column;align-items:center;padding:0 30px;border-left:1px solid rgba(86,124,186,.2)}.stat:first-child{border-left:0}.stat-value{font-size:40px;font-weight:800;line-height:1;color:#eaf1ff;font-variant-numeric:tabular-nums}.stat-value.is-warn{color:#ffab5e;text-shadow:0 0 24px rgba(255,159,67,.5)}.stat-label{margin-top:9px;font-size:15px;letter-spacing:2px;color:#7f96bd}.freshness{display:flex;align-items:center;margin-left:30px;padding:9px 16px;border-radius:999px;background:rgba(28,41,66,.72);border:1px solid rgba(86,124,186,.2);font-size:16px;color:#8ba0c6;max-width:430px}.freshness-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;margin-right:10px;background:#34d399}.freshness.is-stale{color:#ffab5e;border-color:rgba(255,159,67,.35)}.freshness.is-stale .freshness-dot{background:#ff9f43}.freshness.is-error{color:#ff8f8f;border-color:rgba(255,92,92,.35)}.freshness.is-error .freshness-dot{background:#ff5c5c}.freshness-dot.is-fetching{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%{opacity:.25}50%{opacity:1}to{opacity:.25}}.board-body{display:flex;flex:1;margin-top:20px;min-height:0}.grade-column{--grade: 77, 155, 255;position:relative;display:flex;flex-direction:column;flex:1;min-width:0;margin-right:20px;border-radius:20px;overflow:hidden;background:linear-gradient(180deg,rgba(30,44,72,.88),rgba(15,23,39,.92));border:1px solid rgba(86,124,186,.2);box-shadow:0 20px 44px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.05);animation:rise .55s cubic-bezier(.22,.9,.3,1) both}.grade-column:nth-child(2){--grade: 124, 108, 255}.grade-column:nth-child(3){--grade: 38, 198, 178}.grade-column:nth-child(4){--grade: 255, 159, 67}.grade-column:nth-child(5){--grade: 240, 106, 152}.grade-column:nth-child(6){--grade: 96, 200, 255}.grade-column:last-child{margin-right:0}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.grade-header{display:flex;align-items:center;padding:17px 22px;background:linear-gradient(180deg,rgba(var(--grade),.2),rgba(var(--grade),0));border-bottom:1px solid rgba(86,124,186,.16)}.grade-badge{flex:0 0 auto;width:46px;height:44px;margin-right:14px;border-radius:13px;text-align:center;line-height:42px;font-size:23px;font-weight:800;color:rgb(var(--grade));background:rgba(var(--grade),.14);border:1px solid rgba(var(--grade),.38)}.grade-name{flex:1;min-width:0;font-size:28px;font-weight:700;letter-spacing:1px;color:#eaf1ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-count{flex:0 0 auto;padding:7px 15px;border-radius:999px;font-size:16px;font-weight:600;color:#ffb066;background:rgba(255,159,67,.13);border:1px solid rgba(255,159,67,.3)}.grade-count.is-clear{color:#4ade80;background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.3)}.grade-body{flex:1;overflow-y:auto;padding:2px 16px 14px;scrollbar-width:none;-ms-overflow-style:none}.grade-body::-webkit-scrollbar{display:none}.grade-column:after{content:"";display:none;position:absolute;left:0;right:0;bottom:0;height:42px;pointer-events:none;background:linear-gradient(180deg,rgba(15,23,39,0),rgba(15,23,39,.92))}.grade-column.is-overflow:after{display:block}.class-group{margin-top:16px}.class-title{display:flex;align-items:center;padding:0 4px 10px;margin-bottom:12px;border-bottom:1px dashed rgba(86,124,186,.22)}.class-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;margin-right:10px;background:rgb(var(--grade));box-shadow:0 0 10px rgba(var(--grade),.85)}.class-name{font-size:20px;font-weight:600;letter-spacing:1px;color:#a9bfe0}.class-count{margin-left:auto;font-size:16px;color:#6d84a8}.student-grid{display:flex;flex-wrap:wrap;margin:0 -5px}.student-card{display:flex;align-items:center;width:calc(33.333% - 10px);height:58px;margin:0 5px 8px;padding:0 10px;border-radius:11px;background:rgba(58,82,124,.34);border:1px solid rgba(86,124,186,.16);border-left:3px solid rgba(255,159,67,.75);animation:fade-in .4s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.student-name{flex:1;min-width:0;font-size:22px;font-weight:600;color:#eef4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-pill{flex:0 0 auto;min-width:34px;height:28px;margin-left:6px;padding:0 8px;border-radius:999px;text-align:center;line-height:28px;font-size:18px;font-weight:800;color:#241503;background:linear-gradient(135deg,#ffb066,#ff7a45);box-shadow:0 4px 14px rgba(255,122,69,.32);font-variant-numeric:tabular-nums}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.empty-icon{width:76px;height:72px;line-height:70px;margin-bottom:20px;border-radius:50%;text-align:center;font-size:34px;color:#34d399;border:2px solid rgba(52,211,153,.45);box-shadow:0 0 32px rgba(52,211,153,.18)}.empty-text{font-size:23px;color:#9db3d4}.empty-sub{margin-top:10px;font-size:16px;color:#63799c}.board-loading{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;font-size:24px;color:#8ba0c6}.loading-ring{width:54px;height:54px;margin-bottom:20px;border:3px solid rgba(77,155,255,.22);border-top-color:#4d9bff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.board-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 8px 0;font-size:16px;letter-spacing:1px;color:#5c7297}.board-footer-right{color:#7f96bd}
