@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--brand-primary: #2563EB;--brand-primary-hover: #1D4ED8;--brand-primary-active: #1E40AF;--brand-primary-light: #DBEAFE;--brand-secondary: #0EA5E9;--brand-accent: #06B6D4;--brand-navy: #0B1F3A;--bg-page: #EEF2F9;--bg-surface: #FFFFFF;--bg-elevated: #F7F9FD;--bg-subtle: #E7EDF8;--border-color: #D7E0EE;--border-color-hover: #B9C7E0;--text-primary: #14213B;--text-secondary: #4E5F7C;--text-tertiary: #93A1BC;--text-inverse: #FFFFFF;--shadow-sm: 0 1px 3px rgba(20, 33, 59, .06);--shadow-md: 0 4px 14px rgba(20, 33, 59, .08);--shadow-lg: 0 12px 32px rgba(20, 33, 59, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Hiragino Sans GB", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", "Courier New", monospace}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-mono),var(--font-sans);background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.7}#app{min-height:100vh}a{color:var(--brand-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--brand-primary-hover)}#app .ant-card{position:relative;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),border-color .22s ease,background-color .22s ease}#app .ant-card:hover{z-index:2;border-color:#2563eb3d;box-shadow:0 14px 34px #142d5a1c,0 3px 9px #142d5a0f;transform:translateY(-3px)}#app .ant-card.ant-card-hoverable{cursor:pointer}#app .ant-card.ant-card-hoverable:hover{border-color:#2563eb52;box-shadow:0 18px 40px #142d5a24,0 4px 10px #142d5a12;transform:translateY(-4px) scale(1.003)}#app .ant-card:focus-within{border-color:#2563eb4d}#app :is(div,section,article,button,a)[class*=card]:not([class*=card-]):not([class*=cards]),#app .card-item,#app .hc-card-done{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),border-color .22s ease,background-color .22s ease}#app :is(div,section,article,button,a)[class*=card]:not([class*=card-]):not([class*=cards]):hover,#app .card-item:hover,#app .hc-card-done:hover{z-index:2;border-color:#2563eb3d;box-shadow:0 14px 30px #142d5a1c,0 3px 8px #142d5a0f;transform:translateY(-3px)}@media (prefers-reduced-motion: reduce){#app .ant-card{transition:box-shadow .12s ease,border-color .12s ease}#app .ant-card:hover,#app .ant-card.ant-card-hoverable:hover{transform:none}#app :is(div,section,article,button,a)[class*=card]:not([class*=card-]):not([class*=cards]),#app .card-item,#app .hc-card-done{transition:box-shadow .12s ease,border-color .12s ease}#app :is(div,section,article,button,a)[class*=card]:not([class*=card-]):not([class*=cards]):hover,#app .card-item:hover,#app .hc-card-done:hover{transform:none}}#app .ant-pagination{display:flex;max-width:100%;align-items:center;flex-wrap:nowrap!important;column-gap:2px;white-space:nowrap;overflow-x:auto;overflow-y:hidden}#app .ant-pagination>li{flex:none}#app .ant-pagination .ant-pagination-item a,#app .ant-pagination .ant-pagination-item-link,#app .ant-pagination .ant-pagination-item-ellipsis{font-size:11px!important}#app .ant-pagination .ant-pagination-item{border-radius:7px!important;transition:color .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}#app .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active):hover{border-color:#cfe0ff!important;background:#f3f7ff!important}#app .ant-pagination .ant-pagination-item-active{border-color:transparent!important;background:linear-gradient(145deg,#5b9cff,#2563eb)!important;box-shadow:inset 0 1px #ffffff52,0 3px 8px #2563eb3d}#app .ant-pagination .ant-pagination-item-active a,#app .ant-pagination .ant-pagination-item-active:hover a{color:#fff!important;font-weight:700}#app .ant-pagination-total-text{margin-inline-end:2px!important;font-size:11px}#app .ant-pagination-options{display:inline-flex;align-items:center;flex-wrap:nowrap!important;margin-inline-start:2px!important}#app .ant-pagination-options-size-changer{width:112px!important;min-width:112px!important;margin-inline-end:2px!important}#app .ant-pagination-options-size-changer .ant-select-selector{padding-inline:6px 20px!important}#app .ant-pagination-options-size-changer .ant-select-selection-item{overflow:visible!important;padding-inline-end:0!important;font-size:10px!important;line-height:22px!important;text-overflow:clip!important;white-space:nowrap!important}#app .ant-pagination-options-size-changer .ant-select-arrow{inset-inline-end:5px;width:10px}#app .ant-pagination-options-quick-jumper{display:inline-flex;align-items:center;gap:3px;margin-inline-start:2px!important;font-size:11px}#app .ant-pagination-options-quick-jumper input{width:32px!important;margin-inline:0!important;padding-inline:3px!important}#app .ant-table-pagination.ant-pagination{justify-content:flex-end}#app .standard-table{display:flex;min-width:0;min-height:0;flex-direction:column}#app .standard-table>.ant-spin-nested-loading,#app .standard-table>.ant-spin-nested-loading>.ant-spin-container{display:flex;min-height:0;flex:1;flex-direction:column}#app .standard-table>.ant-spin-nested-loading>.ant-spin-container>.ant-table-pagination{margin-top:auto!important}code,pre,.mono{font-family:var(--font-mono)}*{scrollbar-width:thin;scrollbar-color:transparent transparent}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:transparent!important}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:vertical,::-webkit-scrollbar-thumb:horizontal,::-webkit-scrollbar-thumb:hover{border-radius:999px;background-color:transparent!important;transition:background-color .18s ease}#global-scrollbar-fade{position:fixed;z-index:2147483000;top:0;left:0;width:5px;border-radius:999px;background:#4e5f7c85;box-shadow:0 0 0 1px #ffffff3d;opacity:0;pointer-events:none;will-change:transform,height,opacity;transition:opacity .26s cubic-bezier(.22,1,.36,1)}#global-scrollbar-fade.is-visible{opacity:1}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .25s ease}.page-fade-enter-from,.page-fade-leave-to{opacity:0}@media (max-width: 1440px){.campus-layout .ant-table-content,.campus-layout .ant-table-body,.jgai-layout .ant-table-content,.jgai-layout .ant-table-body{overflow-x:auto}.campus-layout .ant-table-content>table,.jgai-layout .ant-table-content>table{min-width:max-content}.campus-layout .ant-table-tbody>tr>td .ant-btn,.jgai-layout .ant-table-tbody>tr>td .ant-btn,.campus-layout .ant-table-tbody>tr>td .ant-tag,.jgai-layout .ant-table-tbody>tr>td .ant-tag{white-space:nowrap}.campus-layout .ant-card-body,.jgai-layout .ant-card-body{overflow-x:auto}.campus-layout .ant-card-head-wrapper,.jgai-layout .ant-card-head-wrapper,.campus-layout .ant-card-head-wrapper .ant-space,.jgai-layout .ant-card-head-wrapper .ant-space{flex-wrap:wrap;row-gap:6px}}#app .ant-table-wrapper .ant-table-tbody>tr.ant-table-row:nth-child(odd):not(.ant-table-row-selected):not(.set-row-active):not(.member-row-active):not(.problem-row-active):not(.row-gray):not(.row-white)>td{background:#fff}#app .ant-table-wrapper .ant-table-tbody>tr.ant-table-row:nth-child(2n):not(.ant-table-row-selected):not(.set-row-active):not(.member-row-active):not(.problem-row-active):not(.row-gray):not(.row-white)>td{background:#f5f8fd}#app .ant-table-wrapper .ant-table-tbody>tr.ant-table-row:not(.ant-table-row-selected):not(.set-row-active):not(.member-row-active):not(.problem-row-active):not(.row-gray):not(.row-white):hover>td{background:#edf4ff!important}#app :is(.stat-card,.summary-card,.ad-metric,.pm-item,.course-metrics,.detail-metrics,.practice-summary,.paper-metrics>span,.summary-metrics>div,.card-metrics>span,.hero-metrics>span,.live-metrics .metric){box-shadow:inset 0 1px #ffffffeb,inset 0 -1px #284a7d0d,0 8px 20px #1f376017,0 2px 5px #1f37600d;transform:translateZ(0);transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),border-color .18s ease}#app :is(.stat-card,.ad-metric,.pm-item,.paper-metrics>span,.summary-metrics>div,.card-metrics>span):hover{transform:translateY(-2px) translateZ(0);box-shadow:inset 0 1px #fffffff5,0 13px 26px #1f376021,0 3px 8px #1f376012}#app .ant-table-wrapper{border-radius:12px;box-shadow:inset 0 1px #fffffff0,0 8px 22px #1f376012,0 2px 5px #1f37600a}#app .ant-table-wrapper .ant-table-thead>tr>th{background-image:linear-gradient(180deg,#f8fbff,#edf3fb);box-shadow:inset 0 1px #fffffff2,0 1px #5f7aa31a}#app .ant-progress-bg{box-shadow:inset 0 1px 1px #ffffff9e,0 2px 5px #2563eb29}#app :is(.chart-wrap,.trend-line-chart){border:1px solid rgba(211,224,243,.72);border-radius:12px;background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.96),transparent 46%),linear-gradient(180deg,#fbfdff,#f3f8ff);box-shadow:inset 0 1px #fffffff5,inset 0 -10px 22px #c9d9ef1f,0 7px 18px #1f376012}#app :is(.chart-wrap,.trend-line-chart,.profile-radar,.ad-profile-radar) svg{filter:drop-shadow(0 4px 4px rgba(42,75,122,.11))}#app :is(.trend-line-chart .trend-dot,.chart-wrap .point){filter:drop-shadow(0 2px 2px rgba(30,61,105,.22))}@media (prefers-reduced-motion: reduce){#app :is(.stat-card,.summary-card,.ad-metric,.pm-item,.course-metrics,.detail-metrics,.practice-summary,.paper-metrics>span,.summary-metrics>div,.card-metrics>span,.hero-metrics>span,.live-metrics .metric){transition:box-shadow .12s ease,border-color .12s ease}#app :is(.stat-card,.ad-metric,.pm-item,.paper-metrics>span,.summary-metrics>div,.card-metrics>span):hover{transform:none}}.time-grid-scroll{position:relative;overflow:auto;max-height:72vh;border:1px solid #e3eaf5;border-radius:8px}.time-grid{display:flex;align-items:flex-start}.time-axis-col{position:sticky;left:0;z-index:4;width:110px;flex:0 0 110px;background:#fff;border-right:2px solid #e3eaf5;box-shadow:2px 0 6px #0f172a0d}.time-corner{position:sticky;top:0;z-index:5;box-sizing:border-box;height:52px;display:flex;align-items:center;justify-content:center;background:#f7f9fc;border-bottom:2px solid #e3eaf5;font-size:13px;font-weight:600;color:#000000bf}.time-axis{display:flex;flex-direction:column}.time-axis-cell{height:var(--hour-px, 80px);box-sizing:border-box;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;font-size:12px;color:#0009;border-bottom:1px dashed #e9eff8;background:#fff}.time-day{display:flex;flex-direction:column;box-sizing:border-box;flex:0 0 auto;background:#fff;border-right:2px solid #e3eaf5}.time-day-alt{background:#fafbfd}.time-day-head{position:sticky;top:0;z-index:3;box-sizing:border-box;height:52px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding-left:12px;background:inherit;border-bottom:2px solid #e3eaf5}.time-day-name{position:sticky;left:122px;font-size:13px;font-weight:600;color:#000000d9;white-space:nowrap}.time-day-count{position:sticky;left:122px;font-size:12px;color:#00000073;white-space:nowrap}.time-day-body{position:relative}.time-hour-line{height:var(--hour-px, 80px);box-sizing:border-box;border-bottom:1px dashed #e9eff8}.time-slot-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed #eef2f8}.time-card{position:absolute;box-sizing:border-box;padding:3px 6px;border-radius:4px;border:1px solid #91caff;background:#e6f4ff;box-shadow:0 1px 2px #0f172a0f;font-size:12px;line-height:1.25;overflow:hidden;cursor:pointer}.time-card:hover{background:#d0e8ff}.time-card-done{background:#f0f0f0;border-color:#d9d9d9}.time-card-done:hover{background:#e8e8e8}.time-card-done .time-card-time,.time-card-done .time-card-name,.time-card-done .time-card-meta{color:#00000073}.time-card-badge{position:absolute;top:0;right:0;box-sizing:border-box;width:26px;height:26px;padding:2px 3px 0 0;display:flex;align-items:flex-start;justify-content:flex-end;background:#595959;color:#fff;font-size:10px;line-height:12px;letter-spacing:-1px;clip-path:polygon(100% 0,100% 100%,0 0)}.time-card-time{font-weight:600;color:#0958d9}.time-card-name{color:#000000d9}.time-card-meta{color:#0000008c}.time-card-short .time-card-meta+.time-card-meta{display:none}
