:root{--admin-sider-width:240px;--admin-sider-collapsed-width:64px;--admin-header-height:56px;--admin-content-padding:24px;--admin-content-radius:12px;--admin-primary:#4f46e5;--admin-primary-light:#6366f1;--admin-primary-bg:#eef2ff;--admin-sider-bg:#fff;--admin-sider-border:#f0f0f0;--admin-header-bg:#fff;--admin-content-bg:#f8fafc;--admin-card-bg:#fff;--admin-text-primary:#1e293b;--admin-text-secondary:#64748b;--admin-text-tertiary:#94a3b8;--admin-border:#e2e8f0;--admin-success:#10b981;--admin-warning:#f59e0b;--admin-danger:#ef4444}.admin-sider{border-right:1px solid var(--admin-sider-border);z-index:100;height:100vh;position:fixed;top:0;bottom:0;left:0;overflow:auto;background:var(--admin-sider-bg)!important}.admin-sider .ant-layout-sider-children{flex-direction:column;display:flex}.admin-logo{height:var(--admin-header-height);border-bottom:1px solid var(--admin-sider-border);flex-shrink:0;align-items:center;gap:10px;padding:0 20px;display:flex}.admin-logo-icon{background:linear-gradient(135deg, var(--admin-primary), var(--admin-primary-light));color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:flex}.admin-logo-text{color:var(--admin-text-primary);white-space:nowrap;font-size:16px;font-weight:600;transition:opacity .2s;overflow:hidden}.admin-sider .ant-menu{flex:1;padding:8px;background:0 0!important;border-inline-end:none!important}.admin-sider .ant-menu-item{transition:all .2s;height:40px!important;color:var(--admin-text-secondary)!important;border-radius:8px!important;margin:2px 0!important;line-height:40px!important}.admin-sider .ant-menu-item:hover{background:var(--admin-primary-bg)!important;color:var(--admin-primary)!important}.admin-sider .ant-menu-item-selected{font-weight:500;background:var(--admin-primary-bg)!important;color:var(--admin-primary)!important}.admin-sider .ant-menu-submenu-title{height:40px!important;color:var(--admin-text-secondary)!important;border-radius:8px!important;margin:2px 0!important;line-height:40px!important}.admin-sider .ant-menu-submenu-title:hover{background:var(--admin-primary-bg)!important;color:var(--admin-primary)!important}.admin-sider .ant-menu-sub{background:0 0!important}.admin-sider .ant-menu-sub .ant-menu-item{font-size:13px;padding-left:48px!important}.admin-header{border-bottom:1px solid var(--admin-border);z-index:99;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;height:var(--admin-header-height)!important;line-height:var(--admin-header-height)!important;background:var(--admin-header-bg)!important;padding:0 24px!important}.admin-header-left{align-items:center;gap:16px;display:flex}.admin-header-right{align-items:center;gap:12px;display:flex}.admin-header-trigger{cursor:pointer;color:var(--admin-text-secondary);border-radius:6px;padding:4px 8px;font-size:18px;transition:all .2s}.admin-header-trigger:hover{background:var(--admin-primary-bg);color:var(--admin-primary)}.admin-header-user{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:4px 12px;transition:background .2s;display:flex}.admin-header-user:hover{background:#f1f5f9}.admin-header-user-name{color:var(--admin-text-primary);font-size:14px;font-weight:500}.admin-breadcrumb{padding:12px var(--admin-content-padding) 0}.admin-content{padding:var(--admin-content-padding);background:var(--admin-content-bg);min-height:calc(100vh - var(--admin-header-height));margin:0!important}.admin-page-card{background:var(--admin-card-bg);border-radius:var(--admin-content-radius);border:1px solid var(--admin-border);padding:24px;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.admin-page-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.admin-page-header-title{color:var(--admin-text-primary);font-size:18px;font-weight:600;line-height:1.4;margin:0!important}.admin-page-header-actions{gap:8px;display:flex}.admin-search-bar{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;margin-bottom:20px;padding:16px 20px}.admin-search-bar .ant-form-item{margin-bottom:0}.admin-search-actions{align-items:flex-start;gap:8px;padding-top:4px;display:flex}.admin-stat-bar{background:var(--admin-primary-bg);color:var(--admin-text-secondary);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;font-size:14px;display:flex}.admin-stat-bar .count{color:var(--admin-primary);font-size:18px;font-weight:600}.admin-page-card .ant-table-wrapper .ant-table{border-radius:8px}.admin-page-card .ant-table-thead>tr>th{color:var(--admin-text-secondary);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--admin-border);font-size:13px;font-weight:600;background:#f8fafc!important}.admin-page-card .ant-table-tbody>tr>td{vertical-align:middle;border-bottom:1px solid #f1f5f9}.admin-page-card .ant-table-tbody>tr:hover>td{background:#f8fafc!important}.admin-page-card .ant-table-tbody>tr:last-child>td{border-bottom:none}.admin-action-link{color:var(--admin-primary);cursor:pointer;font-size:13px;transition:color .2s}.admin-action-link:hover{color:var(--admin-primary-light)}.admin-action-link.danger{color:var(--admin-danger)}.admin-action-link.danger:hover{color:#dc2626}.admin-action-link.disabled{color:var(--admin-text-tertiary);cursor:not-allowed}.admin-footer{text-align:center;color:var(--admin-text-tertiary);font-size:13px;padding:16px var(--admin-content-padding)!important;background:0 0!important}.admin-stat-card{border-radius:var(--admin-content-radius);border:1px solid var(--admin-border);transition:transform .2s,box-shadow .2s}.admin-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.admin-dev-placeholder{color:var(--admin-text-tertiary);flex-direction:column;justify-content:center;align-items:center;padding:80px 24px;display:flex}.admin-dev-placeholder-icon{color:var(--admin-text-quaternary,#cbd5e1);margin-bottom:16px;font-size:48px}.admin-dev-placeholder-title{color:var(--admin-text-secondary);margin-bottom:8px;font-size:16px;font-weight:500}.admin-dev-placeholder-desc{color:var(--admin-text-tertiary);font-size:14px}@media (width<=768px){.admin-content{padding:12px}.admin-page-card{border-radius:8px;padding:16px}.admin-search-bar{padding:12px}}:root{--teacher-sider-width:220px;--teacher-sider-collapsed-width:64px;--teacher-header-height:56px;--teacher-content-padding:24px;--teacher-content-radius:12px;--teacher-primary:#0d9488;--teacher-primary-light:#14b8a6;--teacher-primary-bg:#f0fdfa;--teacher-sider-bg:#fff;--teacher-sider-border:#f0f0f0;--teacher-header-bg:#fff;--teacher-content-bg:#f8fafb;--teacher-card-bg:#fff;--teacher-text-primary:#1e293b;--teacher-text-secondary:#64748b;--teacher-text-tertiary:#94a3b8;--teacher-border:#e2e8f0;--teacher-success:#10b981;--teacher-warning:#f59e0b;--teacher-danger:#ef4444}.teacher-sider{border-right:1px solid var(--teacher-sider-border);z-index:100;height:100vh;position:fixed;top:0;bottom:0;left:0;overflow:auto;background:var(--teacher-sider-bg)!important}.teacher-sider .ant-layout-sider-children{flex-direction:column;display:flex}.teacher-logo{height:var(--teacher-header-height);border-bottom:1px solid var(--teacher-sider-border);cursor:pointer;flex-shrink:0;align-items:center;gap:10px;padding:0 20px;transition:background .2s;display:flex}.teacher-logo:hover{background:var(--teacher-primary-bg)}.teacher-logo-icon{background:linear-gradient(135deg, var(--teacher-primary), var(--teacher-primary-light));color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:flex}.teacher-logo-text{color:var(--teacher-text-primary);white-space:nowrap;font-size:15px;font-weight:600;transition:opacity .2s;overflow:hidden}.teacher-sider .ant-menu{flex:1;padding:8px;background:0 0!important;border-inline-end:none!important}.teacher-sider .ant-menu-item{transition:all .2s;height:40px!important;color:var(--teacher-text-secondary)!important;border-radius:8px!important;margin:2px 0!important;line-height:40px!important}.teacher-sider .ant-menu-item:hover{background:var(--teacher-primary-bg)!important;color:var(--teacher-primary)!important}.teacher-sider .ant-menu-item-selected{font-weight:500;background:var(--teacher-primary-bg)!important;color:var(--teacher-primary)!important}.teacher-sider .ant-menu-item-group-title{text-transform:uppercase;letter-spacing:.5px;font-size:11px;color:var(--teacher-text-tertiary)!important;padding:16px 16px 4px!important}.teacher-header{border-bottom:1px solid var(--teacher-border);z-index:99;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;height:var(--teacher-header-height)!important;line-height:var(--teacher-header-height)!important;background:var(--teacher-header-bg)!important;padding:0 24px!important}.teacher-header-left{align-items:center;gap:16px;display:flex}.teacher-header-right{align-items:center;gap:12px;display:flex}.teacher-header-trigger{cursor:pointer;color:var(--teacher-text-secondary);border-radius:6px;padding:4px 8px;font-size:18px;transition:all .2s}.teacher-header-trigger:hover{background:var(--teacher-primary-bg);color:var(--teacher-primary)}.teacher-header-user{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:4px 12px;transition:background .2s;display:flex}.teacher-header-user:hover{background:#f1f5f9}.teacher-header-user-name{color:var(--teacher-text-primary);font-size:14px;font-weight:500}.teacher-content{padding:var(--teacher-content-padding);background:var(--teacher-content-bg);min-height:calc(100vh - var(--teacher-header-height));margin:0!important}.teacher-footer{text-align:center;color:var(--teacher-text-tertiary);font-size:13px;padding:16px var(--teacher-content-padding)!important;background:0 0!important}.dashboard-welcome{color:#fff;background:linear-gradient(135deg,#0d9488 0%,#14b8a6 40%,#2dd4bf 100%);border-radius:14px;margin-bottom:24px;padding:24px 28px;position:relative;overflow:hidden}.dashboard-welcome:after{content:"";background:#ffffff14;border-radius:50%;width:160px;height:160px;position:absolute;top:-30px;right:-30px}.dashboard-welcome-title{margin-bottom:4px;font-size:22px;font-weight:700}.dashboard-welcome-subtitle{color:#fffc;font-size:14px}.dashboard-active-session{background:linear-gradient(135deg,#ecfdf5 0%,#d1fae5 100%);border:2px solid #34d399;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 24px;animation:2s ease-in-out infinite pulse-border;display:flex}@keyframes pulse-border{0%,to{border-color:#34d399}50%{border-color:#6ee7b7}}.dashboard-active-session-info{align-items:center;gap:16px;display:flex}.dashboard-active-session-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.dashboard-active-session-title{color:var(--teacher-text-primary);font-size:16px;font-weight:600}.dashboard-active-session-meta{color:var(--teacher-text-secondary);margin-top:2px;font-size:13px}.dashboard-schedule-item{background:var(--teacher-card-bg);border:1px solid var(--teacher-border);border-radius:10px;align-items:stretch;margin-bottom:10px;transition:box-shadow .2s,transform .15s;display:flex;overflow:hidden}.dashboard-schedule-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.dashboard-schedule-item.is-now{border-color:var(--teacher-primary);box-shadow:0 0 0 1px var(--teacher-primary-bg)}.dashboard-schedule-time{background:var(--teacher-primary-bg);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:80px;padding:12px 8px;display:flex}.dashboard-schedule-time-start{color:var(--teacher-primary);font-size:16px;font-weight:700}.dashboard-schedule-time-end{color:var(--teacher-text-tertiary);font-size:11px}.dashboard-schedule-detail{flex:1;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dashboard-schedule-class-name{color:var(--teacher-text-primary);margin-bottom:2px;font-size:15px;font-weight:600}.dashboard-schedule-course-name{color:var(--teacher-text-secondary);font-size:13px}.dashboard-schedule-classroom{color:var(--teacher-text-tertiary);margin-top:2px;font-size:12px}.dashboard-quick-action{background:var(--teacher-card-bg);border:1px solid var(--teacher-border);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px 12px;transition:all .2s;display:flex}.dashboard-quick-action:hover{border-color:var(--teacher-primary);background:var(--teacher-primary-bg);transform:translateY(-2px);box-shadow:0 4px 12px #0d94881a}.dashboard-quick-action-icon{color:var(--teacher-primary);font-size:24px}.dashboard-quick-action-label{color:var(--teacher-text-primary);font-size:13px;font-weight:500}.dashboard-stat-card{background:var(--teacher-card-bg);border:1px solid var(--teacher-border);border-radius:12px;padding:20px;transition:transform .2s,box-shadow .2s}.dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}@media (width<=768px){.teacher-content{padding:12px}.dashboard-welcome{padding:16px 20px}.dashboard-active-session{flex-direction:column;align-items:flex-start;gap:12px}}.user-layout{flex-direction:column;min-height:100vh;display:flex}.header{z-index:999;-webkit-backdrop-filter:blur(20px)saturate(180%);background:#fffc;border-bottom:1px solid #0000000f;width:100%;height:64px;transition:background .3s,border-color .3s;position:fixed;top:0;left:0}.header.header-fixed{-webkit-backdrop-filter:blur(20px)saturate(180%);z-index:999;height:64px;box-shadow:none;background:#fffc;border-bottom:1px solid #0000000f}.header .wrap{box-sizing:border-box;justify-content:space-between;align-items:center;max-width:1200px;height:64px;margin:0 auto;padding:0 32px;display:flex}.header-left{flex:none;align-items:center;height:64px;display:flex}.header-left a{align-items:center;text-decoration:none;display:flex}#header-logo{width:130px;height:42px;transition:opacity .3s}#header-logo:hover{opacity:.75}.header-right{flex:none;align-items:center;gap:12px;height:64px;display:flex}.header-login-btn{color:#1da796!important;border-color:#1da796!important;border-radius:100px!important;height:36px!important;padding:0 20px!important;font-size:14px!important;font-weight:500!important;transition:all .3s!important}.header-login-btn:hover{color:#fff!important;background:#1da796!important;border-color:#1da796!important;box-shadow:0 4px 12px #1da7964d!important}.header-create-btn{color:#fff!important;background:#1da796!important;border-color:#1da796!important;border-radius:100px!important;height:36px!important;padding:0 20px!important;font-size:14px!important;font-weight:500!important;transition:all .3s!important}.header-create-btn:hover{transform:translateY(-1px);background:#0f766e!important;border-color:#0f766e!important;box-shadow:0 4px 12px #1da79659!important}.header-avatar{cursor:pointer;border:2px solid #0000;transition:transform .2s,box-shadow .2s}.header-avatar:hover{border-color:#1da796;transform:scale(1.08);box-shadow:0 0 0 3px #1da79626}.header-username{color:#334155;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100px;font-size:14px;font-weight:500;transition:color .2s;overflow:hidden}.header-username:hover{color:#1da796}.premium-footer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#ffffffe6;padding:80px 0 24px;position:relative;box-shadow:0 -10px 40px #00000008}.premium-footer-link{color:#64748b;padding-bottom:2px;font-size:14px;text-decoration:none;transition:color .3s;display:inline-block;position:relative}.premium-footer-link:hover{color:#1da796}.premium-footer-link:after{content:"";background-color:#1da796;width:0;height:2px;transition:all .3s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.premium-footer-link:hover:after{width:100%}.premium-social-icon{filter:grayscale()opacity(.5);cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:inline-block}.premium-social-icon:hover{filter:grayscale(0%)opacity();transform:scale(1.15)translateY(-2px)}@media screen and (width<=500px){.header .wrap{width:100%;min-width:320px;margin:0 auto;padding:0 16px}}.login-modal-wrap .ant-modal-mask{-webkit-backdrop-filter:blur(32px)saturate(1.8);background:#0a1e3259!important}.login-modal .ant-modal-content{-webkit-backdrop-filter:blur(40px)saturate(1.6);background:#ffffffb8;border:1px solid #ffffff8c;border-radius:24px;padding:0;overflow:hidden;box-shadow:0 0 0 .5px #ffffff4d,0 8px 32px #0000001f,0 32px 80px #00000014,inset 0 1px #fff9}.login-modal .ant-modal-body{padding:0}.login-modal .ant-modal-close{-webkit-backdrop-filter:blur(12px);color:#00000059;z-index:2;background:#ffffff73;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;top:16px;right:16px}.login-modal .ant-modal-close:hover{color:#0009;background:#ffffffa6;transform:scale(1.08);box-shadow:0 2px 8px #0000001a}.login-modal-layout{min-height:520px;display:flex}.login-modal-left{background:linear-gradient(165deg,#1ec9a8 0%,#1da796 30%,#0f8a7c 65%,#0a6e62 100%);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:260px;padding:56px 32px;display:flex;position:relative;overflow:hidden}.login-modal-left:before{content:"";pointer-events:none;background:radial-gradient(at 25% 30%,#ffffff2e 0%,#0000 55%),radial-gradient(at 75% 80%,#ffffff0f 0%,#0000 50%);position:absolute;inset:0}.login-modal-left:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 10%,#ffffff59 50%,#0000 90%);height:1px;position:absolute;top:0;left:0;right:0}.login-left-illustration{z-index:1;filter:drop-shadow(0 8px 28px #00000026);width:180px;height:auto;margin-bottom:28px;transition:transform .4s cubic-bezier(.4,0,.2,1);position:relative}.login-left-illustration:hover{transform:translateY(-4px)scale(1.03)}.login-left-title{color:#fff;letter-spacing:.02em;z-index:1;text-shadow:0 1px 4px #0000001a;margin-bottom:12px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,system-ui,sans-serif;font-size:22px;font-weight:600;position:relative}.login-left-desc{color:#ffffffb3;text-align:center;z-index:1;max-width:180px;font-size:13px;line-height:1.8;position:relative}.login-left-dots{z-index:1;gap:6px;display:flex;position:absolute;bottom:28px}.login-left-dots span{background:#ffffff38;border-radius:50%;width:5px;height:5px;transition:background .3s}.login-left-dots span:nth-child(2){background:#ffffff73}.login-modal-right{flex-direction:column;flex:1;justify-content:center;padding:52px 44px 40px;display:flex;position:relative}.login-modal-right:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%);height:1px;position:absolute;top:0;left:32px;right:32px}.login-modal-title{margin-bottom:6px}.login-modal-title h2{color:#1d1d1f;letter-spacing:-.02em;min-height:36px;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,system-ui,sans-serif;font-size:26px;font-weight:600}.typewriter-cursor{vertical-align:text-bottom;background:#1da796;border-radius:1px;width:2px;height:24px;margin-left:2px;animation:1.1s ease-in-out infinite cursorBlink;display:inline-block}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.login-modal-subtitle{color:#86868b;margin-bottom:28px;font-size:14px;font-weight:400}.login-modal-role-switch{margin-bottom:28px}.login-modal-role-tabs{-webkit-backdrop-filter:blur(8px);background:#f5f5f7a6;border:1px solid #ffffff80;border-radius:12px;gap:0;padding:3px;display:flex}.login-modal-role-tab{color:#86868b;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;line-height:1;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.login-modal-role-tab:hover{color:#1d1d1f}.login-modal-role-tab.active{-webkit-backdrop-filter:blur(12px);color:#1d1d1f;background:#ffffffd9;font-weight:600;box-shadow:0 2px 8px #0000000f,0 0 0 .5px #0000000a,inset 0 1px #fffc}.login-modal-role-tab .tab-icon{align-items:center;font-size:15px;display:flex}.login-modal-form{width:100%}.login-modal-form .ant-input-affix-wrapper{-webkit-backdrop-filter:blur(6px);background:#f5f5f78c;border:1px solid #0000000f;border-radius:12px;height:46px;padding:0 14px;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 2px #00000008}.login-modal-form .ant-input-affix-wrapper:hover{background:#f5f5f7b3;border-color:#1da79640}.login-modal-form .ant-input-affix-wrapper:focus-within,.login-modal-form .ant-input-affix-wrapper-focused{background:#ffffffd9;border-color:#1da79680;box-shadow:0 0 0 3px #1da7961a,inset 0 1px 2px #00000005}.login-modal-form .ant-input{background:0 0;font-size:14px}.login-modal-form .ant-input-prefix{color:#86868b;margin-right:10px}.login-modal-form .ant-form-item{margin-bottom:16px}.login-modal-form .ant-btn-primary{letter-spacing:.02em;background:linear-gradient(135deg,#1da796 0%,#1ec9a8 100%);border:none;border-radius:12px;height:46px;font-size:15px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px #1da79640,inset 0 1px #fff3}.login-modal-form .ant-btn-primary:before{content:"";pointer-events:none;background:linear-gradient(#ffffff26,#0000);border-radius:12px 12px 0 0;height:50%;position:absolute;top:0;left:0;right:0}.login-modal-form .ant-btn-primary:hover{background:linear-gradient(135deg,#1ab59f 0%,#22d9b6 100%);transform:translateY(-1px);box-shadow:0 6px 20px #1da79659,inset 0 1px #ffffff40}.login-modal-form .ant-btn-primary:active{background:linear-gradient(135deg,#169e8e 0%,#1ab59f 100%);transform:translateY(0)scale(.99);box-shadow:0 2px 8px #1da79640}.login-modal-form .ant-tabs-nav:before{border-bottom:1px solid #0000000d}.login-modal-form .ant-tabs-tab{color:#86868b;font-size:13px;font-weight:500}.login-modal-form .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1da796}.login-modal-form .ant-tabs-ink-bar{background:#1da796}.login-modal-footer{border-top:1px solid #0000000d;margin-top:24px;padding-top:18px}.login-modal-footer span{color:#86868b;font-size:13px}.login-modal-footer a{color:#1da796;margin-left:3px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s}.login-modal-footer a:hover{color:#17b8a6;text-shadow:0 0 12px #1da79633}.login-modal-wrap .ant-zoom-enter,.login-modal-wrap .ant-zoom-appear{animation:.45s cubic-bezier(.32,.72,0,1) loginModalScale!important}@keyframes loginModalScale{0%{opacity:0;transform:scale(.92)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=680px){.login-modal-left{display:none}.login-modal-layout{min-height:auto}.login-modal-right{padding:44px 28px 32px}}.admin-login-page{--brand:#0d9b8a;--brand-light:#14b8a6;--brand-dark:#0a7d6f;--brand-glow:#0d9b8a26;--text:#1a1a2e;--text-sec:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--card:#fff;--danger:#ef4444;--danger-bg:#ef44441a;--radius-sm:8px;--transition:.25s cubic-bezier(.4, 0, .2, 1)}@keyframes admin-login-fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes admin-login-scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes admin-login-slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes admin-login-slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes admin-login-gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.admin-login-page{background:linear-gradient(160deg,#f0fdf9 0%,#e0f7f3 30%,#f5f7fa 60%,#e8f4f1 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans SC,sans-serif;display:flex;position:relative;overflow:hidden}.admin-login-page:before{content:"";z-index:0;background-color:#0000;background-image:radial-gradient(at 20%,#0d9b8a26 0%,#0000 50%),radial-gradient(at 80% 20%,#0d9b8a1a 0%,#0000 50%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:200% 200%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;animation:8s infinite admin-login-gradientShift;position:absolute;inset:0}.admin-login-grid{z-index:2;grid-template-columns:1fr 380px;align-items:center;gap:60px;width:100%;max-width:980px;display:grid;position:relative}.admin-login-pitch{flex-direction:column;gap:22px;animation:.5s ease-out admin-login-slideInLeft;display:flex}.admin-login-pitch__brand{align-items:center;gap:14px;margin-bottom:4px;display:flex}.admin-login-pitch__logo{background:linear-gradient(135deg, var(--brand), var(--brand-light));border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .3s;display:flex;box-shadow:0 8px 24px #0d9b8a40}.admin-login-pitch__logo:hover{transform:rotate(-5deg)scale(1.05)}.admin-login-pitch__title{color:#0a1628;letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800}.admin-login-pitch__sub{color:var(--text-sec);font-size:13px}.admin-login-pitch__desc{color:#475569;max-width:380px;margin:0;font-size:15px;line-height:1.8}.admin-login-pitch__typing{animation:.6s ease-out .3s both admin-login-slideInRight}.admin-login-pitch__tags{flex-wrap:wrap;gap:8px;animation:.5s ease-out .4s both admin-login-fadeInUp;display:flex}.admin-login-pitch__tag{color:var(--brand);background:#0d9b8a14;border:1px solid #0d9b8a1f;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500}.admin-login-card{-webkit-backdrop-filter:blur(24px);background:#ffffffe0;border:1px solid #fff9;border-radius:20px;justify-self:end;width:380px;padding:36px 32px;animation:.4s ease-out admin-login-scaleIn;box-shadow:0 20px 60px #0000000f,0 1px 3px #0000000a}.admin-login-card__header{text-align:center;margin-bottom:24px}.admin-login-card__title{color:var(--text);margin-bottom:4px;font-size:18px;font-weight:700}.admin-login-card__sub{color:var(--text-muted);font-size:13px}.admin-login-card form{flex-direction:column;gap:14px;display:flex}.admin-login-input-wrap{align-items:center;width:100%;display:inline-flex;position:relative}.admin-login-input-wrap__icon{color:var(--brand);pointer-events:none;z-index:1;align-items:center;font-size:16px;display:flex;position:absolute;left:12px}.admin-login-input{border:1px solid var(--border);background:var(--card);width:100%;height:46px;color:var(--text);transition:all var(--transition);border-radius:10px;outline:none;padding:0 12px 0 40px;font-family:inherit;font-size:14px}.admin-login-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.admin-login-input::placeholder{color:var(--text-muted)}.admin-login-btn{white-space:nowrap;width:100%;height:50px;transition:all var(--transition);-webkit-user-select:none;user-select:none;cursor:pointer;background:linear-gradient(135deg, var(--brand) 0%, var(--brand-light) 100%);color:#fff;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:15px;font-weight:600;line-height:1;display:inline-flex;position:relative;box-shadow:0 2px 6px #0d9b8a40}.admin-login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #0d9b8a59}.admin-login-btn:active:not(:disabled){transform:translateY(0)}.admin-login-btn:disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.admin-login-btn__spinner{border:2px solid #ffffff4d;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-login-error{color:var(--danger);background:var(--danger-bg);text-align:center;border-radius:8px;padding:8px 12px;font-size:13px}.admin-login-card__footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;margin-top:18px;padding-top:14px;font-size:12px}.admin-login-card__footer a{color:var(--brand);transition:color var(--transition);text-decoration:none}.admin-login-card__footer a:hover{color:var(--brand-dark)}@media (width<=768px){.admin-login-grid{grid-template-columns:1fr;gap:30px}.admin-login-card{justify-self:stretch;width:100%}.admin-login-pitch__title{font-size:22px}}.tops-card{background:var(--admin-card-bg);border:1px solid var(--admin-border);border-radius:var(--admin-content-radius);padding:18px 20px;transition:box-shadow .2s,transform .2s;box-shadow:0 1px 3px #0f172a0a}.tops-card:hover{box-shadow:0 6px 18px #0f172a12}.tops-section-title{color:var(--admin-text-primary);align-items:center;gap:8px;margin:0 0 14px;font-size:14px;font-weight:600;display:flex}.tops-section-title .tops-section-icon{color:var(--admin-primary);font-size:16px}.tops-section-title .tops-section-extra{color:var(--admin-text-tertiary);margin-left:auto;font-size:12px;font-weight:400}.tops-kpi{background:var(--admin-card-bg);border:1px solid var(--admin-border);border-radius:var(--admin-content-radius);align-items:center;gap:14px;height:100%;padding:18px 20px;transition:transform .2s,box-shadow .2s;display:flex}.tops-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0f172a14}.tops-kpi-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;display:flex}.tops-kpi-body{flex:1;min-width:0}.tops-kpi-title{color:var(--admin-text-secondary);margin-bottom:4px;font-size:13px}.tops-kpi-value{color:var(--admin-text-primary);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.tops-kpi-suffix{color:var(--admin-text-tertiary);margin-left:4px;font-size:13px;font-weight:400}.tops-kpi-foot{align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.tops-kpi-foot-label,.tops-kpi-foot .tops-kpi-foot-label{color:var(--admin-text-tertiary)}.tops-pulse{background:var(--admin-success);border-radius:50%;width:8px;height:8px;animation:1.6s infinite tops-pulse;box-shadow:0 0 #10b98180}@keyframes tops-pulse{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.tops-empty{color:var(--admin-text-tertiary);background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 10px,#f1f5f9 10px 20px);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.tops-mini{border:1px solid var(--admin-border);background:#f8fafc;border-radius:10px;padding:14px 16px}.tops-mini-title{color:var(--admin-text-secondary);font-size:13px}.tops-mini-value{color:var(--admin-text-primary);margin-top:4px;font-size:24px;font-weight:700}.tops-mini-recent{color:var(--admin-success);margin-top:2px;font-size:12px}.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{height:1px;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{padding-left:1.5em;list-style-type:none;position:relative}.ql-editor li>.ql-ui:before{text-align:right;white-space:nowrap;width:1.2em;margin-left:-1.5em;margin-right:.3em;display:inline-block}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"•"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"☑"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"☐"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0, decimal) ". "}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9, decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{text-align:left;margin-left:.3em;margin-right:-1.5em}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{max-width:100%;display:block}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit;direction:rtl}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;padding:3px 5px;display:inline-block}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{vertical-align:middle;display:inline-block}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2px}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor .ql-code-block-container{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;float:left;vertical-align:middle;height:24px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:inline-block;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;padding:4px 8px;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding-top:5px;padding-bottom:5px;display:block}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{z-index:1;margin-top:-1px;display:block;top:100%}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{width:24px;height:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{top:5px;right:5px}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #ccc;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{color:#444;white-space:nowrap;background-color:#fff;border:1px solid #ccc;padding:5px 12px;box-shadow:0 0 5px #ddd}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #ccc;margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save";border-right:0;padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.section-header{text-align:center;margin-bottom:36px}.hero-section{background-color:#fcfcfd;justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:40px 24px;display:flex}.hero-container-card{background:#fff;border-radius:32px;width:100%;max-width:1280px;min-height:640px;position:relative;overflow:hidden;box-shadow:0 20px 40px #0000000f,0 1px 3px #00000005}.hero-card-bg{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.hero-card-bg .ant-carousel,.hero-card-bg .slick-slider,.hero-card-bg .slick-list,.hero-card-bg .slick-track,.hero-card-bg .slick-slide>div,.carousel-img-wrapper{height:100%}.card-bg-img{object-fit:cover;width:100%;height:100%}.card-bg-overlay{background:linear-gradient(90deg,#fff 0%,#fffffff2 35%,#ffffff80 60%,#fff0 100%);position:absolute;inset:0}.hero-dark-overlay{z-index:3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;pointer-events:none;background:#ffffffd9;width:100%;height:100%;transition:opacity .6s;position:absolute;top:0;left:0}.hero-dark-overlay--active{opacity:1}.hero-view{z-index:4;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .5s,transform .5s;position:absolute;top:0;left:0}.hero-view--hero{opacity:1;pointer-events:auto;align-items:center;gap:40px;min-height:640px;padding:80px 60px;display:flex}.hero-view--hero.hero-view--out{opacity:0;pointer-events:none;transform:translateY(20px)scale(.98)}.hero-view--features{justify-content:center;align-items:center;display:flex}.hero-view--features.hero-view--in{opacity:1;pointer-events:auto}.hero-text-column{flex:1;max-width:520px}.hero-badge{color:#1da796;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1da7961a;border:1px solid #1da79633;border-radius:100px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 16px;font-size:14px;font-weight:500;display:inline-flex}.badge-dot{background:#1da796;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #1da79633}.hero-title.ant-typography{letter-spacing:-.02em;color:#111827;margin-bottom:24px;font-size:56px;font-weight:700;line-height:1.2}.hero-title .highlight-text{color:#0000;background:linear-gradient(135deg,#1da796,#157e72);-webkit-background-clip:text;background-clip:text}.hero-subtitle.ant-typography{color:#4b5563;margin-bottom:40px;font-size:18px;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:16px;display:flex}.hero-actions .btn-primary{background:#1da796;border-color:#1da796;border-radius:8px;height:48px;padding:0 32px;font-size:16px;font-weight:500;transition:all .3s;box-shadow:0 4px 14px #1da7964d}.hero-actions .btn-primary:hover{background:#157e72;border-color:#157e72;transform:translateY(-2px);box-shadow:0 6px 20px #1da79666}.features-orb{filter:blur(80px);opacity:0;z-index:0;border-radius:50%;transition:opacity .8s .2s;position:absolute}.hero-view--in .features-orb{opacity:1}.features-orb--1{background:radial-gradient(circle,#1da79626,#0000 70%);width:350px;height:350px;top:-10%;left:-5%}.features-orb--2{background:radial-gradient(circle,#7c3aed1a,#0000 70%);width:280px;height:280px;bottom:-15%;right:5%}.features-orb--3{background:radial-gradient(circle,#fbbf241a,#0000 70%);width:200px;height:200px;top:20%;right:-8%}.features-panel{z-index:1;width:100%;max-width:800px;padding:48px;position:relative}.features-back-btn{color:#64748b;cursor:pointer;background:#0000000a;border:1px solid #00000014;border-radius:100px;align-items:center;gap:8px;margin-bottom:32px;padding:8px 18px;font-size:13px;transition:all .25s;display:inline-flex}.features-back-btn:hover{color:#1da796;background:#1da79614;border-color:#1da79633}.features-title{color:#0f172a;letter-spacing:-.02em;margin:0 0 10px;font-size:40px;font-weight:800}.features-title-highlight{background:linear-gradient(135deg,#0f766e,#1da796);color:#0000;-webkit-background-clip:text;background-clip:text}.features-subtitle{color:#64748b;margin:0 0 40px;font-size:16px}.features-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.feature-card{cursor:pointer;animation:cardFlyIn .5s ease-out calc(var(--delay,0s) + .15s) both;background:#fff;border:1px solid #0000000f;border-radius:20px;align-items:center;gap:20px;padding:28px;text-decoration:none;transition:all .35s cubic-bezier(.25,.46,.45,.94);display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000a}.hero-view--features:not(.hero-view--in) .feature-card{animation:none}@keyframes cardFlyIn{0%{opacity:0;transform:translateY(24px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.feature-card:hover{border-color:var(--accent,#1da796);box-shadow:0 12px 32px #00000014, 0 0 0 1px var(--accent,transparent);transform:translateY(-4px)}.feature-card__glow{background:radial-gradient(circle at 30% 30%, var(--accent,#1da796), transparent 60%);opacity:0;pointer-events:none;width:200%;height:200%;transition:opacity .4s;position:absolute;top:-50%;left:-50%}.feature-card:hover .feature-card__glow{opacity:.06}.feature-card__icon{background:color-mix(in srgb, var(--accent,#1da796) 12%, transparent);width:52px;height:52px;color:var(--accent,#1da796);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;transition:all .3s;display:flex}.feature-card:hover .feature-card__icon{background:color-mix(in srgb, var(--accent,#1da796) 18%, transparent);transform:scale(1.08)rotate(-2deg)}.feature-card__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.feature-card__title{color:#0f172a;font-size:17px;font-weight:700;line-height:1.3}.feature-card__desc{color:#64748b;font-size:13px;line-height:1.5}.feature-card__arrow{color:#cbd5e1;opacity:0;flex-shrink:0;font-size:14px;transition:all .3s;transform:translate(-6px)}.feature-card:hover .feature-card__arrow{opacity:1;color:var(--accent,#1da796);transform:translate(0)}@media screen and (width<=992px){.hero-section{padding:24px 16px}.hero-view--hero{text-align:center;flex-direction:column;padding:60px 24px}.card-bg-overlay{background:linear-gradient(#fff 0%,#fffffff2 40%,#fff9 100%)}.hero-text-column{flex-direction:column;align-items:center;max-width:100%;display:flex}.features-panel{padding:32px 24px}}@media screen and (width<=576px){.hero-title.ant-typography{font-size:32px}.hero-actions{flex-direction:column;width:100%}.hero-actions .ant-btn{width:100%}.features-grid{grid-template-columns:1fr}.features-title{font-size:28px}}.section-why-study{background:#f8fafc;padding:100px 0;position:relative}.why-study-container{max-width:1280px;margin:0 auto;padding:0 40px}.why-study-header{flex-direction:column;justify-content:center;align-items:center;gap:12px;margin-bottom:64px;display:flex}.why-study-title{letter-spacing:-.02em;color:#1da796!important;margin:0!important;font-size:40px!important;font-weight:800!important;line-height:1.2!important}.why-study-subtitle{letter-spacing:.05em;font-weight:500;display:inline-block;position:relative;color:#1da796!important;margin:0!important;font-size:18px!important;line-height:1.5!important}.why-study-subtitle:after{content:"";background:#1da796;border-radius:2px;width:40px;height:3px;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.bento-card{height:100%;border:1px solid #00000008!important;border-radius:24px!important;transition:all .4s cubic-bezier(.175,.885,.32,1.275)!important;overflow:hidden!important;box-shadow:0 10px 30px #00000008!important}.bento-card:hover{transform:translateY(-8px);border-color:#1da7961a!important;box-shadow:0 20px 40px #1da7961f!important}.bento-hero-card{min-height:100%;position:relative}.bento-hero-bg{z-index:1;background-position:50%;background-size:cover;transition:transform .8s;position:absolute;inset:0}.bento-hero-card:hover .bento-hero-bg{transform:scale(1.05)}.bento-hero-overlay{z-index:2;background:linear-gradient(#0f172a00 0%,#0f172ad9 100%);position:absolute;inset:0}.bento-hero-content{z-index:3;padding:40px 32px;position:absolute;bottom:0;left:0;right:0}.bento-feature-card{flex-direction:column;display:flex}.bento-feature-card .ant-card-cover{margin:0!important}.bento-feature-img-wrap{width:100%;padding-top:60%;position:relative;overflow:hidden}.bento-feature-img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.175,.885,.32,1.275);position:absolute;inset:0}.bento-feature-card:hover .bento-feature-img{transform:scale(1.08)}.bento-feature-title{transition:color .3s;color:#0f172a!important;margin-top:0!important;margin-bottom:12px!important;font-weight:600!important}.bento-feature-card:hover .bento-feature-title{color:#1da796!important}.bento-feature-desc{text-align:justify;color:#64748b!important;margin-bottom:0!important;font-size:14px!important;line-height:1.6!important}@media screen and (width<=992px){.bento-hero-card{min-height:400px}}@media screen and (width<=768px){.section-why-study{padding:60px 0}.why-study-container{padding:0 20px}.why-study-title{font-size:32px!important}}.section-begin-study-light{background-color:#fff;align-items:center;min-height:800px;padding:120px 0;display:flex;position:relative;overflow:hidden}.begin-study-light-glow{filter:blur(120px);z-index:0;pointer-events:none;border-radius:50%;position:absolute}.begin-study-glow-top{background:#1da79614;width:600px;height:600px;top:-10%;left:-5%}.begin-study-glow-bottom{background:#1da7960f;width:800px;height:800px;bottom:-20%;right:-5%}.begin-study-container{z-index:10;width:100%;max-width:1400px;margin:0 auto;padding:0 60px;position:relative}.begin-study-text-col{flex-direction:column;justify-content:center;display:flex}.begin-study-subtitle-badge-light{color:#1da796;letter-spacing:.05em;background:#1da79614;border:1px solid #1da79626;border-radius:100px;align-items:center;width:fit-content;margin-bottom:32px;padding:8px 18px;font-size:15px;font-weight:600;display:inline-flex}.badge-dot-light{background:#1da796;border-radius:50%;width:6px;height:6px;margin-right:10px;box-shadow:0 0 8px #1da79699}.begin-study-title-light{letter-spacing:-.02em;color:#0f172a!important;margin-bottom:32px!important;font-size:64px!important;font-weight:800!important;line-height:1.15!important}.text-gradient-light{background:linear-gradient(135deg,#1da796 0%,#0f766e 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.begin-study-desc-light{text-align:justify;max-width:500px;color:#475569!important;font-size:17px!important;font-weight:400!important;line-height:1.9!important}.begin-study-video-col{perspective:1200px;justify-content:center;align-items:center;display:flex}.laptop-showcase-wrapper{width:100%;max-width:860px;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);position:relative;transform:rotateY(-8deg)rotateX(4deg)}.laptop-showcase-wrapper:hover{transform:rotateY(0)rotateX(0)}.laptop-glow-effect-light{filter:blur(100px);opacity:.15;z-index:0;pointer-events:none;background:#1da796;border-radius:50%;width:90%;height:70%;transition:opacity .8s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.laptop-showcase-wrapper:hover .laptop-glow-effect-light{opacity:.25}.laptop-frame{aspect-ratio:880/507;z-index:1;filter:drop-shadow(0 40px 80px #0000001f)drop-shadow(0 20px 40px #1da79614);background:50%/100% 100% no-repeat;width:100%;position:relative}.laptop-video{background:#000;border-radius:4px 4px 0 0;outline:none;width:86.3%;height:84.3%;position:absolute;top:5.7%;left:6.8%}@media screen and (width<=992px){.section-begin-study-light{min-height:auto;padding:80px 0}.begin-study-title-light{font-size:48px!important}.laptop-showcase-wrapper{margin-top:40px;transform:none}.laptop-glow-effect-light{filter:blur(60px);opacity:.1}}@media screen and (width<=768px){.begin-study-container{padding:0 24px}.begin-study-title-light{font-size:40px!important}.laptop-frame{filter:drop-shadow(0 20px 40px #0000001a)}}.section-curriculum{background:#fff;padding:60px 0}.course-top{background:url(/assets/advanced-CMPDh1vt.png) 42px -219px/171px 251px no-repeat;justify-content:center;align-items:flex-end;width:839px;margin:21px auto 90px;padding-top:6px;display:flex}.course-top-inner-part{color:#323232;z-index:1;background:#fff;border-radius:9px;flex:1;padding:32px 32px 17px 84px;font-size:18px;position:relative;box-shadow:0 3px 20px #b7b7b780}.course-top-inner-part p{margin:0}.course-top-inner-part p:first-of-type{font-size:24px;font-weight:400;line-height:32px}.course-top-inner-part p:nth-of-type(2){margin-top:9px;font-size:21px;font-weight:300;line-height:24px}.course-top-inner-part:after{content:"";border-radius:50%;width:63px;height:63px;position:absolute;top:21px;left:15px}.course-top-inner-part:first-of-type:after{background:#1da796 url(/assets/advanced-CMPDh1vt.png) 10px -106px/171px 251px}.course-top-inner-part:nth-of-type(2){z-index:2;margin-bottom:15px;margin-left:-21px}.course-top-inner-part:nth-of-type(2):after{background:#ffc84f url(/assets/advanced-CMPDh1vt.png) 12px -51px/171px 251px}.course-top-inner-part:nth-of-type(3){z-index:3;margin-left:-21px}.course-top-inner-part:nth-of-type(3):after{background:#fc672b url(/assets/advanced-CMPDh1vt.png) 10px 10px/171px 251px}@media screen and (width<=768px){.course-top{transform-origin:0;margin:21px auto 30px;transform:scale(.6)translate(3%)}}.swiper-course{height:683px}.swiper-course:after{content:"";clear:both;display:block}.swiper-course-left{float:left;width:30%;height:315px}.swiper-course-right{box-sizing:border-box;width:90%;max-width:1300px;height:100%;margin:0 auto;padding-top:32px;position:relative}.course-imgs-box{justify-content:space-around;align-items:center;display:flex}#course-video{object-fit:cover;border-radius:12px;outline:none;width:473px;height:473px}.course-imgs{object-fit:contain;width:545px;height:503px}.course-imgs-last{object-fit:contain;width:981px;height:516px}.swiper-course-tab{box-sizing:border-box;background:url(/assets/jinjie-BPQGcYbN.png) bottom/100% no-repeat;justify-content:space-around;align-items:center;width:840px;height:119px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.course-swiper-tab-item{cursor:pointer;background:#fff;border-radius:50%;width:53px;height:53px;position:relative;box-shadow:0 3px 20px #b7b7b7e6}.course-swiper-tab-item:after{content:"S";text-align:center;color:#24b1a366;width:53px;height:53px;font-size:32px;font-weight:500;line-height:53px;position:absolute}.course-swiper-tab-item:first-of-type{margin-top:53px}.course-swiper-tab-item:first-of-type:after{content:"S"}.course-swiper-tab-item:nth-of-type(2){margin-top:21px}.course-swiper-tab-item:nth-of-type(2):after{content:"T"}.course-swiper-tab-item:nth-of-type(3){margin-top:27px}.course-swiper-tab-item:nth-of-type(3):after{content:"A"}.course-swiper-tab-item:nth-of-type(4){margin-top:63px}.course-swiper-tab-item:nth-of-type(4):after{content:"C"}.course-swiper-tab-item:nth-of-type(5){margin-top:95px}.course-swiper-tab-item:nth-of-type(5):after{content:"K"}.course-swiper-tab-item:nth-of-type(6){margin-top:53px}.course-swiper-tab-item:nth-of-type(6):after{content:"MINI STACK";font-size:14px;line-height:1.5;top:50%;transform:translateY(-40%)}.course-swiper-tab-item-active{background:#1da796}.course-swiper-tab-item-active:after{color:#fff}@media screen and (width<=768px){.swiper-course{height:auto;padding-bottom:90px}.swiper-course-right{width:100%;padding-top:0}.course-imgs-box{flex-direction:column}#course-video,.course-imgs,.course-imgs-last{width:100%;max-width:480px;height:auto}.swiper-course-tab{transform-origin:bottom;transform:translate(-50%)scale(.6)}}.code-preview{--editor-bg:#1e1e2e;--editor-header:#181825;background:var(--editor-bg);width:100%;min-width:0;height:180px;position:relative;overflow:hidden}.code-preview:after{content:"";opacity:0;background:linear-gradient(90deg,#0000,#1da796,#0000);height:2px;transition:opacity .3s;animation:3s linear infinite paused codeScanLine;position:absolute;top:0;left:0;right:0}.codehub-card-link:hover .code-preview:after,.work-card-link:hover .code-preview:after{opacity:.6;animation-play-state:running}@keyframes codeScanLine{0%{top:0}to{top:100%}}.code-preview-header{background:var(--editor-header);align-items:center;gap:6px;padding:8px 14px;display:flex}.code-preview-dot{border-radius:50%;width:10px;height:10px}.code-preview-dot.red{background:#f38ba8}.code-preview-dot.yellow{background:#f9e2af}.code-preview-dot.green{background:#a6e3a1}.code-preview-lang{color:#ffffff4d;text-transform:uppercase;letter-spacing:1px;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px}.code-preview-body{padding:10px 14px;position:relative;overflow:hidden}.code-preview-line{opacity:0;align-items:flex-start;gap:14px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.75;animation:.4s forwards codeLineSlideIn;display:flex;transform:translate(-8px)}@keyframes codeLineSlideIn{to{opacity:1;transform:translate(0)}}.code-line-num{color:#ffffff2e;-webkit-user-select:none;user-select:none;text-align:right;flex-shrink:0;min-width:16px}.code-line-text{color:#cdd6f4;white-space:pre;text-overflow:ellipsis;min-width:0;overflow:hidden}.codehub-card-link:hover .code-preview-body,.work-card-link:hover .code-preview-body{background:#89b4fa08}.scratch-cover{aspect-ratio:4/3;background:#f0f0f0;width:100%;position:relative;overflow:hidden}.scratch-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1)}.codehub-card-link:hover .scratch-cover img,.work-card-link:hover .scratch-cover img{transform:scale(1.06)}.scratch-cover-overlay{background:0 0;justify-content:center;align-items:center;transition:background .3s;display:flex;position:absolute;inset:0}.codehub-card-link:hover .scratch-cover-overlay,.work-card-link:hover .scratch-cover-overlay{background:#00000059}.scratch-play-icon{color:#fff;opacity:0;filter:drop-shadow(0 2px 8px #0000004d);font-size:44px;transition:all .3s;transform:scale(.7)}.codehub-card-link:hover .scratch-play-icon,.work-card-link:hover .scratch-play-icon{opacity:1;transform:scale(1)}.work-card-link{border-radius:14px;min-width:0;text-decoration:none;transition:transform .35s cubic-bezier(.22,1,.36,1);display:block;overflow:hidden}.work-card-link:hover{transform:translateY(-6px)}.work-card.ant-card{border:1px solid #0000000f;border-radius:14px;height:100%;transition:box-shadow .35s;overflow:hidden;box-shadow:0 2px 12px #0000000a}.work-card-link:hover .work-card.ant-card{box-shadow:0 12px 40px #1da7961f}.work-card .ant-card-body{padding:14px 16px}.work-card-cover{background:#f1f5f9;position:relative;overflow:hidden}.work-card-cover>.scratch-cover,.work-card-cover>.code-preview{width:100%;height:100%}.work-card-clickable{cursor:pointer;outline:none}.work-card-clickable:focus-visible .work-card.ant-card{box-shadow:0 0 0 3px #1da79666}.work-card-play-overlay{opacity:0;pointer-events:none;z-index:2;background:#0f172a47;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.work-card-play-overlay .anticon{color:#fff;filter:drop-shadow(0 4px 12px #0006);font-size:52px;transition:transform .3s cubic-bezier(.22,1,.36,1);transform:scale(.7)}.work-card-link:hover .work-card-play-overlay{opacity:1}.work-card-link:hover .work-card-play-overlay .anticon{transform:scale(1)}.work-card-stats{z-index:2;gap:6px;display:flex;position:absolute;bottom:8px;left:8px}.work-card-stats span{color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.work-card-stats .anticon-heart{color:#ff7a93}.work-card-title{margin-bottom:8px;font-size:14px;line-height:1.4}.work-card-footer{justify-content:space-between;align-items:center;gap:8px;min-height:28px;display:flex}.work-card-footer-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.work-card-author{align-items:center;gap:8px;min-width:0;display:flex}.work-card-author-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px!important}.work-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.work-grid-section{padding:40px 0 20px}.work-grid-section.work-grid-contained{max-width:1200px;margin:0 auto;padding:40px 24px 20px}.work-grid-header{border-bottom:2px solid #0000;border-image:linear-gradient(90deg,#1da796,#0000) 1;justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:16px;display:flex}.work-grid-title-wrap{align-items:center;gap:10px;display:flex}.work-grid-icon{color:#1da796;font-size:22px}.work-grid-title.ant-typography{letter-spacing:1px;font-size:22px;font-weight:700;margin:0!important}.work-grid-toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.work-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.work-grid-skeleton.ant-card{border-radius:14px;overflow:hidden}.work-grid-skeleton .ant-card-body{padding:16px}.work-grid-empty{padding:60px 0}.work-grid-pagination{justify-content:center;margin-top:32px;padding-bottom:16px;display:flex}@media (width<=1024px){.work-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.work-grid-section.work-grid-contained{padding:28px 16px 16px}.work-grid{grid-template-columns:repeat(2,1fr);gap:14px}.work-grid-header{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=480px){.work-grid{grid-template-columns:1fr}}.new-work-card{color:#94a3b8;cursor:pointer;background:#fafbfc;border:2px dashed #d9dee5;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;min-height:248px;text-decoration:none;transition:all .3s;display:flex}.new-work-card:hover{color:#1da796;background:#1da7960a;border-color:#1da796}.new-work-card:focus-visible{outline:none;box-shadow:0 0 0 3px #1da79666}.new-work-card-plus{background:#eef1f5;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;transition:all .3s;display:flex}.new-work-card:hover .new-work-card-plus{background:#1da7961f;transform:scale(1.08)}.new-work-card-label{font-size:14px;font-weight:600}.preview-modal .ant-modal-content{border-radius:18px;padding:0;overflow:hidden;box-shadow:0 24px 80px #00000059}.preview-modal-head{color:#fff;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:relative;overflow:hidden}.preview-modal-head:after{content:"";pointer-events:none;background:radial-gradient(120% 120% at 100% 0,#ffffff40,#0000 55%);position:absolute;inset:0}.preview-modal-head-left{align-items:center;gap:14px;min-width:0;display:flex}.preview-modal-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.5px;background:#ffffff38;border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:700}.preview-modal-titles{min-width:0}.preview-modal-title{white-space:nowrap;text-overflow:ellipsis;max-width:46ch;font-size:18px;font-weight:800;line-height:1.3;overflow:hidden}.preview-modal-author{opacity:.95;align-items:center;gap:6px;margin-top:3px;font-size:13px;display:flex}.preview-modal-head-right{z-index:1;flex-shrink:0;align-items:center;gap:10px;display:flex}.preview-stat{opacity:.95;align-items:center;gap:5px;font-size:13px;font-weight:600;display:flex}.preview-like-btn,.preview-close-btn{cursor:pointer;color:#fff;border:none;border-radius:999px;align-items:center;gap:6px;font-weight:700;transition:transform .15s,background .2s;display:inline-flex}.preview-like-btn{background:#fff3;padding:6px 14px;font-size:13px}.preview-like-btn .anticon{color:#ff5a7a;filter:drop-shadow(0 1px 1px #0003)}.preview-like-btn:hover{background:#ffffff52}.preview-like-btn:disabled{cursor:default}.preview-like-btn.is-bump .anticon{animation:.32s preview-heart-bump}@keyframes preview-heart-bump{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}.preview-close-btn{background:#ffffff29;justify-content:center;width:32px;height:32px;padding:6px}.preview-close-btn:hover{background:#00000038}.preview-modal-body{background:#f5f7fa;height:62vh;min-height:360px;max-height:640px;position:relative;overflow:hidden}.preview-modal-scratch3 .preview-modal-body{height:600px;max-height:600px}.preview-modal-frame{border:none;width:100%;height:100%;display:block}.preview-modal-loading{z-index:1;background:#f5f7fa;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-modal-cpp{background:#1e1e1e;width:100%;height:100%}.preview-modal-foot{color:#8a94a6;text-align:center;background:#fff;border-top:1px solid #eef1f5;padding:10px 20px;font-size:12.5px}.preview-modal-foot .anticon{color:#52c41a;margin-right:4px}.preview-modal-cpp~.preview-modal-foot .anticon{color:inherit}.section-homework{background:#fff;padding:80px 0;position:relative}.homework-carousel-container{max-width:1280px;margin:0 auto;padding:0 40px;position:relative}.homework-nav-btn{z-index:10;position:absolute;top:45%;transform:translateY(-50%);color:#1da796!important;background:#fff!important;border:1px solid #1da79633!important;width:48px!important;height:48px!important;font-size:20px!important;transition:all .3s cubic-bezier(.175,.885,.32,1.275)!important;box-shadow:0 8px 24px #1da79626!important}.homework-nav-btn:hover{color:#fff!important;background:#1da796!important;transform:translateY(-50%)scale(1.1)!important;box-shadow:0 12px 32px #1da7964d!important}.homework-nav-prev{left:0}.homework-nav-next{right:0}.homework-carousel .slick-track{padding:20px 0 24px;display:flex!important}.homework-slide-wrap{padding:0 16px}.homework-antd-card{overflow:hidden;border:1px solid #0000000a!important;border-radius:16px!important;transition:all .4s cubic-bezier(.175,.885,.32,1.275)!important;box-shadow:0 10px 30px #00000008!important}.homework-antd-card:hover{transform:translateY(-12px);border-color:#1da7961a!important;box-shadow:0 20px 40px #1da7961f!important}.homework-antd-card .ant-card-body{padding:20px 24px!important}.homework-cover-wrap{width:100%;padding-top:66%;position:relative;overflow:hidden}.homework-cover-img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.175,.885,.32,1.275);position:absolute;top:0;left:0}.homework-antd-card:hover .homework-cover-img{transform:scale(1.08)}.homework-cover-overlay{opacity:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000004d;justify-content:center;align-items:center;width:100%;height:100%;transition:all .4s;display:flex;position:absolute;top:0;left:0}.homework-antd-card:hover .homework-cover-overlay{opacity:1}.homework-play-icon{color:#fff;opacity:.9;filter:drop-shadow(0 4px 12px #0000004d);font-size:56px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);transform:scale(.5)}.homework-antd-card:hover .homework-play-icon{transform:scale(1)}.homework-title{transition:color .3s;color:#0f172a!important;margin-bottom:4px!important}.homework-antd-card:hover .homework-title{color:#1da796!important}.homework-author{color:#64748b!important;font-size:13px!important}.homework-avatar{border:2px solid #fff;box-shadow:0 4px 12px #0000001a}.homework-more-link{color:#94a3b8;border-radius:100px;align-items:center;gap:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .3s;display:inline-flex}.homework-more-link:hover{color:#1da796;background:#1da7960d;transform:translate(-4px)}@media screen and (width<=768px){.section-homework{padding:48px 0}.homework-carousel-container{padding:0 16px}.homework-nav-btn{display:none!important}}.section-parent-reviews{background:linear-gradient(#fff 0%,#f8fafc 100%);padding:80px 0 100px;position:relative;overflow:hidden}.reviews-carousel-container{max-width:1280px;margin:0 auto;padding:0 40px;position:relative}.reviews-nav-btn{z-index:10;position:absolute;top:45%;transform:translateY(-50%);color:#1da796!important;background:#fff!important;border:1px solid #1da79633!important;width:48px!important;height:48px!important;font-size:20px!important;transition:all .3s cubic-bezier(.175,.885,.32,1.275)!important;box-shadow:0 8px 24px #1da79626!important}.reviews-nav-btn:hover{color:#fff!important;background:#1da796!important;transform:translateY(-50%)scale(1.1)!important;box-shadow:0 12px 32px #1da7964d!important}.reviews-nav-prev{left:0}.reviews-nav-next{right:0}.reviews-carousel .slick-track{padding:20px 0 40px;display:flex!important}.reviews-carousel .slick-slide{height:auto}.review-slide-wrap{height:100%;padding:0 16px}.review-premium-card{z-index:1;background:#fff;border:1px solid #00000005;border-radius:24px;flex-direction:column;height:100%;padding:40px 32px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative;box-shadow:0 10px 30px #0000000a}.review-premium-card:hover{border-color:#1da7961a;transform:translateY(-12px);box-shadow:0 20px 40px #1da79614}.review-quote-mark{color:#1da79614;z-index:-1;-webkit-user-select:none;user-select:none;font-family:Georgia,serif;font-size:80px;line-height:1;position:absolute;top:16px;left:24px}.review-content{color:#475569;text-align:justify;z-index:2;flex-grow:1;font-size:15px;line-height:1.8;position:relative;margin-bottom:32px!important}.review-author-area{border-top:1px solid #f1f5f9;align-items:center;margin-top:auto;padding-top:24px;display:flex}.review-avatar{color:#fff;background:linear-gradient(135deg,#1da796 0%,#158b7d 100%);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-right:16px;font-size:20px;font-weight:700;display:flex;box-shadow:0 4px 12px #1da79633}.review-author-info{flex-direction:column;display:flex}.review-author-name{color:#0f172a;margin-bottom:2px;font-size:16px}.review-author-course{color:#94a3b8;font-size:13px}.reviews-carousel .slick-dots li button{background:#cbd5e1!important;border-radius:4px!important;height:6px!important;transition:all .3s!important}.reviews-carousel .slick-dots li.slick-active button{background:#1da796!important;width:24px!important}@media screen and (width<=768px){.section-parent-reviews{padding:48px 0}.reviews-carousel-container{padding:0 16px}.reviews-nav-btn{display:none!important}}.section-teachers{background-position:50%;background-size:cover;background-attachment:fixed;position:relative}.teachers-light-overlay{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;width:100%;padding:100px 0 120px}.teachers-container{max-width:1360px;margin:0 auto;padding:0 60px}.teachers-header{flex-direction:column;align-items:center;margin-bottom:64px;display:flex}.teachers-badge-light{color:#1da796;letter-spacing:.05em;background:#1da79614;border:1px solid #1da79626;border-radius:100px;align-items:center;margin-bottom:24px;padding:6px 16px;font-size:14px;font-weight:600;display:inline-flex}.teachers-title-light{letter-spacing:-.02em;color:#0f172a!important;margin:0 0 16px!important;font-size:40px!important;font-weight:800!important}.teachers-subtitle-light{letter-spacing:.02em;font-weight:500;color:#64748b!important;font-size:18px!important}.teachers-carousel-wrap{position:relative}.teachers-slick .slick-track{padding:20px 0 40px;display:flex!important}.teacher-slide-item{height:100%;padding:0 16px}.teachers-nav-btn{z-index:10;position:absolute;top:45%;transform:translateY(-50%);color:#1da796!important;background:#fff!important;border:1px solid #1da79633!important;width:56px!important;height:56px!important;font-size:20px!important;transition:all .3s cubic-bezier(.175,.885,.32,1.275)!important;box-shadow:0 8px 24px #1da7961a!important}.teachers-nav-btn:hover{color:#fff!important;background:#1da796!important;border-color:#1da796!important;transform:translateY(-50%)scale(1.1)!important;box-shadow:0 12px 32px #1da7964d!important}.teachers-nav-prev{left:-28px}.teachers-nav-next{right:-28px}.teacher-premium-card{flex-direction:column;height:100%;display:flex;overflow:hidden;background:#fff!important;border:1px solid #00000008!important;border-radius:20px!important;transition:all .5s cubic-bezier(.175,.885,.32,1.275)!important;box-shadow:0 10px 30px #0000000a!important}.teacher-premium-card .ant-card-cover{margin:0!important}.teacher-premium-card .ant-card-body{flex-direction:column;flex-grow:1;display:flex;padding:0!important}.teacher-premium-card:hover{transform:translateY(-16px);border-color:#1da7961a!important;box-shadow:0 30px 60px #1da7961f!important}.teacher-cover-wrap{width:100%;padding-top:110%;position:relative;overflow:hidden}.teacher-cover-img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .8s;position:absolute;inset:0}.teacher-premium-card:hover .teacher-cover-img{transform:scale(1.05)}.teacher-cover-gradient{z-index:1;background:linear-gradient(#fff0 0%,#fff 100%);height:50%;position:absolute;bottom:0;left:0;right:0}.teacher-info-box{z-index:2;flex-direction:column;flex-grow:1;padding:0 24px 32px;display:flex;position:relative}.teacher-name{color:#0f172a!important;margin-bottom:4px!important;font-size:22px!important;font-weight:800!important}.teacher-position{color:#1da796;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;font-size:14px;font-weight:600}.teacher-desc{text-align:justify;color:#64748b!important;margin-bottom:0!important;font-size:14px!important;line-height:1.8!important}@media screen and (width<=768px){.teachers-light-overlay{padding:60px 0 80px}.teachers-container{padding:0 24px}.teachers-title-light{text-align:center;font-size:32px!important}.teachers-subtitle-light{text-align:center}.teachers-nav-btn{display:none!important}}.section-partners{background:linear-gradient(#fafafa 0%,#fff 100%);padding:80px 0;position:relative;overflow:hidden}.partners-container{justify-content:center;max-width:1400px;margin:0 auto;padding:0 32px;display:flex;position:relative}.partners-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:2;background:#fffc;border:1px solid #fff9;border-radius:32px;padding:60px 100px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);position:relative;box-shadow:0 24px 48px #0000000d,inset 0 0 0 1px #ffffff80}.partners-card:hover{transform:translateY(-12px);box-shadow:0 40px 80px #1da7961a,inset 0 0 0 1px #fffc}.partners-img{filter:grayscale(30%)opacity(.85);width:1080px;max-width:100%;transition:all .5s;display:block}.partners-card:hover .partners-img{filter:grayscale(0%)opacity()}.partners-glow{z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(circle,#1da7960d 0%,#0000 60%);width:150%;height:150%;transition:opacity .5s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.partners-card:hover .partners-glow{opacity:1}@media screen and (width<=768px){.section-partners{padding:48px 0}.partners-card{border-radius:16px;padding:24px}}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.1,1.1,1.1)}to{transform:scaleX(1)}}.home-join-wrapper{z-index:100000;pointer-events:none;width:100%;height:120px;position:fixed;bottom:0;left:0}.home-join-content{pointer-events:auto;background-size:100% 100%;flex-wrap:nowrap;justify-content:center;align-items:center;width:100%;height:120px;transition:transform .5s ease-in-out;display:flex;position:absolute;top:0;left:0}.home-join-content.expanded{transform:translateY(0)}.home-join-content.collapsed{transform:translateY(120px)}.xiaoen-container{z-index:10;pointer-events:auto;transition:bottom .5s ease-in-out;position:absolute;left:0}.xiaoen-container.expanded{bottom:120px}.xiaoen-container.collapsed{bottom:0}.xiaoen-container .home-xiaoen{cursor:pointer;width:180px;height:130px}.xiaoen-container .home-xiaoen.animated.pulse.infinite{animation:2s infinite pulse}.home-join-content .home-experience{color:#fff;text-align:center;white-space:nowrap;letter-spacing:1px;text-shadow:2px 3px 8px #00000059;justify-content:center;align-items:center;margin-right:24px;padding-left:100px;font-size:29px;font-weight:900;line-height:50px;display:flex}.home-join-content .home-experience span{color:#ffda44;text-shadow:0 0 14px #ffda4480,2px 3px 8px #00000059;margin:0 4px;font-size:43px}.home-form-container{flex-direction:row;align-items:center;gap:16px;margin-right:20px;display:flex}.home-input{width:130px}.home-input-phone{width:160px}.home-input-group{width:200px!important}.home-submit-btn{width:100px}.home-join-content .home-close{opacity:.8;width:10px;height:10px;transition:opacity .3s;position:absolute;top:15px;right:15px}.home-join-content .home-close:hover{opacity:1}.home-join-wrapper .home-join-receive{z-index:100001;width:100vw;height:100vh;position:fixed;top:0;left:0}.home-join-wrapper .home-join-receive .home-join-receive-mask{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.home-join-wrapper .home-join-receive .home-join-receive-content{z-index:2;background:#fff;border-radius:12px;width:300px;height:260px;margin-top:-130px;margin-left:-150px;position:absolute;top:50%;left:50%;box-shadow:0 10px 30px #0003}.home-join-wrapper .home-join-receive .home-join-receive-item{border:1px solid #d9d9d9;border-radius:8px;width:86%;height:40px;margin-bottom:14px;margin-left:7%;transition:border-color .3s;overflow:hidden}.home-join-wrapper .home-join-receive .home-join-receive-item:focus-within{border-color:#38bab8}.home-join-wrapper .home-join-receive .home-join-receive-item input{text-indent:12px;border:none;outline:none;width:100%;height:40px;font-size:14px}.home-join-wrapper .home-join-receive .home-join-receive-name{margin-top:25px}.home-join-wrapper .home-join-receive .home-join-receive-vccode{justify-content:center;align-items:center;display:flex}.home-join-wrapper .home-join-receive .home-join-receive-vccode input{width:150px}.home-join-wrapper .home-join-receive .home-join-receive-vccode span{color:#38bab8;cursor:pointer;border-left:1px solid #d9d9d9;justify-content:center;align-items:center;width:109px;height:20px;font-size:14px;display:flex}.home-join-wrapper .home-join-receive .home-join-receive-button{color:#fff;cursor:pointer;background:linear-gradient(90deg,#38bab8,#55b1c1);border-radius:23px;justify-content:center;align-items:center;width:86%;height:46px;margin-top:20px;margin-left:7%;font-size:16px;font-weight:700;display:flex;box-shadow:0 4px 10px #38bab84d}@media screen and (width<=1400px){.home-join-content .home-experience{margin-right:16px;padding-left:60px;font-size:20px;line-height:40px}.home-join-content .home-experience span{font-size:30px}.home-input{width:110px}.home-input-phone{width:140px}.home-input-group{width:220px!important}.home-form-container{gap:8px}}@media screen and (width<=1150px){.home-join-content .home-experience{padding-left:20px;font-size:14px}.home-join-content .home-experience span{font-size:22px}.home-input{width:100px}.home-input-phone{width:130px}.home-input-group{width:180px!important}.home-submit-btn{width:80px}.xiaoen-container .home-xiaoen{width:135px;height:97px}.home-form-container{margin-right:10px}}@media screen and (width<=850px){.home-join-content{flex-direction:column;justify-content:center;gap:10px}.home-join-content .home-experience{margin-right:0;padding-left:0;line-height:normal}.home-form-container{margin-right:0}.xiaoen-container{display:none}}@media screen and (width<=500px){.home-join-content{flex-direction:row;background:#f1f1f1!important}.home-join-content .home-experience{color:#333;font-size:15px;font-weight:500}.home-join-content .home-experience span{color:#38bab8;text-shadow:none;font-size:22px}.home-receive-mobile{color:#fff;cursor:pointer;background:linear-gradient(90deg,#38bab8,#55b1c1);border-radius:15px;justify-content:center;align-items:center;width:80px;height:30px;margin-right:20px;font-size:13px;font-weight:500;display:flex;box-shadow:0 2px 5px #38bab84d}}.CourseList{background:#fff;justify-content:center;align-items:stretch;min-height:calc(100vh - 4.92rem);padding-top:.68rem;display:flex}.CourseList .show-courses{flex-direction:column;flex:4;align-items:stretch;display:flex}.CourseList .show-courses .course-search{text-align:right;height:.6rem;margin-right:1.7rem;position:relative}.CourseList .show-courses .course-search .search{box-sizing:border-box;border:.01rem solid #e6e6e6;border-radius:.08rem;width:2.73rem;height:.39rem;display:flex;position:absolute;right:0}.CourseList .show-courses .course-search .search input{text-indent:.1rem;background:0 0;border:none;width:2.3rem;height:.39rem;font-size:.18rem}.CourseList .show-courses .course-search .search span{cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAAAXNSR0IArs4c6QAABj5JREFUWAnFWGtsVEUUPnNvuzxseSiIIOERUkGbsm1BUX5QSrcxiERDAoYoaAyGSAhGditCE9gAItBHECP+MRETI+JbjEalu23BlIYY+zBVsUFFaBUR1Bbo7rJ7j9+9OHfnbl8s7cr8OY85c+a758zjzBWURGNmsaGmeU40FnsYw9yCaALoBKgzheDfwbcziTMaiYDL5Tq0Y95dvyXh3mEK3/235482j74Sjm0EsMdgPb7/EbAAUkFcr7FeUVbsfv+axihGfQLb29o65NSpzrWYpRSgRivjkmKFEHWCdF+5Z+axax3YK7BNR74bH46EPmGmWd2cWdGgRuhPov+MJkSngZQKNiYilflEPLbHMSw2VxTnbu/W14OiR2Al1Q25RowAiieqYwSJVkTvVXbp71UW5JxW+yT/DrN+PNhcwGwsZ+LHiSld9llUiDenTM5YtS4rK+zQJwjdgJmgYjE6SswZim0HaWLb9JG5L62eLa4o+j5Zb3XzDIpG9zDR/aohJv1ijidv0TIhYqpe5R3ANlZ9f0uYQl8D1BRpZEZJ09IWlhXlnJS6ZOn6QIMPkdsNv/Z8WHdlFZ6853rzpckOMwURCr2tgsLOOk5pw+cOBJTpv7IorxxLYDkJsqONZVKyvqrxETl/IrWBHQ80PAFjj20gRNsQFz9YUTj9T1s3AKbSk3sQk/kcLpj3+etbRzh0/wkWMH9Li8tg2mwb4Ms00pe+OC//nK0bBKbck79XCDoYd8U3d1685I3Lcc4C1tl+ZTVUk6Qa62pfMmeOHHctNHP4kDVYX51xW37WXNtx+SpnAWMynrY7BHVpumunLQ8y45+bfQEfvke6xfLJxNo2bxRH03y1TVOhuVNqEerXygqzzXsvZS1D50pshC5lgkUKb7EaRdmh1Fn7MNFosGV/Yd7fxKLa9stU4K9uUc9N0gw25tsGRB3TRrm/UuTUsYI+k85xQ7g6Y5H7pGxSDQff7XGFqE/mZI+PS55LZ/2IOgpHr4LDBCbEbdIAx3Kb5FNNNZHers4hDLZxmHoNNZOtAOqULnoVyI6iGRfUm0ANkAUMZUrIHiDoks2nmMFZxoLpsjJNROERMbZKYkuH6I1TO1PJm0Uoqo6Rcg5k6w/Jm9RcY3b6cPnbaVWNUsG3/RJxBEE32AkMqbTLGURseipA9OQzKiKOuQw9rUW1w+I3PpcKlMkzSwONjm0r+wadCloofeK2OZ9ZmNMgZZNqmRmZX6q7I0z8gGqQMp7JngdZC/qFwLMh3jT/vVkduFRrpApRe0ryqaLeQPM8XN52KvGYOZA4l1VdCKHZ1QQG3O0LNC1ONBxMmY3YVukPx8aJjAXuj6UsqQWsvMgdRJ6DUskc224Wj1IeTOoNfIO1xQXSJzZcWWIazT4LmMnoul6KlFp5NjdBR3u4wtQPZjM3FhviDekTwTh2T1Hefimr1Aa2u9BdjwfDFqVzrTfQuEKRB8RW1p0eFmLjXfsxLMRF3JcrenvC2cDMWcs97heQ849sBAbv91Y1rLHl62TM0rnt8rkAMmGXNigY3urr9eUAZt5f+tBhKzE/oodvI9awGV4BuD2+pqabrgeXN9g8C6VznQrK8sO0qq+MAHj35q/+eWhn7K/9cBZ/9+E5B+MNmUW5B3parIlezH8foUhkGz7vSfWhm2AXI6E9aj7tEvQ4WntpiJTwBhs3w2mp4/+DEGc1pg9wxByKEf80YtStZ7bMGt9VUtc8FnXKRPO4wX+Lpbig58O1Lt0jGz9qpD1jkLHVtInrKQpfy8qLch0lfa/A5MCS2oYsI8I7MdESqUuk2F1RRDctUW/JWOSgL4/QR231F04NWf/aQrEglkmutMdpEAGQJeXFeZ/GdZLrh/qCTXPYMFYC4EOIYv/3qRAtOKNeT+ORr+0qnvaP6t5bfWIMxy7XwE92XC/C+MDF+J9x2NT1G7H4wKucmWJfoHE2RrrheAKA4r+YGIEInIfjc0zaiaGk1+zw5JxNHKvKm6q+HRemaC382VcTfHbpGi0sW5BfmzQw1flAefPAxdkGcDTN9oXUp+la8Q0FZoLZcLhlUlSEjwDcZAkOoH5wnGOy4/+ku4qzf02ntAWopOMvNEFjbnjEZBDwr+wOIuMAAE3Gml33L8kOQ+rZpg1RAAAAAElFTkSuQmCC) 20%/50% no-repeat;flex:1}.CourseList .show-courses .no-item{background:url(/assets/noCourse-kHceRRlR.png) 50%/6.37rem 3.65rem no-repeat;flex:1}@media screen and (width<=500px){.CourseList{padding:.3rem .2rem 0;display:block}.CourseList .home-float{display:none}.CourseList .show-courses{padding-bottom:.3rem}.CourseList .show-courses .course-search{display:none}.CourseList .show-courses .no-item{background:url(/assets/noCourse-kHceRRlR.png) 50%/100% 100% no-repeat;width:3.18rem;height:1.82rem;margin:.5rem auto 0}}.courseFilter{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:stretch;width:3.2rem;margin:0 auto;padding-left:.9rem;display:flex}.courseFilter .courseTitle{color:#565656;font-size:.36rem;font-weight:500;line-height:.5rem}.courseFilter .filter-line{flex-direction:column;justify-content:flex-start;align-items:stretch;margin-bottom:.15rem;display:flex}.courseFilter .filter-line .filter-title{color:#686868;margin:.5rem 0 .26rem;font-size:.16rem;font-weight:300;line-height:.22rem}.courseFilter .filter-line .filter-item{cursor:pointer;margin:0 .05rem;padding:0 .23rem;font-size:.16rem;font-weight:300;line-height:.37rem}.courseFilter .filter-line .filterChecked{color:#fff;background:#15baa7;border-radius:.1rem;margin-left:-1.72rem;padding-left:2rem}.courseFilter .filter-line .filter-level{cursor:pointer;align-items:center;margin:.06rem 0;font-size:.16rem;display:flex}.courseFilter .filter-line .filter-level .filter-choose{border-radius:.07rem;justify-content:center;align-items:center;width:.29rem;height:.29rem;margin-right:.2rem;font-weight:300;display:flex;box-shadow:2px 2px 8px #00000030}@media screen and (width<=500px){.courseFilter{width:100%;margin:0;padding:0}.courseFilter .courseTitle{font-size:.2rem}.courseFilter .filter-line{display:block}.courseFilter .filter-line .filter-title{color:#686868;float:left;text-align:left;width:100%;margin:.2rem 0;font-size:.12rem}.courseFilter .filter-line .filter-item{float:left;color:#686868;margin:0 .01rem;padding:.01rem .1rem;font-size:.16rem}.courseFilter .filter-line .filterChecked{float:left;color:#fff;background:#24b1a3;border-radius:.22rem;margin:0;padding:.01rem .1rem}.courseFilter .filter-line .filter-level{float:left;margin-right:.5rem}}.coursedetail{flex-direction:column;display:flex}.coursedetail .header-corse{height:410px;margin-top:35px;position:relative}.coursedetail .header-corse .header-content{box-sizing:border-box;background:#fff;border-radius:14px;flex-direction:column;width:1101px;height:100%;margin:0 auto;padding:30px 50px;display:flex;overflow:hidden;box-shadow:7px 6px 20px #79797936}.coursedetail .header-corse .header-content .header-content-top{flex:1;justify-content:center;align-items:center;display:flex}.coursedetail .header-corse .header-content .header-content-top .bg_image{background-size:100% 100%;border-radius:13px;width:405px;height:318px;margin-right:30px;box-shadow:4px 4px 13px #a1a1a180}.coursedetail .header-corse .header-content .header-content-top .header-content-inner{box-sizing:border-box;flex-direction:column;flex:1;justify-content:space-between;height:314px;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .title{color:#323232;padding-bottom:30px;font-size:32px;font-weight:400}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn{justify-content:space-between;align-items:center;width:100%;height:120px;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description{flex-direction:column;flex:1;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo{flex-direction:column;justify-content:center;align-items:center;width:100%;height:80px;margin-bottom:20px;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo img{width:40px;height:40px;margin-bottom:5px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo p{color:#888;font-size:14px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .category{color:#323232;text-align:center;font-size:24px;font-weight:400}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .start-btn{color:#fff;justify-content:flex-end;height:65px;margin-top:12px;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .start-btn div{background:#24b1a3;border-radius:42px;width:202px;height:100%}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .start-btn a{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:24px;font-weight:400;text-decoration:none;display:flex}.coursedetail .header-corse .header-content .header-content-top .wait-loading{height:55px}.coursedetail .header-corse .header-content .header-content-top .wait-loading .loading{background:0 0;height:55px;font-size:20px;line-height:55px;display:inline-block}.coursedetail .header-corse .header-content .header-content-top .wait-loading .loading:after{content:"加载中...";top:0;left:0}.coursedetail .header-corse .header-content .header-content-top .description{color:#fff}.coursedetail .header-corse .header-content .header-content-top .description p:first-child{letter-spacing:2px;padding-bottom:16px;font-size:14px;font-weight:800}.coursedetail .header-corse .header-content .header-content-top .description p:last-child{font-size:16px;font-weight:100}.coursedetail .header-corse .header-content .header-content-bottom{display:none}.coursedetail .content{border:0 solid red;justify-content:flex-start;width:100%;max-width:1000px;margin:0 auto;padding-top:20px;display:flex;position:relative}.coursedetail .content .mainTaps{width:100%}.coursedetail .content .mainTaps .tabs-content{width:80%;padding:0 60px}.coursedetail .content .mainTaps .tabs-content .description .description-title{color:#24b1a3;margin-bottom:20px;font-size:16px}.coursedetail .content .mainTaps .tabs-content .description .description-cont{color:#686868;margin-bottom:35px;font-size:16px;font-weight:100;line-height:25px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter{flex-direction:column;width:880px;height:400px;display:flex}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList{flex:1;justify-content:center;margin-top:20px;display:flex;position:relative}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn{justify-content:space-between;align-items:center;width:100px;height:50px;margin-left:-50px;display:flex;position:absolute;bottom:5px;left:50%}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .left,.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .right{cursor:pointer;background:#24b1a3;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;display:flex}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .left span{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAaCAYAAAC+aNwHAAAAAXNSR0IArs4c6QAAATJJREFUOBGllL9LQlEYhr33VugitjhEY26NuYU4NDQFEQQNObW4uTi5uPUHtEqbQ7hVU0tjNrSUU2PQYHm9iggSyOn5ouBs95yvFx4u6Pe81x/fPZmMR/pxnB9Mx9eDZFTbve2ui7ri6htjisxeQRU2wrX8A9cE0oO8CX2QXEK2bdphuskEw1vwDJILiJxEGWJ4G15Bcg6Bj7yD8CYmaTmLv3euIA1/VGMavvI+YgJLOPOVj5DmsIATX7mG9AUzOPCV60jykWPY85JfJp9NJMk7lL1kht22Ka2VO+u/wl85Jfof0SrR/41WiX6RrBL9Klsl+ofJKtE/zlaJ/kCxSvRHmlVSZFfuQfJUubspyXvOqxwEwQfzh/AIndUwN+bqfqzL8HGvNxsWcqciL6NoKq/9O9/OJFVXavYG7gAAAABJRU5ErkJggg==) 50%/100% 100% no-repeat;width:8px;height:10px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .right span{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAaCAYAAAC+aNwHAAAAAXNSR0IArs4c6QAAAZtJREFUOBGl1E8ow2Ecx/E9+2NjljXFilAuHBRFKRfjJAexyw4UBwfCRTlJTnIgbjg5uCgHrURiI0xKDv6UlaJltfm75F+J/bwfdvfs56lXT7/6fj7Ps/bbDIb/rsZNf37gJtoRjEUn1+PH9rT72kKbNZqmHeAJM3ClU2I0icczAj3YgQ8TlOSxKy9BwIQyLEHeZBGFyg1ykIARpVjAM5bls56SYoJzeMUaytMtkR+pCNN4RxBVekoKCI6nSkLstXpK3ARH8IIj1OspySM4BPntnKJJT0kuwT4kcI5WPSVOgp2I42rr5rpdlhhVmoQQGnNvuEvNu5IGka2S/ZnhRCtacIFbDPjDYYdSAcM2+BBBDN1QO53BTHQhmtLOnqV6sp3hXsgrX8KLTNVwNsODuEcYzbCphh0MD+MBJ2iAVTWcw/AYZPgQdchQDcu3bQry2nuohuXP8OjvH4n80cxCnryBCpj/DMsB7/5qFcMByPAKymBSCjNk/hIiwb6LT/QjwqubZFdaomRr3lZpc7stSZPz7sNytu3xyCLl9Q3bLrmfF1cwggAAAABJRU5ErkJggg==) 50%/100% 100% no-repeat;width:8px;height:10px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show{box-sizing:border-box;background:#fff;border-radius:8px;min-width:234px;max-width:234px;min-height:278px;max-height:278px;margin:0 30px;position:absolute;overflow:hidden;box-shadow:4px 4px 13px #a1a1a180}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a{width:100%;height:100%}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a img{width:100%;height:120px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a .ctitle{-webkit-line-clamp:1;width:100%;margin:15px 5px 5px;padding-left:5px;font-size:14px;font-weight:500;line-height:20px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show .li-item{padding-left:10px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show .li-item p{font-size:12px;overflow:hidden}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show .li-item{-webkit-line-clamp:4}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .last-course,.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .first-course{flex-direction:column;justify-content:center;align-items:center;padding:0 10px;display:flex}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .beforeAfterTitle{justify-content:center;display:flex}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .beforeAfterTitle span{color:#686868;text-align:center;width:234px;margin:0 30px;font-size:16px;font-weight:400;display:inline-block}.coursedetail .content .mainTaps .tabs-content .chapter{position:relative}.coursedetail .content .mainTaps .tabs-content .chapter .chapterTitle{color:#686868;text-indent:20px;border-radius:14px;align-items:center;height:81px;font-size:16px;display:flex}.coursedetail .content .mainTaps .tabs-content .faq-box .faq-q{color:#62686b;cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAAAXNSR0IArs4c6QAAAs1JREFUSA2llctPU0EUxs+Z2xYal8RACBDigxgNCqmwN9GNG2PESADhXqQPYGNx5coEIy0VjQvTkluhJQZcNLoxLkzUxEdIeAhIkyb+DRgRrSDN7Yxn0EtK00Ipk7TzOt83v3vuzFzsdDrrFLR6/oAx9EzXv8EBC1OYTUWG3lK0flTd/RcP6AdK/UlHnNmwDBEvIEJ7o6O57FjD6ZnE4uJGMeZoijR3Xwu175NxrRCQAJ4eiIRHX5vzhdbbhlLQ2t1dabfZh2iwS/a5gEepX3xwaiq0KvuFlB2GpoBorwFggFJQQ7Rx5HxgPBx6Y87vVuc0lIL2np4qm2LzUQo6BBVAeJjkxt2Yrq8VZWiKVFdvG0M2TIZVZPsF0pTbJ6PvzPnsWskeyO4vfZ6P1zsanyOwCqI9D0Tc6Gg6dOpE3Ww8Ht/Mjs/7yNmBsq86+68zBfzUrCTaBaDcRsKh95mxexJmBi8tzC2fOet4AQIrJS0diI4GR7P9+JGmmURiLiVj90WYaa56+lQS+xCwAgTMgxDecT34qWhDad7pctUoaHlAtC2UAiIUKstcdb9ti6FYSGOVOgRh0O4yijXEbnevC6w4Q3SXBIhpA/m5qB6K7fuRu1yuowytdObhMoHRthH+FW4EXur6+j9S+V9g0dy9Gu1HHz1fOb2IWcGFNxIOTmfKCyJUPZ5aBkqAhFfpZ5DRcHIV/LFYMJlpJtsyqbsWouogqmEK2trMHMA7oQc/5BPlJdS0vmooQT8FtJGYE9VI6vfavcnJyZ/5zOR4TkLV6WkFBQJkVk1JX04LHCCqt7sZmXM7CDMv2K0riy5YkVofjEajP0zBXvU2YZfTc4UxNkIr/P8EyINfxCdA07TDwmb3McQbcnXK1eNkevNObGzs+140ueYtWFJ6kw44mYmvaS5uTeihV7kCCx2zcJ5+SpdmOaY2bk9EIiuFCvPF/QUGz/9n3O75WgAAAABJRU5ErkJggg==) 5px/10px 13px no-repeat;margin:10px 0;padding-left:20px;font-size:18px;font-weight:400}.coursedetail .content .mainTaps .tabs-content .faq-box .faq-q-show{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAYAAADTlvzyAAAAAXNSR0IArs4c6QAAAyBJREFUSA29VVtIlEEUPmdm/l3rIQgiwUwWeqiH6CVIUDFSs8gHs7QyivVSEFIQZt7oYpa6XjOsJ8Eu9NYFgi4orZm2RCWGBaJRIBgRSGCtlfrPP9OM8cuaq2tiHfj/M/Od75xv5vw7swD/2VDrZT6pXLfEYAel4I1X40uHF3MNre+PrFyOeFwCvxa9pvkd08WROAu4FLmM0HA1PbSYgmGSVnGUORRomKqbT3Rx8/t4iQU4IIDk5viqdi+WYGv/sXQLaI4lSP8PLip13cmW6kFGZ21KGJL7FK1BAjK2Ja7ok8YXavf6j0YYQH0GAReVPCVh7ZWHutbkDvXgVvzJB6aAy0ISlxAwuRqNL9QsYVRaSFymxCZbTNeaEtQT6yee5RL6JKHurE7PPo0txG725e/lQNyWwL5R7i8LrDHVUhvc3V63zcnwkQPlRxRjsVc3nxqyY/Pxzb2FkU4KqpUyigixfe/6+tbAvGk71IE7CQWtHLBRPaslcXgCyfMZC8QqS2KUKbDxTzGdP0NQgxPWt3Iu5RsLyP5sX+0Bjc3HLr0u3S+BHlCf5e2o8JcHy5nRUpuU3l6faDDZZqD8TDiPvbalZNCOBfOe7qIoJzV8BlqrCJHJeRs8j4Pxgu5QE28nnPCqs1nHJYmQzKgJlhyISeL0KH4kB9owm5jmzyqog/5RfwWX2KMKZbi7qrM1FszOvDp3UP0iMxW3d4yb54NxbGzWltqEXd66eIOBlxH4wiZE7PXEwg92TPvi52UuxtCn7shwSszk0xsvtAfG/xzPuUNNvptY0CkErZZAwqUDaxU0bZEmMaq5IBEWyPpQYrpeSEFNGoavHlPIl+owp7m7ag5rTFueryJLSNyjjkHPiAUVv9G539NWOxc11Vsf46DYbhDhBzSjGSJfSuCFAWKFamfSxZjSp3Pl2zFqD0L5gRttQ+vcyYwQsoMBdakLPokg2QQoq5tiSltC5dvxyf9DexLKm6P+Gly2bKv6iqkOoGBJq3tkYvyvLvp5t9RezE5vwybG4Im6K5mBZuKNuOJnduyf+bSOxow9HXWZ/0xgMQv/AguHHssIpHYvAAAAAElFTkSuQmCC) 5px/13px 10px no-repeat}.coursedetail .content .mainTaps .tabs-content .faq-box .faq-a{color:#9b9b9b;margin:30px 0 30px 50px;font-size:16px;line-height:22px;transition:all 1s;display:none;overflow:hidden}.coursedetail .content #btn_zhanwei{width:180px;height:155px;margin-left:30px;display:none}.coursedetail .content .studyRequirement .li-item{background:#fff;border:1px solid #9c9e9e;border-radius:6px;padding:10px}.coursedetail .content .catalogue{margin-top:10px}.coursedetail .content .catalogue .title{font-size:20px}.coursedetail .content .catalogue .catalogueContent{color:#999;cursor:pointer;margin-top:10px;font-size:14px}.coursedetail .content .catalogue .catalogueContent p{margin-top:4px}.coursedetail .content .teacher{align-items:center;margin-bottom:16px;display:flex}.coursedetail .content .teacher img{border-radius:100%;width:40px;height:40px;margin-right:10px}.coursedetail .content .teacher .teacherContent{font-size:20px}.coursedetail .content .teacher .teacherContent p:nth-of-type(2){margin-top:6px;font-size:18px}.coursedetail .content .checkMore{text-align:center;cursor:pointer;margin-bottom:20px}.coursedetail .content .left .summary{background-color:#f4f4f4;justify-content:space-around;align-items:center;height:78px;display:flex}.coursedetail .content .left .summary li{justify-content:space-around;display:flex}.coursedetail .content .left .summary li div:first-of-type{color:#999}.coursedetail .footer{background:#f6f6f6;width:100%;height:550px}.coursedetail .footer .courseRecommend{box-sizing:border-box;width:1300px;height:100%;margin:0 auto;padding:30px 0 0 80px}.coursedetail .footer .courseRecommend .title{letter-spacing:2px;padding-bottom:30px;font-size:30px;font-weight:400}.coursedetail .footer .courseRecommend .list{justify-content:space-between;display:flex}.coursedetail .footer .courseRecommend .list li{background:#fff;width:300px;height:380px}.coursedetail .footer .courseRecommend .list li img{vertical-align:bottom}.coursedetail .footer .courseRecommend .list li .listContent{flex-direction:column;justify-content:space-between;height:150px;padding:15px 15px 0;display:flex}.coursedetail .footer .courseRecommend .list li .listContent h4{color:#0f1516;justify-content:space-between;font-size:24px;font-weight:500;line-height:30px;display:flex}.coursedetail .footer .courseRecommend .list li .listContent h4 span i{vertical-align:middle;background:#7ed221;border-radius:50%;width:16px;height:16px;margin-right:10px;display:inline-block}.coursedetail .footer .courseRecommend .list li .listContent h4 span{color:#0f1516;font-size:18px}.coursedetail .footer .courseRecommend .list li .listContent p{color:#545b5e;font-size:16px}.coursedetail .footer .courseRecommend .list img{width:100%;height:200px}@media screen and (width<=500px){.coursedetail .header-corse{box-sizing:border-box;height:240px;padding:0 20px}.coursedetail .header-corse .header-content{width:100%;height:100%;padding:10px}.coursedetail .header-corse .header-content .header-content-top .bg_image{width:125px;height:98px;margin-right:5px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner{height:150px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .title{color:#323232;font-size:20px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn{height:75px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description{flex-direction:column;justify-content:space-between;height:100%;display:flex}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo{height:45px;margin:0}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo img{width:25px;height:25px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .description-logo p{font-size:12px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .learnbtn .description .category{font-size:14px}.coursedetail .header-corse .header-content .header-content-top .header-content-inner .start-btn{display:none}.coursedetail .header-corse .header-content .header-content-bottom{box-sizing:border-box;justify-content:flex-end;align-items:center;height:50px;padding:0 10px;display:flex}.coursedetail .header-corse .header-content .header-content-bottom div{background:#24b1a3;border-radius:42px;width:135px;height:38px}.coursedetail .header-corse .header-content .header-content-bottom div a{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:20px;font-weight:400;text-decoration:none;display:flex}.coursedetail .header-corse .header-content .wait-loading{display:none}.coursedetail .content .mainTaps{padding:0}.coursedetail .content .mainTaps .tabs-content{box-sizing:border-box;width:100%;padding:0 20px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter{width:100%;height:240px;margin:0;overflow:hidden}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .beforeAfterTitle{justify-content:space-between}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .beforeAfterTitle span{width:126px;margin:0 20px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList{justify-content:space-between}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn{width:80px;height:40px;margin-left:-40px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .left,.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .right{width:25px;height:25px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .left span,.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .changeBtn .right span{width:12px;height:15px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show{min-width:180px;max-width:180px;min-height:145px;max-height:145px;margin:0 20px}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a img{width:100%;height:100%}.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a .ctitle,.coursedetail .content .mainTaps .tabs-content .description .beforeAfter .courseList .course-item-show a .li-item{display:none}.coursedetail .content .mainTaps .tabs-content .chapter .chapterTitle{font-size:16px}}.pdfa-overlay-root{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.pdfa-stage{touch-action:none;position:absolute}.pdfa-stage--pen{cursor:crosshair}.pdfa-stage--eraser{cursor:cell}.pdfa-toolbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:6;background:#1e1e2ee0;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%);box-shadow:0 4px 16px #00000059}.pdfa-toolbar--collapsed{opacity:.65;padding:4px;transition:opacity .15s}.pdfa-toolbar--collapsed:hover{opacity:1}.pdfa-btn{color:#ffffffd1;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .12s,color .12s;display:flex}.pdfa-btn:hover:not(:disabled){background:#ffffff1f}.pdfa-btn:disabled{color:#ffffff47;cursor:default}.pdfa-btn--active{background:var(--brand,#0d9b8a);color:#fff}.pdfa-btn--active:hover:not(:disabled){background:var(--brand,#0d9b8a)}.pdfa-divider{background:#ffffff2e;width:22px;height:1px;margin:2px 0}.pdfa-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;margin:2px 0;transition:transform .12s,border-color .12s}.pdfa-swatch:hover{transform:scale(1.15)}.pdfa-swatch--active{border-color:#fff;transform:scale(1.15)}.pdfa-size-dot{background:currentColor;border-radius:50%;display:block}:root{--rpv-core__annotation--link-hover-background-color:#ff03;--rpv-core__annotation-popup-wrapper-background-color:#faf089;--rpv-core__annotation-popup-wrapper-box-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--rpv-core__annotation-popup-content-border-top-color:#1a202c;--rpv-core__arrow-border-color:#0000004d;--rpv-core__asking-password-color:#000;--rpv-core__asking-password-wrapper-background-color:#fff;--rpv-core__asking-password-wrapper-border-color:#0000004d;--rpv-core__button-background-color:#0000004d;--rpv-core__button-color:#000;--rpv-core__doc-error-background-color:#fff;--rpv-core__doc-error-text-background-color:#c02424;--rpv-core__doc-error-text-color:#fff;--rpv-core__doc-loading-background-color:#fff;--rpv-core__full-screen-target-background-color:#fff;--rpv-core__inner-page-background-color:#fff;--rpv-core__menu-divider-border-bottom-color:#0000004d;--rpv-core__menu-item-color:#000;--rpv-core__menu-item--hover-background-color:#0000001a;--rpv-core__menu-item--disabled-color:#0000004d;--rpv-core__minimal-button-color:#000;--rpv-core__minimal-button--hover-background-color:#0000001a;--rpv-core__minimal-button--disabled-color:#0000004d;--rpv-core__minimal-button--selected-background-color:#0000001a;--rpv-core__modal-body-background-color:#fff;--rpv-core__modal-body-border-color:#0000004d;--rpv-core__modal-overlay-background-color:#00000080;--rpv-core__page-layer-box-shadow:2px 2px 8px 0 #0003;--rpv-core__popover-body-background-color:#fff;--rpv-core__popover-body-border-color:#0000004d;--rpv-core__popover-body-color:#000;--rpv-core__primary-button-background-color:#2566e8;--rpv-core__primary-button-color:#fff;--rpv-core__progress-bar-background-color:#0000001a;--rpv-core__progress-bar-progress-background-color:#2566e8;--rpv-core__progress-bar-progress-color:#fff;--rpv-core__separator-border-bottom-color:#0000004d;--rpv-core__spinner-border-color:#0006;--rpv-core__spinner-border-transparent-color:transparent;--rpv-core__splitter-background-color:transparent;--rpv-core__splitter--hover-background-color:#0003;--rpv-core__text-layer-text--selection-background-color:#00f;--rpv-core__text-layer-text--selection-color:transparent;--rpv-core__textbox-background-color:#fff;--rpv-core__textbox-border-color:#0003;--rpv-core__textbox-color:#000;--rpv-core__tooltip-body-background-color:#000;--rpv-core__tooltip-body-color:#fff}.rpv-core__viewer--dark{--rpv-core__asking-password-background-color:#363636;--rpv-core__asking-password-color:#fff;--rpv-core__asking-password-wrapper-border-color:#191919;--rpv-core__asking-password-wrapper-background-color:#191919;--rpv-core__button-background-color:#171717;--rpv-core__button-color:#fff;--rpv-core__doc-error-background-color:#191919;--rpv-core__doc-error-text-background-color:#c02323;--rpv-core__doc-error-text-color:#fff;--rpv-core__doc-loading-background-color:#191919;--rpv-core__full-screen-target-background-color:#1a1a1a;--rpv-core__inner-page-background-color:#1a1a1a;--rpv-core__menu-divider-border-bottom-color:#000;--rpv-core__menu-item-color:#fff;--rpv-core__menu-item--hover-background-color:#2566e8;--rpv-core__menu-item--disabled-color:#5e5e5e;--rpv-core__minimal-button-color:#fff;--rpv-core__minimal-button--disabled-color:#5e5e5e;--rpv-core__minimal-button--hover-background-color:#191919;--rpv-core__minimal-button--selected-background-color:#1657bb;--rpv-core__modal-body-background-color:#363636;--rpv-core__primary-button-background-color:#2566e8;--rpv-core__popover-body-background-color:#363636;--rpv-core__popover-body-color:#fff;--rpv-core__progress-bar-background-color:#000;--rpv-core__separator-border-bottom-color:#000;--rpv-core__spinner-border-color:#fff;--rpv-core__splitter-background-color:#1a1a1a;--rpv-core__splitter--hover-background-color:#2566e8;--rpv-core__textbox-background-color:#121212;--rpv-core__textbox-border-color:#121212;--rpv-core__textbox-color:#fff;--rpv-core__tooltip-body-background-color:#414141;--rpv-core__tooltip-body-color:#fff}.rpv-core__annotation{position:absolute}.rpv-core__annotation-layer{z-index:1}.rpv-core__arrow{border-bottom:1px solid var(--rpv-core__arrow-border-color);border-left-color:var(--rpv-core__arrow-border-color);border-right:1px solid var(--rpv-core__arrow-border-color);border-top-color:var(--rpv-core__arrow-border-color);z-index:0;width:10px;height:10px;position:absolute}.rpv-core__arrow--tl{bottom:0;left:0;transform:translate(50%,50%)rotate(45deg)}.rpv-core__arrow--tc{bottom:0;left:50%;transform:translate(-50%,50%)rotate(45deg)}.rpv-core__arrow--tr{bottom:0;right:0;transform:translate(-50%,50%)rotate(45deg)}.rpv-core__arrow--rt{top:0;left:0;transform:translate(-50%,50%)rotate(135deg)}.rpv-core__arrow--rc{top:50%;left:0;transform:translate(-50%,-50%)rotate(135deg)}.rpv-core__arrow--rb{bottom:0;left:0;transform:translate(-50%,-50%)rotate(135deg)}.rpv-core__arrow--bl{top:0;left:0;transform:translate(50%,-50%)rotate(225deg)}.rpv-core__arrow--bc{top:0;left:50%;transform:translate(-50%,-50%)rotate(225deg)}.rpv-core__arrow--br{top:0;right:0;transform:translate(-50%,-50%)rotate(225deg)}.rpv-core__arrow--lt{top:0;right:0;transform:translate(50%,50%)rotate(315deg)}.rpv-core__arrow--lc{top:50%;right:0;transform:translate(50%,-50%)rotate(315deg)}.rpv-core__arrow--lb{bottom:0;right:0;transform:translate(50%,-50%)rotate(315deg)}.rpv-core__asking-password{background-color:var(--rpv-core__asking-password-background-color);color:var(--rpv-core__asking-password-color);border-radius:.25rem;padding:2rem}.rpv-core__asking-password--rtl{direction:rtl}.rpv-core__asking-password-wrapper{background-color:var(--rpv-core__asking-password-wrapper-background-color);border:1px solid var(--rpv-core__asking-password-wrapper-border-color);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.rpv-core__asking-password-message{margin:.5rem 0}.rpv-core__asking-password-body{justify-content:center;align-items:center;display:flex}.rpv-core__asking-password-input{width:15rem}.rpv-core__asking-password-input--ltr{margin-right:.5rem}.rpv-core__asking-password-input--rtl{margin-left:.5rem}.rpv-core__button{background-color:var(--rpv-core__button-background-color);color:var(--rpv-core__button-color);cursor:pointer;border:none;border-radius:.25rem;height:2rem;padding:0 1rem}.rpv-core__button--rtl{direction:rtl}.rpv-core__canvas-layer{direction:ltr;position:absolute;top:0;left:0;overflow:hidden}.rpv-core__doc-error{background-color:var(--rpv-core__doc-error-background-color);justify-content:center;align-items:center;height:100%;display:flex}.rpv-core__doc-error--rtl{direction:rtl}.rpv-core__doc-error-text{background-color:var(--rpv-core__doc-error-text-background-color);color:var(--rpv-core__doc-error-text-color);border-radius:.25rem;max-width:50%;padding:.5rem;line-height:1.5}.rpv-core__doc-loading{background-color:var(--rpv-core__doc-loading-background-color);width:100%;height:100%;min-height:inherit;justify-content:center;align-items:center;display:flex}.rpv-core__doc-loading--rtl{direction:rtl}.rpv-core__icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1px;text-align:center}.rpv-core__icon--rtl{transform:scaleX(-1)}.rpv-core__inner-container{min-height:inherit}.rpv-core__inner-pages{overflow:auto}.rpv-core__inner-pages--rtl{direction:rtl}.rpv-core__inner-pages--single{overflow:hidden}.rpv-core__inner-page-container--single{overflow:auto}.rpv-core__inner-page{background-color:var(--rpv-core__inner-page-background-color)}.rpv-core__inner-page--single{justify-content:center;align-items:center;display:flex}.rpv-core__inner-page--dual-even{justify-content:flex-end;align-items:center;display:flex}.rpv-core__inner-page--dual-odd{justify-content:flex-start;align-items:center;display:flex}.rpv-core__inner-page--dual-cover{justify-content:center;align-items:center;display:flex}.rpv-core__inner-page--dual-cover-odd{justify-content:flex-end;align-items:center;display:flex}.rpv-core__inner-page--dual-cover-even{justify-content:flex-start;align-items:center;display:flex}.rpv-core__annotation--link a{width:100%;height:100%;position:absolute;top:0;left:0}.rpv-core__annotation--link a:hover{background-color:var(--rpv-core__annotation--link-hover-background-color)}.rpv-core__menu{flex-direction:column;display:flex}.rpv-core__menu--rtl{text-align:right;direction:rtl}.rpv-core__menu-divider{border-bottom:1px solid var(--rpv-core__menu-divider-border-bottom-color);margin:.25rem 0}.rpv-core__menu-item{color:var(--rpv-core__menu-item-color);cursor:pointer;background-color:#0000;border:none;justify-content:center;align-items:center;width:100%;padding:.25rem 0;display:flex}.rpv-core__menu-item:focus{background-color:var(--rpv-core__menu-item--hover-background-color);outline:0}.rpv-core__menu-item:hover{background-color:var(--rpv-core__menu-item--hover-background-color)}.rpv-core__menu-item-icon{align-items:center;display:flex}.rpv-core__menu-item-icon--ltr{padding-left:1rem;padding-right:.5rem}.rpv-core__menu-item-icon--rtl{padding-left:.5rem;padding-right:1rem}.rpv-core__menu-item-label{white-space:nowrap;flex-grow:1;flex-shrink:1}.rpv-core__menu-item-label--ltr{padding-right:2rem}.rpv-core__menu-item-label--rtl{padding-left:2rem}.rpv-core__menu-item-check--ltr{padding-right:1rem}.rpv-core__menu-item-check--rtl{padding-left:1rem}.rpv-core__menu-item--disabled{color:var(--rpv-core__menu-item--disabled-color)}.rpv-core__menu-item--disabled:hover{background-color:#0000}.rpv-core__menu-item--ltr{text-align:left}.rpv-core__menu-item--rtl{text-align:right;direction:rtl}.rpv-core__minimal-button{color:var(--rpv-core__minimal-button-color);cursor:pointer;background-color:#0000;border:none;border-radius:.25rem;height:2rem;padding:0 .5rem}.rpv-core__minimal-button:hover{background-color:var(--rpv-core__minimal-button--hover-background-color)}.rpv-core__minimal-button--disabled{color:var(--rpv-core__minimal-button--disabled-color)}.rpv-core__minimal-button--rtl{direction:rtl}.rpv-core__minimal-button--selected{background-color:var(--rpv-core__minimal-button--selected-background-color)}.rpv-core__modal-body{background-color:var(--rpv-core__modal-body-background-color);border:1px solid var(--rpv-core__modal-body-border-color);border-radius:.25rem;max-width:32rem;margin:1rem;overflow:auto}.rpv-core__modal-body--rtl{direction:rtl}.rpv-core__modal-overlay{background-color:var(--rpv-core__modal-overlay-background-color);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rpv-core__page-layer{justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}.rpv-core__page-layer:after{content:"";box-shadow:var(--rpv-core__page-layer-box-shadow);position:absolute;inset:.25rem}.rpv-core__page-layer--single{margin:0 auto}.rpv-core__page-size-calculator{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.rpv-core__popover-body{background-color:var(--rpv-core__popover-body-background-color);border:1px solid var(--rpv-core__popover-body-border-color);color:var(--rpv-core__popover-body-color);z-index:9999;border-radius:.25rem;padding:.5rem 0;position:absolute;top:-9999px;left:0}.rpv-core__popover-body-arrow{background-color:var(--rpv-core__popover-body-background-color)}.rpv-core__popover-body--rtl{direction:rtl}.rpv-core__popover-overlay{position:fixed;inset:0}.rpv-core__annotation-popup-wrapper{background-color:var(--rpv-core__annotation-popup-wrapper-background-color);box-shadow:var(--rpv-core__annotation-popup-wrapper-box-shadow);word-break:break-word;padding:.25rem;font-size:.75rem}.rpv-core__annotation-popup-wrapper--rtl{direction:rtl}.rpv-core__annotation-popup-title{margin-bottom:.25rem;font-weight:600}.rpv-core__annotation-popup-date{font-size:.5rem}.rpv-core__annotation-popup-content{border-top:1px solid var(--rpv-core__annotation-popup-content-border-top-color);max-height:16rem;padding:.25rem;overflow:auto}.rpv-core__primary-button{background-color:var(--rpv-core__primary-button-background-color);color:var(--rpv-core__primary-button-color);cursor:pointer;border:none;border-radius:.25rem;height:2rem;padding:0 1rem}.rpv-core__primary-button--rtl{direction:rtl}.rpv-core__progress-bar{background-color:var(--rpv-core__progress-bar-background-color);border-radius:9999px;padding:.125rem}.rpv-core__progress-bar--rtl{direction:rtl}.rpv-core__progress-bar-progress{background-color:var(--rpv-core__progress-bar-progress-background-color);color:var(--rpv-core__progress-bar-progress-color);border-radius:9999px;justify-content:center;align-items:center;height:.75rem;font-size:.75rem;display:flex}.rpv-core__separator{border-bottom:1px solid var(--rpv-core__separator-border-bottom-color)}.rpv-core__spinner{border-bottom:2px solid var(--rpv-core__spinner-border-transparent-color);border-left:2px solid var(--rpv-core__spinner-border-transparent-color);border-right:2px solid var(--rpv-core__spinner-border-color);border-top:2px solid var(--rpv-core__spinner-border-color);border-radius:9999px}.rpv-core__spinner--animating{animation-name:rpv-core__spinner-transform;animation-duration:.4s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes rpv-core__spinner-transform{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rpv-core__splitter{background-color:var(--rpv-core__splitter-background-color);cursor:ew-resize;width:.25rem;height:100%}.rpv-core__splitter:hover,.rpv-core__splitter--resizing{cursor:col-resize;background-color:var(--rpv-core__splitter--hover-background-color)}.rpv-core__splitter-body--resizing{cursor:col-resize}.rpv-core__splitter-sibling--resizing{pointer-events:none;-webkit-user-select:none;user-select:none}.rpv-core__textbox{background-color:var(--rpv-core__textbox-background-color);border:1px solid var(--rpv-core__textbox-border-color);box-sizing:border-box;color:var(--rpv-core__textbox-color);border-radius:.25rem;width:100%;height:2rem;padding:0 .5rem}.rpv-core__textbox--rtl{direction:rtl}.rpv-core__text-layer{opacity:.2;z-index:1;width:100%;height:100%;line-height:1;position:absolute;top:0;left:0}.rpv-core__text-layer span::selection{background-color:var(--rpv-core__text-layer-text--selection-background-color);color:var(--rpv-core__text-layer-text--selection-color)}.rpv-core__text-layer br::selection{color:#0000}.rpv-core__text-layer-text{color:#0000;cursor:text;transform-origin:0 0;white-space:pre;position:absolute}.rpv-core__tooltip-body{background-color:var(--rpv-core__tooltip-body-background-color);color:var(--rpv-core__tooltip-body-color);text-align:center;z-index:9999;border-radius:.25rem;max-width:20rem;position:absolute;top:-9999px;left:0}.rpv-core__tooltip-body--rtl{direction:rtl}.rpv-core__tooltip-body-arrow{background-color:var(--rpv-core__tooltip-body-background-color)}.rpv-core__tooltip-body-content{padding:.5rem}.rpv-core__display--block{display:block}.rpv-core__display--hidden{display:none}@media (width>=640px){.rpv-core__display--hidden-small{display:none}.rpv-core__display--block-small{display:block}}@media (width>=768px){.rpv-core__display--hidden-medium{display:none}.rpv-core__display--block-medium{display:block}}@media (width>=1024px){.rpv-core__display--hidden-large{display:none}.rpv-core__display--block-large{display:block}}.rpv-core__viewer{min-height:inherit}:root{--rpv-thumbnail__container-background-color:#fff;--rpv-thumbnail__container-box-shadow:#0003 2px 2px 8px 0px;--rpv-thumbnail__item--selected-background-color:#0000004d}.rpv-core__viewer--dark{--rpv-thumbnail__item--selected-background-color:#2566e8}.rpv-thumbnail__cover,.rpv-thumbnail__cover-inner{width:100%;height:100%;min-height:inherit;justify-content:center;align-items:center;display:flex}.rpv-thumbnail__cover-image{max-width:100%;max-height:100%}.rpv-thumbnail__cover-loader{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.rpv-thumbnail__container{background:var(--rpv-thumbnail__container-background-color);box-shadow:var(--rpv-thumbnail__container-box-shadow);justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative}.rpv-thumbnail__item{cursor:pointer}.rpv-thumbnail__item--single,.rpv-thumbnail__item--dual-cover{padding:.5rem}.rpv-thumbnail__item--dual-even,.rpv-thumbnail__item--dual-cover-odd{padding:.5rem 0 .5rem .5rem}.rpv-thumbnail__item--dual-odd,.rpv-thumbnail__item--dual-cover-even{padding:.5rem .5rem .5rem 0}.rpv-thumbnail__item--single:hover,.rpv-thumbnail__item--dual-cover:hover,.rpv-thumbnail__items--dual:hover .rpv-thumbnail__item,.rpv-thumbnail__items--dual-cover:hover .rpv-thumbnail__item{background-color:var(--rpv-thumbnail__item--selected-background-color)}.rpv-thumbnail__item:focus{outline:0}.rpv-thumbnail__label{text-align:center;padding:.25rem;font-size:.75em}.rpv-thumbnail__list{padding:.5rem;overflow:auto}.rpv-thumbnail__list--rtl{direction:rtl}.rpv-thumbnail__list--horizontal{flex-direction:row;align-items:center;width:100%;display:flex}.rpv-thumbnail__list--vertical{height:100%}.rpv-thumbnail__items{justify-content:center;align-items:center;display:flex}.rpv-thumbnail__items--selected .rpv-thumbnail__item{background-color:var(--rpv-thumbnail__item--selected-background-color)}.rpv-thumbnail__list-container{width:100%;height:100%}.rpv-thumbnail__loader{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.sv-wrap{background:#46484d;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.sv-wrap--fs{background:#17181c}.sv-wrap--idle{cursor:none}.sv-stage{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.sv-stage .rpv-core__viewer{height:100%}.sv-wrap .rpv-core__inner-page{background:0 0}.sv-wrap .rpv-core__page-layer{box-shadow:0 6px 24px #00000061}.sv-wrap--fs .rpv-core__page-layer{box-shadow:0 10px 40px #0000008c}.sv-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:7;background:#181822c7;border-radius:999px;align-items:center;gap:2px;padding:4px 8px;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000059}.sv-controls--hidden{opacity:0;pointer-events:none;transform:translate(-50%)translateY(6px)}.sv-ctl{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .12s,color .12s;display:flex}.sv-ctl:hover:not(:disabled){background:#ffffff24}.sv-ctl:disabled{color:#ffffff4d;cursor:default}.sv-ctl--active{background:var(--brand,#0d9b8a);color:#fff}.sv-ctl--active:hover:not(:disabled){background:var(--brand,#0d9b8a)}.sv-page-indicator{text-align:center;color:#ffffffeb;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;min-width:64px;font-size:12.5px}.sv-ctl-divider{background:#fff3;width:1px;height:18px;margin:0 6px}.sv-filmstrip{background:#12121aeb;border-top:1px solid #ffffff14;flex-shrink:0;height:132px}.sv-filmstrip .rpv-thumbnail__list--horizontal{gap:4px;height:100%;padding:8px 10px;overflow:auto hidden}.sv-filmstrip .rpv-thumbnail__item{border-radius:6px}.sv-filmstrip .rpv-thumbnail__items--selected .rpv-thumbnail__item,.sv-filmstrip .rpv-thumbnail__item--single:hover{background-color:#0d9b8a73}.sv-filmstrip .rpv-thumbnail__label{color:#ffffffa6}.sv-empty{text-align:center;color:var(--text-sec,#94a3b8);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.sv-empty svg{color:#94a3b88c}.sv-empty p{margin:0;font-size:13.5px}.sv-empty p strong{color:var(--text,#64748b)}.sv-hint{opacity:.85;font-size:12px}.sv-link{color:var(--brand,#0d9b8a);background:#0d9b8a14;border:1px solid #0d9b8a33;border-radius:8px;align-items:center;gap:5px;margin-top:8px;padding:7px 14px;font-size:12.5px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.sv-link:hover{border-color:var(--brand,#0d9b8a);background:#0d9b8a24}.classroom-page{height:100vh;display:flex;overflow:hidden}.classroom-sidebar{flex-shrink:0;transition:width .3s;display:flex}.classroom-sidebar.collapsed .sidebar-nav{display:none}.sidebar-icons{background:#1a3641;flex-direction:column;align-items:center;width:60px;padding-top:20px;display:flex;position:relative}.sidebar-icons .logo-link img{border-radius:50%;width:40px;height:40px}.sidebar-tab-list{flex-direction:column;gap:4px;margin-top:30px;display:flex}.sidebar-tab-btn{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:52px;height:52px;font-size:12px;transition:all .2s;display:flex}.sidebar-tab-btn:hover,.sidebar-tab-btn.active{color:#fff;background:#2dbfa5}.sidebar-back-link{text-align:center;color:#828e91;width:100%;font-size:12px;text-decoration:none;position:absolute;bottom:40px}.sidebar-back-link:hover{color:#2dbfa5}.sidebar-nav{box-sizing:border-box;background:#fff;border-right:1px solid #eee;width:220px;padding:20px 10px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ccc;border-radius:10px}.sidebar-course-info{text-align:center;border-bottom:1px solid #eee;margin-bottom:12px;padding-bottom:16px}.sidebar-course-info img{object-fit:cover;border-radius:50%;width:120px;height:120px;margin-bottom:10px}.sidebar-course-info h4{margin:0;font-size:16px;font-weight:500}.sidebar-toggle-btn{z-index:10;color:#fff;cursor:pointer;background:#00000026;border:none;border-radius:0 4px 4px 0;justify-content:center;align-items:center;width:20px;height:60px;font-size:14px;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-toggle-btn:hover{background:#0000004d}.lesson-nav-item{cursor:pointer;color:#999;border-radius:6px;margin:4px 0;padding:8px 28px 8px 12px;font-size:13px;transition:all .2s;position:relative}.lesson-nav-item:hover{color:#333;background:#f5f5f5}.lesson-nav-item.active{color:#333;background:#f0f0f0;font-weight:500}.lesson-nav-item.active:after{content:"";background:#fba41f;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.lesson-nav-item.completed:after{content:"✓";color:#35beaa;background:0 0;border:1px solid #35beaa;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.lesson-nav-item.active.completed:after{color:#fff;background:#35beaa}.ref-nav-item{cursor:pointer;color:#999;border-radius:6px;margin:4px 0;padding:8px 12px;font-size:13px;transition:all .2s}.ref-nav-item:hover{color:#333;background:#f5f5f5}.ref-nav-item.active{color:#333;background:#f0f0f0;font-weight:500}.classroom-content{background:linear-gradient(135deg,#2dbfa5,#67e0ac);flex-direction:column;flex:1;align-items:center;display:flex;position:relative;overflow:hidden}.lesson-viewer{flex-direction:column;align-items:center;width:100%;height:100%;display:flex;position:relative}.lesson-viewer-scroll{flex-direction:column;flex:1;align-items:center;width:100%;padding:20px 0;display:flex;overflow-y:auto}.lesson-viewer-scroll::-webkit-scrollbar{width:0}.lesson-nav-buttons{z-index:10;pointer-events:none;justify-content:space-between;padding:16px 24px;display:flex;position:absolute;bottom:0;left:0;right:0}.lesson-nav-buttons button{pointer-events:auto}.nav-btn{cursor:pointer;color:#fff;letter-spacing:2px;border:none;border-radius:20px;padding:10px 28px;font-size:14px;transition:opacity .2s;box-shadow:2px 2px 8px #4c4c4c4d}.nav-btn:hover{opacity:.85}.nav-btn.prev{background:#00000040}.nav-btn.next{background:linear-gradient(90deg,#18b2a2,#d2e067)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.section-indicator{text-align:center;color:#ffffffb3;padding:8px 0 60px;font-size:13px}.blueprint{box-sizing:border-box;color:#fff;width:80%;max-width:860px;padding:40px}.blueprint h3{color:#fff;margin-bottom:20px;font-size:22px;font-weight:500}.blueprint-desc{margin-bottom:30px;font-size:15px;line-height:1.6}.blueprint-desc p{margin:8px 0}.blueprint-sections{margin-bottom:30px}.blueprint-section-item{align-items:center;margin-bottom:8px;display:flex}.blueprint-section-index{color:#18b2a2;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-right:16px;font-size:13px;font-weight:500;display:flex;position:relative}.blueprint-section-item:not(:last-child) .blueprint-section-index:after{content:"";background:#fff;width:1px;height:12px;position:absolute;bottom:-14px;left:50%}.blueprint-section-title{letter-spacing:1px;font-size:15px}.blueprint-start-btn{color:#fff;letter-spacing:3px;cursor:pointer;background:linear-gradient(90deg,#18b2a2,#d2e067);border:none;border-radius:24px;padding:12px 36px;font-size:15px;transition:opacity .2s;box-shadow:2px 2px 8px #4c4c4c66}.blueprint-start-btn:hover{opacity:.9}.section-content-wrap{flex-direction:column;gap:16px;width:80%;max-width:860px;display:flex}.section-part{box-sizing:border-box;background:#fff;border-radius:8px;padding:32px 24px 20px;position:relative;box-shadow:4px 2px 8px #9292924d}.part-title{letter-spacing:2px;margin-bottom:16px;padding-left:14px;font-size:18px;font-weight:400;position:relative}.part-title:before{content:"";background:linear-gradient(#18b2a2,#d2e067);border-radius:2px;width:4px;height:24px;position:absolute;top:0;left:0}.section-video{background:#000;border-radius:4px;width:100%;max-height:500px;margin:8px 0}.doc-inner{letter-spacing:1px;color:#333;min-height:100px;font-size:15px;line-height:1.8}.doc-inner img{max-width:100%!important;height:auto!important}.doc-inner table{margin:0 auto}.quiz-box-wrap{margin-bottom:16px;padding-bottom:16px}.quiz-box-wrap:not(:last-child){border-bottom:1px solid #eee}.quiz-title{text-align:center;color:#182f39;margin:12px 0 16px;font-size:15px;line-height:1.6}.quiz-options{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:16px;display:flex}.quiz-option{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #ddd;border-radius:6px;align-items:center;gap:8px;min-width:160px;max-width:320px;padding:8px 16px;font-size:14px;transition:all .2s;display:flex}.quiz-option-label{color:#666;background:#eef2f5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:600;display:inline-flex}.quiz-option-text{flex:1;min-width:0}.quiz-option:hover .quiz-option-label,.quiz-option.selected .quiz-option-label,.quiz-option.correct .quiz-option-label{color:#fff;background:#ffffff59}.quiz-option.disabled:hover .quiz-option-label{color:#666;background:#eef2f5}.quiz-option:hover,.quiz-option.selected{color:#fff;background:#95c7bb;border-color:#0000}.quiz-option.correct{color:#fff;pointer-events:none;background:#40c8a9;border-color:#0000}.quiz-option.disabled{pointer-events:none}.quiz-option.disabled:hover{color:inherit;background:0 0;border-color:#ddd}.quiz-submit-btn{color:#fff;letter-spacing:3px;cursor:pointer;text-align:center;background:linear-gradient(45deg,#18b2a2,#d2e067);border:none;border-radius:20px;width:140px;margin:0 auto 16px;padding:10px 0;font-size:14px;display:block;box-shadow:2px 2px 8px #4c4c4c4d}.quiz-submit-btn.answered{cursor:default;background:#bbb}.quiz-explanation{text-align:center;border:1px solid #40c8a9;border-radius:6px;width:70%;margin:0 auto 12px;padding:8px 12px;font-size:14px;line-height:1.6}.quiz-error{color:#ff4d4f;border-color:#ff4d4f}.python-code-block{margin-bottom:12px}.python-editor-wrap{border:1px solid #e8e8e8;border-radius:4px;margin-top:8px;overflow:hidden}.lesson-complete{text-align:center;color:#fff;padding:60px 20px}.lesson-complete img{width:200px;margin-bottom:24px}.lesson-complete h3{color:#fff;margin-bottom:12px;font-size:22px}.lesson-complete p{color:#ffffffd9;margin:4px 0;font-size:16px}.ref-viewer{background:#fff;border-radius:8px;width:80%;max-width:860px;min-height:300px;margin:20px 0;padding:40px 24px;box-shadow:4px 2px 8px #9292924d}.ref-viewer .doc-inner{min-height:200px}.classroom-workbench{background:#f5f7fa;width:100%;height:100%;display:flex}.workbench-main{flex-direction:column;flex:1;min-width:0;display:flex}.workbench-main-header{color:#1a3641;background:#fff;border-bottom:1px solid #eee;flex-shrink:0;align-items:center;gap:8px;height:48px;padding:0 16px;font-size:15px;font-weight:500;display:flex}.workbench-ppt{background:#1a1a2e;flex:1;min-height:0;position:relative}.workbench-ppt-empty,.workbench-panel-empty{color:#999;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.workbench-rail{background:#fff;border-left:1px solid #eee;flex-direction:column;flex-shrink:0;width:400px;transition:width .25s;display:flex;position:relative}.workbench-rail.collapsed{border-left:none;width:0}.workbench-rail-toggle{color:#fff;cursor:pointer;z-index:5;background:#2dbfa5;border:none;border-radius:6px 0 0 6px;justify-content:center;align-items:center;width:20px;height:60px;display:flex;position:absolute;top:50%;left:-20px;transform:translateY(-50%)}.workbench-rail-toggle:hover{background:#25a892}.workbench-rail-tabs{border-bottom:1px solid #eee;flex-shrink:0;display:flex}.workbench-rail-tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px 0;font-size:14px;transition:all .2s;display:flex}.workbench-rail-tab:hover{color:#18b2a2}.workbench-rail-tab.active{color:#18b2a2;border-bottom-color:#18b2a2;font-weight:500}.workbench-rail-body{flex:1;padding:16px;overflow-y:auto}.workbench-keypoints{color:#333;font-size:14px;line-height:1.8}.workbench-exercise-progress{color:#888;margin-bottom:12px;font-size:13px}.workbench-rail-body .section-part{box-shadow:none;padding:0}.classroom-loading{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:16px;display:flex}.mycodes-fb{background:#1e1e1e;border:1px solid #e5e7eb;border-radius:12px;height:600px;max-height:70vh;display:flex;overflow:hidden}.mycodes-fb-tree{background:#fafafa;border-right:1px solid #e5e7eb;flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:auto}.mycodes-fb-tree-title{letter-spacing:1px;color:#94a3b8;text-transform:uppercase;z-index:1;background:#fafafa;border-bottom:1px solid #eef0f2;padding:12px 16px;font-size:12px;font-weight:600;position:sticky;top:0}.mycodes-fb-tree .ant-tree{background:0 0;padding:6px 4px 12px}.mycodes-fb-editor{background:#1e1e1e;flex-direction:column;flex:1;min-width:0;display:flex}.mycodes-fb-editor-bar{background:#252526;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.mycodes-fb-filename{color:#d4d4d4;font-family:JetBrains Mono,Consolas,monospace;font-size:13px}.mycodes-fb-actions{align-items:center;gap:4px;display:flex}.mycodes-fb-actions .ant-btn-text{color:#ccc}.mycodes-fb-actions .ant-btn-text:hover{color:#fff;background:#ffffff14}.mycodes-fb-monaco{flex:1;min-height:0}.mycodes-fb-editor-placeholder{flex:1;justify-content:center;align-items:center;display:flex}.mycodes-fb-loading,.mycodes-fb-empty{justify-content:center;align-items:center;min-height:320px;display:flex}@media (width<=768px){.mycodes-fb{flex-direction:column;height:auto;max-height:none}.mycodes-fb-tree{border-bottom:1px solid #e5e7eb;border-right:none;width:100%;max-height:240px}.mycodes-fb-monaco{height:420px}}.mycenter-layout{background:#f0f2f5;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.mycenter-sidebar{z-index:100;background:#fff;border-right:1px solid #f0f0f0;flex-direction:column;width:240px;min-width:240px;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:1px 0 12px #0000000a}.mycenter-sidebar-logo{text-align:center;border-bottom:1px solid #f0f0f0;padding:32px 24px 24px}.mycenter-sidebar-logo img{height:36px;transition:transform .3s}.mycenter-sidebar-logo img:hover{transform:scale(1.05)}.mycenter-sidebar-profile{text-align:center;border-bottom:1px solid #f0f0f0;padding:28px 20px}.mycenter-sidebar-profile .ant-avatar{cursor:pointer;border:3px solid #1da79633;transition:all .3s;box-shadow:0 4px 14px #1da7961f}.mycenter-sidebar-profile .ant-avatar:hover{border-color:#1da796;transform:scale(1.05);box-shadow:0 4px 20px #1da79640}.mycenter-sidebar-profile-name{color:#1e293b;letter-spacing:.02em;margin-top:14px;font-size:16px;font-weight:600}.mycenter-sidebar-profile-signature{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;max-width:180px;margin-top:6px;margin-left:auto;margin-right:auto;font-size:12px;line-height:1.5;overflow:hidden}.mycenter-sidebar-nav{flex:1;padding:16px 12px}.mycenter-sidebar-nav-item{color:#64748b;cursor:pointer;letter-spacing:.03em;border-radius:12px;align-items:center;gap:14px;margin-bottom:4px;padding:14px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.mycenter-sidebar-nav-item:before{content:"";background:linear-gradient(90deg,#1da79614,#0000);border-radius:12px;width:0;height:100%;transition:width .3s;position:absolute;top:0;left:0}.mycenter-sidebar-nav-item:hover{color:#1e293b;background:#f8fafc}.mycenter-sidebar-nav-item:hover:before{width:100%}.mycenter-sidebar-nav-item.active{color:#1da796;background:linear-gradient(135deg,#1da79614 0%,#1da79608 100%);font-weight:600}.mycenter-sidebar-nav-item.active:before{background:#1da796;border-radius:0 4px 4px 0;width:4px;height:60%;top:20%;left:0}.mycenter-sidebar-nav-item .anticon{font-size:18px;transition:transform .2s}.mycenter-sidebar-nav-item:hover .anticon{transform:translate(2px)}.mycenter-sidebar-footer{border-top:1px solid #f0f0f0;padding:20px 12px}.mycenter-sidebar-footer a{color:#94a3b8;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;text-decoration:none;transition:all .25s;display:flex}.mycenter-sidebar-footer a:hover{color:#1da796;background:#1da7960f}.mycenter-main{background:#f8fafc;flex:1;min-height:100vh;margin-left:240px;padding:0}.mycenter-hero{background:linear-gradient(135deg,#e6f9f5 0%,#f0fdf4 50%,#ecfdf5 100%);border-bottom:1px solid #1da79614;padding:48px 48px 32px;position:relative;overflow:hidden}.mycenter-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#1da79614 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-60%;right:-20%}.mycenter-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#67e0ac0f 0%,#0000 70%);width:400px;height:400px;position:absolute;bottom:-40%;left:-10%}.mycenter-hero-title{z-index:1;color:#0f172a;letter-spacing:-.02em;margin:0 0 8px;font-size:28px;font-weight:700;position:relative}.mycenter-hero-subtitle{z-index:1;color:#64748b;margin:0;font-size:15px;font-weight:400;position:relative}.mycenter-content{padding:32px 48px 48px}.mycenter-course-card{overflow:hidden;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;background:#fff!important;border:none!important;border-radius:16px!important;transition:all .35s cubic-bezier(.4,0,.2,1)!important}.mycenter-course-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -12px #0000001f,0 8px 16px -8px #00000014!important}.mycenter-course-card .ant-card-cover img{object-fit:cover;height:160px;transition:transform .5s}.mycenter-course-card:hover .ant-card-cover img{transform:scale(1.05)}.mycenter-course-card .ant-card-body{padding:16px 20px!important}.mycenter-course-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;margin-bottom:12px;font-size:15px;font-weight:600;line-height:1.4;overflow:hidden}.mycenter-course-action{justify-content:flex-end;display:flex}.mycenter-course-action a{color:#1da796;background:#1da7960f;border-radius:20px;align-items:center;gap:6px;padding:6px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.mycenter-course-action a:hover{color:#178a7c;background:#1da7961f;transform:translate(3px)}.mycenter-code-card{overflow:hidden;background:#fff!important;border:1px solid #0000000a!important;border-radius:14px!important;transition:all .35s cubic-bezier(.4,0,.2,1)!important;box-shadow:0 1px 3px #0000000a!important}.mycenter-code-card:hover{transform:translateY(-4px);border-color:#1da79626!important;box-shadow:0 12px 28px -8px #0000001a!important}.mycenter-code-card .ant-card-cover{background:#f1f5f9;height:150px;position:relative;overflow:hidden}.mycenter-code-card .ant-card-cover:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000,#ffffff4d);height:40px;position:absolute;bottom:0;left:0;right:0}.mycenter-code-card .ant-card-body{padding:14px 16px!important}.mycenter-code-card-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font-size:14px;font-weight:600;overflow:hidden}.mycenter-code-card-meta{justify-content:space-between;align-items:center;display:flex}.mycenter-code-card-author{color:#94a3b8;font-size:12px}.mycenter-settings-card{overflow:hidden;background:#fff!important;border:none!important;border-radius:16px!important;box-shadow:0 1px 3px #0000000f!important}.mycenter-settings-card .ant-card-body{padding:32px 40px!important}.mycenter-avatar-section{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:16px;align-items:center;gap:24px;margin-bottom:32px;padding:24px 28px;display:flex}.mycenter-avatar-section .ant-avatar{border:3px solid #fff;flex-shrink:0;box-shadow:0 4px 12px #0000001a}.mycenter-avatar-info{flex:1}.mycenter-avatar-info h4{color:#1e293b;margin:0 0 4px;font-size:18px;font-weight:600}.mycenter-avatar-info p{color:#94a3b8;margin:0;font-size:13px}.mycenter-pagination{border-top:1px solid #0000000a;justify-content:center;margin-top:32px;padding-top:24px;display:flex}.mycenter-empty{padding:80px 0}.mycenter-empty .ant-empty-description{color:#94a3b8;font-size:15px}.mycenter-stats{z-index:1;gap:20px;margin-top:24px;display:flex;position:relative}.mycenter-stat-item{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;background:#ffffffd9;border:1px solid #1da7961a;border-radius:12px;min-width:120px;padding:14px 24px;transition:all .3s;box-shadow:0 2px 8px #0000000a}.mycenter-stat-item:hover{background:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #0000000f}.mycenter-stat-value{color:#1da796;font-size:24px;font-weight:700;line-height:1.2}.mycenter-stat-label{color:#64748b;letter-spacing:.04em;margin-top:4px;font-size:12px;font-weight:500}@media screen and (width<=992px){.mycenter-sidebar{width:200px;min-width:200px}.mycenter-main{margin-left:200px}.mycenter-content{padding:24px 24px 40px}.mycenter-hero{padding:36px 24px 24px}}@media screen and (width<=768px){.mycenter-layout{flex-direction:column}.mycenter-sidebar{flex-flow:wrap;align-items:center;width:100%;min-width:100%;height:auto;padding:8px 12px;position:relative}.mycenter-sidebar-logo{border-bottom:none;padding:8px 12px}.mycenter-sidebar-logo img{height:28px}.mycenter-sidebar-profile{display:none}.mycenter-sidebar-nav{flex:1;justify-content:center;gap:4px;padding:4px;display:flex}.mycenter-sidebar-nav-item{gap:8px;margin-bottom:0;padding:10px 16px;font-size:14px}.mycenter-sidebar-nav-item.active:before{border-radius:3px 3px 0 0;width:100%;height:3px;top:auto;bottom:0;left:0}.mycenter-sidebar-footer{display:none}.mycenter-main{margin-left:0}.mycenter-hero{padding:28px 20px 20px}.mycenter-hero-title{font-size:22px}.mycenter-content{padding:20px 16px 32px}.mycenter-stats{flex-wrap:wrap;gap:12px}.mycenter-stat-item{min-width:80px;padding:10px 16px}.mycenter-settings-card .ant-card-body{padding:20px!important}.mycenter-avatar-section{text-align:center;flex-direction:column;padding:20px}}.codehub-hero{justify-content:center;align-items:center;padding:24px 24px 36px;display:flex;position:relative;overflow:hidden}.codehub-hero-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.codehub-particle{opacity:0;color:#ffffffe6;text-shadow:0 0 8px #ffffff4d;font-family:JetBrains Mono,monospace;font-size:16px;animation:linear infinite particleFloat;position:absolute;bottom:-30px}@keyframes particleFloat{0%{opacity:0;transform:translateY(0)rotate(0)}8%{opacity:.18}85%{opacity:.12}to{opacity:0;transform:translateY(-400px)rotate(30deg)}}.codehub-hero-content{z-index:2;text-align:center;max-width:600px;position:relative}.codehub-hero-content a{display:inline-block}.codehub-hero-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;letter-spacing:1px;background:#ffffff2e;border:1px solid #ffffff40;border-radius:100px;margin-bottom:6px;padding:4px 16px;font-size:12px;font-weight:600;display:inline-block}.codehub-hero-title{color:#fff;letter-spacing:3px;text-shadow:0 2px 20px #00000026;margin:0 0 4px;font-size:28px;font-weight:800}.codehub-hero-subtitle{color:#ffffffd9;letter-spacing:1.5px;margin:0 0 14px;font-size:13px}.codehub-hero-btn{color:#1a1a2e;letter-spacing:1.5px;cursor:pointer;background:#fffffff2;border:none;border-radius:100px;height:38px;padding:0 28px;font-size:14px;font-weight:600;transition:all .3s;box-shadow:0 4px 24px #00000026}.codehub-hero-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 8px 32px #0003}@media (width<=768px){.codehub-hero{padding:20px 20px 28px}.codehub-hero-title{font-size:24px}}@media (width<=480px){.codehub-hero-title{letter-spacing:2px;font-size:22px}.codehub-hero-subtitle{font-size:12px}}.codehub-page *,.codehub-page :before,.codehub-page :after{box-sizing:border-box}.codehub-page{background:#f8fafb;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}.codehub-tabs-wrap{z-index:10;max-width:1200px;margin:-24px auto 0;padding:0 24px;position:relative}.codehub-tabs-wrap .codehub-tabs{background:#fff;border:1px solid #0000000a;border-radius:16px;padding:4px 16px 0;box-shadow:0 4px 24px #00000012}.codehub-tabs .ant-tabs-tab{letter-spacing:.5px;padding:12px 20px;font-size:15px;font-weight:600;transition:color .3s}.codehub-tabs .ant-tabs-tab .anticon{margin-right:6px;font-size:16px}.codehub-tabs .ant-tabs-ink-bar{background:#1da796;border-radius:3px;height:3px!important}.codehub-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1da796!important}@media (width<=480px){.codehub-tabs-wrap{margin-top:-18px;padding:0 12px}.codehub-tabs .ant-tabs-tab{padding:10px 12px;font-size:13px}}.about-page{--brand:#1da796;--brand-dark:#0d8a7a;--brand-deep:#065a4f;--ink:#0f172a;--slate:#475569;--muted:#94a3b8;color:var(--ink);overflow-x:hidden}.ab-section{max-width:1120px;margin:0 auto;padding:110px 24px}.ab-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--brand);margin-bottom:16px;font-size:13px;font-weight:700;display:inline-block}.ab-h2{letter-spacing:-.02em;color:var(--ink);margin:0 0 18px;font-size:38px;font-weight:800;line-height:1.2}.ab-lead{color:var(--slate);max-width:720px;font-size:17px;line-height:1.9}.ab-hero{text-align:center;background:linear-gradient(135deg,#0a8273 0%,#0d8a7a 45%,#065a4f 100%);justify-content:center;align-items:center;min-height:620px;padding:120px 24px 100px;display:flex;position:relative;overflow:hidden}.ab-hero:before,.ab-hero:after{content:"";filter:blur(90px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.ab-hero:before{background:radial-gradient(circle,#2ee6c8 0%,#0000 70%);width:520px;height:520px;animation:16s ease-in-out infinite ab-float;top:-180px;right:-120px}.ab-hero:after{background:radial-gradient(circle,#34d399 0%,#0000 70%);width:460px;height:460px;animation:20s ease-in-out infinite reverse ab-float;bottom:-200px;left:-100px}.ab-hero-grid{pointer-events:none;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 75%)}.ab-hero-inner{z-index:2;max-width:860px;position:relative}.ab-hero-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#eafffb;letter-spacing:.04em;background:#ffffff1f;border:1px solid #ffffff38;border-radius:100px;align-items:center;gap:8px;margin-bottom:32px;padding:7px 18px;font-size:13px;font-weight:600;display:inline-flex}.ab-hero h1{letter-spacing:-.03em;color:#fff;margin:0 0 26px;font-size:60px;font-weight:900;line-height:1.12}.ab-hero h1 .ab-accent{background:linear-gradient(120deg,#d8fff5,#7af0d6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ab-hero p{color:#ffffffd9;max-width:660px;margin:0 auto 44px;font-size:19px;line-height:1.85}.ab-hero-stats{flex-wrap:wrap;justify-content:center;gap:56px;margin-top:8px;display:flex}.ab-hero-stat .num{color:#fff;letter-spacing:-.02em;font-size:40px;font-weight:800;line-height:1}.ab-hero-stat .num small{margin-left:2px;font-size:20px;font-weight:700}.ab-hero-stat .lbl{color:#ffffffb3;letter-spacing:.05em;margin-top:10px;font-size:14px;display:block}@keyframes ab-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-40px)scale(1.08)}}.ab-values{background:#fff}.ab-values-head{text-align:center;margin-bottom:64px}.ab-values-grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.ab-value-card{background:#fff;border:1px solid #eef2f1;border-radius:20px;padding:44px 32px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;position:relative;overflow:hidden}.ab-value-card:before{content:"";background:linear-gradient(90deg, var(--brand), #34d399);transform-origin:0;width:100%;height:4px;transition:transform .4s;position:absolute;top:0;left:0;transform:scaleX(0)}.ab-value-card:hover{border-color:#0000;transform:translateY(-8px);box-shadow:0 24px 50px -20px #0d8a7a47}.ab-value-card:hover:before{transform:scaleX(1)}.ab-value-icon{width:60px;height:60px;color:var(--brand);background:linear-gradient(135deg,#1da7961f,#34d3991f);border-radius:16px;justify-content:center;align-items:center;margin-bottom:22px;display:inline-flex}.ab-value-card h3{color:var(--ink);margin:0 0 6px;font-size:22px;font-weight:800}.ab-value-card .ab-value-en{letter-spacing:.18em;text-transform:uppercase;color:var(--brand);margin-bottom:16px;font-size:13px;font-weight:600}.ab-value-card p{color:var(--slate);margin:0;font-size:15px;line-height:1.85}.ab-story{background:linear-gradient(#f8fafb 0%,#f1f7f5 100%)}.ab-story-wrap{grid-template-columns:.9fr 1.1fr;align-items:center;gap:72px;display:grid}.ab-story-visual{aspect-ratio:1;background:linear-gradient(135deg, var(--brand), var(--brand-deep));border-radius:28px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 40px 80px -30px #065a4f80}.ab-story-visual .ab-stack-word{color:#fff;letter-spacing:-.04em;z-index:2;font-size:96px;font-weight:900}.ab-story-visual .ab-stack-word b{color:#aef5e4}.ab-stack-layers{z-index:1;width:100%;position:absolute;bottom:0;left:0}.ab-stack-layers span{background:#ffffff14;border-radius:6px 6px 0 0;height:26px;margin:6px 14px 0;display:block}.ab-story-text .ab-h2{margin-bottom:24px}.ab-story-text p{color:var(--slate);margin:0 0 18px;font-size:16px;line-height:1.95}.ab-story-text p strong{color:var(--brand-dark);font-weight:700}.ab-journey{background:#fff}.ab-journey-head{text-align:center;margin-bottom:64px}.ab-timeline .ant-timeline-item-title{letter-spacing:.02em;color:var(--brand)!important;font-size:20px!important;font-weight:800!important}.ab-adv{background:linear-gradient(#0a2a26 0%,#0d3a33 100%);position:relative;overflow:hidden}.ab-adv:before{content:"";filter:blur(60px);pointer-events:none;background:radial-gradient(circle,#2de6c82e,#0000 70%);border-radius:50%;width:460px;height:460px;position:absolute;top:-150px;right:-100px}.ab-adv .ab-eyebrow{color:#4fe3c7}.ab-adv .ab-h2{color:#fff}.ab-adv .ab-lead{color:#ffffffb3}.ab-adv-head{text-align:center;z-index:1;margin-bottom:60px;position:relative}.ab-adv-head .ab-lead{margin:0 auto}.ab-adv-grid{z-index:1;grid-template-columns:repeat(2,1fr);gap:24px;display:grid;position:relative}.ab-adv-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;gap:22px;padding:36px;transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s,border-color .35s;display:flex}.ab-adv-card:hover{background:#ffffff12;border-color:#4fe3c766;transform:translateY(-6px)}.ab-adv-icon{background:linear-gradient(135deg, var(--brand), #34d399);color:#06241f;border-radius:14px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex;box-shadow:0 10px 24px -8px #2de6c880}.ab-adv-card h3{color:#fff;margin:0 0 10px;font-size:19px;font-weight:800}.ab-adv-card p{color:#ffffffa8;margin:0;font-size:14.5px;line-height:1.85}.ab-team{background:#fafbfb;padding-bottom:80px}.ab-team-head{text-align:center;margin-bottom:60px}.ab-team-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.ab-team-card{text-align:center;background:#fff;border:1px solid #eef2f1;border-radius:20px;padding:40px 28px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}.ab-team-card:hover{transform:translateY(-6px);box-shadow:0 22px 46px -22px #0d8a7a4d}.ab-team-avatar{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-deep));border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;margin:0 auto 18px;font-size:32px;font-weight:800;display:flex;box-shadow:0 12px 26px -10px #0d8a7a8c}.ab-team-card h4{color:var(--ink);margin:0 0 12px;font-size:19px;font-weight:800}.ab-team-card p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.85}.ab-reveal{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(34px)}.ab-reveal.ab-in{opacity:1;transform:none}@media screen and (width<=900px){.ab-section{padding:80px 20px}.ab-hero h1{font-size:42px}.ab-hero p{font-size:17px}.ab-hero-stats{gap:36px}.ab-h2{font-size:30px}.ab-values-grid,.ab-adv-grid,.ab-team-grid{grid-template-columns:1fr}.ab-story-wrap{grid-template-columns:1fr;gap:40px}.ab-story-visual{max-width:360px;margin:0 auto}}.ci-banner{background:linear-gradient(135deg,#1da796,#0d8a7a 60%,#065a4f);padding:60px 48px 48px}.ci-layout{min-height:calc(100vh - 250px);background:#f5f5f5!important}.ci-sider{border-right:1px solid #f0f0f0;background:#fff!important}.ci-filter{padding:24px 20px;position:sticky;top:100px}.ci-filter-group{margin-top:20px}.ci-tag{cursor:pointer;border-radius:14px;padding:4px 12px;font-size:13px;transition:all .2s;color:#666!important;background:#fff!important;border:1px solid #d9d9d9!important;margin-inline-end:0!important}.ci-tag:hover{color:#1da796!important;border-color:#1da796!important}.ci-tag-active{color:#fff!important;background:#1da796!important;border-color:#1da796!important}.ci-filter-count{color:#999;border-top:1px solid #f0f0f0;margin-top:20px;padding-top:16px;font-size:13px}.ci-content{background:0 0!important;padding:24px!important}.ci-card{border-radius:10px;transition:transform .25s,box-shadow .25s;overflow:hidden}.ci-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.ci-card-cover{background:#f0f0f0;width:100%;height:160px;overflow:hidden}.ci-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.ci-card:hover .ci-card-cover img{transform:scale(1.05)}.ci-skeleton-card{border-radius:10px;overflow:hidden}@media screen and (width<=992px){.ci-banner{padding:40px 24px 32px}}.codeorg-page{background:#f0f2f5;min-height:100vh}.co-banner{background:linear-gradient(135deg,#1da796 0%,#0d8a7a 50%,#065a4f 100%);margin-top:-100px;padding:100px 48px 24px;position:relative;overflow:hidden}.co-banner:before{content:"";background:#ffffff0f;border-radius:50%;width:260px;height:160px;position:absolute;top:-60px;right:-60px}.co-banner:after{content:"";background:#ffffff0a;border-radius:50%;width:160px;height:160px;position:absolute;bottom:-40px;right:120px}.co-back{margin-bottom:8px;color:#fffc!important;height:auto!important;padding:0!important;font-size:16px!important;line-height:1!important}.co-back:hover{color:#fff!important}.co-banner-title{letter-spacing:1px;color:#fff!important;margin-bottom:4px!important;font-size:28px!important;font-weight:700!important}.co-banner-desc{max-width:650px;color:#ffffffd1!important;margin-bottom:10px!important;font-size:14px!important;line-height:1.6!important}.co-stats{color:#ffffffbf;font-size:14px}.co-stat-num{margin-right:4px;color:#fff!important;font-size:20px!important}.co-stat-divider{vertical-align:middle;background:#ffffff4d;width:1px;height:16px;display:inline-block}.co-table-card{margin:24px 48px 48px;overflow:hidden;border-radius:12px!important;box-shadow:0 2px 8px #0000000f!important}.co-table .ant-table-thead>tr>th{font-size:14px;color:#333!important;background:#f8faf9!important;border-bottom:2px solid #e8f5f3!important;font-weight:600!important}.co-row-even{background:#fff}.co-row-odd{background:#fafcfb}.co-table .ant-table-tbody>tr:hover>td{background:#e8f5f3!important}.co-lesson-num{color:#fff;background:linear-gradient(135deg,#1da796,#17a08a);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:inline-flex}.co-step{color:#5b6770;cursor:pointer;background:#fff;border:2px solid #d9e2e0;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:500;text-decoration:none;transition:all .25s;display:inline-flex}.co-step:hover{color:#fff;background:#1da796;border-color:#1da796;transform:scale(1.15);box-shadow:0 2px 8px #1da79659}@media screen and (width<=768px){.co-banner{padding:32px 20px 28px}.co-table-card{margin:20px 12px 32px}.co-banner-title{font-size:28px!important}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.editor-core{flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.terminal-container{background:var(--editor-bg,#fff);box-sizing:border-box;width:100%;height:100%;padding:4px}.graphics-panel{flex-direction:column;align-items:center;gap:12px;display:flex}.graphics-surface{background:#fff;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;position:relative;box-shadow:0 1px 3px #0f172a0f}.graphics-surface canvas{outline:none;position:absolute;inset:0}.graphics-images{flex-direction:column;align-items:center;gap:8px;display:flex}.graphics-images .gfx-figure{max-width:100%;height:auto}.ec-btn-graphics{color:var(--brand-dark,#0a7d6f);background:#0d9b8a1a;border-color:#0d9b8a40}.ec-btn-graphics:hover:not(:disabled){background:#0d9b8a2e}.graphics-modal .ant-modal-body{overscroll-behavior:contain}.graphics-widgets{color:#0f172a;flex-direction:column;align-items:flex-start;gap:8px;font-size:13px;display:flex}.tkw-window{background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;min-width:200px;box-shadow:0 1px 4px #0f172a14}.tkw-titlebar{color:#475569;background:#e2e8f0;border-bottom:1px solid #cbd5e1;border-radius:5px 5px 0 0;padding:4px 10px;font-size:12px;font-weight:500}.tkw-body{padding:8px}.tkw-frame{display:block}.tkw-labelframe{border:1px solid #cbd5e1;border-radius:4px;margin:0;padding:4px 8px 8px}.tkw-labelframe>legend{color:#475569;padding:0 4px;font-size:12px}.tkw-label{white-space:pre-wrap;padding:2px 4px}.tkw-button{color:#0f172a;cursor:pointer;background:#e2e8f0;border:1px solid #94a3b8;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:13px}.tkw-button:hover:not(:disabled){background:#cbd5e1}.tkw-button:disabled{opacity:.5;cursor:not-allowed}.tkw-entry,.tkw-text,.tkw-listbox,.tkw-combobox{color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:3px;padding:3px 6px;font-family:inherit;font-size:13px}.tkw-text{resize:vertical;min-width:200px;min-height:80px}.tkw-check{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.tkw-scale{align-items:center;gap:6px;display:inline-flex}.tkw-scale-value{font-variant-numeric:tabular-nums;color:#475569;min-width:2.5em}.tkw-canvas{background:#fff;border:1px solid #cbd5e1}.tkw-separator{border:none;border-top:1px solid #cbd5e1;width:100%;margin:4px 0}.tkw-scrollbar{width:0;height:0}.tkw-menu{background:#e2e8f0;border-bottom:1px solid #cbd5e1;gap:2px;padding:2px;display:flex}.tkw-menu-item{cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 10px;font-family:inherit;font-size:13px}.tkw-menu-item:hover{background:#cbd5e1}.tkw-menu-sep{background:#94a3b8;width:1px;margin:2px 4px}.tkw-notebook-tabs{border-bottom:1px solid #cbd5e1;gap:2px;display:flex}.tkw-tab{cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:4px 12px;font-family:inherit;font-size:13px}.tkw-tab.active{background:#fff;border-color:#cbd5e1}.tkw-notebook-body{border:1px solid #cbd5e1;border-top:none;padding:8px}.tkw-treeview{border-collapse:collapse;font-size:13px}.tkw-treeview th,.tkw-treeview td{text-align:left;border:1px solid #cbd5e1;padding:3px 8px}.tkw-treeview th{background:#e2e8f0}.tkw-progress{width:200px}.tkw-pack-host{flex-direction:column;align-items:flex-start;display:flex}.tkw-pack-row{flex-direction:row;align-items:center;display:flex}.tkw-grid-host{justify-content:start;display:grid}.tkw-place-host{min-height:40px;position:relative}.ec-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:12px;transition:background .15s;display:inline-flex}.ec-btn:disabled{opacity:.5;cursor:not-allowed}.ec-btn-run{background:var(--brand,#14b8a6);color:#fff}.ec-btn-run:hover:not(:disabled){background:var(--brand-dark,#0a7d6f)}.ec-btn-stop{color:#fff;background:#ef4444}.ec-btn-stop:hover:not(:disabled){background:#dc2626}.ec-fontsize-group{border:1px solid var(--border,#cbd5e1);background:#0000000a;border-radius:4px;align-items:center;gap:2px;padding:2px;display:inline-flex}.ec-fontsize-btn{width:22px;height:20px;color:var(--text-secondary,#475569);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;transition:background .15s;display:inline-flex}.ec-fontsize-btn:hover:not(:disabled){color:var(--text,#0f172a);background:#00000014}.ec-fontsize-btn:disabled{opacity:.35;cursor:not-allowed}.ec-fontsize-label{text-align:center;font-variant-numeric:tabular-nums;min-width:18px;color:var(--text,#1e293b);-webkit-user-select:none;user-select:none;font-size:11px}.ai-panel{background:var(--card-bg,#fff);border-left:1px solid var(--border,#cbd5e1);flex-direction:column;height:100%;min-height:0;display:flex}.ai-panel-header{background:var(--bg,#f1f5f9);height:36px;color:var(--text,#0f172a);border-bottom:1px solid var(--border,#cbd5e1);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 10px;display:flex}.ai-panel-title{align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.ai-panel-collapse-btn{color:var(--text-secondary,#475569);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px}.ai-panel-collapse-btn:hover{color:var(--text,#0f172a);background:#0000000d}.ai-panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.ai-panel-disabled{color:var(--text-secondary,#475569);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:13px;display:flex}.ai-panel-collapsed{background:var(--bg,#f1f5f9);border-left:1px solid var(--border,#cbd5e1);justify-content:center;align-items:center;width:32px;height:100%;display:flex}.ai-panel-handle{color:var(--text-secondary,#475569);cursor:pointer;writing-mode:vertical-rl;background:0 0;border:none;border-radius:4px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;font-size:11px;transition:background .15s;display:flex}.ai-panel-handle:hover:not(:disabled){color:var(--text,#0f172a);background:#0000000f}.ai-panel-handle:disabled{opacity:.4;cursor:not-allowed}.ldc-lab .ai-panel,.lpc-lab .ai-panel{color:#1e293b;background:#fff;border-left:1px solid #d1d5db}.ldc-lab .ai-panel-header,.lpc-lab .ai-panel-header{color:#0f172a;background:#f0f4f8;border-bottom:1px solid #d1d5db}.ldc-lab .ai-panel-collapse-btn,.lpc-lab .ai-panel-collapse-btn{color:#475569}.ldc-lab .ai-panel-collapse-btn:hover,.lpc-lab .ai-panel-collapse-btn:hover{color:#0f172a;background:#0000000f}.ldc-lab .ai-panel-disabled,.lpc-lab .ai-panel-disabled{color:#64748b}.ldc-lab .ai-panel-collapsed,.lpc-lab .ai-panel-collapsed{background:#f0f4f8;border-left:1px solid #d1d5db}.ldc-lab .ai-panel-handle,.lpc-lab .ai-panel-handle{color:#475569}.ldc-lab .ai-panel-handle:hover:not(:disabled),.lpc-lab .ai-panel-handle:hover:not(:disabled){color:#0f172a;background:#0000000f}.ldc-lab .ai-assistant,.lpc-lab .ai-assistant{color:#1e293b;background:#fff}.ldc-lab .ai-header,.lpc-lab .ai-header{color:#0a7f70;background:linear-gradient(135deg,#0d9b8a1a,#14b8a60d);border-bottom:1px solid #e2e8f0}.ldc-lab .ai-messages,.lpc-lab .ai-messages{color:#1e293b;background:#f8fafc}.ldc-lab .ai-empty,.lpc-lab .ai-empty{color:#94a3b8}.ldc-lab .ai-msg-user,.lpc-lab .ai-msg-user{color:#1e293b;background:#0d9b8a1a;border:1px solid #0d9b8a40}.ldc-lab .ai-msg-assistant,.lpc-lab .ai-msg-assistant{color:#1e293b;background:#fff;border:1px solid #e2e8f0}.ldc-lab .ai-msg-assistant blockquote,.lpc-lab .ai-msg-assistant blockquote{color:#475569;border-left-color:#0d9b8a}.ldc-lab .ai-typing,.lpc-lab .ai-typing{color:#94a3b8}.ldc-lab .ai-error,.lpc-lab .ai-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.ldc-lab .ai-input-area,.lpc-lab .ai-input-area{background:#fff;border-top:1px solid #e2e8f0}.ldc-lab .ai-input-area .ant-input,.lpc-lab .ai-input-area .ant-input{color:#1e293b!important;background:#fff!important;border-color:#cbd5e1!important}.ldc-lab .ai-input-area .ant-input::placeholder,.lpc-lab .ai-input-area .ant-input::placeholder{color:#94a3b8!important}.ldc-lab .ai-input-area .ant-input:focus,.ldc-lab .ai-input-area .ant-input:hover,.lpc-lab .ai-input-area .ant-input:focus,.lpc-lab .ai-input-area .ant-input:hover{border-color:#0d9b8a!important;box-shadow:0 0 0 3px #0d9b8a1f!important}.ldc-lab .ai-code-block pre,.lpc-lab .ai-code-block pre{color:#1e293b;background:#f1f5f9;border-color:#e2e8f0}.ldc-lab .ai-code-copy,.lpc-lab .ai-code-copy{color:#475569;background:#fff;border-color:#cbd5e1}.ldc-lab .ai-code-copy:hover,.lpc-lab .ai-code-copy:hover{color:#0a7f70;background:#0d9b8a14;border-color:#0d9b8a}.ldc-lab .ai-inline-code,.lpc-lab .ai-inline-code{color:#0a7f70;background:#0d9b8a1a}.ldc-lab .pane-header,.lpc-lab .pane-header{color:#1e293b;background:#f8fafc;border-bottom:1px solid #e2e8f0}.ldc-lab .pane-header-label,.lpc-lab .pane-header-label{color:#475569}.ldc-lab .pane-header-btn,.lpc-lab .pane-header-btn{color:#94a3b8}.ldc-lab .pane-header-btn:hover,.lpc-lab .pane-header-btn:hover{color:#0a7f70;background:#0d9b8a14}.ldc-lab .ec-btn,.lpc-lab .ec-btn{color:#475569;background:#f1f5f9;border:1px solid #d1d5db}.ldc-lab .ec-btn:hover:not(:disabled),.lpc-lab .ec-btn:hover:not(:disabled){color:#0f172a;background:#e2e8f0}.ldc-lab .ec-btn-run,.lpc-lab .ec-btn-run{color:#fff;background:var(--brand,#14b8a6);border-color:#0000}.ldc-lab .ec-btn-stop,.lpc-lab .ec-btn-stop{color:#fff;background:#ef4444;border-color:#0000}.ldc-lab .ec-fontsize-group,.lpc-lab .ec-fontsize-group{background:#0000000a;border:1px solid #d1d5db}.ldc-lab .ec-fontsize-btn,.lpc-lab .ec-fontsize-btn{color:#475569}.ldc-lab .ec-fontsize-btn:hover:not(:disabled),.lpc-lab .ec-fontsize-btn:hover:not(:disabled){color:#0f172a;background:#00000014}.ldc-lab .ec-fontsize-label,.lpc-lab .ec-fontsize-label{color:#1e293b}.ldc-lab .split-divider,.lpc-lab .split-divider{background:#e2e8f0}.ldc-lab .split-divider:hover,.lpc-lab .split-divider:hover{background:#0d9b8a}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.file-sidebar{background:var(--card-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;transition:width .2s cubic-bezier(.4,0,.2,1);display:flex}.file-sidebar.collapsed{align-items:center;width:40px;padding-top:8px}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:40px;padding:0 12px;display:flex}.sidebar-title{letter-spacing:.8px;color:var(--text-secondary);text-transform:uppercase;font-size:11px;font-weight:700}.sidebar-actions{gap:2px;display:flex}.icon-btn{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--brand);background:#0d9b8a14}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn-sm{width:20px;height:20px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.icon-btn-sm:hover{color:var(--text);background:#0000000f}.icon-btn-sm.danger:hover{color:#dc2626;background:#dc26261a}.file-list{flex:1;padding:6px;overflow-y:auto}.file-empty{text-align:center;color:var(--text-secondary);padding:24px 12px;font-size:13px}.file-empty p{margin-bottom:12px}.file-item{cursor:pointer;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:13px;transition:background .12s;animation:80ms fadeIn;display:flex;position:relative}.file-item:hover{background:#0d9b8a0f}.file-item:hover .file-actions{opacity:1}.file-item.active{color:var(--brand-dark);background:#0d9b8a1f;font-weight:600}.file-item.active:before{content:"";background:var(--brand);border-radius:2px;width:3px;position:absolute;top:6px;bottom:6px;left:0}.file-icon{color:var(--text-secondary);flex-shrink:0}.file-item.active .file-icon{color:var(--brand)}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-rename-input{border:1px solid var(--brand);background:var(--bg);min-width:0;height:22px;color:var(--text);border-radius:4px;outline:none;flex:1;padding:0 6px;font-family:inherit;font-size:13px}.file-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.file-item.practice{background:#6366f10a}.file-item.practice:hover{background:#6366f117}.file-item.practice.active{color:#4338ca;background:#6366f124}.file-item.practice.active:before{background:#6366f1}.file-item.practice .practice-icon{color:#6366f1}.file-item.practice.active .practice-icon{color:#4338ca}.status-pill{letter-spacing:.2px;white-space:nowrap;border-radius:10px;flex-shrink:0;align-items:center;gap:3px;padding:1px 6px;font-size:10.5px;font-weight:600;line-height:1.35;display:inline-flex}.status-pill-unsubmitted{color:#b45309;background:#f59e0b24}.status-pill-submitted{color:#b45309;background:#f59e0b2e}.status-pill-passed{color:#15803d;background:#22c55e29}.status-pill-failed{color:#b91c1c;background:#ef444424}.status-pill-withdrawn{color:#64748b;background:#94a3b833;-webkit-text-decoration:line-through #64748b8c;text-decoration:line-through #64748b8c}.file-item.withdrawn{opacity:.68}.file-item.withdrawn .practice-icon{color:#94a3b8}.file-item.withdrawn .file-name{color:var(--text-sec);-webkit-text-decoration:line-through #64748b73;text-decoration:line-through #64748b73}.file-item.withdrawn.active{opacity:1}.file-item.status-passed:after,.file-item.status-failed:after{content:"";border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;right:0}.file-item.status-passed:after{background:#22c55e}.file-item.status-failed:after{background:#ef4444}.console-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:80;background:#0a1628f5;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;width:560px;height:400px;transition:box-shadow .15s;animation:.22s ease-out scaleIn;display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 24px 64px #00000059,0 0 0 1px #ffffff08}.console-overlay.dragging{box-shadow:0 32px 80px #00000080, 0 0 0 1px var(--brand);-webkit-user-select:none;user-select:none;animation:none}.console-header{cursor:grab;background:#0003;border-bottom:1px solid #ffffff0f;align-items:center;height:36px;padding:0 12px;display:flex}.console-overlay.dragging .console-header{cursor:grabbing}.mac-dots{gap:6px;margin-right:12px;display:flex}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.console-title{color:#ffffffb3;flex:1;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.console-header-actions{gap:2px;display:flex}.console-header-actions .icon-btn{color:#ffffffb3}.console-header-actions .icon-btn:hover{color:#fff;background:#ffffff14}.console-log{color:#cdd6f4;white-space:pre-wrap;word-break:break-all;flex:1;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.65;overflow-y:auto}.console-hint{color:#585b70;padding:16px 0;font-family:Inter,sans-serif;font-size:13px}.console-hint code{color:#a6e3a1;background:#ffffff14;border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:12px}.console-line{display:inline}.console-cmd{color:#a6e3a1;font-weight:600}.console-stdout{color:#cdd6f4}.console-stderr{color:#f38ba8}.console-error{color:#f38ba8;font-weight:600}.console-info{color:#89b4fa}.console-prompt-row{background:#0003;border-top:1px solid #ffffff0f;align-items:center;gap:8px;padding:8px 14px;display:flex}.prompt-sign{color:#a6e3a1;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.console-input{color:#cdd6f4;caret-color:var(--brand);background:0 0;border:none;outline:none;flex:1;font-family:JetBrains Mono,monospace;font-size:13px}.console-input::placeholder{color:#585b70}.console-input:disabled{opacity:.5}.console-input-bar{border-top:1px solid var(--brand);z-index:90;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d9b8a1f;border-bottom-right-radius:14px;border-bottom-left-radius:14px;align-items:center;gap:8px;width:560px;padding:10px 14px;display:flex;position:fixed;bottom:24px;right:24px}.console-input-bar .prompt-label{color:var(--brand)}.console-input-bar .prompt-input{background:#fffffff2}.confirm-overlay{z-index:1100;animation:.15s ease-out confirm-fade-in}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{text-align:center;background:#fff;border-radius:12px;width:min(400px,90vw);padding:28px 24px 20px;animation:.2s cubic-bezier(.34,1.56,.64,1) confirm-pop-in;position:relative;box-shadow:0 20px 25px -5px #00000026,0 10px 10px -5px #00000014}@keyframes confirm-pop-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.confirm-close{cursor:pointer;width:28px;height:28px;color:var(--text-secondary,#94a3b8);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex;position:absolute;top:10px;right:10px}.confirm-close:hover{color:var(--text-primary,#1e293b);background:#64748b1a}.confirm-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 12px;display:flex;position:relative}.confirm-icon:before{content:"";opacity:.12;background:currentColor;border-radius:50%;position:absolute;inset:0}.confirm-icon>svg{z-index:1;position:relative}.confirm-danger .confirm-icon svg{animation:1.4s ease-in-out infinite confirm-pulse}@keyframes confirm-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.confirm-title{color:var(--text-primary,#1e293b);margin:0 0 8px;font-size:17px;font-weight:600}.confirm-message{color:var(--text-secondary,#475569);word-break:break-word;margin:0 0 4px;font-size:14px;line-height:1.6}.confirm-message code{color:var(--text-primary,#1e293b);background:#64748b1a;border-radius:3px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.confirm-subtle{color:var(--text-secondary,#64748b);background:#64748b0f;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.confirm-btn-cancel,.confirm-btn-ok{cursor:pointer;border:none;border-radius:6px;min-width:84px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .15s,transform 50ms}.confirm-btn-cancel{color:var(--text-primary,#1e293b);background:#64748b1a}.confirm-btn-cancel:hover{background:#64748b2e}.confirm-btn-ok{color:#fff;background:#0d9b8a}.confirm-btn-ok:hover{background:#0b8577}.confirm-btn-cancel:active,.confirm-btn-ok:active{transform:scale(.97)}.confirm-btn-danger{color:#fff!important;background:#ef4444!important}.confirm-btn-danger:hover{background:#dc2626!important}.confirm-btn-cancel:focus-visible,.confirm-btn-ok:focus-visible{outline-offset:2px;outline:2px solid #0d9b8a}.confirm-btn-danger:focus-visible{outline-color:#ef4444}.ctx-menu{z-index:300;border:1px solid var(--border);transform-origin:0 0;background:#fff;border-radius:10px;min-width:180px;padding:4px;animation:.12s ease-out scaleIn;position:fixed;box-shadow:0 12px 32px #0000001f,0 0 0 1px #00000005}.ctx-locked-hint{color:#6366f1;text-align:center;background:#6366f114;border-radius:6px;margin-bottom:4px;padding:8px 12px;font-size:12px;font-weight:600}.ctx-item{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:background .12s;display:flex}.ctx-item:hover:not(:disabled){color:var(--brand);background:#0d9b8a14}.ctx-item:disabled{opacity:.4;cursor:not-allowed}.ctx-icon{color:var(--text-secondary);display:inline-flex}.ctx-item:hover:not(:disabled) .ctx-icon{color:var(--brand)}.ctx-label{flex:1}.toast-container{z-index:1200;pointer-events:none;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{pointer-events:auto;background:#fff;border-left:4px solid;border-radius:10px;align-items:flex-start;gap:10px;width:360px;max-width:100%;padding:12px 36px 12px 14px;animation:.25s cubic-bezier(.34,1.56,.64,1) toast-in;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 16px -4px #00000026,0 4px 8px -4px #00000014}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-success{color:#16a34a}.toast-error{color:#ef4444}.toast-warning{color:#f59e0b}.toast-info{color:#3b82f6}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.toast-body{flex:1;min-width:0}.toast-msg{color:var(--text-primary,#1e293b);word-break:break-word;font-size:14px;font-weight:500;line-height:1.4}.toast-detail{color:var(--text-secondary,#64748b);word-break:break-word;margin-top:4px;font-size:12px;line-height:1.5}.toast-close{cursor:pointer;width:22px;height:22px;color:var(--text-secondary,#94a3b8);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:flex;position:absolute;top:8px;right:8px}.toast-close:hover{color:var(--text-primary,#1e293b);background:#64748b1f}.toast-sticky{background:color-mix(in srgb, currentColor 6%, #fff);border-left-width:5px}@supports not (background:color-mix(in srgb, red 10%, white)){.toast-sticky.toast-error{background:#fef2f2}.toast-sticky.toast-warning{background:#fffbeb}.toast-sticky.toast-success{background:#f0fdf4}.toast-sticky.toast-info{background:#eff6ff}}.toast-progress{opacity:.4;transform-origin:0;background:currentColor;width:100%;height:2px;animation:linear forwards toast-progress;position:absolute;bottom:0;left:0}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.broadcast-banner{color:#fff;z-index:400;opacity:0;pointer-events:none;background:linear-gradient(135deg,#0f2038,#1a3557);border:1.5px solid #0d9b8a66;border-radius:16px;align-items:flex-start;gap:14px;min-width:480px;max-width:720px;padding:18px 22px;transition:opacity .3s,transform .3s;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%,-20px);box-shadow:0 16px 48px #00000059,0 0 40px #0d9b8a33}.broadcast-banner.visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.broadcast-banner.persistent{border-color:var(--brand-light);animation:3s ease-in-out infinite bbPulse}@keyframes bbPulse{0%,to{box-shadow:0 16px 48px #00000059,0 0 40px #0d9b8a33}50%{box-shadow:0 16px 48px #00000059,0 0 60px #0d9b8a66}}.bb-icon{color:var(--brand-light);flex-shrink:0;margin-top:4px}.bb-content{flex:1;min-width:0}.bb-message{word-break:break-word;letter-spacing:.3px;font-size:20px;font-weight:700;line-height:1.4}.bb-teacher{color:#ffffff8c;margin-top:6px;font-size:13px}.bb-actions{flex-shrink:0;gap:4px;display:flex}.bb-close{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:background .15s;display:inline-flex}.bb-close:hover{color:#fff;background:#ffffff14}.broadcast-chip{z-index:400;color:#fff;cursor:pointer;background:linear-gradient(135deg,#0f2038,#1a3557);border:1px solid #0d9b8a66;border-radius:16px;align-items:center;gap:8px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;animation:.2s ease-out scaleIn;display:inline-flex;position:fixed;top:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.broadcast-chip:hover{border-color:var(--brand-light);transform:translate(-50%)translateY(-1px)}.bb-chip-text{text-overflow:ellipsis;white-space:nowrap;color:#ffffffd9;max-width:200px;overflow:hidden}.student-timer{color:#14b8a6;letter-spacing:1px;background:#0d9b8a2e;border:1px solid #0d9b8a4d;border-radius:7px;align-items:center;gap:6px;height:26px;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.student-timer.urgent{color:#fca5a5;background:#ef444433;border-color:#ef444466;animation:1s ease-in-out infinite urgentPulse}@keyframes urgentPulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 4px #ef444400}}.student-timer-text{text-align:center;min-width:40px}.student-timer-bar{background:#ffffff0f;height:2px;position:absolute;bottom:0;left:0;right:0}.student-timer-bar-fill{background:currentColor;height:100%;transition:width .5s linear}.ptb-wrap{background:linear-gradient(135deg,#0d9b8a24,#0ea5e91f);border-bottom:1px solid #0d9b8a47;padding:8px 18px;animation:.3s cubic-bezier(.22,1,.36,1) ptbSlideIn}@keyframes ptbSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ptb-wrap.urgent{background:linear-gradient(135deg,#f59e0b29,#ef44441f)}.ptb-wrap.ended{opacity:.65}.ptb-main{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.ptb-tag{color:var(--brand);letter-spacing:.3px;background:#0d9b8a2e;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800}.ptb-desc{color:var(--text);flex:1;min-width:0;font-weight:600}.ptb-sep{color:var(--text-secondary);opacity:.5}.ptb-file{color:var(--brand);background:#0d9b8a1a;border-radius:5px;padding:1px 7px;font-family:JetBrains Mono,monospace;font-size:12px}.ptb-hint-btn{color:#d97706;cursor:pointer;background:#f59e0b24;border:1px solid #f59e0b4d;border-radius:999px;align-items:center;gap:3px;padding:3px 10px;font-family:inherit;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.ptb-hint-btn:hover,.ptb-hint-btn.open{background:#f59e0b3d;border-color:#d97706}.ptb-cd{color:var(--text-secondary);background:#0f172a0f;border-radius:7px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.ptb-cd-num{color:var(--text);font-family:JetBrains Mono,monospace;font-size:13.5px}.ptb-wrap.urgent .ptb-cd{color:#dc2626;background:#ef44441f;animation:1s infinite ptbPulse}.ptb-wrap.urgent .ptb-cd-num{color:#dc2626}@keyframes ptbPulse{0%,to{opacity:1}50%{opacity:.55}}.ptb-hint-body{color:var(--text);white-space:pre-wrap;background:#f59e0b0f;border-left:3px solid #f59e0b;border-radius:6px;margin-top:10px;padding:10px 14px;font-size:13px;line-height:1.6}@media (prefers-reduced-motion:reduce){.ptb-wrap,.ptb-cd{animation:none!important}}.resource-section{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;max-height:45%;display:flex;overflow-y:auto}.resource-subhead{letter-spacing:.8px;color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:6px;padding:6px 12px 4px;font-size:10.5px;font-weight:700;display:flex}.res-mode-hint{color:var(--text-secondary);opacity:.65;letter-spacing:0;text-transform:none;font-size:10px;font-weight:500}.resource-grid{grid-template-columns:repeat(2,1fr);gap:6px;padding:2px 8px 8px;display:grid}.image-tile{border:1px solid var(--border);cursor:default;-webkit-user-select:none;user-select:none;background:#00000005;border-radius:8px;flex-direction:column;transition:all .15s;display:flex;overflow:hidden}.image-tile.clickable{cursor:zoom-in}.image-tile.clickable:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:0 2px 8px #0d9b8a1f}.image-tile.status-error{background:#fef2f2;border-color:#fecaca}.tile-visual{aspect-ratio:1;background:#f1f5f9;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.tile-visual img{object-fit:cover;width:100%;height:100%;display:block}.tile-loader{color:var(--text-secondary)}.tile-retry{color:#dc2626;cursor:pointer;background:0 0;border:none;padding:6px}.tile-source{color:#fff;background:#0000008c;border-radius:4px;align-items:center;padding:2px 4px;display:inline-flex;position:absolute;top:4px;left:4px}.tile-bytes-state{color:#fff;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex;position:absolute;top:4px;right:4px}.tile-bytes-state.err{background:#dc2626e6}.tile-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:#fff;padding:4px 6px;font-size:11px;overflow:hidden}.resource-header{border-bottom:1px solid var(--border);background:#fafbfc;justify-content:space-between;align-items:center;height:36px;padding:0 12px;display:flex}.resource-count{color:var(--brand);text-transform:none;letter-spacing:0;margin-left:4px;font-size:11px;font-weight:500}.resource-list{flex:1;padding:4px;overflow-y:auto}.resource-item{cursor:pointer;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:5px 6px;font-size:12.5px;transition:background .12s;display:flex}.resource-item:hover{background:#0d9b8a0f}.resource-item.status-pending .r-name,.resource-item.status-loading .r-name{color:var(--text-secondary)}.resource-item.status-error .r-name{color:#dc2626}.resource-item .src-icon,.resource-item .r-icon{color:var(--text-secondary);flex-shrink:0}.resource-item .r-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.resource-item .r-state{flex-shrink:0;align-items:center;display:flex}.resource-item .dots{color:var(--text-secondary);font-size:14px}.spin{animation:.9s linear infinite spin}.resource-preview-body{border:1px solid var(--border);background:#f8fafc;border-radius:8px;max-height:420px;margin:12px 0 20px;padding:8px;overflow:auto}.preview-image{border-radius:6px;max-width:100%;max-height:400px;margin:0 auto;display:block}.preview-text{white-space:pre-wrap;word-break:break-all;max-height:400px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.6;overflow:auto}.preview-fallback{color:var(--text-secondary);text-align:center;padding:32px 16px;font-size:13px}.sidebar-footer{border-top:1px solid var(--border);padding:8px}.footer-btn{width:100%;height:30px;color:var(--text-secondary);border:1px dashed var(--border);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;display:inline-flex}.footer-btn:hover{border-color:var(--brand);color:var(--brand)}.panel-toolbar{border-bottom:1px solid var(--border);background:#fafbfc;justify-content:space-between;align-items:center;height:40px;padding:0 12px;display:flex}.panel-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.font-size-group{border:1px solid var(--border);background:#00000008;border-radius:6px;align-items:center;gap:2px;padding:2px;display:inline-flex}.font-size-label{text-align:center;min-width:26px;color:var(--text-secondary);-webkit-user-select:none;user-select:none;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.btn{cursor:pointer;transition:all var(--transition);border:none;border-radius:8px;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-run{background:var(--brand);color:#fff;align-items:center;gap:6px;display:inline-flex;box-shadow:0 2px 8px #0d9b8a40}.btn-run:hover:not(:disabled){background:var(--brand-dark);transform:translateY(-1px)}.btn-stop{color:#fff;background:#dc2626;align-items:center;gap:6px;animation:1.4s ease-in-out infinite stopPulse;display:inline-flex;box-shadow:0 2px 8px #dc262640}.btn-stop:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.btn-stop:disabled{animation:none}@keyframes stopPulse{0%,to{box-shadow:0 2px 8px #dc262640}50%{box-shadow:0 2px 14px #dc26268c}}.btn-submit{color:#fff;background:#f59e0b;box-shadow:0 2px 8px #f59e0b40}.btn-submit:hover:not(:disabled){background:#d97706}.btn-clear{color:var(--text-secondary);background:0 0}.btn-clear:hover{background:#0000000a}.btn-cancel{color:var(--text);background:#f1f5f9}.btn-cancel:hover{background:#e2e8f0}.btn-small{background:var(--brand);color:#fff;border-radius:6px;padding:4px 10px;font-size:12px}.editor-wrapper{flex:1;position:relative;overflow:hidden}.editor-wrapper .cm-editor{height:100%!important}.editor-wrapper .cm-scroller{font-family:JetBrains Mono,monospace!important}.teacher-feedback-banner{background:#ef444414;border-top:1px solid #ef444440;border-bottom:1px solid #ef444440;flex-shrink:0;align-items:flex-start;gap:8px;padding:8px 12px;animation:.2s fadeIn;display:flex}.teacher-feedback-banner .tfb-icon{color:#dc2626;flex-shrink:0;margin-top:2px}.teacher-feedback-banner .tfb-body{flex:1;min-width:0}.teacher-feedback-banner .tfb-title{color:#b91c1c;margin-bottom:2px;font-size:12px;font-weight:700}.teacher-feedback-banner .tfb-comment{color:var(--text);white-space:pre-wrap;font-size:12.5px;line-height:1.5}.teacher-feedback-banner .tfb-close{color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px}.teacher-feedback-banner .tfb-close:hover{color:var(--text);background:#0000000f}.editor-empty{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.editor-overlay{z-index:5;pointer-events:none;background:#00000008;justify-content:center;align-items:center;display:flex;position:absolute;inset:40px 0 0}.overlay-text{color:#6366f1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#6366f11a;border-radius:10px;padding:12px 24px;font-size:14px;font-weight:600}.output-content{white-space:pre-wrap;word-break:break-all;color:#cdd6f4;background:#1e1e2e;flex:1;padding:12px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6;overflow:auto}.output-empty{color:#585b70;text-align:center;padding-top:40px;font-family:Inter,sans-serif}.output-stdout{color:#cdd6f4}.output-stderr{color:#f38ba8}.output-error{color:#f38ba8;font-weight:600}.output-info{color:#a6e3a1}.input-prompt-bar{border-top:1px solid var(--border);background:#fafbfc;align-items:center;gap:8px;padding:8px 12px;display:flex}.prompt-label{color:var(--brand);white-space:nowrap;font-size:12px;font-weight:600}.prompt-input{border:2px solid var(--brand);border-radius:8px;outline:none;flex:1;height:32px;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:13px}.prompt-input:focus{box-shadow:0 0 0 3px #0d9b8a26}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:16px;width:360px;padding:28px;animation:.2s ease-out scaleIn;box-shadow:0 20px 60px #00000026}.modal-card-lg{width:520px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-sub{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.modal-card h3{margin-bottom:8px;font-size:18px;font-weight:700}.modal-card p{color:var(--text-secondary);margin-bottom:20px;font-size:14px}.modal-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.global-actions{margin-bottom:12px}.global-actions .btn{align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.global-list{border:1px solid var(--border);border-radius:10px;max-height:300px;margin-bottom:20px;overflow-y:auto}.global-empty{text-align:center;color:var(--text-secondary);padding:32px 16px;font-size:13px}.global-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background .12s;display:flex}.global-item:last-child{border-bottom:none}.global-item:hover{background:#0d9b8a0a}.global-name{flex:1;font-size:13px;font-weight:500}.global-size{color:var(--text-secondary);font-size:11px}.stars-badge{color:#fbbf24;letter-spacing:.5px;cursor:default;background:linear-gradient(135deg,#f59e0b38,#fbbf242e);border:1px solid #f59e0b59;border-radius:7px;align-items:center;gap:5px;height:26px;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex;position:relative}.stars-badge.clickable{cursor:pointer}.stars-badge.clickable:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.stars-badge.pulse{animation:.8s ease-out starPulse}@keyframes starPulse{0%{transform:scale(1)}30%{transform:scale(1.25);box-shadow:0 0 20px #f59e0b99}60%{transform:scale(.95)}to{transform:scale(1)}}.stars-num{text-align:center;min-width:14px}.stars-burst{color:#fff;pointer-events:none;border-radius:12px;padding:2px 10px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800;animation:1.4s ease-out forwards starBurst;position:absolute;top:-24px;right:50%;transform:translate(50%)}.stars-burst.up{background:linear-gradient(135deg,#f59e0b,#fb923c);box-shadow:0 4px 16px #f59e0b99}.stars-burst.down{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 4px 16px #dc262699}@keyframes starBurst{0%{opacity:0;transform:translate(50%,10px)scale(.5)}20%{opacity:1;transform:translate(50%,-4px)scale(1.2)}50%{opacity:1;transform:translate(50%,-14px)scale(1)}to{opacity:0;transform:translate(50%,-30px)scale(.9)}}.star-celebrate{z-index:500;pointer-events:none;justify-content:center;align-items:center;animation:2s ease-out forwards celebrateFadeOut;display:flex;position:fixed;inset:0}.star-celebrate.negative:before{content:"";background:radial-gradient(circle,#0000 30%,#dc262626 100%);animation:.8s ease-out shakeAndFlash;position:absolute;inset:0}@keyframes celebrateFadeOut{0%,70%{opacity:1}to{opacity:0}}@keyframes shakeAndFlash{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.star-celebrate-center{text-align:center;animation:.5s cubic-bezier(.2,.9,.4,1.4) celebratePop}@keyframes celebratePop{0%{opacity:0;transform:scale(.1)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.celebrate-stars{filter:drop-shadow(0 8px 20px #f59e0b8c);justify-content:center;gap:8px;font-size:80px;line-height:1;display:flex}.celebrate-star{animation:1s ease-out both starPop,2s ease-in-out .5s starWiggle;display:inline-block}@keyframes starPop{0%{opacity:0;transform:scale(0)rotate(-120deg)}50%{opacity:1;transform:scale(1.3)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes starWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.celebrate-amount{background:linear-gradient(135deg,#f59e0b,#fbbf24,#fde68a);-webkit-text-fill-color:transparent;letter-spacing:4px;text-shadow:0 8px 32px #f59e0b66;-webkit-background-clip:text;margin-top:16px;font-family:JetBrains Mono,monospace;font-size:72px;font-weight:900}.celebrate-amount.negative{background:linear-gradient(135deg,#dc2626,#ef4444);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.celebrate-warn{font-size:80px;line-height:1}.celebrate-category{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border-radius:16px;margin-top:8px;padding:6px 16px;font-size:20px;font-weight:600;display:inline-block}.celebrate-reason{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006;border-radius:12px;max-width:560px;margin-top:12px;padding:8px 20px;font-size:16px;display:inline-block}.classroom-header{background:linear-gradient(90deg,#0a1628,#0f2038);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.header-logo{background:var(--brand);border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.header-title{color:#fff;font-size:14px;font-weight:600}.mode-badge{border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600}.mode-lecture{color:#818cf8;background:#6366f126}.mode-practice{color:#14b8a6;background:#0d9b8a26}.header-btn{color:#ffffffd9;cursor:pointer;height:28px;transition:all var(--transition);background:#ffffff14;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.header-btn:hover{color:#fff;background:#ffffff24}.header-btn.active{color:#14b8a6;background:#0d9b8a40;border-color:#0d9b8a66}.header-btn.primary{background:linear-gradient(135deg, var(--brand), var(--brand-light));color:#fff;border-color:#0000;box-shadow:0 2px 8px #0d9b8a4d}.header-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0d9b8a73}.student-name{color:#ffffffb3;font-size:13px}.py-status{border-radius:4px;padding:2px 8px;font-size:11px}.status-loading{color:#f59e0b}.status-ready{color:#22c55e}.status-running{color:#3b82f6}.loading-overlay{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f5f7faf2;justify-content:center;align-items:center;display:flex;position:fixed;inset:48px 0 0}.loading-content{text-align:center;animation:.3s fadeIn}.loading-content p{color:var(--text);font-weight:600}.loading-sub{margin-top:6px;font-size:13px;color:var(--text-secondary)!important;font-weight:400!important}.classroom-body{background:var(--border);flex:1;gap:1px;display:flex;overflow:hidden}.editor-output-column{background:var(--border);flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.editor-panel,.output-panel{background:var(--card-bg);flex-direction:column;display:flex}.editor-panel{flex:1;min-height:0;position:relative}.output-panel{flex-shrink:0;height:260px;min-height:0;transition:height .2s cubic-bezier(.4,0,.2,1)}.output-panel.resizing{transition:none}.output-toolbar{cursor:pointer;-webkit-user-select:none;user-select:none}.output-panel.collapsed .output-toolbar:hover{background:#f1f5f9}.output-resize-handle{cursor:ns-resize;z-index:2;background:0 0;flex-shrink:0;height:4px;transition:background .15s;position:relative}.output-resize-handle:hover,.output-panel.resizing+.output-resize-handle{background:var(--brand)}.output-resize-handle:after{content:"";background:var(--border);border-radius:1px;width:32px;height:2px;transition:background .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.output-resize-handle:hover:after{background:#fff}.output-count{color:var(--brand);text-transform:none;letter-spacing:0;margin-left:6px;font-size:11px;font-weight:500}.star-history-modal{flex-direction:column;width:560px;max-height:80vh;display:flex}.sh-loading,.sh-error,.sh-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.sh-error{color:#dc2626}.sh-total-wrap{text-align:center;background:linear-gradient(135deg,#f59e0b14,#fbbf240a);border-radius:14px;margin-bottom:16px;padding:16px 0 20px}.sh-total-num{color:#f59e0b;letter-spacing:2px;font-family:JetBrains Mono,monospace;font-size:56px;font-weight:900;line-height:1}.sh-total-label{color:var(--text-secondary);letter-spacing:1px;margin-top:6px;font-size:13px}.sh-breakdown{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}@media (width<=640px){.sh-breakdown{grid-template-columns:1fr}}.sh-section{border-radius:10px;padding:12px 14px}.sh-section.positive{background:#f59e0b0f}.sh-section.negative{background:#ef44440a}.sh-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:6px;margin:0 0 8px;font-size:11px;font-weight:700;display:flex}.sh-cat-list{flex-direction:column;gap:4px;display:flex}.sh-cat-row{justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;display:flex}.sh-cat-name{color:var(--text)}.sh-cat-val{font-family:JetBrains Mono,monospace;font-weight:700}.sh-cat-val.positive{color:#f59e0b}.sh-cat-val.negative{color:#dc2626}.sh-timeline-wrap{flex:1;margin-top:4px;overflow-y:auto}.sh-timeline-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin:0 0 8px;font-size:11px;font-weight:700}.sh-timeline{flex-direction:column;gap:6px;display:flex}.sh-event{background:#00000005;border-left:3px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.sh-event.positive{background:#f59e0b0a;border-left-color:#f59e0b}.sh-event.negative{background:#ef44440a;border-left-color:#dc2626}.sh-event-badge{text-align:center;border-radius:6px;flex-shrink:0;min-width:36px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:800}.sh-event.positive .sh-event-badge{color:#fff;background:#f59e0b}.sh-event.negative .sh-event-badge{color:#fff;background:#dc2626}.sh-event-main{flex:1;min-width:0}.sh-event-cat{color:var(--text);font-size:13px;font-weight:600}.sh-event-sub{color:var(--text-secondary);flex-wrap:wrap;gap:4px;margin-top:2px;font-size:11px;display:flex}.sh-event-course{color:var(--brand);font-weight:600}.sh-event-reason{color:var(--text-secondary)}.sh-event-time{color:var(--text-secondary);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:11px}.sh-tab-row{background:#0000000a;border-radius:10px;gap:4px;margin:0 0 14px;padding:4px;display:flex}.sh-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.sh-tab:hover{color:var(--text)}.sh-tab.active{color:var(--brand);background:#fff;box-shadow:0 1px 3px #00000014}.my-position{text-align:center;color:#fff;border-radius:14px;margin-bottom:14px;padding:18px 20px;position:relative;overflow:hidden}.my-position.tier-top{background:linear-gradient(135deg,#f59e0b,#fbbf24 60%,#fde047);box-shadow:0 8px 24px #f59e0b40}.my-position.tier-upper{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 8px 24px #6366f133}.my-position.tier-middle{background:linear-gradient(135deg,#14b8a6,#0ea5e9);box-shadow:0 8px 24px #14b8a633}.my-position.tier-growing{background:linear-gradient(135deg,#64748b,#94a3b8);box-shadow:0 8px 24px #64748b33}.mp-tier-label{letter-spacing:2px;text-shadow:0 2px 6px #00000026;font-size:26px;font-weight:800}.mp-approx{opacity:.9;margin-top:4px;font-size:14px}.mp-stars{color:#ffffffd9;margin-top:10px;font-size:13px}.mp-stars strong{color:#fff;margin-left:4px;font-family:JetBrains Mono,monospace;font-size:20px}.lb-section{margin-bottom:18px}.lb-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:6px;margin:0 0 10px;font-size:11px;font-weight:700;display:flex}.lb-empty{text-align:center;color:var(--text-secondary);padding:24px 16px;font-size:13px}.lb-top-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.lb-top-card{text-align:center;border:1.5px solid var(--border);background:#00000005;border-radius:12px;padding:14px 8px}.lb-top-card.rank-0{background:linear-gradient(135deg,#f59e0b26,#fbbf2414);border-color:#f59e0b66;transform:translateY(-4px)}.lb-top-card.rank-1{background:linear-gradient(135deg,#94a3b826,#cbd5e114);border-color:#94a3b866}.lb-top-card.rank-2{background:linear-gradient(135deg,#a855f71f,#c084fc14);border-color:#a855f74d}.lb-top-medal{margin-bottom:4px;font-size:32px;line-height:1}.lb-top-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:14px;font-weight:700;overflow:hidden}.lb-top-stars{color:#d97706;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.lb-recent-list{flex-direction:column;gap:4px;display:flex}.lb-recent-row{background:#f59e0b0a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.lb-recent-amount{color:#fff;background:#f59e0b;border-radius:5px;flex-shrink:0;padding:2px 8px;font-family:JetBrains Mono,monospace;font-weight:800}.lb-recent-name{color:var(--text);flex-shrink:0;font-weight:700}.lb-recent-cat{color:var(--text-secondary)}.lb-recent-course{color:var(--brand);font-weight:600}.lb-recent-time{color:var(--text-secondary);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px}.ach-overlay{z-index:540;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#00000080;justify-content:center;align-items:center;animation:.22s ease-out achOverlayIn;display:flex;position:fixed;inset:0}@keyframes achOverlayIn{0%{opacity:0}to{opacity:1}}.ach-card{text-align:center;cursor:default;background:linear-gradient(160deg,#fff7e4 0%,#fff 55%,#ecfeff 100%);border-radius:22px;min-width:320px;padding:32px 44px 36px;animation:.4s cubic-bezier(.22,1.3,.36,1) achCardIn;position:relative;box-shadow:0 30px 70px #f59e0b4d,0 0 0 1px #f59e0b26}@keyframes achCardIn{0%{opacity:0;transform:translateY(-30px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.ach-eyebrow{letter-spacing:3px;color:#d97706;text-transform:uppercase;margin-bottom:14px;font-size:12px;font-weight:700}.ach-icon-wrap{width:96px;height:96px;margin:0 auto 18px;position:relative}.ach-icon-ring{background:conic-gradient(#fde047,#fbbf24,#f59e0b,#fde047);border-radius:50%;padding:3px;animation:2.4s linear infinite achRingSpin;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 44px,#000 44px);mask:radial-gradient(circle,#0000 44px,#000 44px)}@keyframes achRingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ach-icon{filter:drop-shadow(0 6px 12px #f59e0b73);justify-content:center;align-items:center;font-size:54px;animation:.9s ease-out achIconBounce;display:flex;position:absolute;inset:0}@keyframes achIconBounce{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.2)}to{transform:scale(1)}}.ach-title{color:#1a1a2e;letter-spacing:-.3px;margin-bottom:6px;font-size:22px;font-weight:900}.ach-desc{color:var(--text-secondary);font-size:13px;font-weight:500}.lvl-overlay{z-index:560;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:radial-gradient(circle,#f59e0b59,#000000b8 70%);justify-content:center;align-items:center;animation:.25s ease-out achOverlayIn;display:flex;position:fixed;inset:0}.lvl-card{--lvl-color:#f59e0b;cursor:default;justify-content:center;align-items:center;width:340px;height:340px;animation:.55s cubic-bezier(.22,1.3,.36,1) lvlCardIn;display:flex;position:relative}@keyframes lvlCardIn{0%{opacity:0;transform:scale(.7)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.lvl-beam-rot{pointer-events:none;animation:4.5s linear infinite lvlBeamRotate;position:absolute;inset:0}@keyframes lvlBeamRotate{to{transform:rotate(360deg)}}.lvl-beam{background:linear-gradient(90deg, transparent, var(--lvl-color), transparent);opacity:.5;filter:blur(2px);width:480px;height:60px;margin:-30px 0 0 -240px;position:absolute;top:50%;left:50%}.lvl-beam-2{transform:rotate(60deg)}.lvl-content{z-index:2;text-align:center;padding:40px;position:relative}.lvl-eyebrow{letter-spacing:6px;color:#ffffffd9;text-shadow:0 2px 8px #00000080;margin-bottom:10px;font-size:13px;font-weight:900}.lvl-num{color:#fff;text-shadow:0 0 20px var(--lvl-color), 0 0 40px var(--lvl-color), 0 4px 20px #0006;letter-spacing:-2px;font-family:JetBrains Mono,monospace;font-size:88px;font-weight:900;line-height:1;animation:1.4s ease-in-out infinite lvlNumPulse}@keyframes lvlNumPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.lvl-title{color:var(--lvl-color);letter-spacing:2px;text-shadow:0 2px 6px #0000004d;margin-top:12px;font-size:20px;font-weight:800}@media (prefers-reduced-motion:reduce){.ach-overlay,.ach-card,.ach-icon-ring,.ach-icon,.lvl-overlay,.lvl-card,.lvl-beam-rot,.lvl-num{animation:none!important}}.rcall-spot{z-index:520;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:radial-gradient(circle,#0d9b8a59,#000000bf 70%);justify-content:center;align-items:center;animation:.3s ease-out rcallSpotIn,.5s ease-in 3.5s forwards rcallSpotFade;display:flex;position:fixed;inset:0}@keyframes rcallSpotIn{0%{opacity:0}to{opacity:1}}@keyframes rcallSpotFade{0%{opacity:1}to{opacity:0}}.rcall-spot-inner{text-align:center;color:#fff;padding:40px;animation:.6s cubic-bezier(.22,1.2,.36,1) rcallSpotBounce;position:relative}@keyframes rcallSpotBounce{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.rcall-spot-ring{pointer-events:none;border:2px solid #0d9b8a73;border-radius:50%;width:360px;height:360px;margin:-180px 0 0 -180px;animation:1.5s ease-out infinite rcallRingPulse;position:absolute;top:50%;left:50%}.rcall-spot-ring:after{content:"";border:2px solid #14b8a659;border-radius:50%;animation:1.5s ease-out .3s infinite rcallRingPulse;position:absolute;inset:20px}@keyframes rcallRingPulse{0%{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.25)}}.rcall-spot-emoji{filter:drop-shadow(0 6px 20px #0d9b8a99);font-size:88px;line-height:1;animation:1.8s ease-in-out infinite rcallEmojiFloat}@keyframes rcallEmojiFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.rcall-spot-title{letter-spacing:-.5px;background:linear-gradient(135deg,#a7f3d0,#fff,#fde68a);-webkit-text-fill-color:transparent;text-shadow:0 4px 20px #0006;-webkit-background-clip:text;background-clip:text;margin-top:20px;font-size:48px;font-weight:900}.rcall-spot-sub{color:#ffffffd9;letter-spacing:.5px;margin-top:12px;font-size:16px;font-weight:500}.rcall-banner{z-index:480;color:#fff;letter-spacing:.3px;background:linear-gradient(135deg,#0d9b8af2,#14b8a6f2);border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:14px;font-weight:600;animation:.35s cubic-bezier(.22,1.2,.36,1) rcallBannerIn,.4s ease-in 2.1s forwards rcallBannerOut;display:inline-flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0d9b8a73}@keyframes rcallBannerIn{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}@keyframes rcallBannerOut{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-12px)}}.rcall-banner-icon{font-size:18px}.rcall-banner-text b{font-weight:800}@media (prefers-reduced-motion:reduce){.rcall-spot,.rcall-spot-inner,.rcall-spot-ring,.rcall-spot-emoji,.rcall-banner{animation:none!important}}.pkg-section{border-top:1px solid var(--border-color,#e2e8f0);flex-direction:column;flex-shrink:0;max-height:280px;padding:0;display:flex}.pkg-section-header{cursor:pointer;width:100%;color:var(--text-secondary,#64748b);background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.pkg-section-header:hover{background:#0d9b8a0f}.pkg-section-icon{color:#0d9b8a}.pkg-section-title{text-align:left;color:var(--text-primary,#1e293b);flex:1}.pkg-section-count{color:var(--text-secondary,#64748b);background:#64748b14;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;font-weight:500;display:inline-flex}.pkg-count-stdlib{opacity:.85;font-size:10px;font-weight:400}.pkg-list{padding:2px 8px 8px;overflow-y:auto}.pkg-item{background:#64748b0a;border-left:3px solid #0000;border-radius:6px;margin-bottom:4px;padding:8px 10px;transition:background .15s}.pkg-item:hover{background:#0d9b8a0f}.pkg-loaded{border-left-color:#22c55e}.pkg-loading{border-left-color:#f59e0b}.pkg-failed{border-left-color:#ef4444}.pkg-pending{border-left-color:#cbd5e1}.pkg-item-row{align-items:center;gap:6px;display:flex}.pkg-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.pkg-item-name{color:var(--text-primary,#1e293b);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;overflow:hidden}.pkg-copy-btn{cursor:pointer;color:var(--text-secondary,#64748b);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:3px;transition:background .15s,color .15s}.pkg-copy-btn:hover:not(:disabled){color:#0d9b8a;background:#0d9b8a1f}.pkg-copy-btn:disabled{opacity:.35;cursor:not-allowed}.pkg-uninstall-btn{cursor:pointer;color:var(--text-secondary,#94a3b8);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:3px;transition:background .15s,color .15s}.pkg-uninstall-btn:hover{color:#ef4444;background:#ef44441f}.pkg-item-desc{color:var(--text-secondary,#64748b);margin-top:3px;padding-left:20px;font-size:11px;line-height:1.4}.pkg-item-example{color:#e2e8f0;white-space:nowrap;-webkit-user-select:all;user-select:all;background:#0f172a;border-radius:4px;margin-top:4px;margin-left:20px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:block;overflow-x:auto}.pkg-dot{background:#cbd5e1;border-radius:50%;width:8px;height:8px;display:inline-block}.pkg-stdlib{border-left-color:#3b82f6}.pkg-stdlib-hint{color:var(--text-secondary,#64748b);padding:6px 10px 8px;font-size:11px;line-height:1.5}.pkg-stdlib-footer{color:var(--text-secondary,#94a3b8);border-top:1px dashed #64748b33;margin-top:4px;padding:8px 10px 4px;font-size:11px;font-style:italic;line-height:1.5}.pkg-section-header-wrap{border-bottom:1px solid #0000;align-items:stretch;display:flex}.pkg-section-header-wrap .pkg-section-header{flex:1}.pkg-add-btn{cursor:pointer;color:var(--text-secondary,#64748b);background:0 0;border:none;border-left:1px solid #64748b1a;justify-content:center;align-items:center;padding:0 10px;transition:background .15s,color .15s;display:flex}.pkg-add-btn:hover:not(:disabled){color:#0d9b8a;background:#0d9b8a1a}.pkg-add-btn:disabled{opacity:.35;cursor:not-allowed}.pkg-install-form{background:#3b82f60d;border-bottom:1px solid #3b82f626;align-items:center;gap:4px;margin-bottom:6px;padding:8px 10px;display:flex}.pkg-install-input{background:#fff;border:1px solid #64748b33;border-radius:4px;flex:1;min-width:0;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.pkg-install-input:focus{border-color:#3b82f6;outline:none}.pkg-install-submit{color:#fff;cursor:pointer;background:#0d9b8a;border:none;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600}.pkg-install-submit:hover:not(:disabled){background:#0b8577}.pkg-install-submit:disabled{opacity:.4;cursor:not-allowed}.pkg-size-hint{color:var(--text-secondary,#94a3b8);margin-top:-4px;padding:0 12px 6px;font-size:10px}.pkg-installing-wrap{background:#f59e0b14;border-left:3px solid #f59e0b;border-radius:4px;margin:4px 6px 8px;padding:8px 10px}.pkg-installing-hint{color:#b45309;align-items:center;gap:6px;font-size:11px;display:flex}.pkg-installing-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pkg-installing-size{opacity:.7;white-space:nowrap;font-size:10px;font-weight:500}.pkg-progress-bar{background:#f59e0b33;border-radius:2px;height:3px;margin-top:6px;position:relative;overflow:hidden}.pkg-progress-bar-fill{background:linear-gradient(90deg,#f59e0b,#ef4444,#f59e0b) 0 0/200% 100%;border-radius:2px;width:35%;height:100%;animation:1.4s ease-in-out infinite pkg-progress-slide,1.8s linear infinite pkg-progress-shimmer;position:absolute;top:0;left:0}@keyframes pkg-progress-slide{0%{left:-35%}to{left:100%}}@keyframes pkg-progress-shimmer{0%{background-position:0 0}to{background-position:-200% 0}}.pkg-queue-hint{color:#b45309;opacity:.8;margin-top:6px;font-size:10px;font-style:italic}.pkg-install-error{background:#ef44440f;border-left:3px solid #ef4444;border-radius:4px;gap:8px;margin:4px 6px 8px;padding:10px;display:flex}.pkg-install-error-body{color:#991b1b;flex:1;font-size:11px;line-height:1.5}.pkg-install-error-msg{word-break:break-all;background:#0000000d;border-radius:3px;max-height:80px;margin-top:4px;padding:4px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow-y:auto}.pkg-install-error-hint{color:var(--text-secondary,#64748b);margin-top:4px;font-size:10px}.pkg-limit-hint{color:#991b1b;background:#ef44440f;border-left:3px solid #ef4444;border-radius:4px;margin:4px 6px 8px;padding:8px 10px;font-size:11px;line-height:1.5}.pkg-manual-badge{color:#2563eb;letter-spacing:.5px;background:#3b82f61f;border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:600}.icon-ok{color:#22c55e}.icon-fail{color:#ef4444}.icon-spin{color:#f59e0b;animation:.9s linear infinite pkg-section-spin}@keyframes pkg-section-spin{to{transform:rotate(360deg)}}.pkg-dialog{flex-direction:column;width:min(820px,94vw);max-height:min(86vh,720px);padding:0;display:flex}.pkg-dialog .modal-head{border-bottom:1px solid #64748b1f;padding:16px 20px}.pkg-dialog .modal-head h3{color:var(--text-primary,#1e293b);align-items:center;margin:0;font-size:16px;font-weight:600;display:flex}.pkg-dialog-subbar{background:#f1f5f980;border-bottom:1px solid #64748b14;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.pkg-dialog-search{max-width:320px;color:var(--text-secondary,#64748b);background:#fff;border:1px solid #64748b33;border-radius:6px;flex:1;align-items:center;gap:8px;padding:6px 10px;display:flex}.pkg-dialog-search:focus-within{border-color:#0d9b8a}.pkg-dialog-search input{background:0 0;border:none;outline:none;flex:1;font-size:13px}.pkg-dialog-quota{color:var(--text-secondary,#64748b);white-space:nowrap;font-size:12px}.pkg-dialog-quota strong{color:var(--text-primary,#1e293b)}.pkg-dialog-quota .low{color:#f59e0b}.pkg-dialog-body{flex:1;padding:16px 20px;overflow-y:auto}.pkg-group{margin-bottom:20px}.pkg-group:last-child{margin-bottom:0}.pkg-group-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pkg-group-label{color:#0d9b8a;letter-spacing:.3px;text-transform:uppercase;font-size:12px;font-weight:600}.pkg-group-selectall{color:#0d9b8a;cursor:pointer;background:0 0;border:1px solid #0d9b8a4d;border-radius:4px;padding:2px 8px;font-size:11px;transition:background .15s}.pkg-group-selectall:hover{background:#0d9b8a14}.pkg-group-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.pkg-card{cursor:pointer;background:#fff;border:1px solid #64748b26;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.pkg-card:hover:not(.disabled){background:#0d9b8a0a;border-color:#0d9b8a}.pkg-card.picked{background:#0d9b8a14;border-color:#0d9b8a;box-shadow:0 0 0 1px #0d9b8a}.pkg-card.disabled{cursor:not-allowed;opacity:.6;background:#64748b0a}.pkg-card input[type=checkbox]{cursor:inherit;accent-color:#0d9b8a;margin-top:2px}.pkg-card-body{flex:1;min-width:0}.pkg-card-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:3px;display:flex}.pkg-card-name{color:var(--text-primary,#1e293b);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600}.pkg-card-size{color:var(--text-secondary,#94a3b8);background:#64748b14;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:500}.pkg-card-tag{letter-spacing:.3px;border-radius:3px;align-items:center;gap:3px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-flex}.pkg-card-tag.installed{color:#16a34a;background:#22c55e1f}.pkg-card-tag.recommended{color:#d97706;background:#f59e0b1f}.pkg-card-desc{color:var(--text-secondary,#64748b);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.pkg-empty{text-align:center;color:var(--text-secondary,#94a3b8);padding:40px 20px;font-size:13px}.pkg-custom-group{border-top:1px dashed #64748b33;padding-top:16px}.pkg-custom-row{gap:8px;margin-bottom:8px;display:flex}.pkg-custom-input{border:1px solid #64748b33;border-radius:6px;flex:1;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.pkg-custom-input:focus{border-color:#0d9b8a;outline:none}.pkg-custom-add{cursor:pointer;color:#0d9b8a;background:#fff;border:1px solid #0d9b8a66;border-radius:6px;align-items:center;gap:4px;padding:6px 14px;font-size:12px;font-weight:500;transition:background .15s;display:flex}.pkg-custom-add:hover:not(:disabled){background:#0d9b8a14}.pkg-custom-add:disabled{opacity:.4;cursor:not-allowed}.pkg-custom-hint{color:var(--text-secondary,#94a3b8);align-items:flex-start;gap:6px;padding:4px 2px;font-size:11px;line-height:1.5;display:flex}.pkg-custom-hint svg{flex-shrink:0;margin-top:2px}.pkg-custom-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.pkg-custom-chip{color:#2563eb;background:#3b82f61a;border-radius:4px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:inline-flex}.pkg-custom-chip button{cursor:pointer;color:inherit;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px;display:flex}.pkg-custom-chip button:hover{background:#3b82f633}.pkg-dialog-footer{background:#f8fafccc;border-top:1px solid #64748b1f;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.pkg-dialog-summary{color:var(--text-secondary,#64748b);font-size:13px}.pkg-dialog-summary strong{color:var(--text-primary,#0d9b8a);margin:0 2px;font-size:15px}.pkg-dialog-summary-empty{color:var(--text-secondary,#94a3b8);font-style:italic}.pkg-dialog-size{color:var(--text-secondary,#94a3b8);margin-left:4px}.pkg-dialog-exceed{color:#ef4444;margin-left:8px;font-weight:500}.pkg-dialog-actions{gap:8px;display:flex}.pkg-dialog-submit{align-items:center;gap:6px;padding:7px 16px;font-weight:600;display:inline-flex}.classroom{background:var(--bg);flex-direction:column;height:100vh;display:flex}.classroom.locked button:not(.ctx-item),.classroom.locked input:not([readonly]):not([data-allow-lecture]),.classroom.locked textarea:not([readonly]){opacity:.55;filter:grayscale(.3);pointer-events:none!important;cursor:not-allowed!important}.classroom.locked .file-item,.classroom.locked .resource-item,.classroom.locked .image-tile{opacity:.75;pointer-events:none!important}.classroom{--brand:#0d9b8a;--brand-light:#14b8a6;--brand-dark:#0a7d6f;--brand-glow:#0d9b8a26;--bg:#f5f7fa;--card-bg:#fff;--text:#1a1a2e;--text-sec:#64748b;--text-secondary:#64748b;--border:#e2e8f0;--border-dark:#cbd5e1;--editor-bg:#fff;--transition:.15s ease-in-out;background:var(--bg);height:100vh;color:var(--text);flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;overflow:hidden}.classroom-header{background:var(--card-bg);height:48px;color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px;display:flex;box-shadow:0 1px 2px #00000005}.header-left,.header-right{align-items:center;gap:10px;display:flex}.header-title{font-size:14px;font-weight:600}.mode-badge{border:1px solid var(--border);background:#0000000a;border-radius:999px;padding:3px 8px;font-size:11px}.mode-badge.mode-lecture{color:#d97706;background:#d977060d;border-color:#d9770633}.mode-badge.mode-practice{color:var(--brand);background:#0d9b8a0d;border-color:#0d9b8a33}.ws-status{border-radius:4px;padding:2px 6px;font-size:11px}.ws-status.disconnected{color:#e11d48;background:#e11d481a}.student-name{color:var(--text-secondary);font-size:13px;font-weight:500}.py-status{background:#0000000a;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.py-status.status-loading{color:#d97706}.py-status.status-ready{color:var(--brand)}.py-status.status-running{color:#2563eb}.py-status.status-error{color:#e11d48}.header-btn{color:var(--text);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);background:#fff;border-radius:6px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #00000005}.header-btn:hover{border-color:var(--border-dark);background:#f4f4f5}.header-btn.active{border-color:var(--brand);color:var(--brand);box-shadow:none;background:#0d9b8a0d}.header-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.header-btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.classroom-body{flex:1;min-height:0;display:flex}.editor-output-column{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.classroom-editor-area{flex:1;min-width:0;min-height:0;display:flex}.classroom-editor-area>.editor-core{flex:1}.editor-panel{background:var(--editor-bg);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.editor-wrapper{flex:1;min-height:0;overflow:hidden}.editor-empty{color:#94a3b8;flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.editor-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;z-index:5;background:#282c34b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:36px 0 0}.overlay-text{color:#1a1a2e;background:#fbbf24f2;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500}.panel-toolbar{background:var(--bg);height:36px;color:var(--text-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;display:flex}.panel-title{color:var(--text);font-size:12px;font-weight:500}.output-count{color:var(--text-secondary);margin-left:4px}.toolbar-actions{align-items:center;gap:4px;display:flex}.font-size-group{background:#0000000a;border:1px solid #00000014;border-radius:4px;align-items:center;gap:2px;padding:2px;display:inline-flex}.font-size-label{color:var(--text);text-align:center;min-width:18px;font-size:11px}.output-resize-handle{cursor:ns-resize;z-index:3;background:0 0;flex-shrink:0;height:4px;position:relative}.output-resize-handle:hover{background:var(--brand)}.output-panel{color:#e2e8f0;background:#0f172a;border-top:1px solid #1e293b;flex-direction:column;flex-shrink:0;display:flex}.output-panel.collapsed{height:auto}.output-panel.collapsed .panel-toolbar{cursor:pointer}.output-panel.resizing{-webkit-user-select:none;user-select:none}.output-toolbar{background:#0f172a}.output-content{white-space:pre-wrap;word-break:break-word;flex:1;min-height:0;padding:8px 12px;font-family:JetBrains Mono,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}.output-empty{color:#475569;padding:12px 0;font-style:italic}.output-line{display:inline}.output-line.output-stdout{color:#e2e8f0}.output-line.output-stderr{color:#fca5a5}.output-line.output-error{color:#ef4444}.output-line.output-info{color:#34d399}.output-line.output-cmd{color:#60a5fa}.input-prompt-bar,.console-input-bar{background:#1e293b;border-top:1px solid #334155;align-items:center;gap:8px;padding:6px 12px;display:flex}.console-input-bar{z-index:1001;border-radius:6px;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 20px #0006}.prompt-label{color:#fbbf24;font-family:JetBrains Mono,monospace;font-size:12px}.prompt-input{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:4px;outline:none;flex:1;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.prompt-input:focus{border-color:var(--brand)}.classroom .btn{cursor:pointer;transition:background var(--transition), opacity var(--transition);border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:12px;display:inline-flex}.classroom .btn:disabled{opacity:.5;cursor:not-allowed}.classroom .btn.btn-run{background:var(--brand);color:#fff}.classroom .btn.btn-run:hover:not(:disabled){background:var(--brand-dark)}.classroom .btn.btn-stop{color:#fff;background:#ef4444}.classroom .btn.btn-stop:hover:not(:disabled){background:#dc2626}.classroom .btn.btn-cancel{color:#1a1a2e;background:#e2e8f0}.classroom .btn.btn-cancel:hover:not(:disabled){background:#cbd5e1}.classroom .btn.btn-submit{background:var(--brand);color:#fff}.classroom .btn.btn-submit:hover:not(:disabled){background:var(--brand-dark)}.classroom .btn.btn-small{padding:3px 8px;font-size:11px}.classroom .icon-btn,.classroom .icon-btn-sm{color:#cbd5e1;cursor:pointer;transition:background var(--transition);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.classroom .icon-btn{padding:4px 6px}.classroom .icon-btn-sm{padding:2px 4px}.classroom .icon-btn:hover:not(:disabled),.classroom .icon-btn-sm:hover:not(:disabled){background:#ffffff14}.classroom .icon-btn:disabled,.classroom .icon-btn-sm:disabled{opacity:.4;cursor:not-allowed}.classroom .icon-btn-sm.danger:hover:not(:disabled){color:#fca5a5;background:#ef444426}.loading-overlay{z-index:9999;color:#e2e8f0;background:#0f172ae6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-content{text-align:center}.loading-spinner{border:4px solid #ffffff1a;border-top-color:var(--brand);border-radius:50%;width:48px;height:48px;margin:0 auto 16px;animation:1s linear infinite spin}.loading-sub{color:#94a3b8;margin-top:8px;font-size:12px}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast-container>*{pointer-events:auto}.editor-root{--tool-brand:#0d9b8a;--tool-brand-light:#14b8a6;--tool-brand-deep:#0a7f70;--tool-brand-dim:#0d9b8a1f;--tool-bg:#f7f9fb;--tool-bg-elevated:#fff;--tool-bg-deep:#eef2f6;--tool-text:#1e293b;--tool-text-dim:#475569;--tool-text-mute:#94a3b8;--tool-border:#e2e8f0;--tool-border-strong:#cbd5e1;--tool-danger:#dc2626;background:var(--tool-bg);width:100vw;height:100vh;color:var(--tool-text);box-sizing:border-box;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;display:flex}.editor-root *,.editor-root :before,.editor-root :after{box-sizing:border-box}.topbar{border-bottom:1px solid var(--tool-border);z-index:10;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:50px;padding:0 16px;display:flex;box-shadow:0 1px 3px #0f172a0a}.topbar-left{align-items:center;gap:10px;min-width:0;display:flex}.topbar-product{color:var(--tool-brand-deep);background:var(--tool-brand-dim);letter-spacing:.5px;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13.5px;font-weight:700;display:inline-flex}.topbar-sep{color:var(--tool-text-mute);-webkit-user-select:none;user-select:none;font-size:13px}.topbar-title{color:var(--tool-text-dim);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;align-items:center;gap:4px;max-width:320px;padding:4px 8px;font-size:13.5px;transition:all .15s;display:inline-flex;overflow:hidden}.topbar-title:hover{color:var(--tool-text);background:#f1f5f9}.topbar-title:after{content:"✎";opacity:0;color:var(--tool-text-mute);margin-left:4px;font-size:11px;transition:opacity .15s}.topbar-title:hover:after{opacity:.7}.topbar-title-input{border:1.5px solid var(--tool-brand);color:var(--tool-text);width:240px;box-shadow:0 0 0 3px var(--tool-brand-dim);background:#fff;border-radius:5px;outline:none;padding:4px 10px;font-size:13.5px}.topbar-right{align-items:center;gap:8px;display:flex}.topbar-right .ant-btn{border-radius:6px;height:30px;padding:0 12px;font-size:13px;font-weight:500;transition:all .15s}.topbar-right .ant-btn-primary{background:linear-gradient(135deg, var(--tool-brand), var(--tool-brand-light));color:#fff;border:none;box-shadow:0 1px 3px #0d9b8a40}.topbar-right .ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0d9b8a59}.topbar-right .ant-btn-dangerous{color:#fff;background:linear-gradient(135deg,#dc2626,#ef4444);border:none;box-shadow:0 1px 3px #dc262640}.topbar-right .ant-btn-default{border:1px solid var(--tool-border-strong);color:var(--tool-text-dim);background:#fff}.topbar-right .ant-btn-default:hover{border-color:var(--tool-brand);color:var(--tool-brand-deep);background:#f8fafc}.topbar-avatar{background:linear-gradient(135deg, var(--tool-brand), var(--tool-brand-light));color:#fff;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-left:4px;font-size:12.5px;font-weight:700;text-decoration:none;transition:all .15s;display:flex;overflow:hidden}.topbar-avatar:hover{border-color:var(--tool-brand);transform:scale(1.06)}.topbar-avatar img{object-fit:cover;width:100%;height:100%}.pane-header{border-bottom:1px solid var(--tool-border);background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:center;height:32px;padding:0 12px;display:flex}.pane-header-label{color:var(--tool-text-dim);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:inline-flex;overflow:hidden}.pane-header-label:before{content:"";background:var(--tool-brand);border-radius:2px;flex-shrink:0;width:3px;height:12px}.pane-header-btn{color:var(--tool-text-mute);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:12px;line-height:1;transition:all .15s}.pane-header-btn:hover{color:var(--tool-brand-deep);background:var(--tool-brand-dim)}.split-divider{background:var(--tool-border);flex-shrink:0;transition:background .15s;position:relative}.split-divider:hover{background:var(--tool-brand)}.ai-assistant{background:#fff;flex-direction:column;height:100%;min-height:0;display:flex}.ai-header{border-bottom:1px solid var(--tool-border);height:36px;color:var(--tool-brand-deep);letter-spacing:.3px;background:linear-gradient(135deg,#0d9b8a14,#14b8a60a);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;font-size:12px;font-weight:600;display:flex}.ai-messages{background:#fbfcfd;flex:1;min-height:0;padding:12px;overflow-y:auto}.ai-messages::-webkit-scrollbar{width:6px}.ai-messages::-webkit-scrollbar-thumb{background:var(--tool-border-strong);border-radius:3px}.ai-messages::-webkit-scrollbar-thumb:hover{background:var(--tool-text-mute)}.ai-empty{color:var(--tool-text-mute);text-align:center;padding-top:32px;font-size:12.5px;line-height:1.9}.ai-msg-user{background:var(--tool-brand-dim);white-space:pre-wrap;color:var(--tool-text);border:1px solid #0d9b8a40;border-radius:12px 12px 4px;margin-bottom:10px;margin-left:12%;padding:10px 14px;font-size:13px;line-height:1.6}.ai-msg-assistant{border:1px solid var(--tool-border);color:var(--tool-text);background:#fff;border-radius:12px 12px 12px 4px;margin-bottom:10px;margin-right:12%;padding:10px 14px;font-size:13px;line-height:1.65}.ai-msg-assistant p{margin:6px 0}.ai-msg-assistant ul,.ai-msg-assistant ol{margin:6px 0;padding-left:22px}.ai-msg-assistant blockquote{border-left:3px solid var(--tool-brand);color:var(--tool-text-dim);margin:8px 0;padding-left:12px;font-style:italic}.ai-typing{color:var(--tool-text-mute)}.ai-typing:after{content:"▍";color:var(--tool-brand);margin-left:2px;animation:1s steps(2,end) infinite aiTypingBlink}@keyframes aiTypingBlink{0%,50%{opacity:1}51%,to{opacity:0}}.ai-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:10px;padding:8px 12px;font-size:12px}.ai-input-area{border-top:1px solid var(--tool-border);background:#fff;flex-shrink:0;padding:10px}.ai-input-area .ant-input{font-size:13px;transition:all .15s;border-color:var(--tool-border-strong)!important;color:var(--tool-text)!important;background:#fff!important;border-radius:8px!important;padding:8px 12px!important}.ai-input-area .ant-input::placeholder{color:var(--tool-text-mute)!important}.ai-input-area .ant-input:focus,.ai-input-area .ant-input:hover{border-color:var(--tool-brand)!important;box-shadow:0 0 0 3px var(--tool-brand-dim)!important}.ai-code-block{margin:10px 0;position:relative}.ai-code-block pre{border:1px solid var(--tool-border);color:var(--tool-text);background:#f1f5f9;border-radius:8px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.55;overflow-x:auto}.ai-code-block code{font-family:JetBrains Mono,Menlo,Monaco,Consolas,monospace}.ai-code-copy{border:1px solid var(--tool-border-strong);color:var(--tool-text-dim);cursor:pointer;z-index:1;background:#fff;border-radius:5px;padding:3px 8px;font-size:11px;transition:all .15s;position:absolute;top:6px;right:6px}.ai-code-copy:hover{color:var(--tool-brand-deep);border-color:var(--tool-brand);background:var(--tool-brand-dim)}.ai-inline-code{background:var(--tool-brand-dim);color:var(--tool-brand-deep);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,Menlo,Monaco,Consolas,monospace;font-size:.88em}.terminal-container{background:#f8fafc;height:100%;padding:6px}.terminal-container .xterm{height:100%}.preview-iframe{background:#fff;border:none;width:100%;height:100%}.scratch-pane{flex:1;width:100%}.teacher-course-card{transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000000f}.teacher-course-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #11b19d26;border-color:#0000!important}.teacher-course-card:hover .teacher-course-card-cover{transform:scale(1.06)}.teacher-course-row{transition:all .25s;box-shadow:0 1px 4px #0000000a}.teacher-course-row:hover{transform:translateY(-1px);box-shadow:0 4px 12px #11b19d1f;border-color:#d1f0eb!important}.recent-teaching-scroll::-webkit-scrollbar{height:4px}.recent-teaching-scroll::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:2px}.recent-teaching-scroll::-webkit-scrollbar-track{background:0 0}.recent-course-card{transition:all .3s;box-shadow:0 2px 8px #0000000f}.recent-course-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #11b19d2e;border-color:#b7ebe4!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.teacher-course-card,.teacher-course-row{animation:.4s both fadeInUp}.teacher-course-card:nth-child(2),.teacher-course-row:nth-child(2){animation-delay:50ms}.teacher-course-card:nth-child(3),.teacher-course-row:nth-child(3){animation-delay:.1s}.teacher-course-card:nth-child(4),.teacher-course-row:nth-child(4){animation-delay:.15s}.teacher-course-card:nth-child(5),.teacher-course-row:nth-child(5){animation-delay:.2s}.teacher-course-card:nth-child(6),.teacher-course-row:nth-child(6){animation-delay:.25s}.teacher-course-card:nth-child(7),.teacher-course-row:nth-child(7){animation-delay:.3s}.teacher-course-card:nth-child(8),.teacher-course-row:nth-child(8){animation-delay:.35s}@media (width<=576px){.teacher-course-row .ant-card-body>div{flex-wrap:wrap}}.material-glow-card{cursor:pointer;background:linear-gradient(120deg,#11b19d,#5b8def,#7c5cff,#f0c243,#11b19d) 0 0/300% 300%;border-radius:12px;padding:2px;text-decoration:none;animation:4s linear infinite material-glow-flow;display:block;position:relative;box-shadow:0 4px 16px #11b19d38}@keyframes material-glow-flow{0%{background-position:0%}to{background-position:300%}}@media (prefers-reduced-motion:reduce){.material-glow-card{animation:none}}.material-glow-card-inner{background:#fff;border-radius:10px;align-items:center;gap:14px;padding:16px 20px;transition:background .15s;display:flex}.material-glow-card:hover .material-glow-card-inner{background:#f6fffd}.lesson-rich-text p{margin:0 0 .6em}.lesson-rich-text p:last-child{margin-bottom:0}.lesson-rich-text ol,.lesson-rich-text ul{margin:.4em 0 .8em;padding-left:1.8em}.lesson-rich-text li{margin-bottom:.35em}.lesson-rich-text img{max-width:100%}.live-page{--brand:#0d9b8a;--brand-light:#14b8a6;--brand-dark:#0a7d6f;--brand-glow:#0d9b8a26;--bg:#f5f7fa;--card:#fff;--card-bg:#fff;--text:#1a1a2e;--text-sec:#64748b;--text-secondary:#64748b;--border:#e2e8f0;--dark:#0a1628;--dark-light:#0f2038;--transition:.3s cubic-bezier(.4, 0, .2, 1);background:var(--bg);height:100vh;color:var(--text);flex-direction:column;font-family:Inter,-apple-system,sans-serif;display:flex;overflow:hidden}.live-body{flex:1;min-height:0;display:flex;overflow:hidden}.live-page.roster-collapsed .lss-sidebar{border-left:none;width:0}.live-topbar{border-bottom:1px solid var(--border);z-index:5;background:#fff;flex-shrink:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;height:48px;padding:0 16px;display:grid;position:relative}.ltb-back{width:28px;height:28px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.ltb-back:hover{color:var(--brand);background:#0d9b8a14}.ltb-breadcrumb{color:var(--text-sec);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex;overflow:hidden}.ltb-course{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:600;overflow:hidden}.ltb-class{color:var(--text-sec);text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.ltb-sep{color:var(--border);-webkit-user-select:none;user-select:none;font-weight:800}.ltb-center{justify-content:center;align-items:center;gap:18px;display:flex}.ltb-code{background:#0d9b8a14;border:1px solid #0d9b8a2e;border-radius:8px;align-items:baseline;gap:6px;padding:3px 12px;display:inline-flex}.ltb-code-label{color:var(--brand);letter-spacing:.5px;font-size:11px;font-weight:600}.ltb-code-value{color:var(--brand);letter-spacing:2px;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:800}.ltb-code-action{width:24px;height:24px;color:var(--brand);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;margin-left:2px;transition:all .15s;display:inline-flex}.ltb-code-action:hover{background:#0d9b8a2e;transform:scale(1.05)}.ltb-metrics{align-items:center;gap:14px;display:flex}.ltb-metric{color:var(--text-sec);font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:13px;display:inline-flex}.ltb-metric-btn{cursor:pointer;color:var(--text-sec);background:0 0;border:none;border-radius:999px;padding:4px 8px;font-family:inherit;transition:all .15s}.ltb-metric-btn:hover{color:var(--brand);background:#0d9b8a14}.ltb-metric-btn.highlight{color:var(--brand);background:#0d9b8a1f;font-weight:700;animation:1.8s ease-in-out infinite ltbMetricPulse}@keyframes ltbMetricPulse{0%,to{box-shadow:0 0 #0d9b8a40}50%{box-shadow:0 0 0 4px #0d9b8a14}}.ltb-metric-btn.pulse{color:#b45309;background:#f59e0b2e;animation:.4s ease-in-out 4 ltbMetricFlash}@keyframes ltbMetricFlash{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.ltb-status-pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.ltb-status-pill.ready{color:#6366f1;background:#6366f11f}.ltb-right{align-items:center;gap:8px;display:flex}.ltb-more-btn{width:32px;height:32px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.ltb-more-btn:hover{color:var(--text);background:#0000000d}@media (width<=960px){.ltb-breadcrumb{display:none}}.live-actionbar{border-bottom:1px solid var(--border);z-index:4;background:#f9fbfab3;flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex;position:relative}.live-actionbar-ready{background:#6366f10a;border-bottom:1px solid #6366f11f;justify-content:center}.lab-hint{color:var(--text-sec);letter-spacing:.3px;font-size:13px}.lab-modes{background:#00000008;border-radius:10px;gap:2px;height:36px;padding:3px;display:flex}.lab-mode{--mode-color:#64748b;height:30px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .18s cubic-bezier(.22,1,.36,1);display:inline-flex}.lab-mode:hover{color:var(--text);background:#0000000a}.lab-mode.active{color:var(--mode-color);background:#fff;position:relative;box-shadow:0 1px 3px #00000014}.lab-mode.active:after{content:"";background:var(--mode-color);border-radius:2px;height:2px;position:absolute;bottom:-6px;left:10%;right:10%}.lab-mode-icon{font-size:14px;line-height:1}.lab-modes-group{align-items:center;gap:10px;display:flex}.lab-sub{background:#0000000a;border-radius:10px;align-items:center;gap:2px;padding:3px;animation:.2s cubic-bezier(.22,1,.36,1) labSubIn;display:inline-flex}@keyframes labSubIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.lab-sub-sep{background:var(--border);width:1px;height:18px;margin-right:6px}.lab-sub-btn{color:var(--text-sec);cursor:pointer;letter-spacing:.3px;background:0 0;border:none;border-radius:7px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.lab-sub-btn:hover:not(:disabled):not(.active){color:var(--text);background:#fff9}.lab-sub-btn.active{color:var(--brand);background:#fff;box-shadow:0 1px 3px #0f172a1f}.lab-sub-btn:disabled{opacity:.35;cursor:not-allowed}.lab-tools{gap:6px;display:flex}.lab-tool{border:1px solid var(--border);height:32px;color:var(--text);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:5px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.lab-tool:hover:not(:disabled){border-color:var(--brand);color:var(--brand);transform:translateY(-1px)}.lab-tool:disabled{opacity:.45;cursor:not-allowed}.lab-tool.active{border-color:var(--brand);color:var(--brand);background:#0d9b8a14}.lab-tool.running{color:#dc2626;background:linear-gradient(135deg,#ef44441a,#f59e0b1a);border-color:#ef4444;animation:1.2s ease-in-out infinite labTimerPulse}.lab-tool-countdown{letter-spacing:.5px;text-align:center;min-width:44px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800}@keyframes labTimerPulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 4px #ef44442e}}.random-call-banner{background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid #f59e0b4d;flex-shrink:0;align-items:center;gap:10px;padding:10px 20px;animation:.35s cubic-bezier(.22,1,.36,1) both rcbSlideIn;display:flex}.random-call-banner>svg{color:#d97706;flex-shrink:0}.rcb-label{color:#92400e;font-size:13px;font-weight:600}.rcb-name{color:#78350f;letter-spacing:.5px;font-size:18px;font-weight:800}@keyframes rcbSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.live-main-wrapper{background:linear-gradient(#f7fbfa 0%,#f1f5f9 100%);flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.lma-lesson-strip{color:#475569;background:linear-gradient(135deg,#f0fdf9 0%,#ecfdf5 100%);border-bottom:1px solid #0d9b8a2e;flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:flex}.lma-lesson-strip>svg{color:#0d9b8a;flex-shrink:0}.lma-lesson-strip-label{color:#0a7d6f;font-weight:600}.lma-lesson-strip-title{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;max-width:360px;font-weight:500;overflow:hidden}.lma-lesson-strip-empty{color:#94a3b8;flex:1;font-style:italic}.lma-lesson-strip .ant-btn-link{margin-left:auto;color:#0d9b8a!important}.lma-ready{justify-content:center;align-items:center;min-height:100%;padding:48px 24px;display:flex}.lma-ready-card{text-align:center;background:#fff;border:1px solid #6366f11f;border-radius:18px;max-width:520px;padding:40px 44px;box-shadow:0 16px 48px #6366f124}.lma-ready-badge{color:#6366f1;letter-spacing:1px;background:#6366f11f;border-radius:999px;margin-bottom:16px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-block}.lma-ready-title{color:var(--text);margin:0 0 12px;font-size:24px;font-weight:800}.lma-ready-hint{color:var(--text-sec);margin:0 0 28px;font-size:14px;line-height:1.7}.lma-ready-code{color:var(--brand);letter-spacing:2px;background:#0d9b8a1a;border-radius:6px;padding:2px 10px;font-family:JetBrains Mono,monospace;font-size:17px;font-weight:800}.lma-ready-start{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-light));cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 28px;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 8px 24px #0d9b8a4d}.lma-ready-start:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0d9b8a66}.lma-fallback-hint{color:#6366f1;background:#6366f10f;border-bottom:1px solid #6366f11f;flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.live-popover{z-index:25;border:1px solid var(--border);background:#fff;border-radius:14px;width:380px;padding:14px;animation:.18s ease-out lpIn;position:fixed;box-shadow:0 1px 3px #0000000a,0 20px 48px #00000024}@keyframes lpIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.lp-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.lp-title{color:var(--text);letter-spacing:.5px;font-size:13px;font-weight:700}.lp-close{width:22px;height:22px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.lp-close:hover{color:var(--text);background:#0000000d}.lp-section{margin-bottom:10px}.lp-sub{letter-spacing:.5px;color:var(--text-sec);text-transform:uppercase;margin-bottom:6px;font-size:10.5px;font-weight:700;display:block}.lp-presets{flex-wrap:wrap;gap:5px;display:flex}.lp-preset{border:1px solid var(--border);color:var(--text-sec);cursor:pointer;background:0 0;border-radius:999px;padding:5px 10px;font-family:inherit;font-size:11.5px;font-weight:500;transition:all .12s}.lp-preset:hover,.lp-preset.active{border-color:var(--brand);color:var(--brand);background:#0d9b8a14}.lp-textarea{background:var(--card,#fff);border:1.5px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:10px;outline:none;margin-bottom:10px;padding:10px 12px;font-family:inherit;font-size:13px;transition:border-color .12s}.lp-textarea:focus{border-color:var(--brand)}.lp-duration-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lp-duration-chips{flex-wrap:wrap;gap:4px;display:flex}.lp-chip{border:1px solid var(--border);color:var(--text-sec);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:all .12s}.lp-chip.active,.lp-chip:hover{border-color:var(--brand);color:var(--brand);background:#0d9b8a14}.lp-footer{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:4px;padding-top:8px;display:flex}.lp-submit{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:5px;padding:7px 16px;font-family:inherit;font-size:12.5px;font-weight:700;transition:all .15s;display:inline-flex}.lp-submit:hover:not(:disabled){background:var(--brand-dark);transform:translateY(-1px)}.lp-submit:disabled{opacity:.5;cursor:not-allowed}.lp-submit.danger{background:#dc2626}.lp-submit.danger:hover{background:#b91c1c}.lp-hint{color:var(--text-sec);font-size:11px}.lp-timer-info{color:var(--brand);text-align:center;background:#0d9b8a0f;border-radius:8px;margin-bottom:10px;padding:12px;font-size:12.5px;font-weight:600}.lp-timer-input{align-items:center;gap:8px;display:flex}.lp-timer-input input{border:1px solid var(--border);text-align:center;border-radius:6px;outline:none;width:60px;padding:6px 8px;font-family:inherit;font-size:13px}.lp-timer-input input:focus{border-color:var(--brand)}.lrt-toast{z-index:30;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;font-weight:600;animation:.3s cubic-bezier(.22,1.3,.36,1) lrtSlide,.4s ease-in 2s forwards lrtFade;display:inline-flex;position:fixed;top:140px;right:12px;box-shadow:0 1px 3px #0000000a,0 12px 32px #00000024}@keyframes lrtSlide{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes lrtFade{0%{opacity:1}to{opacity:0;transform:translate(40px)}}.lrt-icon{font-size:14px;line-height:1}.lrt-text{font-variant-numeric:tabular-nums}.lrt-toast.positive{color:#d97706;background:linear-gradient(135deg,#f59e0b24,#fff 60%);border-color:#f59e0b59}.lrt-toast.negative{color:#dc2626;background:linear-gradient(135deg,#ef444424,#fff 60%);border-color:#ef44444d}.lrt-toast.alert{color:#4f46e5;background:linear-gradient(135deg,#6366f124,#fff 60%);border-color:#6366f14d}.lss-sidebar{border-left:1px solid var(--border);background:#fff;flex-direction:column;flex-shrink:0;width:340px;transition:width .25s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}.lss-collapse-strip{border-left:1px solid var(--border);cursor:pointer;width:16px;color:var(--brand);background:#0d9b8a0d;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0;transition:all .2s;display:flex;position:relative}.lss-collapse-strip:hover{background:#0d9b8a1f;width:24px}.lss-strip-count{background:var(--brand);color:#fff;text-align:center;writing-mode:horizontal-tb;border-radius:999px;min-width:14px;padding:1px 4px;font-size:10px;font-weight:700}.lss-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:48px;padding:0 14px;display:flex}.lss-title{color:var(--text);align-items:center;gap:6px;margin-right:auto;font-size:13px;font-weight:700;display:inline-flex}.lss-count{color:var(--brand);background:#0d9b8a1a;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.lss-collapse-btn{width:26px;height:26px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.lss-collapse-btn:hover{color:var(--text);background:#0000000d}.lss-list{flex-direction:column;flex:1;gap:4px;padding:8px 10px 16px;display:flex;overflow-y:auto}.lss-empty{text-align:center;color:var(--text-sec);padding:32px 16px}.lss-empty p{margin:0 0 6px;font-size:13px}.lss-empty-hint{font-size:11.5px}.lss-empty-hint strong{color:var(--brand);letter-spacing:2px;font-family:JetBrains Mono,monospace}.lsi-row{background:0 0;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;transition:background .12s;display:flex}.lsi-row:hover{background:#00000005}.lsi-avatar{color:#fff;background:linear-gradient(135deg,#64748b,#475569);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex;position:relative}.lsi-avatar.focus-active{background:linear-gradient(135deg,#0d9b8a,#14b8a6)}.lsi-avatar.focus-blurred{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.lsi-avatar.focus-hidden{background:linear-gradient(135deg,#ef4444,#f87171)}.lsi-avatar.focus-offline{opacity:.55;background:linear-gradient(135deg,#94a3b8,#cbd5e1)}.lsi-avatar.focus-absent{color:#64748b;opacity:.65;background:linear-gradient(135deg,#cbd5e1,#e2e8f0)}.lsi-main{flex:1;min-width:0}.lsi-name-row{align-items:center;gap:6px;display:flex}.lsi-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.lsi-stars{color:#d97706;font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.lsi-stars.negative{color:#dc2626}.lsi-focus{color:var(--text-sec);margin-top:1px;font-size:10.5px}.lsi-focus.focus-active{color:#16a34a}.lsi-focus.focus-blurred{color:#d97706}.lsi-focus.focus-hidden{color:#dc2626}.lsi-focus.focus-offline{color:#94a3b8}.lsi-focus.focus-absent{color:#94a3b8;font-style:italic}.lsi-actions{flex-shrink:0;gap:2px;display:flex}.lsi-status-line{align-items:center;gap:6px;display:inline-flex}.lsi-expand-arrow{color:var(--text-sec);align-items:center;display:inline-flex}.lsi-att-tag{border:1px solid;border-radius:8px;padding:2px 6px;font-size:11px;line-height:1}.lsi-kick{width:22px;height:26px;color:var(--text-sec);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.lsi-row:hover .lsi-kick{opacity:1}.lsi-kick:hover{color:#dc2626;background:#ef44441a}.lsi-expand{padding:4px 10px 12px 50px}.lsi-expand-label{color:var(--text-sec);margin:8px 0 6px;font-size:12px}.lsi-chip-row{flex-wrap:wrap;gap:6px;display:flex}.lsi-expand-empty{color:#bbb;font-size:12px}.lss-funcbar{border-top:1px solid var(--border);background:#fafbfc;flex-shrink:0;padding:10px 12px}.lss-funcbar-stat{color:#16a34a;align-items:center;gap:5px;margin-bottom:8px;font-size:12.5px;display:flex}.lss-funcbar-btns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lss-func-btn{border:1px solid var(--border);height:32px;color:var(--text);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:13px;transition:all .12s;display:inline-flex}.lss-func-btn:hover{color:#2dbfa5;border-color:#2dbfa5}.lst-toast-stack{z-index:40;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:68px;right:18px}.lst-toast{pointer-events:auto;border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;min-width:240px;max-width:320px;padding:10px 14px 10px 12px;font-family:inherit;transition:transform .15s,box-shadow .15s;animation:.28s cubic-bezier(.22,1.3,.36,1) lstSlide;display:flex;box-shadow:0 2px 6px #0000000d,0 12px 32px #00000024}.lst-toast:hover{transform:translate(-3px);box-shadow:0 2px 6px #0000000d,0 16px 40px #0000002e}@keyframes lstSlide{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.lst-toast.pending{border-left:3px solid #f59e0b}.lst-toast.passed{border-left:3px solid #22c55e}.lst-toast.failed{border-left:3px solid #ef4444}.lst-icon{flex-shrink:0;margin-top:2px}.lst-toast.pending .lst-icon{color:#d97706}.lst-toast.passed .lst-icon{color:#15803d}.lst-toast.failed .lst-icon{color:#b91c1c}.lst-body{flex:1;min-width:0}.lst-head{color:var(--text);align-items:center;gap:6px;margin-bottom:3px;font-size:13px;display:flex}.lst-head strong{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.lst-task-tag{color:#4338ca;background:#6366f11f;border-radius:9px;padding:1px 7px;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700}.lst-version{color:var(--text-sec);background:#0000000d;border-radius:8px;padding:1px 6px;font-size:10.5px}.lst-verdict{color:var(--text-sec);font-size:11.5px}.lst-toast.passed .lst-verdict{color:#15803d;font-weight:600}.lst-toast.failed .lst-verdict{color:#b91c1c;font-weight:600}.lecture-area{background:#f7fbfa;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.lecture-viewport{flex:1;min-height:0;position:relative;overflow:hidden}.lecture-submode-view{animation:.32s cubic-bezier(.22,1,.36,1) both lectureSubEnter;position:absolute;inset:0}@keyframes lectureSubEnter{0%{opacity:0;filter:blur(3px);transform:translate(24px)}to{opacity:1;filter:blur();transform:translate(0)}}.lecture-submode-view.is-slides{background:#fff}.lecture-submode-view.is-code{background:#0f172a}.ldc-lab{color:#e2e8f0;background:#0f172a;width:100%;height:100%;display:flex;overflow:hidden}.ldc-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.ldc-toolbar{background:#1e293b;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;height:44px;padding:0 14px;display:flex}.ldc-tb-left{color:#e2e8f0cc;align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:12.5px;display:inline-flex}.ldc-current-file{color:#e2e8f0;font-weight:700}.ldc-load-hint{color:#67e8f9d9;font-size:11px}.ldc-tb-right{align-items:center;gap:4px;display:inline-flex}.ldc-divider-v{background:#ffffff1a;width:1px;height:20px;margin:0 4px}.ldc-font-size{color:#e2e8f08c;text-align:center;min-width:22px;font-family:JetBrains Mono,monospace;font-size:11.5px}.ldc-icon-btn{color:#e2e8f099;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .12s;display:inline-flex}.ldc-icon-btn:hover:not(:disabled){color:#fff;background:#ffffff14}.ldc-icon-btn.active{color:#fff;background:#0d9b8a33}.ldc-icon-btn:disabled{opacity:.3;cursor:not-allowed}.ldc-run-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0d9b8a,#14b8a6);border:none;border-radius:7px;align-items:center;gap:5px;height:28px;margin-left:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:700;transition:all .15s;display:inline-flex}.ldc-run-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0d9b8a66}.ldc-run-btn:disabled{opacity:.45;cursor:not-allowed}.ldc-run-btn.stop{background:linear-gradient(135deg,#dc2626,#ef4444)}.ldc-editor{background:#282c34;flex:1;min-height:0;overflow:hidden}.ldc-editor>div,.ldc-editor>div>div{height:100%}.ldc-output-head{background:#111827;border-top:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;height:30px;padding:0 14px;display:flex}.ldc-output-title{letter-spacing:.5px;color:#e2e8f08c;text-transform:uppercase;font-size:11px;font-weight:700}.ldc-output{background:#0b1220;flex-shrink:0;min-height:70px;max-height:260px;padding:10px 14px;font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.55;overflow-y:auto}.ldc-output-empty{color:#e2e8f04d;text-align:center;padding:10px 0;font-size:12px;font-style:italic}.ldc-out-line{white-space:pre-wrap;word-break:break-all}.ldc-out-stdout{color:#e2e8f0}.ldc-out-stderr{color:#fca5a5}.ldc-out-error{color:#fb7185;font-weight:600}.ldc-out-info{color:#67e8f9}.ldc-out-cmd{color:#c4b5fd}.ldc-input-row{background:#0d9b8a1a;border:1px solid #0d9b8a4d;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.ldc-input-prompt{color:#67e8f9;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.ldc-input{color:#e2e8f0;background:#0b1220;border:1px solid #ffffff1a;border-radius:5px;outline:none;flex:1;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:12.5px}.ldc-input:focus{border-color:var(--brand)}.ldc-input-submit{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:4px 12px;font-family:inherit;font-size:11.5px;font-weight:600}.ldc-input-submit:hover{background:var(--brand-light)}@media (prefers-reduced-motion:reduce){.lecture-submode-view{animation:none!important}}.lpc-lab{color:#e2e8f0;background:#0f172a;width:100%;height:100%;display:flex;overflow:hidden}.lpc-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.lpc-toolbar{background:#1e293b;border-bottom:1px solid #ffffff14;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:6px 14px;display:flex}.lpc-tb-left{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:inline-flex}.lpc-tb-right{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.lpc-current-file{color:#e2e8f0;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.lpc-file-status{border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.lpc-file-status.published{color:#5eead4;background:#0d9b8a33;border-color:#0d9b8a59}.lpc-file-status.draft{color:#fde047;background:#facc1524;border-color:#facc154d}.lpc-mark-chip{border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.lpc-mark-chip.blank{color:#fde047;background:#facc152e;border-color:#facc1559}.lpc-mark-chip.bug{color:#fca5a5;background:#ef44442e;border-color:#ef444459}.lpc-tb-btn{color:#e2e8f0e6;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:7px;align-items:center;gap:5px;height:30px;padding:0 11px;font-family:inherit;font-size:12px;font-weight:600;transition:all .12s;display:inline-flex;position:relative}.lpc-tb-btn:hover:not(:disabled){background:#ffffff1f;border-color:#fff3}.lpc-tb-btn:disabled{opacity:.4;cursor:not-allowed}.lpc-tb-btn.subtle{color:#e2e8f099;background:0 0}.lpc-tb-btn.primary{color:#fff;background:linear-gradient(135deg,#0d9b8a,#14b8a6);border-color:#0000}.lpc-tb-btn.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0d9b8a66}.lpc-count-badge{color:#5eead4;letter-spacing:.3px;background:#0d9b8a4d;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:16px;margin-left:4px;padding:0 5px;font-size:10.5px;font-weight:800;display:inline-flex}.lpc-divider-v{background:#ffffff1a;width:1px;height:20px;margin:0 2px}.lpc-presets{background:#0d9b8a0f;border-bottom:1px solid #ffffff0f;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;display:flex}.lpc-presets-label{color:#e2e8f0b3;font-size:11.5px;font-weight:600}.lpc-preset-chip{color:#5eead4;cursor:pointer;background:#0d9b8a2e;border:1px solid #0d9b8a59;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:all .12s}.lpc-preset-chip:hover{border-color:var(--brand);background:#0d9b8a4d}.lpc-editor{background:#282c34;flex:1;min-height:0;overflow:hidden}.lpc-editor>div,.lpc-editor>div>div{height:100%}.lpc-published-banner{color:#5eead4;background:#0d9b8a1f;border-top:1px solid #0d9b8a40;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.lpc-peek-strip{color:#5eead4;cursor:pointer;text-align:left;background:#0d9b8a1a;border:none;border-top:1px solid #0d9b8a4d;flex-shrink:0;align-items:center;gap:12px;width:100%;padding:10px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s;display:flex}.lpc-peek-strip:hover{background:#0d9b8a2e}.lpc-peek-text strong{color:#a7f3d0;margin-right:3px;font-size:14px}.lpc-peek-muted{color:#e2e8f08c;font-weight:500}.lpc-peek-list{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:inline-flex}.lpc-peek-chip{color:#5eead4;background:#0d9b8a26;border:1px solid #0d9b8a4d;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:11.5px;display:inline-flex}.lpc-peek-chip.more{color:#e2e8f099;background:0 0;border-color:#e2e8f033}.lpc-peek-cta{color:#e2e8f0b3;flex-shrink:0;margin-left:auto;font-size:11.5px;font-weight:700}.pfs-wrap .file-item{position:relative}.pfs-badge{letter-spacing:.2px;border-radius:999px;flex-shrink:0;align-items:center;gap:3px;margin-left:auto;margin-right:4px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.pfs-badge.published{color:#5eead4;background:#0d9b8a33;border:1px solid #0d9b8a59}.pfs-badge.draft{color:#fde047;background:#facc1524;border:1px solid #facc154d}.lpd-backdrop{z-index:400;background:#00000059;animation:.15s ease-out lpdBackdropIn;position:fixed;inset:0}@keyframes lpdBackdropIn{0%{opacity:0}to{opacity:1}}.lpd-drawer{z-index:410;background:#fff;flex-direction:column;width:420px;max-width:94vw;animation:.25s cubic-bezier(.22,1,.36,1) lpdSlideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #00000038}@keyframes lpdSlideIn{0%{opacity:.8;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.lpd-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:16px 18px;display:flex}.lpd-header h3{color:var(--text);margin:0;font-size:15px;font-weight:800}.lpd-sub{color:var(--text-sec);margin:4px 0 0;font-size:12px}.lpd-close{width:30px;height:30px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.lpd-close:hover{color:var(--text);background:#0000000d}.lpd-body{flex:1;padding:14px 18px 20px;overflow-y:auto}.lpd-empty{text-align:center;color:var(--text-sec);padding:30px 10px}.lpd-empty p{margin:6px 0;font-size:13px}.lpd-empty-hint{opacity:.8;font-size:12px!important}.lpd-section+.lpd-section{margin-top:18px}.lpd-section-title{letter-spacing:.5px;color:var(--text-sec);text-transform:uppercase;align-items:center;gap:5px;margin:0 0 8px;font-size:11.5px;font-weight:800;display:inline-flex}.lpd-card{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:10px;padding:12px 14px;transition:border-color .15s}.lpd-card.active{background:#0d9b8a0d;border-color:#0d9b8a66}.lpd-card.ended{opacity:.9;background:#fafafa}.lpd-card-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.lpd-filename{color:var(--brand);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0;font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:700;overflow:hidden}.lpd-filename.muted{color:var(--text-sec)}.lpd-filename:hover{text-decoration:underline}.lpd-countdown{color:#f59e0b;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:800}.lpd-end-tag{color:var(--text-sec);background:#64748b1f;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.lpd-desc{color:var(--text);margin-top:4px;font-size:13px;line-height:1.5}.lpd-desc.muted{color:var(--text-sec)}.lpd-meta{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.lpd-tag{color:var(--brand);background:#0d9b8a1a;border:1px solid #0d9b8a40;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.lpd-tag.neutral{color:var(--text-sec);border-color:var(--border);background:#64748b14}.lpd-ext{color:#f59e0b;margin-left:3px;font-weight:700}.lpd-actions{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.lpd-chip{border:1px solid var(--border);color:var(--text-sec);cursor:pointer;background:#fff;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:all .12s}.lpd-chip:hover{border-color:var(--brand);color:var(--brand);background:#0d9b8a0d}.lpd-chip.danger{color:#dc2626;border-color:#ef444459}.lpd-chip.danger:hover{background:#ef444414;border-color:#dc2626}.lpd-chip.warn{color:#b45309;border-color:#f59e0b66;align-items:center;gap:3px;display:inline-flex}.lpd-chip.warn:hover{color:#92400e;background:#f59e0b1a;border-color:#d97706}.lpd-chip.danger{align-items:center;gap:3px;display:inline-flex}.pdd-overlay{z-index:500;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:center;animation:.2s ease-out pddOverlayIn;display:flex;position:fixed;inset:0}@keyframes pddOverlayIn{0%{opacity:0}to{opacity:1}}.pdd-panel{background:#fff;border-radius:14px;flex-direction:column;width:860px;max-width:94vw;max-height:88vh;animation:.22s cubic-bezier(.22,1,.36,1) pddPanelIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000052}@keyframes pddPanelIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.pdd-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pdd-header h3{color:var(--text);margin:0;font-size:16px;font-weight:800}.pdd-file{color:var(--brand);margin-left:6px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.pdd-close{width:28px;height:28px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.pdd-close:hover{color:var(--text);background:#0000000d}.pdd-body{flex:1;grid-template-columns:1.2fr 1fr;min-height:0;display:grid;overflow:hidden}.pdd-form{border-right:1px solid var(--border);flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow-y:auto}.pdd-field{flex-direction:column;gap:6px;display:flex}.pdd-label{color:var(--text-sec);letter-spacing:.3px;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.pdd-label-row{justify-content:space-between}.pdd-label-main{align-items:center;gap:6px;display:inline-flex}.pdd-label .req{color:#ef4444}.pdd-input,.pdd-textarea{border:1.5px solid var(--border);color:var(--text);background:#fff;border-radius:7px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}.pdd-input:focus,.pdd-textarea:focus{border-color:var(--brand)}.pdd-textarea{resize:vertical;min-height:56px;line-height:1.5}.pdd-textarea.mono{font-family:JetBrains Mono,monospace;font-size:12px}.pdd-duration-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pdd-duration-input{text-align:center;width:56px}.pdd-sub{color:var(--text-sec);font-size:12px}.pdd-chip{border:1px solid var(--border);color:var(--text-sec);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:all .12s}.pdd-chip:hover,.pdd-chip.active{border-color:var(--brand);color:var(--brand);background:#0d9b8a14}.pdd-grading-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pdd-grading{border:1.5px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:8px;padding:10px 12px;transition:all .15s;display:flex}.pdd-grading.active{border-color:var(--brand);background:#0d9b8a0d}.pdd-grading input[type=radio]{margin-top:2px}.pdd-grading-title{color:var(--text);font-size:13px;font-weight:700}.pdd-grading-desc{color:var(--text-sec);margin-top:2px;font-size:11.5px;line-height:1.4}.pdd-auto-run{color:var(--brand);cursor:pointer;background:#0d9b8a1a;border:1px solid #0d9b8a40;border-radius:5px;align-items:center;gap:4px;margin-left:auto;padding:3px 9px;font-family:inherit;font-size:11px;font-weight:600;display:inline-flex}.pdd-auto-run:hover:not(:disabled){background:#0d9b8a2e}.pdd-auto-run:disabled{opacity:.5;cursor:wait}.pdd-auto-run .spin{animation:.9s linear infinite pdd-spin}@keyframes pdd-spin{to{transform:rotate(360deg)}}.pdd-grading.disabled{opacity:.55;cursor:not-allowed}.pdd-grading.disabled input[type=radio]{cursor:not-allowed}.pdd-sub-inline{color:var(--text-sec);margin-left:6px;font-size:11.5px;font-weight:400}.pdd-sub-inline code{background:#0000000f;border-radius:3px;padding:1px 4px;font-family:JetBrains Mono,monospace;font-size:10.5px}.pdd-readout{border:1.5px solid var(--border);background:#0f172a;border-radius:6px;min-height:64px;max-height:180px;padding:8px 10px;transition:border-color .15s;overflow:auto}.pdd-readout.loading{border-color:#0d9b8a80}.pdd-readout-pre{color:#e2e8f0;white-space:pre-wrap;word-break:break-all;margin:0;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.55}.pdd-readout-empty{color:#e2e8f080;font-size:12px;font-style:italic}.pdd-readout-error{color:#fca5a5;align-items:flex-start;gap:6px;font-size:12px;line-height:1.5;display:flex}.pdd-preview{color:#e2e8f0;background:#0f172a;flex-direction:column;display:flex;overflow:hidden}.pdd-preview-head{color:#e2e8f0a6;text-transform:uppercase;letter-spacing:.5px;background:#1e293b;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;font-size:11px;font-weight:700;display:flex}.pdd-preview-file{color:#5eead4;text-transform:none;letter-spacing:0;font-family:JetBrains Mono,monospace}.pdd-preview-code{color:#cbd5e1;white-space:pre;flex:1;margin:0;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.6;overflow:auto}.pdd-warning{color:#fbbf24;background:#f59e0b24;border-top:1px solid #ffffff14;align-items:center;gap:6px;padding:10px 16px;font-size:11.5px;font-weight:600;display:flex}.pdd-notice{color:#5eead4;background:#0d9b8a24;border-top:1px solid #ffffff14;padding:9px 16px;font-size:11.5px;font-weight:600}.pdd-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.pdd-btn-cancel,.pdd-btn-submit{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.pdd-btn-cancel{color:var(--text-sec);background:0 0}.pdd-btn-cancel:hover{color:var(--text);background:#0000000d}.pdd-btn-submit{color:#fff;background:linear-gradient(135deg,#0d9b8a,#14b8a6)}.pdd-btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #0d9b8a59}.pdd-btn-submit:disabled{opacity:.5;cursor:not-allowed}@media (width<=720px){.pdd-body{grid-template-columns:1fr}.pdd-preview{border-top:1px solid var(--border)}}.lmm-wrap{position:relative}.lmm-trigger{width:32px;height:32px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.lmm-trigger:hover,.lmm-trigger.active{color:var(--text);background:#0000000d}.lmm-panel{border:1px solid var(--border);z-index:20;background:#fff;border-radius:12px;min-width:220px;padding:6px;animation:.15s ease-out lmmPanelIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 3px #0000000d,0 12px 32px #0000001f}@keyframes lmmPanelIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.lmm-group-label{color:var(--text-sec);letter-spacing:1px;text-transform:uppercase;padding:6px 12px 4px;font-size:10.5px;font-weight:700}.lmm-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .12s;display:flex}.lmm-item:hover:not(:disabled){color:var(--brand);background:#0d9b8a0f}.lmm-item.danger{color:#dc2626}.lmm-item.danger:hover{color:#dc2626;background:#ef444414}.lmm-item.disabled,.lmm-item:disabled{color:var(--text-sec);opacity:.55;cursor:not-allowed}.lmm-item-icon{color:var(--text-sec);flex-shrink:0;align-items:center;display:inline-flex}.lmm-item.danger .lmm-item-icon{color:#dc2626}.lmm-item:hover:not(:disabled) .lmm-item-icon{color:var(--brand)}.lmm-item-label{flex:1}.lmm-item-hint{color:var(--text-sec);background:#0000000a;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:10px}.lmm-divider{background:var(--border);height:1px;margin:6px 4px}.tnd-backdrop{z-index:420;background:#0006;animation:.15s ease-out tndBackdropIn;position:fixed;inset:0}@keyframes tndBackdropIn{0%{opacity:0}to{opacity:1}}.tnd-drawer{z-index:430;background:#fff;flex-direction:column;width:640px;max-width:96vw;animation:.26s cubic-bezier(.22,1,.36,1) tndSlideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-18px 0 50px #00000047}@keyframes tndSlideIn{0%{opacity:.85;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.tnd-header{border-bottom:1px solid var(--border);background:linear-gradient(#fff 0%,#fafbfc 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.tnd-title{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:800;display:inline-flex}.tnd-course{color:var(--text-sec);font-weight:500}.tnd-actions{align-items:center;gap:6px;display:inline-flex}.tnd-external{color:var(--brand);background:#0d9b8a1a;border:1px solid #0d9b8a40;border-radius:6px;align-items:center;gap:4px;padding:5px 11px;font-size:11.5px;font-weight:600;text-decoration:none;transition:all .12s;display:inline-flex}.tnd-external:hover{background:#0d9b8a2e}.tnd-close{width:32px;height:32px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.tnd-close:hover{color:var(--text);background:#0000000f}.tnd-hint{color:#b45309;background:#f59e0b14;border-bottom:1px solid #f59e0b33;flex-shrink:0;padding:6px 18px;font-size:11px;font-weight:600}.tnd-body{background:#f7fbfa;flex:1;min-height:0;display:flex;overflow:hidden}.tnd-empty{text-align:center;color:var(--text-sec);max-width:440px;margin:auto;padding:40px 28px}.tnd-empty svg{color:#64748b80}.tnd-empty h3{color:var(--text);margin:14px 0 8px;font-size:16px;font-weight:700}.tnd-empty p{margin:6px 0;font-size:13px;line-height:1.6}.tnd-empty code{color:var(--text);background:#64748b1a;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11.5px}.tnd-future{border-top:1px dashed var(--border);color:var(--brand);padding-top:12px;margin-top:14px!important;font-size:12px!important}.join-page{--brand:#0d9b8a;--brand-light:#14b8a6;--brand-dark:#0a7d6f;--brand-50:#f0fdf9;--text:#0f172a;--text-secondary:#475569;--border:#cbd5e1;background:radial-gradient(80% 60% at 20% 30%,#14b8a647,#0000 70%),radial-gradient(70% 50% at 80% 70%,#2dd4bf38,#0000 70%),linear-gradient(135deg,#042f2e 0%,#0a4d4a 30%,#0d9b8a 70%,#14b8a6 100%);justify-content:center;align-items:center;font-family:Inter,-apple-system,system-ui,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.join-coderain-layer{z-index:0;pointer-events:none;opacity:.85;position:absolute;inset:0}.join-coderain-layer .coderain{pointer-events:none;justify-content:space-around;align-items:stretch;gap:2px;padding:0 8px;display:flex;position:absolute;inset:0}.join-coderain-layer .coderain-col{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 12% 88%,#0000);mask-image:linear-gradient(#0000,#000 12% 88%,#0000)}.join-coderain-layer .coderain-col-inner{will-change:transform;flex-direction:column;gap:14px;animation:linear infinite coderainFall;display:flex}@keyframes coderainFall{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.join-coderain-layer .coderain-tok{color:#ffffff2e;text-align:center;letter-spacing:.3px;font-family:JetBrains Mono,Courier New,monospace;font-size:12px;font-weight:500;line-height:1}.join-coderain-layer .coderain-tok:nth-child(3n){color:#cffafe52}.join-coderain-layer .coderain-tok:nth-child(4n+1){color:#ffffff24}.join-coderain-layer .coderain-tok:nth-child(7n){color:#a7f3d06b}.join-coderain-layer .coderain-tok:nth-child(11n){color:#ffffffd9;text-shadow:0 0 6px #ffffffa6,0 0 14px #67e8f980;font-weight:700}.join-coderain-layer .coderain-tok:nth-child(13n){color:#fde68ac7;text-shadow:0 0 5px #fde68a8c}@media (width<=720px){.join-coderain-layer .coderain-col:nth-child(n+10){display:none}}@media (width<=420px){.join-coderain-layer .coderain-col:nth-child(n+7){display:none}}@media (prefers-reduced-motion:reduce){.join-coderain-layer{display:none}}.join-brand-mark{z-index:5;pointer-events:none;align-items:center;gap:12px;display:flex;position:absolute;top:28px;left:32px}.join-brand-mark-icon{-webkit-backdrop-filter:blur(8px);color:#fff;background:#ffffff1f;border:1px solid #ffffff40;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 14px #0000001f}.join-brand-mark-text{flex-direction:column;line-height:1.15;display:flex}.join-brand-mark-cn{color:#fff;letter-spacing:1px;text-shadow:0 1px 4px #00000026;font-size:16px;font-weight:700}.join-brand-mark-en{color:#fff9;letter-spacing:1.5px;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.join-slogan{z-index:5;pointer-events:none;letter-spacing:1.5px;color:#ffffff8c;text-shadow:0 1px 4px #0000002e;flex-direction:column;align-items:flex-end;gap:4px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;display:flex;position:absolute;bottom:36px;right:40px}.join-slogan-line{display:block}.join-slogan-line:before{content:"> ";color:#a7f3d0a6}@media (width<=600px){.join-brand-mark{top:16px;left:18px}.join-brand-mark-icon{width:36px;height:36px}.join-brand-mark-cn{font-size:14px}.join-slogan{font-size:11px;bottom:18px;right:18px}}.join-bg-blob{filter:blur(80px);opacity:.35;pointer-events:none;z-index:1;border-radius:50%;position:absolute}.join-bg-blob.blob-1{background:#5eead4;width:480px;height:480px;animation:18s ease-in-out infinite blobFloat;top:-120px;left:-120px}.join-bg-blob.blob-2{background:#2dd4bf;width:380px;height:380px;animation:22s ease-in-out infinite reverse blobFloat;bottom:-100px;right:-80px}.join-bg-blob.blob-3{background:#99f6e4;width:260px;height:260px;animation:26s ease-in-out infinite blobFloat;top:50%;left:60%}@keyframes blobFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-60px)scale(1.1)}66%{transform:translate(-30px,40px)scale(.95)}}.join-stage{z-index:10;flex-direction:column;align-items:center;gap:28px;width:100%;max-width:520px;padding:32px 24px;display:flex;position:relative}.join-brand{text-align:center;color:#fff}.join-bottom-logo{z-index:5;pointer-events:none;opacity:.85;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.join-bottom-logo img{filter:brightness(0)invert();width:360px;height:auto}.join-title{letter-spacing:2px;color:#fff;text-shadow:0 2px 12px #0003,0 0 30px #14b8a64d;margin:0 0 8px;font-size:36px;font-weight:800}.join-title-accent{background:linear-gradient(135deg,#fde68a 0%,#fbbf24 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin-left:4px}.join-subtitle{color:#ffffffc7;letter-spacing:1px;margin:0;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:500}.join-subtitle-code{color:#fde68a;letter-spacing:3px;margin-left:6px;font-weight:700}.join-card{background:#fff;border-radius:20px;flex-direction:column;gap:22px;width:100%;padding:36px 32px;animation:.4s cubic-bezier(.16,1,.3,1) cardSlide;display:flex;box-shadow:0 20px 60px #00000026,0 4px 16px #00000014}.join-card-wide{max-width:560px}@keyframes cardSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.join-section{flex-direction:column;gap:8px;display:flex}.join-label{color:var(--text-secondary);letter-spacing:.8px;text-transform:uppercase;font-size:12px;font-weight:600}.join-code-input.ant-input{text-align:center;letter-spacing:12px;border:2px solid var(--border);height:76px;color:var(--brand);background:var(--brand-50);border-radius:14px;font-family:JetBrains Mono,Courier New,monospace;font-weight:800;transition:all .2s;font-size:36px!important}.join-code-input.ant-input:focus,.join-code-input.ant-input-focused{border-color:var(--brand)!important;background:#fff!important;box-shadow:0 0 0 4px #0d9b8a26!important}.join-primary-btn.ant-btn-primary{letter-spacing:1px;background:linear-gradient(135deg, var(--brand-light) 0%, var(--brand) 100%)!important;border:none!important;border-radius:12px!important;height:56px!important;font-size:17px!important;font-weight:700!important;transition:all .2s!important;box-shadow:0 8px 20px #0d9b8a59!important}.join-primary-btn.ant-btn-primary:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%)!important;box-shadow:0 12px 28px #0d9b8a73!important}.join-primary-btn.ant-btn-primary:disabled{box-shadow:none!important;color:#94a3b8!important;background:#e2e8f0!important}.join-hint{color:var(--text-secondary);justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.join-identity{background:linear-gradient(135deg,#f0fdf9 0%,#ecfdf5 100%);border:2px solid #0d9b8a33;border-radius:16px;flex-direction:column;align-items:center;gap:14px;padding:24px;display:flex;position:relative}.join-identity-avatar{background:linear-gradient(135deg, var(--brand-light), var(--brand));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:28px;display:flex;box-shadow:0 6px 20px #0d9b8a59}.join-identity-text{text-align:center}.join-identity-label{color:var(--text-secondary);letter-spacing:.5px;margin-bottom:2px;font-size:12px}.join-identity-name{color:var(--brand-dark);font-size:22px;font-weight:800}.join-identity .join-primary-btn{width:100%;max-width:320px}.join-identity-hint{color:var(--text-secondary);margin:0;font-size:12px;font-style:italic}.join-roster{flex-direction:column;gap:6px;max-height:320px;padding-right:4px;display:flex;overflow-y:auto}.join-roster::-webkit-scrollbar{width:6px}.join-roster::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.join-roster::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.join-roster-item{border:1px solid var(--border);cursor:pointer;color:var(--text);text-align:left;background:#f8fafc;border-radius:10px;align-items:center;gap:12px;padding:14px 18px;font-size:15px;transition:all .15s;display:flex}.join-roster-item:hover{background:var(--brand-50);border-color:var(--brand-light);transform:translate(4px)}.join-roster-item:hover .join-roster-arrow{opacity:1;color:var(--brand);transform:translate(0)}.join-roster-item.matched{background:var(--brand-50);border-color:var(--brand)}.join-roster-name{flex:1;font-weight:500}.join-roster-arrow{opacity:0;color:var(--text-secondary);font-size:14px;transition:all .2s;transform:translate(-6px)}.join-name-input.ant-input{width:100%;font-size:16px;font-weight:500;border-radius:12px!important;height:52px!important}.join-name-hint{color:var(--text-secondary,#94a3b8);margin:10px 2px 0;font-size:12.5px;line-height:1.55}.join-link-btn{margin-top:4px;color:var(--text-secondary)!important}.join-link-btn:hover{color:var(--brand)!important}@media (width<=600px){.join-stage{padding:20px 16px}.join-title{font-size:26px}.join-card{padding:24px 20px}.join-code-input.ant-input{letter-spacing:8px;height:64px;font-size:28px!important}.join-identity-name{font-size:20px}}@font-face{font-family:JetBrains Mono;font-weight:100 900;font-display:swap;src:local(JetBrains Mono),local(Cascadia Mono),local(Consolas),local(SF Mono),local(Menlo),local(DejaVu Sans Mono)}@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:local(Inter),local(Segoe UI Variable Text),local(Segoe UI),local(SF Pro Text),local(Helvetica Neue),local(Noto Sans)}:root{--color-primary:#1677ff;--color-primary-hover:#4096ff;--color-primary-active:#0958d9;--color-success:#52c41a;--color-warning:#faad14;--color-error:#ff4d4f;--color-info:#1677ff;--color-text:#000000e0;--color-text-secondary:#000000a6;--color-text-tertiary:#00000073;--color-text-quaternary:#00000040;--color-bg:#fff;--color-bg-layout:#f5f5f5;--color-bg-container:#fff;--color-border:#d9d9d9;--color-border-secondary:#f0f0f0;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px 0 #00000008, 0 1px 6px -1px #00000005, 0 2px 4px 0 #00000005;--shadow-md:0 6px 16px 0 #00000014, 0 3px 6px -4px #0000001f, 0 9px 28px 8px #0000000d;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-size-sm:12px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:20px;--font-size-xxl:24px;--header-height:64px;--sider-width:256px;--sider-collapsed-width:80px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-layout);min-height:100vh;line-height:1.5714}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}img{vertical-align:middle;max-width:100%}#root{min-height:100vh}.page-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.page-container{padding:var(--spacing-lg);max-width:1200px;margin:0 auto}
