:root{color:#20242d;background:#f5f7fb;font-family:Inter,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f5f7fb}#app{min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}.login-page{display:grid;place-items:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,rgba(21,191,141,.12),rgba(45,111,210,.08)),#f5f7fb}.login-panel{display:grid;gap:16px;width:min(390px,100%);padding:30px;border:1px solid #e2e8f1;border-radius:8px;background:#ffffff;box-shadow:0 18px 40px #2028361a}.login-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:#fff;background:#19c594;font-size:18px;font-weight:900}.login-panel h1{margin:0 0 4px;color:#20242d;font-size:24px;line-height:1.2}.admin-shell{display:grid;grid-template-columns:232px minmax(0,1fr);height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;min-height:0;padding:22px 14px;background:#19202b;color:#f4f7fb;overflow-y:auto}.admin-brand{display:flex;align-items:center;gap:11px;padding:0 10px 22px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:#19c594;color:#fff;font-weight:900}.admin-brand strong,.admin-brand small{display:block}.admin-brand strong{font-size:16px;line-height:1.2}.admin-brand small{margin-top:3px;color:#94a1b4;font-size:10px;font-weight:800}.menu{display:grid;gap:6px;margin-top:4px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;height:42px;padding:0 12px;border-radius:8px;color:#c9d1de;background:transparent;text-align:left;font-size:14px;font-weight:800}.menu-item.active{color:#fff;background:#263140}.menu-icon,.list-icon,.teacher-icon,.course-icon,.media-icon,.student-icon,.message-icon,.lock-icon,.save-icon,.refresh-icon,.upload-icon{position:relative;display:inline-block;flex:0 0 auto}.menu-icon{width:15px;height:15px;border:2px solid currentColor;border-radius:4px}.menu-icon:after{position:absolute;top:5px;left:3px;width:5px;height:2px;background:currentColor;content:""}.list-icon{width:15px;height:13px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}.list-icon:before,.list-icon:after{position:absolute;left:0;width:15px;height:2px;background:currentColor;content:""}.list-icon:before{top:4px}.list-icon:after{top:9px}.teacher-icon{width:15px;height:15px;border:2px solid currentColor;border-radius:50%}.teacher-icon:after{position:absolute;left:-3px;bottom:-8px;width:17px;height:8px;border:2px solid currentColor;border-bottom:0;border-radius:10px 10px 0 0;content:""}.course-icon{width:16px;height:14px;border:2px solid currentColor;border-radius:3px}.course-icon:before,.course-icon:after{position:absolute;left:3px;width:6px;height:2px;background:currentColor;content:""}.course-icon:before{top:3px}.course-icon:after{top:8px}.media-icon{width:16px;height:12px;border:2px solid currentColor;border-radius:3px}.media-icon:before{position:absolute;left:2px;bottom:2px;width:4px;height:4px;border-radius:50%;background:currentColor;content:""}.media-icon:after{position:absolute;right:1px;bottom:2px;width:7px;height:5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:skew(-28deg);content:""}.student-icon{width:16px;height:16px}.student-icon:before,.student-icon:after{position:absolute;content:""}.student-icon:before{left:4px;top:0;width:7px;height:7px;border:2px solid currentColor;border-radius:50%}.student-icon:after{left:0;bottom:0;width:16px;height:8px;border:2px solid currentColor;border-bottom:0;border-radius:10px 10px 0 0}.message-icon{width:16px;height:13px;border:2px solid currentColor;border-radius:4px}.message-icon:after{position:absolute;left:3px;bottom:-5px;width:7px;height:7px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;background:#19202b;transform:rotate(-45deg);content:""}.lock-icon{width:15px;height:12px;border:2px solid currentColor;border-radius:4px}.lock-icon:before{position:absolute;left:2px;top:-8px;width:7px;height:8px;border:2px solid currentColor;border-bottom:0;border-radius:7px 7px 0 0;content:""}.logout-button{height:36px;margin-top:auto;border-radius:8px;color:#c9d1de;background:#263140;font-size:13px;font-weight:800}.workspace{min-width:0;min-height:0;padding:30px clamp(18px,4vw,44px) 42px;overflow-y:auto}.workspace-notice{position:sticky;top:0;z-index:5;margin:0 0 18px;padding:12px 14px;border:1px solid #ccefe4;border-radius:8px;color:#0f9d72;background:rgba(240,251,246,.96);box-shadow:0 12px 28px #20283614;font-size:13px;font-weight:800;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.workspace-notice.error{border-color:#f2c8c8;color:#d64242;background:rgba(255,244,244,.96)}.modal-notice{margin:18px 24px 0;padding:12px 14px;border:1px solid #ccefe4;border-radius:8px;color:#0f9d72;background:rgba(240,251,246,.96);box-shadow:0 12px 28px #20283614;font-size:13px;font-weight:800}.modal-notice.error{border-color:#f2c8c8;color:#d64242;background:rgba(255,244,244,.96)}.feedback-popup-enter-active,.feedback-popup-leave-active,.confirm-dialog-enter-active,.confirm-dialog-leave-active{transition:opacity .18s ease,transform .18s ease}.feedback-popup-enter-from,.feedback-popup-leave-to{opacity:0;transform:translate3d(0,-12px,0) scale(.98)}.confirm-dialog-enter-from,.confirm-dialog-leave-to{opacity:0;transform:scale(.96)}.feedback-popup{position:fixed;top:22px;right:22px;z-index:110;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;width:min(420px,calc(100vw - 32px));padding:16px 18px;border:1px solid rgba(255,255,255,.48);border-radius:18px;color:#fff;box-shadow:0 22px 48px #0e172333;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.feedback-popup.success{background:linear-gradient(135deg,rgba(19,124,91,.96),rgba(21,191,141,.9)),#15bf8d}.feedback-popup.error{background:linear-gradient(135deg,rgba(170,36,36,.96),rgba(226,66,66,.9)),#d64242}.feedback-popup-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.16);font-size:22px;font-weight:900;line-height:1}.feedback-popup-content{display:grid;gap:4px;padding-top:2px}.feedback-popup-content p,.feedback-popup-content strong{margin:0}.feedback-popup-content p{opacity:.78;font-size:12px;font-weight:900;letter-spacing:.08em}.feedback-popup-content strong{font-size:15px;line-height:1.5;word-break:break-word}.feedback-popup-close{display:grid;place-items:center;width:32px;height:32px;border-radius:999px;color:inherit;background:rgba(255,255,255,.14);font-size:20px;line-height:1}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(12,18,27,.56);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.confirm-dialog-panel{display:grid;gap:18px;width:min(460px,100%);padding:24px;border:1px solid #e7ecf3;border-radius:24px;background:radial-gradient(circle at top right,rgba(21,191,141,.08),transparent 40%),#ffffff;box-shadow:0 28px 60px #0a131f3d}.confirm-dialog-panel.danger{background:radial-gradient(circle at top right,rgba(214,66,66,.12),transparent 42%),#ffffff}.confirm-dialog-badge{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#d64242,#f06a6a);font-size:24px;font-weight:900;line-height:1}.confirm-dialog-copy{display:grid;gap:8px}.confirm-dialog-copy p,.confirm-dialog-copy h3,.confirm-dialog-copy small{margin:0}.confirm-dialog-copy p{color:#8a94a6;font-size:12px;font-weight:900;letter-spacing:.08em}.confirm-dialog-copy h3{color:#20242d;font-size:22px;line-height:1.35}.confirm-dialog-copy small{color:#5f6c80;font-size:13px;line-height:1.6;font-weight:700}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:12px}.danger-button{background:linear-gradient(135deg,#cb3e3e,#ea5757);box-shadow:0 12px 24px #d642423d}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.workspace-head p{margin:0 0 6px;color:#798395;font-size:13px;font-weight:800}.workspace-head h1{margin:0;color:#20242d;font-size:28px;line-height:1.2}.save-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:116px;height:38px;padding:0 15px;border-radius:8px;font-size:14px;font-weight:900}.save-button{color:#fff;background:#15bf8d;box-shadow:0 10px 18px #15bf8d2e}.ghost-button{color:#485265;background:#eef2f7}.save-icon{width:13px;height:10px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg) translateY(-2px)}.refresh-icon{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}.refresh-icon:after{position:absolute;right:-3px;top:-3px;width:0;height:0;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;content:""}.upload-icon{width:14px;height:14px;border:2px solid currentColor;border-radius:4px}.upload-icon:before{position:absolute;left:4px;top:-5px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:5px solid currentColor;content:""}.upload-icon:after{position:absolute;left:5px;top:0;width:2px;height:7px;background:currentColor;content:""}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,390px);gap:24px;align-items:start}.settings-form,.preview-panel,.password-form,.sms-form,.sms-card,.category-form,.category-card,.teacher-form,.teacher-card,.course-form,.course-row,.course-table-head,.review-form,.review-row,.review-table-head{border:1px solid #e6ebf2;border-radius:16px;background:#ffffff;box-shadow:0 18px 40px #20283612}.settings-form{display:grid;gap:18px;border:0;border-radius:0;background:transparent;box-shadow:none}.settings-intro-card,.settings-card,.settings-action-bar{border:1px solid #dde6f2;border-radius:18px;background:#ffffff;box-shadow:0 18px 40px #20283612}.settings-intro-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px;padding:24px;background:radial-gradient(circle at top left,rgba(21,191,141,.16),transparent 34%),linear-gradient(135deg,#ffffff,#f7fbff)}.settings-intro-copy{display:grid;gap:10px;align-content:start}.settings-intro-copy p{margin:0;color:#0f8f6d;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.settings-intro-copy h2{margin:0;max-width:16em;color:#20242d;font-size:28px;line-height:1.25}.settings-intro-copy span{color:#667083;font-size:14px;line-height:1.7}.settings-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-stat{display:grid;gap:6px;align-content:start;padding:16px;border:1px solid rgba(214,226,240,.9);border-radius:14px;background:rgba(255,255,255,.8)}.settings-stat strong{color:#20242d;font-size:24px;line-height:1.1}.settings-stat span{color:#798395;font-size:12px;font-weight:900}.settings-card{display:grid;gap:18px;padding:22px}.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-card-head p{margin:0 0 6px;color:#0f8f6d;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.settings-card-head h2{margin:0;color:#20242d;font-size:22px;line-height:1.25}.settings-card-head small{display:block;margin-top:8px;max-width:44em;color:#798395;font-size:13px;font-weight:800;line-height:1.7}.settings-status-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid #dce6f3;border-radius:999px;color:#526070;background:#f5f8fc;font-size:12px;font-weight:900;white-space:nowrap}.settings-status-pill.active{border-color:#c8efe2;color:#0f8f6d;background:#e9fbf5}.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.settings-section-block{display:grid;gap:14px;padding:18px;border:1px solid #edf2f8;border-radius:16px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.settings-block-tip{color:#798395;font-size:12px;font-weight:800}.settings-action-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px}.settings-action-copy{display:grid;gap:6px}.settings-action-copy strong{color:#20242d;font-size:15px}.settings-action-copy span{color:#798395;font-size:12px;font-weight:800}.settings-action-buttons{display:flex;flex-wrap:wrap;gap:10px}.password-form{display:grid;gap:18px;width:min(520px,100%);padding:22px}.sms-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;padding:22px}.sms-layout{display:grid;grid-template-columns:minmax(360px,560px) minmax(0,1fr);gap:22px;align-items:start}.sms-list{display:grid;gap:14px}.sms-card{display:grid;gap:10px;padding:16px}.sms-card strong{display:block;color:#20242d;font-size:16px}.sms-card small,.sms-card p{color:#798395;font-size:12px;font-weight:800}.sms-card p{margin:0;overflow-wrap:anywhere}.sms-template-tip{grid-column:1 / -1;margin:0;padding:12px 14px;border-radius:8px;color:#485265;background:#f4f7fb;font-size:13px;font-weight:800}label{display:grid;gap:8px;min-width:0}.wide,label.wide{grid-column:1 / -1}label span{color:#4a5364;font-size:13px;font-weight:900}.field-title{display:block;margin-bottom:10px;color:#4a5364;font-size:13px;font-weight:900}input,select,textarea{width:100%;border:1px solid #dce3ec;border-radius:8px;color:#20242d;background:#ffffff;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input{height:40px;padding:0 12px}input[type=datetime-local]{min-width:0;padding:0 8px;font-size:13px}select{height:40px;padding:0 12px}textarea{min-height:84px;resize:vertical;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:#15bf8d;box-shadow:0 0 0 3px #15bf8d1f}.logo-uploader{display:flex;align-items:center;gap:16px;min-width:0}.logo-preview{display:grid;place-items:center;flex:0 0 auto;width:72px;height:72px;overflow:hidden;border:1px solid #dce3ec;border-radius:8px;color:#fff;background:#263140;font-size:24px;font-weight:900}.logo-preview img{display:block;width:100%;height:100%;object-fit:cover}.upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.upload-actions input{display:none}.upload-actions small{color:#798395;font-size:12px;font-weight:800}.file-button{cursor:pointer}.text-button{height:32px;padding:0 8px;color:#d64242;background:transparent;font-size:13px;font-weight:900}.small-button{min-height:34px;padding:0 12px;font-size:13px}.field-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.home-slide-settings{min-width:0}.home-slide-list{display:grid;gap:14px}.home-slide-item{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:14px;padding:12px;border:1px solid #e6ebf2;border-radius:8px;background:#f8fafc}.admin-resource-layout{display:grid;gap:18px}.resource-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.redeem-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.redeem-stat-grid .resource-stat-card{padding:16px 14px}.resource-stat-card{display:grid;gap:6px;padding:18px;border:1px solid #e5ebf3;border-radius:12px;background:#ffffff}.resource-stat-card strong{font-size:24px;line-height:1}.resource-stat-card span{color:#7b8798;font-size:13px;font-weight:800}.resource-panel{display:grid;gap:16px;padding:18px;border:1px solid #e5ebf3;border-radius:14px;background:#ffffff}.hidden-file-input{display:none}.redeem-batch-card{display:grid;gap:16px;padding:18px;border:1px solid #e6ebf2;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.redeem-batch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.resource-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px}.resource-toolbar-main{display:grid;gap:12px;min-width:0;flex:1 1 auto}.resource-toolbar small{color:#7b8798;font-size:12px;font-weight:700}.resource-search{display:grid;gap:8px;min-width:0;flex:1 1 auto}.resource-search.small{flex:0 0 220px}.resource-search span{color:#647083;font-size:12px;font-weight:900}.resource-search input,.resource-search select{height:42px;padding:0 12px;border:1px solid #d9e2ee;border-radius:10px;background:#f8fafc}.media-category-tabs{display:flex;flex-wrap:wrap;gap:10px}.media-category-tabs button{min-width:88px;padding:10px 14px;border:1px solid #d7e2ef;border-radius:999px;color:#516076;background:#ffffff;font-size:13px;font-weight:900}.media-category-tabs button.active{border-color:#1f9d73;color:#fff;background:linear-gradient(135deg,#1f9d73,#13b986)}.resource-list,.student-list,.course-student-list{display:grid;gap:14px}.media-row,.student-row,.course-student-row{display:grid;gap:14px;padding:14px;border:1px solid #e6ebf2;border-radius:12px;background:#fbfcfe}.media-row{grid-template-columns:96px minmax(0,1fr) auto;align-items:center}.media-preview{display:grid;place-items:center;width:96px;height:72px;overflow:hidden;border-radius:10px;background:linear-gradient(135deg,#edf3fb,#f8fafc);color:#647083;font-size:12px;font-weight:900}.media-preview img{width:100%;height:100%;object-fit:cover}.media-body{min-width:0;display:grid;gap:6px}.media-title-row{display:flex;align-items:center;gap:10px}.media-title-row strong{min-width:0;word-break:break-all}.media-body p,.course-student-head p,.student-summary p{margin:0;color:#526074}.media-body small,.student-summary small{color:#7b8798}.media-kind-badge{padding:4px 8px;border-radius:999px;background:#edf2f8;color:#4d5a6d;font-size:11px;font-weight:900}.media-kind-badge.image{background:#e8f8f1;color:#0f9d72}.media-kind-badge.video,.media-kind-badge.playlist{background:#eef2ff;color:#415fd6}.media-kind-badge.material,.media-kind-badge.file{background:#fff4e8;color:#b85c12}.media-storage-badge{padding:4px 8px;border-radius:999px;background:#f3f4f6;color:#4b5563;font-size:11px;font-weight:900}.media-storage-badge.oss{background:#fff1e8;color:#c45d1b}.media-reference-list,.student-course-list,.course-student-tags,.student-meta-grid{display:flex;flex-wrap:wrap;gap:8px}.media-reference-list span,.student-course-list span,.course-student-tags span,.student-meta-grid span{padding:6px 10px;border-radius:999px;background:#eef3f8;color:#4f5c6f;font-size:12px;font-weight:700}.student-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px}.student-toolbar{align-items:end}.student-toolbar-side{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px}.student-row{grid-template-columns:1fr}.redeem-toolbar-side{flex-wrap:wrap}.redeem-code-list{display:grid;gap:14px}.redeem-code-row{display:grid;gap:12px;padding:16px;border:1px solid #e6ebf2;border-radius:12px;background:#fbfcfe}.redeem-code-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.redeem-code-head strong{display:block;color:#20242d;font-size:18px;line-height:1.25;word-break:break-all}.redeem-code-head p{margin:6px 0 0;color:#607084;font-size:13px}.redeem-code-badges,.redeem-code-meta{display:flex;flex-wrap:wrap;gap:8px}.redeem-code-meta span{padding:6px 10px;border-radius:999px;background:#eef3f8;color:#4f5c6f;font-size:12px;font-weight:700}.admin-order-list{display:grid;gap:14px}.admin-order-row{display:grid;gap:12px;padding:16px;border:1px solid #e6ebf2;border-radius:12px;background:#fbfcfe}.admin-order-head,.admin-order-course{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-order-course{min-width:0;justify-content:flex-start}.admin-order-cover{display:grid;place-items:center;width:84px;height:84px;overflow:hidden;flex:0 0 84px;border-radius:12px;background:linear-gradient(135deg,#edf3fb,#f8fafc);color:#647083;font-size:18px;font-weight:900}.admin-order-cover img{width:100%;height:100%;object-fit:cover}.admin-order-course strong{display:block;color:#20242d;font-size:18px;line-height:1.35}.admin-order-course p{margin:6px 0 0;color:#607084;font-size:13px}.admin-order-meta{display:flex;flex-wrap:wrap;gap:8px}.admin-order-meta span{padding:6px 10px;border-radius:999px;background:#eef3f8;color:#4f5c6f;font-size:12px;font-weight:700}.admin-order-actions{min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end}.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900}.status-pill.active{color:#0f8f6d;background:#e9fbf5}.status-pill.disabled{color:#b55a19;background:#fff2e8}.status-pill.used,.status-pill.issued{color:#415fd6;background:#eef2ff}.status-pill.pending{color:#596579;background:#eef2f7}.student-summary,.course-student-head{display:flex;align-items:center;gap:12px}.student-avatar,.course-student-cover{display:grid;place-items:center;width:54px;height:54px;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#19c594,#59a8ff);color:#fff;font-size:18px;font-weight:900;flex:0 0 auto}.student-avatar img,.course-student-cover img{width:100%;height:100%;object-fit:cover}.media-actions,.course-student-head{align-self:start}.participants-course-head{padding-bottom:4px;border-bottom:1px solid #edf1f6}.home-slide-preview{display:grid;place-items:center;min-height:136px;overflow:hidden;border:1px dashed #cfd8e5;border-radius:8px;color:#8a94a6;background:#ffffff;font-size:13px;font-weight:900}.home-slide-preview img{display:block;width:100%;height:100%;object-fit:cover}.home-slide-fields{display:grid;gap:10px;min-width:0}.slide-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.slide-actions input{display:none}.qr-settings,.payment-settings{min-width:0}.payment-method-list{display:grid;gap:14px}.payment-method-item{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px;padding:14px;border:1px solid #e6ebf2;border-radius:8px;background:#f8fafc}.payment-method-actions{grid-column:1 / -1;justify-content:flex-end}.qr-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.qr-upload-item{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid #e6ebf2;border-radius:8px;background:#f8fafc}.qr-upload-preview{display:grid;place-items:center;aspect-ratio:1;overflow:hidden;border:1px dashed #cfd8e5;border-radius:8px;color:#8a94a6;background:#ffffff;font-size:13px;font-weight:900}.qr-upload-preview img{display:block;width:100%;height:100%;object-fit:contain}.oss-settings{min-width:0}.oss-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;padding:14px;border:1px solid #e6ebf2;border-radius:8px;background:#f8fafc}.oss-tip{grid-column:1 / -1;margin:0;padding:12px 14px;border-radius:8px;color:#485265;background:#ffffff;font-size:13px;font-weight:800;line-height:1.6}.form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;padding-top:2px}.category-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:22px;align-items:start}.category-form{display:grid;gap:18px;padding:22px}.managed-list{display:grid;gap:14px;min-width:0}.list-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:12px;padding:14px;border:1px solid #e6ebf2;border-radius:8px;background:#ffffff;box-shadow:0 12px 28px #2028360f}.search-field,.page-size-field{gap:6px}.page-size-field{width:110px}.list-count{align-self:center;color:#798395;font-size:13px;font-weight:900}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#667083;font-size:13px;font-weight:900}.pagination-bar div{display:flex;gap:8px}.pagination-bar .ghost-button{min-width:76px;height:34px}.teacher-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:22px;align-items:start}.course-list-panel{min-width:0}.course-list-toolbar{grid-template-columns:minmax(240px,1fr) auto}.course-toolbar-side{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px}.course-layout{display:grid;grid-template-columns:minmax(460px,560px) minmax(0,1fr);gap:22px;align-items:start}.teacher-form{display:grid;gap:18px;padding:22px}.course-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}.course-cover-uploader{display:grid;gap:12px}.course-cover-preview{display:grid;place-items:center;width:min(260px,100%);aspect-ratio:16 / 9;overflow:hidden;border:1px dashed #cfd8e5;border-radius:8px;color:#8a94a6;background:#f8fafc;font-size:13px;font-weight:900}.course-cover-preview img{display:block;width:100%;height:100%;object-fit:cover}.rich-editor{overflow:hidden;border:1px solid #dce3ec;border-radius:8px;background:#ffffff}.rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid #edf1f6;background:#f8fafc}.rich-toolbar button{min-width:34px;height:30px;padding:0 9px;border-radius:7px;color:#485265;background:#eef2f7;font-size:12px;font-weight:900}.rich-toolbar input{display:none}.rich-editor-surface{min-height:180px;padding:12px;color:#20242d;font-size:14px;line-height:1.7;outline:none}.rich-editor-surface:empty:before{color:#9aa4b2;content:attr(data-placeholder)}.rich-editor-surface h2{margin:0 0 10px;color:#20242d;font-size:20px;line-height:1.35}.rich-editor-surface p{margin:0 0 10px}.rich-editor-surface ul{margin:0 0 10px;padding-left:22px}.rich-editor-surface a{color:#0f8f6d;text-decoration:underline}.rich-editor-surface img{display:block;max-width:100%;height:auto;margin:10px 0;border-radius:8px}.course-teacher-picker{display:grid;gap:10px}.course-teacher-picker>span{color:#4a5364;font-size:13px;font-weight:900}.course-teacher-picker p{margin:0;color:#798395;font-size:13px;font-weight:800}.teacher-select{position:relative;display:grid;gap:8px}.selected-teacher-list{display:flex;flex-wrap:wrap;gap:8px}.selected-teacher-list button{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:30px;padding:5px 9px;border-radius:8px;color:#0f8f6d;background:#e9fbf5;font-size:12px;font-weight:900;line-height:1.3;text-align:left}.selected-teacher-list span{color:#45aa8c;font-size:14px}.teacher-option-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;display:grid;max-height:240px;overflow:auto;padding:6px;border:1px solid #dce3ec;border-radius:8px;background:#ffffff;box-shadow:0 14px 30px #20283624}.teacher-option-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:38px;padding:8px 10px;border-radius:7px;color:#485265;background:transparent;text-align:left}.teacher-option-list button:hover,.teacher-option-list button.selected{color:#0f8f6d;background:#e9fbf5}.teacher-option-list span{min-width:0;font-size:13px;font-weight:900;line-height:1.35;word-break:break-word}.teacher-option-list small{color:#798395;font-size:12px;font-weight:900}.teacher-option-list p{padding:10px}.teacher-avatar-uploader{display:grid;gap:12px}.teacher-avatar-preview,.teacher-card-avatar{display:grid;place-items:center;overflow:hidden;border:1px solid #dce3ec;border-radius:8px;color:#fff;background:#263140;font-weight:900}.teacher-avatar-preview{width:88px;height:88px;font-size:28px}.teacher-avatar-preview img,.teacher-card-avatar img{display:block;width:100%;height:100%;object-fit:cover}.teacher-list{display:grid;gap:14px}.course-table{display:grid;gap:10px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(20,29,39,.46);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{width:min(1180px,100%);max-height:calc(100vh - 48px);overflow:hidden;border:1px solid #dfe6ef;border-radius:18px;background:#ffffff;box-shadow:0 24px 64px #0d16223d}.review-modal-panel{width:min(1240px,100%)}.course-catalog-dialog{width:min(1640px,100%)}.participants-modal-panel{width:min(1080px,100%)}.student-editor-modal-panel{width:min(760px,100%)}.redeem-issue-modal-panel{width:min(980px,100%)}.redeem-course-modal-panel{width:min(760px,100%)}.media-picker-modal-panel{width:min(1120px,100%)}.live-console-modal-panel{display:flex;flex-direction:column;width:min(1460px,100%);height:min(calc(100vh - 48px),920px)}.live-console-modal-panel.maximized{width:calc(100vw - 48px);max-width:calc(100vw - 48px);height:calc(100vh - 48px);max-height:calc(100vh - 48px)}.live-console-layout{flex:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,420px);min-height:0;overflow:hidden}.live-console-modal-panel.maximized .live-console-layout{height:100%}.live-console-preview{display:grid;grid-template-rows:minmax(0,1fr) auto auto;min-width:0;min-height:0;background:#081019}.live-console-player-shell{display:grid;min-height:0;overflow:hidden;background:radial-gradient(circle at top,rgba(21,191,141,.16),transparent 44%),#04080f}.live-console-player-shell>*{grid-area:1 / 1}.live-console-player-frame{width:100%;height:100%;min-height:0;border:0;background:#000000;object-fit:cover}.live-console-player-empty{display:grid;place-items:center;gap:12px;padding:48px 32px;color:#d7dce4;text-align:center;background:linear-gradient(180deg,rgba(4,8,15,.1),rgba(4,8,15,.72))}.live-console-player-empty strong{font-size:24px}.live-console-player-empty p{margin:0;max-width:420px;color:#aeb8c6;font-size:14px;line-height:1.7}.live-console-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,190px);grid-template-areas:"stream bitrate" "actions actions";gap:14px 16px;padding:18px 22px;border-top:1px solid rgba(255,255,255,.08);background:rgba(5,12,20,.94)}.live-console-stream-box{grid-area:stream;display:grid;gap:6px;flex:1 1 auto;min-width:0}.live-console-stream-box small{color:#7fd7ba;font-size:12px;font-weight:900;letter-spacing:.03em}.live-console-stream-box strong{overflow:hidden;color:#fff;font-size:14px;line-height:1.6;text-overflow:ellipsis;white-space:nowrap}.live-console-stream-box span{color:#ffc670;font-size:12px;line-height:1.7;font-weight:800}.live-console-bitrate-field{grid-area:bitrate;display:grid;gap:6px;min-width:150px}.live-console-bitrate-field span{color:#7fd7ba;font-size:12px;font-weight:900}.live-console-bitrate-field select{min-height:40px;border:1px solid rgba(127,215,186,.28);border-radius:8px;background:#0d1a24;color:#fff;font-weight:900}.live-console-bitrate-field small{color:#9bb3c8;font-size:12px;font-weight:800;white-space:nowrap}.live-console-toolbar-actions{grid-area:actions;display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px;min-width:0}.live-console-status-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px 16px;border-top:1px solid rgba(255,255,255,.08);background:rgba(5,12,20,.98)}.live-console-status-bar strong{color:#fff;font-size:13px}.live-console-status-bar span{color:#a8b4c2;font-size:12px;line-height:1.6;text-align:right}.live-console-chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;border-left:1px solid #e4ecf5;background:linear-gradient(180deg,#ffffff,#f5f8fc)}.live-console-chat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 16px;border-bottom:1px solid #edf1f6}.live-console-chat-head strong{display:block;color:#20242d;font-size:16px}.live-console-chat-head small,.live-console-chat-head span{color:#798395;font-size:12px;font-weight:800}.live-console-chat-list{overflow:auto;display:grid;align-content:start;gap:12px;padding:18px 22px}.live-console-chat-item{display:grid;gap:8px;padding:14px 14px 12px;border:1px solid #e4ebf3;border-radius:12px;background:#ffffff}.live-console-chat-item div{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-console-chat-item strong{color:#20242d;font-size:13px}.live-console-chat-item small{color:#9098a8;font-size:12px;font-weight:800}.live-console-chat-item p{margin:0;color:#485265;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.live-console-chat-form{display:grid;gap:12px;padding:16px 22px 22px;border-top:1px solid #edf1f6;background:#ffffff}.live-console-chat-form textarea{width:100%;min-height:124px;resize:vertical;border:1px solid #d9e3ef;border-radius:12px;padding:14px 16px;color:#20242d;background:#f8fafc;font:inherit;line-height:1.7}.live-console-chat-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-console-chat-actions span{color:#798395;font-size:12px;line-height:1.7;font-weight:800}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid #edf1f6}.modal-head p,.modal-head h2{margin:0}.modal-head p{color:#798395;font-size:13px;font-weight:900}.modal-head h2{margin-top:4px;color:#20242d;font-size:22px;line-height:1.25}.modal-close{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;color:#667083;background:#eef2f7;font-size:24px;line-height:1}.modal-head-actions{display:flex;align-items:center;gap:10px}.modal-head-toggle{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;color:#667083;background:#eef2f7;font-size:16px;line-height:1;font-weight:900}.modal-body{max-height:calc(100vh - 140px);overflow:auto;padding:24px;background:#f8fafc}.course-dialog-body,.review-dialog-body{display:grid;gap:18px}.media-picker-dialog-body,.participants-dialog-body,.student-editor-dialog-body,.redeem-issue-dialog-body,.redeem-course-dialog-body{display:grid}.student-editor-form{display:grid;gap:16px;padding:18px;border:1px solid #e6ebf2;border-radius:14px;background:#ffffff;box-shadow:0 12px 28px #2028360f}.student-editor-grid{gap:14px 16px}.student-editor-tip{margin:0;padding:12px 14px;border-radius:10px;color:#607084;background:#f4f7fb;font-size:13px;font-weight:800}.redeem-issue-summary,.redeem-course-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.redeem-course-code-box{display:grid;gap:10px;padding:18px;border:1px solid #e6ebf2;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.redeem-course-code-box small,.redeem-course-code-box p{margin:0;color:#607084}.redeem-course-code-box strong{color:#20242d;font-size:28px;line-height:1.2;word-break:break-all}.redeem-issue-list{display:grid;gap:14px}.redeem-issue-row{display:grid;gap:14px;padding:14px;border:1px solid #e6ebf2;border-radius:12px;background:#fbfcfe}.course-dialog-body .course-form,.course-dialog-body .catalog-manager,.review-dialog-body .review-manager{margin-top:0;box-shadow:none}.catalog-manager,.review-manager{display:grid;gap:16px;margin-top:22px;padding:18px;border:1px solid #e6ebf2;border-radius:8px;background:#ffffff;box-shadow:0 12px 28px #2028360f}.review-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px}.review-table{display:grid;gap:10px}.review-table-head,.review-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1.2fr) minmax(160px,.8fr) 108px auto;align-items:center;gap:14px;padding:14px}.review-table-head{color:#798395;font-size:12px;font-weight:900}.review-user-cell{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.review-avatar-thumb{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border-radius:50%;color:#fff;background:#263140;font-weight:900}.review-avatar-thumb img{display:block;width:100%;height:100%;object-fit:cover}.review-row strong{display:block;overflow:hidden;color:#20242d;font-size:14px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.review-row p{display:-webkit-box;overflow:hidden;margin:0;color:#20242d;font-size:13px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.review-row small{display:block;overflow:hidden;margin-top:5px;color:#798395;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.review-tags-cell{display:flex;flex-wrap:wrap;gap:6px}.review-tags-cell strong{width:100%;color:#ffc533}.review-tags-cell span{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:7px;color:#0f8f6d;background:#e9fbf5;font-size:12px;font-weight:900}.review-count-line{margin:0;color:#667083;font-size:13px;font-weight:900}.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.catalog-head p,.catalog-head h2{margin:0}.catalog-head p{color:#798395;font-size:13px;font-weight:900}.catalog-head h2{margin-top:4px;color:#20242d;font-size:18px;line-height:1.3}.catalog-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px;border:1px solid #edf1f6;border-radius:8px;background:#f8fafc}.catalog-workspace{display:grid;grid-template-columns:minmax(380px,35fr) minmax(0,65fr);align-items:start;gap:18px}.catalog-title-field{grid-column:span 2}.catalog-mode-row{display:flex;align-items:center;gap:12px 16px}.catalog-mode-switch{display:inline-flex;flex-wrap:wrap;gap:10px}.catalog-mode-switch button{min-width:120px;padding:10px 14px;border:1px solid #d7e2ef;border-radius:999px;color:#516076;background:#ffffff;font-size:13px;font-weight:900}.catalog-mode-switch button.active{border-color:#1f9d73;color:#fff;background:linear-gradient(135deg,#1f9d73,#13b986)}.catalog-mode-switch button:disabled{opacity:.72;cursor:not-allowed}.catalog-inline-tip{margin:0;flex:1 1 320px;min-width:0;color:#667083;font-size:12px;line-height:1.6;font-weight:800}.catalog-live-builder{display:grid;gap:14px}.live-room-editor-grid{align-items:start}.live-room-provider-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.live-room-inline-fields{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(4,minmax(110px,1fr));gap:14px 16px}.live-room-course-picker{display:grid;gap:10px}.live-room-course-option-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.live-room-course-option-list button{display:grid;gap:4px;padding:10px 12px;border:1px solid #dce3ec;border-radius:10px;color:#4a5364;background:#ffffff;text-align:left}.live-room-course-option-list button.selected{border-color:#13b986;color:#0f8f6d;background:#e9fbf5}.live-room-course-option-list button small{color:#798395;font-size:12px;font-weight:800}@media (max-width: 1200px){.live-room-inline-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1240px){.catalog-workspace{grid-template-columns:1fr}}.catalog-video-uploader{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}.catalog-video-uploader input{display:none}.catalog-video-uploader small{min-width:0;overflow-wrap:anywhere;color:#798395;font-size:12px;font-weight:800}.catalog-picker-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.catalog-picker-actions small{color:#798395;font-size:12px;font-weight:800}.catalog-upload-progress{display:grid;gap:8px;flex:1 1 320px;width:100%;max-width:420px;min-width:0;overflow:hidden;padding:12px 14px;border:1px solid #dce8f5;border-radius:10px;background:linear-gradient(180deg,#ffffff,#f5f9ff)}.catalog-upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.catalog-upload-progress-head strong{flex:1 1 auto;min-width:0;overflow:hidden;color:#20242d;font-size:13px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.catalog-upload-progress-head span{flex:0 0 auto;color:#0f8f6d;font-size:12px;font-weight:900;white-space:nowrap}.catalog-upload-progress-track{overflow:hidden;width:100%;height:8px;border-radius:999px;background:#dfe8f4}.catalog-upload-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#15bf8d,#3a86ff);transition:width .2s ease}.catalog-upload-progress-track.processing span{position:relative;overflow:hidden;background:linear-gradient(90deg,#15bf8d,#56b5ff)}.catalog-upload-progress-track.processing span:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:catalog-upload-processing 1.2s linear infinite}.catalog-upload-progress p{margin:0;color:#667083;font-size:12px;font-weight:800}@keyframes catalog-upload-processing{0%{transform:translate(-100%)}to{transform:translate(100%)}}.catalog-tree{display:grid;gap:10px}.catalog-tree-panel,.catalog-live-panel{padding:16px;border:1px solid #edf1f6;border-radius:8px;background:#f8fafc}.catalog-tree-panel{align-content:start}.media-picker-panel{gap:18px}.media-picker-row.active{border-color:#8ed8ba;background:linear-gradient(180deg,#f4fffa,#fbfffd)}.media-selected-badge{padding:4px 8px;border-radius:999px;background:#e8f8f1;color:#0f9d72;font-size:11px;font-weight:900}.catalog-subhead{padding-top:2px}.catalog-row{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(180px,.9fr) auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid #e6ebf2;border-radius:8px;background:#ffffff}.catalog-row>:first-child{min-width:220px;padding-left:calc(var(--depth) * 26px)}.catalog-row strong{display:block;color:#20242d;font-size:14px;line-height:1.4}.catalog-row small{display:block;margin-top:5px;overflow-wrap:anywhere;color:#798395;font-size:12px;font-weight:800}.catalog-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:180px}.catalog-tags span{display:inline-flex;align-items:center;min-height:22px;padding:4px 8px;border-radius:7px;color:#0f8f6d;background:#e9fbf5;font-size:12px;font-weight:900;line-height:1.4;white-space:normal}.catalog-row>.row-actions{flex-wrap:wrap;justify-self:end}.course-table-head,.course-row{display:grid;grid-template-columns:minmax(0,30fr) minmax(0,10fr) minmax(0,15fr) minmax(0,15fr) minmax(0,30fr);align-items:center;gap:14px;padding:14px}.course-table-head{color:#798395;font-size:12px;font-weight:900}.course-row{min-width:0}.course-row>.row-actions{flex-wrap:wrap;justify-self:start}.course-main-cell{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.course-cover-thumb{display:grid;place-items:center;width:72px;height:52px;overflow:hidden;border-radius:8px;color:#fff;background:#263140;font-weight:900}.course-cover-thumb img{display:block;width:100%;height:100%;object-fit:cover}.course-row strong{display:block;overflow:hidden;color:#20242d;font-size:14px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.course-row small{display:block;overflow:hidden;margin-top:5px;color:#798395;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.course-meta-line{margin-top:5px}.course-live-teacher-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.course-live-teacher-item{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:4px 8px;border-radius:999px;background:#f5f8fc}.course-live-teacher-item strong{display:inline;overflow:visible;color:#334155;font-size:12px;white-space:nowrap}.course-live-teacher-item a{color:#0f8f6d;font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}.course-live-teacher-item a:hover{text-decoration:underline}.course-badges{display:flex;flex-wrap:wrap;gap:6px}.course-badges span{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:7px;color:#0f8f6d;background:#e9fbf5;font-size:12px;font-weight:900}.course-badges small{width:100%}.live-room-table{display:grid;gap:10px}.live-room-table-head,.live-room-row{display:grid;grid-template-columns:minmax(0,14fr) minmax(0,22fr) minmax(0,10fr) minmax(0,16fr) minmax(0,16fr) minmax(0,22fr);align-items:center;gap:14px;padding:14px}.live-room-table-head{color:#798395;font-size:12px;font-weight:900}.live-room-row{border:1px solid #e6ebf2;border-radius:10px;background:#ffffff}.live-room-row strong{display:block;overflow:hidden;color:#20242d;font-size:14px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.live-room-row small{display:block;margin-top:5px;overflow-wrap:anywhere;color:#798395;font-size:12px;font-weight:800}.live-room-course-cell{display:grid;gap:6px;min-width:0}.live-room-course-entry{display:block;min-width:0}.live-room-course-entry strong,.live-room-course-entry small{display:inline;margin-top:0;white-space:normal}.live-room-course-entry small{margin-left:6px;overflow-wrap:anywhere}.live-room-course-entry strong{overflow:visible;text-overflow:clip;white-space:normal}.live-room-actions{justify-content:flex-start;align-content:center;min-width:0}.live-room-actions button{flex:0 0 auto;overflow-wrap:normal}.live-room-time-cell{display:grid;gap:5px}.live-room-time-cell span{color:#20242d;font-size:14px;font-weight:700;line-height:1.35}.live-room-status-cell{display:grid;gap:6px}.live-room-status{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:68px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900}.live-room-status.status-pending{color:#9a6700;background:#fff4d6}.live-room-status.status-active{color:#0f8f6d;background:#e9fbf5}.live-room-status.status-done{color:#4f5d73;background:#eef2f7}.live-room-status.status-danger{color:#d64242;background:#fde8e8}.teacher-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:start;gap:14px;padding:16px}.teacher-card-avatar{width:64px;height:64px;font-size:22px}.teacher-card-body{min-width:0}.teacher-card-body strong{display:block;color:#20242d;font-size:16px}.teacher-card-body p,.empty-line{margin:6px 0 0;color:#667083;font-size:13px;line-height:1.7}.empty-line{margin:0;padding:18px;border:1px dashed #dce3ec;border-radius:8px;background:#ffffff;font-weight:800}.category-list{display:grid;gap:14px}.category-card{overflow:hidden}.category-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border-bottom:1px solid #edf1f6;cursor:pointer}.category-card-head:focus-visible{outline:3px solid rgba(21,191,141,.18);outline-offset:-3px}.category-card-head strong{display:block;color:#20242d;font-size:16px}.category-card-head small,.subject-row small,.subject-list p{color:#798395;font-size:12px;font-weight:800}.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:0 0 auto}.row-actions button,.row-actions .row-action-link{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border-radius:7px;color:#485265;background:#eef2f7;font-size:12px;font-weight:900;text-decoration:none}.row-actions .catalog-type-chip{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border-radius:7px;color:#0f8f6d;background:#e9fbf5;font-size:12px;font-weight:900;white-space:nowrap}.row-actions button:last-child{color:#d64242}.row-actions .live-teaching-entry-button{color:#485265}.live-room-actions button{white-space:nowrap}.subject-list{display:grid;gap:8px;padding:12px 16px 16px}.subject-list p{margin:0}.subject-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:38px;padding:8px 10px;border-radius:8px;background:#f8fafc}.subject-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.mobile-save{display:none}.preview-panel{position:sticky;top:24px;overflow:hidden;border-color:#dfe7f3;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,251,255,.98)),#ffffff}.preview-topbar{display:flex;align-items:center;gap:10px;min-height:58px;padding:0 16px;border-bottom:1px solid #edf1f6;color:#1e2632;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-logo{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:#fff;background:#263140;font-weight:900}.preview-logo.image{display:block;object-fit:cover}.preview-hero{min-height:178px;padding:24px 18px;background:linear-gradient(135deg,rgba(21,191,141,.14),rgba(34,124,226,.12)),#f7fafc}.preview-hero span{display:block;width:64px;height:6px;border-radius:3px;background:#15bf8d}.preview-hero h2{margin:22px 0 8px;color:#20242d;font-size:26px;line-height:1.2}.preview-hero p,.preview-footer p{margin:0;color:#667083;font-size:13px;line-height:1.7}.preview-home-slide{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;align-items:center;padding:14px 18px;border-top:1px solid #edf1f6;background:#ffffff}.preview-home-slide img{display:block;width:86px;height:72px;border-radius:8px;object-fit:cover}.preview-home-slide strong{display:block;overflow:hidden;color:#20242d;font-size:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.preview-home-slide p{margin:5px 0 0;color:#667083;font-size:12px;font-weight:800;line-height:1.5}.preview-footer{display:grid;gap:4px;padding:16px 18px 18px;background:#19202b}.preview-footer p{color:#c3cad5}.preview-qr-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.preview-qr-row div{display:grid;gap:6px;justify-items:center;min-width:0}.preview-qr-row strong{color:#e4e8e5;font-size:11px}.preview-qr-row img{display:block;width:62px;height:62px;border:4px solid #ffffff;background:#ffffff;object-fit:contain}.status-line{margin:16px 0 0;color:#0f9d72;font-size:13px;font-weight:800}.status-line.error{color:#d64242}@media (max-width: 980px){.admin-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;padding:12px 14px}.admin-brand{padding:0}.menu{display:flex;margin:0}.menu-item{width:auto}.logout-button{margin-top:0;padding:0 12px}.settings-layout,.settings-intro-card,.settings-card-grid,.category-layout,.teacher-layout,.course-layout{grid-template-columns:1fr}.course-table-head,.live-room-table-head,.review-table-head{display:none}.course-row{grid-template-columns:minmax(0,1fr) repeat(3,auto)}.live-room-row{grid-template-columns:repeat(2,minmax(0,1fr))}.review-row{grid-template-columns:minmax(0,1fr) repeat(3,auto)}.catalog-workspace{grid-template-columns:1fr}.catalog-form{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-mode-row{align-items:flex-start;flex-wrap:wrap}.catalog-title-field{grid-column:1 / -1}.review-form{grid-template-columns:repeat(2,minmax(0,1fr))}.course-main-cell,.review-user-cell{grid-column:1 / -1}.sms-layout{grid-template-columns:1fr}.qr-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.oss-settings-grid{grid-template-columns:1fr}.live-room-provider-row,.live-room-inline-fields,.payment-method-item{grid-template-columns:repeat(2,minmax(0,1fr))}.list-toolbar{grid-template-columns:1fr auto}.course-toolbar-side{flex-wrap:wrap}}@media (max-width: 680px){.workspace{padding:20px 12px 28px}.workspace-head{align-items:flex-start}.workspace-head>.save-button{display:none}.sms-form,.course-form,.review-form{grid-template-columns:1fr;padding:16px}.settings-intro-card,.settings-card,.settings-action-bar{padding:16px;border-radius:16px}.settings-intro-copy h2{font-size:24px}.settings-stat-grid{grid-template-columns:1fr}.settings-card-head,.settings-action-bar{flex-direction:column;align-items:stretch}.settings-action-buttons{width:100%}.settings-action-buttons .ghost-button,.settings-action-buttons .save-button{flex:1}.home-slide-item,.payment-method-item{grid-template-columns:1fr}.category-card-head,.subject-row,.teacher-card,.course-row,.live-room-row,.review-row,.catalog-head,.catalog-row{align-items:flex-start;grid-template-columns:1fr}.catalog-tree-panel,.catalog-live-panel{padding:14px}.catalog-head{flex-direction:column}.catalog-form{grid-template-columns:1fr;padding:14px}.catalog-mode-row{flex-direction:column;align-items:stretch}.catalog-title-field{grid-column:1 / -1}.course-main-cell{grid-template-columns:64px minmax(0,1fr)}.logo-uploader{align-items:flex-start;flex-direction:column}.qr-upload-grid,.list-toolbar,.pagination-bar{grid-template-columns:1fr}.pagination-bar{align-items:stretch;flex-direction:column}.pagination-bar div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.course-toolbar-side{align-items:stretch;justify-content:flex-start}.resource-stat-grid,.student-grid,.redeem-issue-summary,.redeem-batch-grid{grid-template-columns:1fr}.resource-toolbar,.student-toolbar,.media-row{grid-template-columns:1fr;align-items:stretch}.resource-toolbar,.resource-toolbar-main,.student-toolbar-side{flex-direction:column;align-items:stretch}.media-category-tabs button{flex:1 1 calc(50% - 10px)}.resource-search.small{flex-basis:auto}.media-row{display:grid}.redeem-code-head,.admin-order-head,.admin-order-course{flex-direction:column}.page-size-field{width:100%}.form-actions{justify-content:stretch}.form-actions button{flex:1}.mobile-save{display:inline-flex}.modal-overlay{padding:12px}.modal-panel{max-height:calc(100vh - 24px);border-radius:14px}.modal-head{padding:18px 16px}.modal-head h2{font-size:20px}.modal-body{max-height:calc(100vh - 112px);padding:16px}.live-room-provider-row,.live-room-inline-fields{grid-template-columns:1fr}.live-console-layout{grid-template-columns:1fr;min-height:auto}.live-console-modal-panel,.live-console-modal-panel.maximized{width:calc(100vw - 24px);max-width:calc(100vw - 24px);height:calc(100vh - 24px);max-height:calc(100vh - 24px)}.live-console-player-frame{min-height:320px}.live-console-toolbar{grid-template-columns:1fr;grid-template-areas:"stream" "bitrate" "actions"}.live-console-chat-actions{flex-direction:column;align-items:stretch}.live-console-status-bar{flex-direction:column;align-items:flex-start}.live-console-status-bar span{text-align:left}.live-console-toolbar-actions{justify-content:flex-start}.live-console-toolbar-actions .ghost-button,.live-console-toolbar-actions .save-button{flex:1 1 160px}.live-console-chat-actions button{width:100%}}
