:root{--brand-600: #4F46E5;--gray-50: #F8FAFC;--gray-900: #0F172A;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 4px 14px rgb(15 23 42 / 4%);color:var(--gray-900);background:var(--gray-50);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{background:var(--gray-50)}.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;box-shadow:4px 0 18px #0823521f;z-index:2}.brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 21px;color:#fff;font-size:20px;font-weight:700;letter-spacing:.3px;overflow:hidden}.brand-mark{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:#1769e0;font-weight:800}.brand-logo-image{width:34px;height:34px;object-fit:contain;border-radius:var(--radius-md);background:#fff}.app-sider .ant-menu{border-inline-end:0!important;padding:10px 9px}.app-sider .ant-menu-item{height:46px;line-height:46px;margin-block:5px}.sider-version{position:absolute;bottom:22px;width:100%;color:#ffffff7a;font-size:12px;text-align:center}.top-header{height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8edf5}.collapse-button{font-size:18px}.header-identity{display:flex;flex-direction:column;text-align:right;line-height:1.35}.header-identity .ant-typography:last-child{font-size:12px}.user-avatar{background:#e7f0ff;color:#1769e0;cursor:pointer}.app-content{padding:28px;overflow-x:hidden}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-header h1{margin:0 0 5px;font-size:26px;line-height:1.3}.page-header p{margin:0;color:#76839a}.ant-card{border-color:#e8edf5;box-shadow:0 4px 14px #1f3c680a}.stat-card{position:relative;overflow:hidden}.stat-card .ant-statistic{margin-left:58px;margin-bottom:14px}.stat-card .ant-tag{margin-left:58px}.stat-icon{position:absolute;top:25px;left:22px;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eaf2ff;color:#1769e0;font-size:20px}.dashboard-card{min-height:340px}.progress-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px;padding:13px 0}.progress-row .ant-progress{margin:0}.table-toolbar{display:flex;gap:10px;width:min(480px,100%);margin-bottom:20px}.muted{max-width:320px;color:#8994a7;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.course-cover{width:64px;height:42px;display:grid;place-items:center;border-radius:7px;overflow:hidden;background:linear-gradient(135deg,#1769e0,#61a1fa);color:#fff;font-weight:700}.course-cover img,.detail-cover img{width:100%;height:100%;object-fit:cover}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr);background:#fff}.login-intro{position:relative;overflow:hidden;padding:10vh 9vw;color:#fff;background:linear-gradient(145deg,#082f72,#0f5ac7 55%,#2384ef)}.login-intro:after{content:"";position:absolute;width:420px;height:420px;right:-120px;bottom:-160px;border:80px solid rgba(255,255,255,.08);border-radius:50%}.login-logo{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#fff;color:#1769e0;font-size:30px;font-weight:800}.login-intro h1.ant-typography{max-width:600px;margin-top:80px;color:#fff;font-size:clamp(34px,4vw,58px);line-height:1.24}.login-intro p.ant-typography{max-width:520px;color:#ffffffbf;font-size:17px;line-height:1.8}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.09;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:48px 48px;pointer-events:none}.login-form-wrap{display:grid;place-items:center;padding:48px}.login-card{width:min(430px,100%);box-shadow:none}.login-card .ant-card-body{padding:36px}.login-card form{margin-top:32px}.login-button{height:48px;margin-top:8px;font-weight:600}.center-spin{min-height:60vh;display:grid;place-items:center}.course-summary{margin-bottom:24px}.detail-cover{width:128px;height:78px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border-radius:9px;color:#fff;background:linear-gradient(135deg,#1769e0,#61a1fa);font-size:26px}.course-description{margin:10px 0 0!important;color:#68758b}.section-heading{display:flex;align-items:center;gap:14px;margin:24px 0 14px}.section-heading h4{margin:0}.chapter-collapse{background:#fff;border-color:#e8edf5}.chapter-collapse .ant-collapse-header{align-items:center!important;padding:17px 20px!important}.lesson-row{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:8px 14px;border-bottom:1px solid #edf0f5}.lesson-row:last-child{border-bottom:0}.lesson-index{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf4ff;color:#1769e0;font-size:12px}.media-uploader{display:grid;gap:12px}.media-uploader .ant-upload-wrapper .ant-upload-drag{padding:22px 16px;border-radius:12px;border-color:#cbd8ec;background:linear-gradient(145deg,#fbfdff,#f5f8ff);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.media-uploader .ant-upload-wrapper .ant-upload-drag:hover{border-color:var(--brand-600);box-shadow:0 10px 28px #4f46e51a;transform:translateY(-1px)}.media-uploader .ant-upload-drag-icon{margin-bottom:8px!important}.media-uploader .ant-upload-drag-icon .anticon{color:var(--brand-600)!important;font-size:34px!important}.media-uploader-title{margin:0 0 5px;color:#24314a;font-size:15px;font-weight:600}.media-uploader-hint{margin:0;color:#8994a7;font-size:12px}.media-uploader-preview{display:grid;grid-template-columns:88px minmax(140px,1fr) auto;align-items:center;gap:14px;min-height:104px;padding:14px;border:1px solid #dfe7f3;border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.media-uploader-thumb{width:88px;height:74px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:linear-gradient(145deg,#eef3ff,#e6ecfa);color:var(--brand-600);font-size:30px}.media-uploader-thumb img{width:100%;height:100%;object-fit:cover}.media-uploader-meta{min-width:0;display:grid;gap:5px}.media-uploader-actions{justify-content:flex-end}.media-uploader-status{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,40%);align-items:center;gap:14px;padding:10px 12px;border-radius:9px;background:#f6f8fc}.resource-upload-card{margin-bottom:20px;background:linear-gradient(145deg,#fff,#f9fbff)}.resource-upload-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.resource-upload-heading p{margin:5px 0 0;color:#7b879b;font-size:13px}@media(max-width:860px){.login-page{grid-template-columns:1fr}.login-intro{display:none}.login-form-wrap{min-height:100vh;padding:24px}.app-content{padding:20px 14px}.header-identity{display:none}.page-header{align-items:flex-start}.progress-row{grid-template-columns:1fr;gap:4px}}@media(max-width:620px){.app-sider{position:fixed!important}.app-sider:not(.ant-layout-sider-collapsed){width:220px!important;min-width:220px!important}.app-shell>.ant-layout{margin-left:76px}.top-header{padding:0 14px}.page-header{flex-direction:column}.table-toolbar{flex-wrap:wrap}.lesson-row{align-items:flex-start;gap:10px}.media-uploader-preview{grid-template-columns:68px minmax(0,1fr)}.media-uploader-thumb{width:68px;height:60px}.media-uploader-actions{grid-column:1 / -1;justify-content:flex-start}.media-uploader-status{grid-template-columns:1fr}}
