/* 龙华大讲堂 新版皮肤 - 参考解螺旋风格 */
:root{
  --nx-primary:#81d8d0;
  --nx-primary-dark:#4fb8ae;
  --nx-primary-deep:#2f9d92;
  --nx-primary-light:#eaf9f7;
  --nx-text:#1c1f21;
  --nx-text-2:#3f474c;
  --nx-muted:#7d858c;
  --nx-border:#e8ecf0;
  --nx-bg:#f7f9fa;
  --nx-radius:12px;
  --nx-shadow:0 2px 12px rgba(28,31,33,.06);
  --nx-shadow-hover:0 10px 28px rgba(28,31,33,.13);
}
body{background:#f4f6f7;color:var(--nx-text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;}
.nx-page{background:transparent;min-height:100vh;display:flex;flex-direction:column;}
.nx-page > .nx-footer{margin-top:auto;flex-shrink:0;}
.nx-container{width:1200px;max-width:calc(100% - 40px);margin:0 auto;}

/* 顶部导航 */
.nx-header{background:#fff;border-bottom:1px solid var(--nx-border);position:sticky;top:0;z-index:100;}
.nx-header-inner{display:flex;align-items:center;gap:28px;height:68px;}
.nx-logo{font-size:20px;font-weight:700;color:var(--nx-text);text-decoration:none;white-space:nowrap;display:flex;align-items:center;gap:8px;}
.nx-logo::before{content:"";width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));display:inline-block;}
.nx-nav{display:flex;align-items:center;gap:4px;flex:1;height:100%;}
.nx-nav-item{display:inline-flex;align-items:center;height:36px;font-size:15px;line-height:1;color:var(--nx-text-2);text-decoration:none;padding:0 12px;border-radius:8px;white-space:nowrap;transition:.2s;}
.nx-nav-item:hover{color:var(--nx-primary-deep);background:var(--nx-primary-light);}
.nx-nav-item.nx-active{color:var(--nx-primary-deep);font-weight:600;}
.nx-header-right{display:flex;align-items:center;gap:12px;}
.nx-search{display:flex;align-items:center;background:var(--nx-bg);border:1px solid var(--nx-border);border-radius:999px;padding:4px 4px 4px 16px;}
.nx-search input{border:0;background:transparent;outline:0;width:180px;font-size:14px;color:var(--nx-text);}
.nx-search button{border:0;background:var(--nx-primary);color:#fff;border-radius:999px;padding:7px 18px;font-size:14px;cursor:pointer;transition:.2s;}
.nx-search button:hover{background:var(--nx-primary-dark);}
.nx-btn{display:inline-block;text-decoration:none;border-radius:999px;padding:9px 20px;font-size:14px;transition:.2s;}
.nx-btn-primary{background:var(--nx-primary);color:#fff;}
.nx-btn-primary:hover{background:var(--nx-primary-dark);}
.nx-user{position:relative;}
.nx-user-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--nx-text-2);font-size:14px;}
.nx-user-link img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--nx-border);}
.nx-user{position:relative;}
.nx-user-drop{position:absolute;right:0;top:100%;z-index:999;background:#fff;border:1px solid var(--nx-border);border-radius:12px;box-shadow:0 14px 40px rgba(28,31,33,.14);min-width:148px;padding:8px;display:none;}
.nx-user:hover .nx-user-drop{display:block;}
.nx-user-drop a{display:block;padding:10px 14px;font-size:14px;color:var(--nx-text-2);text-decoration:none;border-radius:8px;transition:.15s;}
.nx-user-drop a:hover{background:var(--nx-primary-light);color:var(--nx-primary-deep);}
.nx-user-drop a.logout{border-top:1px solid #f0f3f5;margin-top:4px;padding-top:11px;color:#e6a23c;}
.nx-user-drop a.logout:hover{background:#fdf6ec;color:#d48806;}

/* Hero */
.nx-hero{background:linear-gradient(135deg,#eaf9f7 0%,#f7fdfc 45%,#e4f5f3 100%);padding:64px 0 72px;text-align:center;}
.nx-hero h1{font-size:38px;line-height:1.35;margin:0 0 14px;font-weight:700;letter-spacing:-.5px;}
.nx-hero p{font-size:16px;color:var(--nx-text-2);margin:0 0 32px;}
.nx-hero-search{display:flex;width:640px;max-width:100%;margin:0 auto;background:#fff;border-radius:999px;padding:6px 6px 6px 24px;box-shadow:0 8px 28px rgba(47,157,146,.14);}
.nx-hero-search input{flex:1;border:0;outline:0;font-size:15px;background:transparent;color:var(--nx-text);}
.nx-hero-search button{border:0;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;border-radius:999px;padding:12px 30px;font-size:15px;cursor:pointer;white-space:nowrap;}
.nx-hero-search button:hover{filter:brightness(.96);}

/* 分类入口 */
.nx-section{padding:32px 0;background:transparent;}
.nx-section > .nx-container{background:#fff;border-radius:14px;padding:30px;}
.nx-section-gray{background:transparent;}
.nx-cats{display:grid;grid-template-columns:repeat(9,1fr);gap:12px;}
.nx-cat{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 6px;background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);text-decoration:none;transition:.22s;}
.nx-cat:hover{border-color:var(--nx-primary);box-shadow:var(--nx-shadow-hover);transform:translateY(-3px);}
.nx-cat-icon{width:44px;height:44px;border-radius:12px;background:var(--nx-primary-light);color:var(--nx-primary-deep);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;}
.nx-cat-name{font-size:14px;color:var(--nx-text-2);text-align:center;line-height:1.3;}

/* 区块标题 */
.nx-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.nx-section-head h2{font-size:24px;margin:0;font-weight:700;position:relative;padding-left:14px;}
.nx-section-head h2::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;border-radius:2px;background:linear-gradient(180deg,var(--nx-primary),var(--nx-primary-dark));}
.nx-more{font-size:14px;color:var(--nx-muted);text-decoration:none;}
.nx-more:hover{color:var(--nx-primary-deep);}

/* 课程卡片 */
.nx-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.nx-card{background:#fff;border-radius:var(--nx-radius);overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:.24s;border:1px solid var(--nx-border);box-shadow:0 1px 3px rgba(28,31,33,.04);}
.nx-card:hover{box-shadow:var(--nx-shadow-hover);transform:translateY(-4px);border-color:var(--nx-primary);}
.nx-card-cover{position:relative;padding-top:56.25%;background:var(--nx-bg);overflow:hidden;}
.nx-card-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.3s;}
.nx-card:hover .nx-card-cover img{transform:scale(1.04);}
.nx-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;flex:1;}
.nx-card-body h3{font-size:15px;line-height:1.45;margin:0;color:var(--nx-text);font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:44px;}
.nx-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
.nx-price{color:var(--nx-primary-deep);font-weight:700;font-size:16px;}
.nx-price.nx-free{color:#22b573;}
.nx-views{font-size:12px;color:var(--nx-muted);}

/* 系统化课堂 */
.nx-systems{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.nx-system{display:block;padding:28px 24px;border-radius:var(--nx-radius);text-decoration:none;background:linear-gradient(135deg,#f0fbfa,#e6f7f5);border:1px solid #d8efec;transition:.24s;}
.nx-system:hover{transform:translateY(-3px);box-shadow:var(--nx-shadow-hover);}
.nx-system h3{font-size:18px;margin:0 0 8px;color:var(--nx-text);}
.nx-system p{font-size:13px;margin:0;color:var(--nx-muted);}

/* 页脚 */
.nx-footer{background:#fff;color:var(--nx-muted);padding:36px 0 28px;border-top:1px solid var(--nx-border);}
.nx-footer-inner{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.nx-footer p{margin:0 0 10px;font-size:13px;line-height:1.8;color:var(--nx-muted);}
.nx-footer a{color:var(--nx-text-2);text-decoration:none;}
.nx-footer a:hover{color:var(--nx-primary-deep);}

/* 响应式 */
@media (max-width:1100px){
  .nx-cats{grid-template-columns:repeat(5,1fr);}
  .nx-cards{grid-template-columns:repeat(3,1fr);}
  .nx-systems{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .nx-header-inner{height:auto;padding:12px 0;flex-wrap:wrap;gap:12px;}
  .nx-nav{order:3;width:100%;overflow-x:auto;padding-bottom:4px;}
  .nx-search input{width:110px;}
  .nx-hero{padding:40px 0 44px;}
  .nx-hero h1{font-size:26px;}
  .nx-cats{grid-template-columns:repeat(3,1fr);}
  .nx-cards{grid-template-columns:repeat(2,1fr);}
  .nx-systems{grid-template-columns:1fr;}
  .nx-footer-inner{flex-direction:column;}
}

/* 四大分类入口 */
.nx-portals{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.nx-portal{display:block;padding:34px 28px;border-radius:16px;text-decoration:none;background:linear-gradient(135deg,#f0fbfa,#e6f7f5);border:1px solid #d8efec;transition:.24s;}
.nx-portal:hover{transform:translateY(-4px);box-shadow:var(--nx-shadow-hover);border-color:var(--nx-primary);}
.nx-portal h3{font-size:20px;margin:0 0 10px;color:var(--nx-text);font-weight:700;}
.nx-portal p{font-size:13px;margin:0;color:var(--nx-muted);line-height:1.6;}
@media (max-width:1100px){.nx-portals{grid-template-columns:repeat(2,1fr);}}
@media (max-width:768px){.nx-portals{grid-template-columns:1fr;}.nx-portal{padding:24px 20px;}}

/* Hero 内的四大分类 */
.nx-hero-portals{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px;text-align:left;}
.nx-hero-portal{display:block;padding:22px 20px;border-radius:14px;text-decoration:none;background:rgba(255,255,255,.92);border:1px solid rgba(129,216,208,.35);box-shadow:0 4px 18px rgba(47,157,146,.10);transition:.24s;}
.nx-hero-portal:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(47,157,146,.18);border-color:var(--nx-primary);}
.nx-hero-portal h3{font-size:17px;margin:0 0 6px;color:var(--nx-text);font-weight:700;}
.nx-hero-portal p{font-size:12px;margin:0;color:var(--nx-muted);line-height:1.5;}

/* 最新/热门 切换 */
.nx-tabs{display:flex;align-items:center;gap:36px;margin-bottom:26px;border-bottom:1px solid var(--nx-border);}
.nx-tab{border:0;background:transparent;padding:14px 2px;font-size:19px;font-weight:600;color:var(--nx-muted);cursor:pointer;position:relative;font-family:inherit;transition:.2s;}
.nx-tab:hover{color:var(--nx-primary-deep);}
.nx-tab.nx-tab-active{color:var(--nx-text);}
.nx-tab.nx-tab-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));}
.nx-panel{display:none;}
.nx-panel.nx-panel-active{display:block;}

@media (max-width:1100px){.nx-hero-portals{grid-template-columns:repeat(2,1fr);}}
@media (max-width:768px){.nx-hero-portals{grid-template-columns:1fr;margin-top:28px;}.nx-hero-portal{padding:18px 16px;}.nx-tab{font-size:17px;}.nx-tabs{gap:24px;}}

/* 分页 - Element Plus 风格 */
.nx-pager{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:44px;flex-wrap:wrap;}
.nx-pager-total{font-size:14px;color:var(--nx-muted);}
.nx-pager-btns{display:flex;align-items:center;gap:8px;}
.nx-pager-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--nx-border);background:#fff;color:var(--nx-text-2);font-size:14px;text-decoration:none;transition:.2s;cursor:pointer;font-family:inherit;}
.nx-pager-btn:hover{border-color:var(--nx-primary);color:var(--nx-primary-deep);}
.nx-pager-btn.is-active{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));border-color:transparent;color:#fff;font-weight:600;}
.nx-pager-btn.is-disabled{color:#c8ced4;background:#f7f9fa;cursor:not-allowed;border-color:var(--nx-border);}
@media (max-width:768px){.nx-pager{gap:10px;}.nx-pager-btn{min-width:32px;height:32px;padding:0 10px;font-size:13px;}}

/* 导航更多下拉 */
.nx-nav-more{position:relative;display:flex;align-items:center;height:36px;}
.nx-nav-more-menu{position:absolute;left:0;top:40px;background:#fff;border:1px solid var(--nx-border);border-radius:10px;box-shadow:var(--nx-shadow);min-width:150px;padding:6px;display:none;z-index:200;}
.nx-nav-more:hover .nx-nav-more-menu{display:block;}
.nx-nav-more-menu a{display:block;padding:9px 12px;font-size:14px;color:var(--nx-text-2);text-decoration:none;border-radius:6px;white-space:nowrap;}
.nx-nav-more-menu a:hover{background:var(--nx-primary-light);color:var(--nx-primary-deep);}
.nx-caret{font-size:11px;color:var(--nx-muted);}

/* 面包屑 */
.nx-crumb-bar{background:#f5f7f9;border-bottom:1px solid var(--nx-border);}
.nx-crumb{padding:13px 0;font-size:13px;line-height:1.5;color:var(--nx-muted);}
.nx-crumb a{color:var(--nx-muted);text-decoration:none;}
.nx-crumb a:hover{color:var(--nx-primary-deep);}
.nx-crumb-sep{margin:0 6px;color:#c8ced4;}

/* 分类筛选 */
.nx-section-top{padding-top:26px;}
.nx-filter{display:flex;align-items:flex-start;gap:16px;padding:18px 22px;background:#f7f9fa;border:1px solid var(--nx-border);border-radius:12px;margin-bottom:26px;}
.nx-filter-label{font-size:14px;color:var(--nx-muted);white-space:nowrap;padding-top:7px;}
.nx-filter-items{display:flex;flex-wrap:wrap;gap:8px;flex:1;}
.nx-chip{display:inline-block;padding:7px 16px;border-radius:999px;font-size:14px;color:var(--nx-text-2);text-decoration:none;background:#f4f6f8;transition:.2s;white-space:nowrap;}
.nx-chip:hover{background:var(--nx-primary-light);color:var(--nx-primary-deep);}
.nx-chip.is-active{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-weight:600;}
.nx-empty{padding:110px 0;text-align:center;color:var(--nx-muted);font-size:15px;background:transparent;}

/* TP 原生分页样式 */
.nx-page-html{margin-top:40px;display:flex;justify-content:center;}
.nx-page-html .pagination{display:flex;gap:8px;list-style:none;padding:0;margin:0;}
.nx-page-html .pagination li{list-style:none;}
.nx-page-html .pagination li a,.nx-page-html .pagination li span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--nx-border);background:#fff;color:var(--nx-text-2);text-decoration:none;font-size:14px;transition:.2s;}
.nx-page-html .pagination li a:hover{border-color:var(--nx-primary);color:var(--nx-primary-deep);}
.nx-page-html .pagination li.active span{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));border-color:transparent;color:#fff;font-weight:600;}
.nx-page-html .pagination li.disabled span{color:#c8ced4;background:#f7f9fa;}

/* ===== 课程详情页 ===== */
.nx-course-hero{background:linear-gradient(135deg,#1b4438 0%,#245448 60%,#2a5d4f 100%);padding:36px 0 44px;}
.nx-course-hero-inner{display:grid;grid-template-columns:480px 1fr;gap:44px;align-items:start;}
.nx-course-cover{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.32);background:#0f1a17;}
.nx-course-cover img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;}
.nx-play-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:13px 28px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--nx-primary-deep);font-size:15px;font-weight:600;text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.16);transition:.2s;}
.nx-play-btn:hover{background:#fff;transform:translate(-50%,-50%) scale(1.04);}
.nx-play-icon{font-size:13px;}
.nx-course-info h1{font-size:26px;line-height:1.45;margin:0 0 14px;font-weight:700;color:#ffffff;}
.nx-course-abs{font-size:14px;color:rgba(255,255,255,.76);line-height:1.8;margin:0 0 22px;}
.nx-course-meta{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:26px;}
.nx-course-price{font-size:30px;font-weight:700;color:#7ee8d8;}
.nx-course-price.nx-free{color:#7ee8d8;font-size:26px;}
.nx-course-tag{font-size:13px;color:#ffd68a;background:rgba(255,214,138,.16);padding:4px 10px;border-radius:6px;}
.nx-course-stat{font-size:13px;color:rgba(255,255,255,.62);}
.nx-course-actions{display:flex;gap:14px;align-items:center;margin-bottom:22px;}
.nx-btn-lg{display:inline-flex;align-items:center;justify-content:center;min-width:150px;height:46px;padding:0 32px;border-radius:10px;font-size:15px;text-decoration:none;cursor:pointer;transition:.2s;}
.nx-btn-solid{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-weight:600;border:0;}
.nx-btn-solid:hover{filter:brightness(.96);}
.nx-btn-ghost{background:#fff;color:var(--nx-text-2);border:1px solid var(--nx-border);}
.nx-btn-ghost:hover{border-color:var(--nx-primary);color:var(--nx-primary-deep);}
.nx-btn-ghost.is-collected{border-color:var(--nx-primary);color:var(--nx-primary-deep);background:var(--nx-primary-light);}
.nx-course-share{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--nx-muted);}
.nx-course-share a{color:var(--nx-text-2);text-decoration:none;}
.nx-course-share a:hover{color:var(--nx-primary-deep);}

.nx-course-body{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start;}
.nx-course-main{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);padding:0 28px 28px;}
.nx-tabs2{display:flex;gap:34px;border-bottom:1px solid var(--nx-border);margin-bottom:24px;}
.nx-tab2{padding:18px 2px;font-size:16px;font-weight:600;color:var(--nx-muted);cursor:pointer;position:relative;transition:.2s;}
.nx-tab2:hover{color:var(--nx-primary-deep);}
.nx-tab2.is-active{color:var(--nx-text);}
.nx-tab2.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));}
.nx-teacher-note{background:var(--nx-primary-light);border-radius:10px;padding:16px 20px;margin-bottom:22px;}
.nx-teacher-note strong{display:block;font-size:14px;color:var(--nx-primary-deep);margin-bottom:6px;}
.nx-teacher-note p{margin:0;font-size:13px;color:var(--nx-text-2);line-height:1.8;}
.nx-richtext{font-size:15px;line-height:1.9;color:var(--nx-text-2);}
.nx-richtext img{max-width:100%;height:auto;border-radius:8px;margin:12px 0;}
.nx-richtext p{margin:0 0 14px;}
.nx-richtext h1,.nx-richtext h2,.nx-richtext h3{color:var(--nx-text);margin:22px 0 12px;}

.nx-chapter{margin-bottom:4px;}
.nx-chapter-head{display:flex;align-items:center;justify-content:space-between;padding:15px 6px;cursor:pointer;user-select:none;border-bottom:1px solid #eef1f4;}
.nx-chapter-head h3{display:flex;align-items:center;gap:10px;margin:0;font-size:15px;font-weight:700;color:var(--nx-text);transition:.18s;}
.nx-chapter-head:hover h3{color:var(--nx-primary-deep);}
.nx-chapter-no{display:inline-flex;align-items:center;padding:0 8px;height:24px;border-radius:6px;background:var(--nx-primary-light);color:var(--nx-primary-deep);font-size:12px;font-weight:700;white-space:nowrap;}
.nx-chapter-arrow{color:var(--nx-muted);font-size:11px;transition:.2s;}
.nx-chapter.is-collapsed .nx-chapter-arrow{transform:rotate(-90deg);}
.nx-chapter.is-collapsed .nx-chapter-body{display:none;}
.nx-chapter-body{border-bottom:1px solid #f2f4f6;}
.nx-video-icon{color:var(--nx-primary-deep);font-size:10px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--nx-primary-light);}
.nx-lesson{display:flex;align-items:center;gap:10px;padding:12px 8px;color:var(--nx-text-2);text-decoration:none;font-size:14px;transition:.15s;}
.nx-lesson:hover{background:#f7fdfc;color:var(--nx-primary-deep);}
.nx-lesson.is-played .nx-lesson-title{color:var(--nx-primary-deep);}
.nx-lesson-no{color:var(--nx-muted);font-size:13px;min-width:36px;}
.nx-lesson-title{flex:1;line-height:1.5;}
.nx-lesson-time{font-size:13px;color:var(--nx-muted);white-space:nowrap;}
.nx-homework{font-size:12px;color:#e6a23c;cursor:pointer;white-space:nowrap;padding:2px 8px;border:1px solid #f5dab1;border-radius:5px;}
.nx-homework:hover{background:#fdf6ec;}

.nx-comment-write{background:#f8fafb;border-radius:10px;padding:16px;margin-bottom:24px;}
.nx-comment-write textarea{width:100%;height:88px;border:1px solid var(--nx-border);border-radius:8px;padding:12px;font-size:14px;font-family:inherit;resize:vertical;outline:0;box-sizing:border-box;}
.nx-comment-write textarea:focus{border-color:var(--nx-primary);}
.nx-comment-tools{display:flex;align-items:center;justify-content:space-between;margin-top:12px;}
.nx-stars{display:flex;gap:4px;margin:0;}
.nx-stars span{width:20px;height:20px;cursor:pointer;background:#e5e8ec;border-radius:4px;transition:.15s;}
.nx-stars span.selected{background:var(--nx-primary);}
.nx-btn-sm{height:36px;padding:0 20px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:14px;cursor:pointer;font-family:inherit;}
.nx-comment{padding:18px 0;border-bottom:1px solid #f2f4f6;}
.nx-comment-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.nx-comment-body{flex:1;}
.nx-comment-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;}
.nx-comment-time{font-size:12px;color:#a8b0b6;}
.nx-comment-head strong{font-size:14px;color:var(--nx-text);}
.nx-stars-static i{display:inline-block;width:12px;height:12px;background:var(--nx-primary);border-radius:3px;margin-right:3px;}
.nx-comment-text{margin:0 0 8px;font-size:14px;line-height:1.75;color:var(--nx-text-2);}
.nx-comment-foot{display:flex;gap:16px;font-size:12px;color:var(--nx-muted);}
.nx-like{cursor:pointer;font-weight:400;}
.nx-like:hover{color:var(--nx-primary-deep);}
.nx-like.is-liked{color:var(--nx-primary-deep);}

.nx-course-side{display:flex;flex-direction:column;gap:20px;}
.nx-side-card{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);padding:20px;}
.nx-side-card h3{font-size:15px;margin:0 0 16px;padding-left:10px;position:relative;}
.nx-side-card h3::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:14px;border-radius:2px;background:var(--nx-primary);}
.nx-teacher-item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #f2f4f6;}
.nx-teacher-item:first-child{padding-top:0;}
.nx-teacher-item:last-child{border-bottom:0;padding-bottom:0;}
.nx-teacher-item img{width:54px;height:54px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid #eef1f4;}
.nx-teacher-item strong{display:block;font-size:15px;color:var(--nx-text);margin-bottom:5px;font-weight:600;}
.nx-teacher-item p{margin:0;font-size:13px;color:var(--nx-muted);line-height:1.5;}
.nx-side-course{display:flex;gap:12px;text-decoration:none;padding:12px 0;border-bottom:1px solid #f2f4f6;}
.nx-side-course:first-child{padding-top:0;}
.nx-side-course:last-child{border-bottom:0;padding-bottom:0;}
.nx-side-course img{width:78px;height:47px;border-radius:6px;object-fit:cover;flex-shrink:0;}
.nx-side-course strong{display:block;font-size:13px;color:var(--nx-text);line-height:1.45;margin-bottom:5px;font-weight:600;}
.nx-side-course p{margin:0;font-size:12px;color:var(--nx-muted);line-height:1.4;}
.nx-side-course:hover strong{color:var(--nx-primary-deep);}

@media (max-width:1100px){
  .nx-course-hero-inner{grid-template-columns:1fr;gap:24px;}
  .nx-course-body{grid-template-columns:1fr;}
}
@media (max-width:768px){
  .nx-course-info h1{font-size:20px;}
  .nx-course-price{font-size:24px;}
  .nx-course-actions{flex-wrap:wrap;}
  .nx-btn-lg{min-width:0;flex:1;}
  .nx-course-main{padding:0 16px 20px;}
  .nx-tabs2{gap:20px;}
  .nx-tab2{font-size:14px;}
}

/* ===== 播放页 ===== */
.nx-player-wrap{background:linear-gradient(135deg,#1b4438 0%,#245448 60%,#2a5d4f 100%);padding:22px 0 30px;}
.nx-player-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.nx-player-head h1{color:#fff;font-size:19px;margin:0;font-weight:600;}
.nx-player-lesson{color:rgba(255,255,255,.68);font-size:14px;}
.nx-play-box{background:#12211c;border-radius:12px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 14px 36px rgba(0,0,0,.32);}
.nx-play-box .play_box_con{width:100%;height:100%;background:#12211c;}
.nx-play-box video{width:100%;height:100%;display:block;object-fit:contain;background:#12211c;}
.nx-finished{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;padding:34px 44px 30px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.28);z-index:9999;display:none;}
.nx-finished h3{margin:0 0 18px;font-size:18px;color:var(--nx-text);}
.nx-finished p{display:flex;gap:12px;justify-content:center;margin:0;}
.nx-finished p a{padding:9px 24px;border-radius:8px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;text-decoration:none;font-size:14px;}
.nx-finished-close{position:absolute;right:14px;top:10px;cursor:pointer;color:#b8c0c6;font-size:20px;line-height:1;}
.nx-finished-close:hover{color:var(--nx-text);}
@media (max-width:768px){.nx-player-head h1{font-size:16px;}.nx-play-box{border-radius:8px;}}

/* ===== 登录弹窗 ===== */
.login_float_box{position:fixed;inset:0;background:rgba(15,20,22,.52);z-index:9999;display:none;}
.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:400px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;border-radius:18px;padding:34px 36px 30px;box-shadow:0 24px 64px rgba(0,0,0,.22);box-sizing:border-box;}
.login_float_box .login_box>i,
.login_float_box .register_box>i,
.login_float_box .forget_password>i{position:absolute;right:18px;top:16px;width:22px;height:22px;cursor:pointer;background:none;font-style:normal;}
.login_float_box .login_box>i::before,
.login_float_box .register_box>i::before,
.login_float_box .forget_password>i::before{content:"\00d7";font-size:22px;line-height:1;color:#b8c0c6;}
.login_float_box .login_box>i:hover::before{color:var(--nx-text);}
.login_float_box .login_box>ul{display:flex;gap:28px;list-style:none;padding:0;margin:0 0 26px;border-bottom:1px solid var(--nx-border);}
.login_float_box .login_box>ul li{padding:0 2px 14px;font-size:16px;color:var(--nx-muted);cursor:pointer;position:relative;font-weight:600;transition:.2s;}
.login_float_box .login_box>ul li.curr{color:var(--nx-text);}
.login_float_box .login_box>ul li.curr::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));}
.login_float_box h3{font-size:18px;margin:0 0 22px;text-align:center;color:var(--nx-text);font-weight:600;}
.login_float_box .lf-i{margin:0 0 14px;position:relative;}
.login_float_box .lf-i input{width:100%;height:46px;padding:0 16px;border:1px solid var(--nx-border);border-radius:10px;font-size:14px;color:var(--nx-text);background:#fafbfc;outline:0;box-sizing:border-box;transition:.2s;font-family:inherit;}
.login_float_box .lf-i input:focus{border-color:var(--nx-primary);background:#fff;box-shadow:0 0 0 3px rgba(129,216,208,.18);}
.login_float_box .verify_box{display:flex;gap:10px;margin-bottom:14px;}
.login_float_box .verify_box .lf-i{flex:1;margin:0;}
.login_float_box .verify_box button{flex-shrink:0;height:46px;padding:0 16px;border:1px solid var(--nx-primary);background:var(--nx-primary-light);color:var(--nx-primary-deep);border-radius:10px;font-size:13px;cursor:pointer;white-space:nowrap;font-family:inherit;transition:.2s;}
.login_float_box .verify_box button:hover{background:var(--nx-primary);color:#fff;}
.login_float_box .verify_box button.disabled{background:#f4f6f8;border-color:var(--nx-border);color:var(--nx-muted);cursor:not-allowed;}
.login_float_box .if-btn{width:100%;height:48px;margin-top:6px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;transition:.2s;}
.login_float_box .if-btn:hover{filter:brightness(.96);}
.login_float_box .lf-s{display:flex;align-items:center;justify-content:space-between;margin:16px 0 0;font-size:13px;color:var(--nx-muted);}
.login_float_box .lf-s label{display:flex;align-items:center;gap:6px;cursor:pointer;}
.login_float_box .lf-s label span{width:14px;height:14px;border:1px solid var(--nx-border);border-radius:4px;display:inline-block;}
.login_float_box .lf-s label span.selected{background:var(--nx-primary);border-color:var(--nx-primary);}
.login_float_box .lf-s a{color:var(--nx-text-2);text-decoration:none;}
.login_float_box .lf-s a:hover{color:var(--nx-primary-deep);}
.login_float_box .lf-s em{font-style:normal;color:var(--nx-muted);margin:0 2px;}
.login_float_box .login_bottom{margin-top:24px;padding-top:20px;border-top:1px solid var(--nx-border);text-align:center;}
.login_float_box .login_bottom span{display:block;font-size:12px;color:var(--nx-muted);margin-bottom:12px;}
.login_float_box .lg-wx{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 22px;border-radius:10px;background:#f4fbf9;border:1px solid #d8efec;color:#22b573;font-size:14px;text-decoration:none;background-image:none!important;transition:.2s;}
.login_float_box .lg-wx::before{content:"\5FAE\4FE1";font-size:14px;}
.login_float_box .lg-wx:hover{background:#e6f7f1;border-color:#22b573;}

/* 忘记密码步骤 */
.login_float_box .find-step{margin:0 0 26px;}
.login_float_box .find-step em{display:block;height:3px;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));border-radius:2px;margin-bottom:10px;width:25%;transition:.3s;}
.login_float_box .find-step p{display:flex;justify-content:space-between;margin:0;}
.login_float_box .find-step p span{font-size:12px;color:var(--nx-muted);}
.login_float_box .find-step p span.now{color:var(--nx-primary-deep);font-weight:600;}
.login_float_box .step_box form{display:none;}
.login_float_box .step_box form:first-child{display:block;}
.login_float_box .step_box .m86,.login_float_box .step_box .ps{margin:0 0 14px;}
.login_float_box .step_box input{width:100%;height:46px;padding:0 16px;border:1px solid var(--nx-border);border-radius:10px;font-size:14px;background:#fafbfc;outline:0;box-sizing:border-box;font-family:inherit;}
.login_float_box .step_box input:focus{border-color:var(--nx-primary);background:#fff;}
.login_float_box .step_box button{width:100%;height:46px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:15px;font-weight:600;cursor:pointer;margin-top:6px;font-family:inherit;}
.login_float_box .step_box .step3 em{display:block;text-align:center;font-style:normal;font-size:15px;color:#22b573;margin:10px 0 18px;}
.login_float_box .step_box .step3 .rl{display:block;text-align:center;font-size:14px;color:var(--nx-primary-deep);text-decoration:none;}
.login_float_box .step_box .verify_box{display:flex;gap:10px;}
.login_float_box .step_box .verify_box input{flex:1;}
.login_float_box .step_box .verify_box button{width:auto;padding:0 16px;font-size:13px;margin-top:0;flex-shrink:0;}

@media (max-height:820px){
  .login_float_box{overflow-y:auto;padding:36px 16px;}
  .login_float_box .login_box,
  .login_float_box .register_box,
  .login_float_box .forget_password{position:relative;left:auto;top:auto;transform:none;margin:0 auto;max-height:none;}
}
@media (max-width:480px){
  .login_float_box{padding:24px 16px;}
  .login_float_box .login_box,.login_float_box .register_box,.login_float_box .forget_password{padding:26px 22px 24px;border-radius:14px;}
}

/* 登录弹窗细节修正 */
.login_float_box .lf-i input{background-image:none!important;padding-left:16px!important;}
.login_float_box .lf-s{font-size:12px;gap:8px;}
.login_float_box .lf-s>*{margin:0!important;float:none!important;padding:0!important;border:0!important;background:none!important;}
.login_float_box .lf-s label span{width:13px!important;height:13px!important;}
.login_float_box .lf-s a::after,.login_float_box .lf-s a::before{content:none!important;}
.login_float_box .lf-s a:hover{background:none!important;}

/* 定位与图标强制修正 */
.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;}
.login_float_box .lf-i::before,
.login_float_box .lf-i::after{display:none!important;background:none!important;}
@media (max-height:820px){
  .login_float_box .login_box,
  .login_float_box .register_box,
  .login_float_box .forget_password{position:relative!important;left:auto!important;top:auto!important;transform:none!important;margin:0 auto!important;}
}

/* 输入框缩进与底部行 - 高优先级修正 */
.login_float_box .login_box .lf-i input,
.login_float_box .register_box .lf-i input,
.login_float_box .forget_password .lf-i input,
.login_float_box .login_box .step_box input{padding-left:16px!important;padding-right:16px!important;background-image:none!important;}
.login_float_box .login_box .lf-i::before,
.login_float_box .register_box .lf-i::before,
.login_float_box .forget_password .lf-i::before,
.login_float_box .login_box .lf-i::before{display:none!important;content:none!important;background:none!important;width:0!important;height:0!important;}
.login_float_box .login_box .lf-s,
.login_float_box .register_box .lf-s{display:flex!important;align-items:center!important;justify-content:space-between!important;font-size:12px!important;gap:8px!important;}
.login_float_box .login_box .lf-s>*,
.login_float_box .register_box .lf-s>*{margin:0!important;padding:0!important;border:0!important;float:none!important;background:none!important;box-shadow:none!important;}
.login_float_box .login_box .lf-s>*::before,
.login_float_box .login_box .lf-s>*::after,
.login_float_box .register_box .lf-s>*::before,
.login_float_box .register_box .lf-s>*::after{content:none!important;display:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;background:none!important;}
.login_float_box .login_box .lf-s .fpwd{margin-right:12px!important;}

/* DEBUG TEST */
.login_float_box .lf-i input{background:#ffe0e0!important;padding-left:0!important;text-indent:0!important;letter-spacing:0!important;}
.login_float_box .lf-s>*{all:initial!important;}
.login_float_box .lf-s{display:flex!important;justify-content:space-between!important;}

/* 最终修复：输入框归位 + 底部行重置 */
.login_float_box input{margin:0!important;float:none!important;text-indent:0!important;}
.login_float_box .lf-i input{background:#fafbfc!important;padding-left:16px!important;color:var(--nx-text)!important;}
.login_float_box .lf-i input:focus{background:#fff!important;}
.login_float_box .lf-s>*{all:initial!important;display:inline-block!important;font-size:12px!important;color:var(--nx-text-2)!important;cursor:pointer!important;font-family:inherit!important;}
.login_float_box .lf-s{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;}
.login_float_box .lf-s label{display:flex!important;align-items:center!important;gap:6px!important;cursor:pointer!important;}
.login_float_box .lf-s label span{width:14px!important;height:14px!important;border-radius:4px!important;display:inline-block!important;border:1px solid #c8ced4!important;box-sizing:border-box!important;vertical-align:middle!important;}
.login_float_box .lf-s label span.selected{background:var(--nx-primary)!important;border-color:var(--nx-primary)!important;}
.login_float_box .lf-s a{color:var(--nx-text-2)!important;text-decoration:none!important;}
.login_float_box .lf-s a:hover{color:var(--nx-primary-deep)!important;}
.login_float_box .lf-s .fpwd{margin-right:12px!important;}
.login_float_box .lf-s em{font-style:normal!important;color:var(--nx-muted)!important;font-size:12px!important;}

/* 根治：弹窗内所有行级元素强制收进卡片 */
.login_float_box .lf-i,
.login_float_box .verify_box,
.login_float_box .lf-s,
.login_float_box .comment_write,
.login_float_box .login_bottom,
.login_float_box .find-step,
.login_float_box .step_box form,
.login_float_box .step_box .m86,
.login_float_box .step_box .ps,
.login_float_box .step_box .verify_box{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;box-sizing:border-box!important;float:none!important;left:0!important;right:0!important;}
.login_float_box .lf-i input,
.login_float_box .verify_box input,
.login_float_box .step_box input{width:100%!important;margin:0!important;padding-left:16px!important;padding-right:16px!important;box-sizing:border-box!important;float:none!important;display:block!important;background:#fafbfc!important;}
.login_float_box .lf-i input:focus{background:#fff!important;}

.login_float_box .lf-i,
.login_float_box .verify_box,
.login_float_box .lf-s,
.login_float_box .comment_write,
.login_float_box .login_bottom,
.login_float_box .find-step,
.login_float_box .step_box form{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;}
.login_float_box .login_bottom{background:#fff!important;}
.login_float_box .lf-s .go_register{margin-right:0!important;}

/* 三重前缀强制归位 */
.login_float_box .login_box .lf-i,
.login_float_box .login_box .verify_box,
.login_float_box .login_box .lf-s,
.login_float_box .login_box .login_bottom,
.login_float_box .login_box .find-step,
.login_float_box .login_box .step_box form,
.login_float_box .register_box .lf-i,
.login_float_box .register_box .verify_box,
.login_float_box .register_box .lf-s,
.login_float_box .forget_password .lf-i,
.login_float_box .forget_password .verify_box,
.login_float_box .forget_password .lf-s,
.login_float_box .forget_password .find-step,
.login_float_box .forget_password .step_box form{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;box-sizing:border-box!important;float:none!important;display:block!important;}
.login_float_box .login_box .verify_box,
.login_float_box .register_box .verify_box,
.login_float_box .forget_password .verify_box{display:flex!important;}
.login_float_box .login_box .lf-s,
.login_float_box .register_box .lf-s,
.login_float_box .forget_password .lf-s{display:flex!important;}
.login_float_box .login_box .lf-i input,
.login_float_box .login_box .verify_box input,
.login_float_box .register_box .lf-i input,
.login_float_box .forget_password .lf-i input{min-width:0!important;max-width:100%!important;}
.login_float_box .login_box .lf-i,
.login_float_box .login_box .lf-s{min-width:0!important;max-width:100%!important;}

.login_float_box .login_content,
.login_float_box .login_form,
.login_float_box .register_box .login_content,
.login_float_box .forget_password .login_content{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;box-sizing:border-box!important;position:static!important;left:auto!important;right:auto!important;float:none!important;}

/* 搜索提示 */
.nx-search-tip{font-size:15px;color:var(--nx-text-2);margin-bottom:24px;padding:14px 20px;background:#f7f9fa;border-radius:10px;}
.nx-search-tip strong{color:var(--nx-primary-deep);font-weight:600;}
/* 进度条 */
.nx-progress{display:flex;align-items:center;gap:10px;margin-top:auto;}
.nx-progress-bar{flex:1;height:6px;background:#eef1f4;border-radius:3px;overflow:hidden;}
.nx-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));border-radius:3px;}
.nx-progress span{font-size:12px;color:var(--nx-muted);white-space:nowrap;}

/* 文章页 */
.nx-article{background:#fff;padding:8px 0 20px;}
.nx-article h1{font-size:26px;line-height:1.5;margin:0 0 16px;font-weight:700;color:var(--nx-text);}
.nx-article-meta{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--nx-muted);padding-bottom:20px;border-bottom:1px solid var(--nx-border);margin-bottom:26px;}
.nx-article-nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:36px;padding-top:24px;border-top:1px solid var(--nx-border);font-size:14px;}
.nx-article-nav a{color:var(--nx-text-2);text-decoration:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nx-article-nav a:hover{color:var(--nx-primary-deep);}
.nx-article-nav span{color:#b8c0c6;}
.nx-article-back{margin-left:auto!important;color:var(--nx-primary-deep)!important;}

/* 表格 */
.nx-table-wrap{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);overflow:hidden;}
.nx-table{width:100%;border-collapse:collapse;font-size:14px;}
.nx-table th{background:#f7f9fa;color:var(--nx-text-2);font-weight:600;text-align:left;padding:14px 16px;font-size:13px;white-space:nowrap;}
.nx-table td{padding:14px 16px;border-top:1px solid var(--nx-border);color:var(--nx-text-2);vertical-align:middle;}
.nx-table tr:hover td{background:#fbfdfd;}
.nx-table-course{display:flex;align-items:center;gap:12px;text-decoration:none;}
.nx-table-course img{width:88px;height:50px;border-radius:6px;object-fit:cover;flex-shrink:0;}
.nx-table-course strong{display:block;font-size:14px;color:var(--nx-text);line-height:1.4;margin-bottom:4px;font-weight:500;}
.nx-table-course span{font-size:12px;color:var(--nx-muted);}
.nx-table-course:hover strong{color:var(--nx-primary-deep);}
.nx-em{color:var(--nx-primary-deep)!important;font-weight:600;}

/* 分销弹窗 */
.nx-share-modal{display:none;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:440px;max-width:calc(100vw - 32px);background:#fff;border-radius:16px;padding:28px 30px;box-shadow:0 24px 64px rgba(0,0,0,.24);z-index:10000;box-sizing:border-box;}
.nx-share-modal h3{font-size:17px;margin:0 0 18px;display:flex;justify-content:space-between;align-items:center;}
.nx-share-close{cursor:pointer;color:#b8c0c6;font-size:22px;line-height:1;}
.nx-share-modal h4{font-size:15px;margin:0 0 10px;color:var(--nx-text-2);font-weight:500;}
.nx-share-modal h4 em{color:var(--nx-primary-deep);font-size:20px;font-style:normal;font-weight:700;}
.nx-share-modal h5{font-size:12px;color:var(--nx-muted);margin:0 0 18px;font-weight:400;line-height:1.7;}
.nx-share-link{background:#f7f9fa;border-radius:10px;padding:14px 16px;margin-bottom:18px;}
.nx-share-link h6{margin:0 0 8px;font-size:12px;color:var(--nx-muted);font-weight:400;}
.nx-share-link p{display:flex;gap:10px;margin:0;align-items:center;}
.nx-share-link em{flex:1;font-style:normal;font-size:12px;color:var(--nx-text-2);word-break:break-all;}
.nx-share-link .copy{flex-shrink:0;padding:5px 12px;border-radius:6px;background:var(--nx-primary);color:#fff;font-size:12px;text-decoration:none;}
.nx-share-modal button{width:100%;height:44px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:15px;cursor:pointer;font-family:inherit;}

/* 新闻页 */
.nx-news-banner{position:relative;border-radius:14px;overflow:hidden;margin-bottom:20px;background:#eef4f3;}
.nx-news-banner ul{list-style:none;padding:0;margin:0;position:relative;aspect-ratio:1200/280;}
.nx-news-banner li{position:absolute;inset:0;display:none;}
.nx-news-banner li:first-child{display:block;}
.nx-news-banner img{width:100%;height:100%;object-fit:cover;display:block;}
.nx-news-banner .dot_list{position:absolute;left:0;right:0;bottom:14px;text-align:center;margin:0;}
.nx-news-banner .dot_list span{display:inline-block;width:8px;height:8px;border-radius:4px;background:rgba(255,255,255,.55);margin:0 4px;cursor:pointer;transition:.2s;}
.nx-news-banner .dot_list span.curr{width:20px;background:#fff;}
.nx-notice{display:flex;align-items:center;gap:14px;padding:13px 18px;background:#f7f9fa;border-radius:10px;margin-bottom:26px;}
.nx-notice-tag{flex-shrink:0;font-size:12px;color:#fff;background:var(--nx-primary);padding:3px 9px;border-radius:5px;}
.nx-notice ul{list-style:none;padding:0;margin:0;display:flex;gap:24px;overflow:hidden;flex:1;}
.nx-notice li a{font-size:13px;color:var(--nx-text-2);text-decoration:none;white-space:nowrap;}
.nx-notice li a:hover{color:var(--nx-primary-deep);}
.nx-news-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
.nx-news-focus{position:relative;border-radius:14px;overflow:hidden;background:#eef4f3;}
.nx-news-focus ul{list-style:none;padding:0;margin:0;position:relative;aspect-ratio:580/346;}
.nx-news-focus li{position:absolute;inset:0;display:none;}
.nx-news-focus li:first-child{display:block;}
.nx-news-focus img{width:100%;height:100%;object-fit:cover;display:block;}
.nx-news-title{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.72));padding:36px 20px 16px;display:flex;align-items:center;gap:12px;}
.nx-news-title p{margin:0;flex:1;overflow:hidden;}
.nx-news-title p a{color:#fff;font-size:15px;font-weight:600;text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nx-news-title span{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer;position:relative;}
.nx-news-title span::before{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translate(-30%,-50%) rotate(45deg);}
.nx-news-title span.next::before{transform:translate(-70%,-50%) rotate(-135deg);}
.nx-news-top{display:block;text-decoration:none;padding-bottom:18px;border-bottom:1px solid var(--nx-border);margin-bottom:16px;}
.nx-news-top em{font-size:12px;color:var(--nx-muted);font-style:normal;}
.nx-news-top h4{font-size:19px;line-height:1.5;margin:8px 0 10px;color:var(--nx-text);font-weight:700;}
.nx-news-top p{margin:0;font-size:13px;line-height:1.75;color:var(--nx-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.nx-news-top:hover h4{color:var(--nx-primary-deep);}
.nx-news-items{list-style:none;padding:0;margin:0;}
.nx-news-items li{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px dashed #eef1f4;}
.nx-news-items li:last-child{border-bottom:0;}
.nx-news-items li a{flex:1;font-size:14px;color:var(--nx-text-2);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nx-news-items li a:hover{color:var(--nx-primary-deep);}
.nx-news-items li span{flex-shrink:0;font-size:12px;color:var(--nx-muted);}
@media (max-width:900px){.nx-news-grid{grid-template-columns:1fr;}}

/* 表单页 */
.nx-form-card{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);padding:30px 34px 34px;}
.nx-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;}
.nx-field{display:flex;flex-direction:column;gap:8px;}
.nx-field-full{grid-column:1/-1;margin-top:20px;}
.nx-field label{font-size:13px;color:var(--nx-text-2);}
.nx-field label em{color:#e6a23c;font-style:normal;margin-right:3px;}
.nx-field input,.nx-field select,.nx-field textarea{height:44px;padding:0 14px;border:1px solid var(--nx-border);border-radius:10px;font-size:14px;color:var(--nx-text);background:#fafbfc;outline:0;box-sizing:border-box;font-family:inherit;transition:.2s;}
.nx-field textarea{height:110px;padding:12px 14px;resize:vertical;line-height:1.7;}
.nx-field input:focus,.nx-field select:focus,.nx-field textarea:focus{border-color:var(--nx-primary);background:#fff;box-shadow:0 0 0 3px rgba(129,216,208,.16);}
.nx-field-hint{font-size:12px;color:var(--nx-muted);font-style:normal;}
.nx-upload{position:relative;height:44px;border:1px dashed #c8dfdc;border-radius:10px;background:#f6fbfa;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;}
.nx-upload span{font-size:13px;color:var(--nx-primary-deep);}
.nx-upload input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
/* 论文润色页的上传按钮：老 main.css 的 .upload_thesis 写死了 width:104px / height:44px / line-height:44px，
   手机上框只有 104px 宽，「点击上传 Word 文档」折成两行变 88px，被 overflow:hidden 裁成两半、还压住下面的提示文字。
   这里放开固定尺寸，让按钮按文字自动换行撑高。 */
.nx-upload.upload_thesis{float:none;width:auto;min-width:104px;height:auto;min-height:44px;line-height:1.5;padding:9px 14px;text-align:center;}
.nx-upload.upload_thesis span{line-height:1.5;}
.nx-form-submit{margin-top:30px;padding-top:24px;border-top:1px solid var(--nx-border);text-align:center;}
.nx-form-submit .nx-btn-lg{display:inline-flex;min-width:220px;}

/* 个人中心侧栏 */
.nx-user-side{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);padding:24px 18px;}
.nx-user-profile{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid #f0f3f5;margin-bottom:12px;text-align:left;}
.nx-user-profile img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--nx-primary-light);flex-shrink:0;margin:0;display:block;}
.nx-user-profile strong{font-size:15px;color:var(--nx-text);font-weight:600;flex:1;line-height:1.4;}
@media (max-width:768px){.nx-form-grid{grid-template-columns:1fr;}.nx-form-card{padding:22px 18px 26px;}}

/* ===== 个人中心（覆盖老结构） ===== */
.user-box{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start;}
.user-right{background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);padding:24px 28px 30px;min-height:420px;box-sizing:border-box;}
.user-right .ut{display:flex;gap:26px;border-bottom:1px solid var(--nx-border);margin:0 0 22px;padding:0;list-style:none;flex-wrap:wrap;}
.user-right .ut span{padding:0 2px 13px;font-size:15px;color:var(--nx-muted);cursor:pointer;position:relative;font-weight:600;transition:.2s;}
.user-right .ut span:hover{color:var(--nx-primary-deep);}
.user-right .ut span.curr{color:var(--nx-text);border-bottom:0 !important;}
/* 覆盖 main.css 第 450 行的老绿色下划线（.user-right .ut span.curr{border-bottom:2px solid #00ba6d}） */
.user-right .ut span.curr:not(:hover){border-bottom-color:transparent !important;}
.user-right .ut span.curr::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:3px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--nx-primary),var(--nx-primary-dark));}
.user-right .u-con{font-size:14px;color:var(--nx-text-2);}
.user-right .u-con.info p{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px dashed #eef1f4;margin:0;flex-wrap:wrap;}
.user-right .u-con.info p>span:first-child{width:88px;flex-shrink:0;color:var(--nx-muted);font-size:13px;}
.user-right .u-con.info p em{font-style:normal;color:var(--nx-text);}
.user-right .u-con.info p img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--nx-primary-light);}
.user-right .u-con.info p a{color:var(--nx-primary-deep);text-decoration:none;font-size:13px;}
.user-right .u-con.info p label{padding:6px 18px;border:1px solid var(--nx-border);border-radius:8px;cursor:pointer;font-size:13px;margin-right:8px;background:#fff;}
.user-right .u-con.info p label.curr{border-color:var(--nx-primary);background:var(--nx-primary-light);color:var(--nx-primary-deep);font-weight:600;}
.user-right .u-con.info select{height:40px;padding:0 12px;border:1px solid var(--nx-border);border-radius:8px;background:#fafbfc;font-size:13px;color:var(--nx-text);outline:0;font-family:inherit;margin-right:10px;}
.user-right .u-con.info textarea{width:100%;max-width:560px;height:96px;padding:12px;border:1px solid var(--nx-border);border-radius:8px;background:#fafbfc;font-size:13px;font-family:inherit;resize:vertical;outline:0;box-sizing:border-box;}
.user-right .u-con.info select:focus,.user-right .u-con.info textarea:focus{border-color:var(--nx-primary);background:#fff;}
.user-right .u-con.info button{height:42px;padding:0 34px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:14px;cursor:pointer;font-family:inherit;}

.user-right .class_list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.user-right .class_list .list{background:#fff;border:1px solid var(--nx-border);border-radius:10px;overflow:hidden;transition:.22s;}
.user-right .class_list .list:hover{box-shadow:var(--nx-shadow-hover);transform:translateY(-3px);border-color:var(--nx-primary);}
.user-right .class_list .list a{display:block;text-decoration:none;}
.user-right .class_list .list img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.user-right .class_list .list h3{font-size:14px;line-height:1.45;margin:12px 12px 8px;color:var(--nx-text);font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px;}
.user-right .class_list .list h4{font-size:12px;color:var(--nx-muted);margin:0 12px 8px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.user-right .class_list .list p{display:flex;justify-content:space-between;align-items:center;margin:0;padding:0 12px 12px;font-size:12px;}
.user-right .class_list .list p em{font-style:normal;color:var(--nx-muted);}
.user-right .class_list .list p strong{color:var(--nx-primary-deep);font-size:14px;font-weight:700;}
.user-right .class_list .list p b{color:var(--nx-primary-deep);font-size:12px;font-weight:600;}

.user-right .order_list{list-style:none;padding:0;margin:0;}
.user-right .order_list li{display:grid;grid-template-columns:1fr 100px 100px 90px 140px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--nx-border);font-size:13px;}
.user-right .order_list li:first-child{color:var(--nx-muted);font-size:12px;font-weight:600;background:#f7f9fa;border-radius:8px;padding:12px 14px;border-bottom:0;margin-bottom:6px;}
.user-right .order_list li .training em{display:block;font-style:normal;font-size:12px;color:var(--nx-muted);margin-bottom:3px;}
.user-right .order_list li .training h4{margin:4px 0;font-size:14px;color:var(--nx-text);font-weight:600;}
.user-right .order_list li .training b{font-size:11px;color:var(--nx-primary-deep);background:var(--nx-primary-light);padding:2px 7px;border-radius:4px;font-weight:500;}
.user-right .order_list li .act a{color:var(--nx-primary-deep);text-decoration:none;margin-right:10px;font-size:13px;}
.user-right .order_list li .act a.cancel,.user-right .order_list li .act a.delete{color:var(--nx-muted);}

.user-right .my_cash{background:linear-gradient(135deg,#f0fbfa,#e6f7f5);border:1px solid #d8efec;border-radius:12px;padding:22px 24px;margin-bottom:24px;}
.user-right .my_cash h4{margin:0 0 18px;font-size:15px;color:var(--nx-text);display:flex;align-items:center;gap:14px;font-weight:600;}
.user-right .my_cash h4 a{font-size:12px;color:#fff;background:var(--nx-primary);padding:5px 14px;border-radius:6px;text-decoration:none;font-weight:400;}
.user-right .my_cash ul{display:flex;gap:44px;list-style:none;padding:0;margin:0;}
.user-right .my_cash ul li{display:flex;flex-direction:column;gap:6px;}
.user-right .my_cash ul li span{font-size:12px;color:var(--nx-muted);}
.user-right .my_cash ul li em{font-style:normal;font-size:19px;color:var(--nx-primary-deep);font-weight:700;}
.user-right .fx_link{color:var(--nx-primary-deep);cursor:pointer;margin-right:10px;}
.user-right .mx{color:var(--nx-text-2);text-decoration:none;font-size:13px;}
.user-right table{width:100%;border-collapse:collapse;font-size:13px;}
.user-right table th{background:#f7f9fa;color:var(--nx-text-2);font-weight:600;text-align:left;padding:12px 14px;font-size:12px;}
.user-right table td{padding:12px 14px;border-top:1px solid var(--nx-border);color:var(--nx-text-2);}
.user-right .train_a{display:flex;align-items:center;gap:12px;text-decoration:none;}
.user-right .train_a img{width:88px;height:50px;border-radius:6px;object-fit:cover;flex-shrink:0;}
.user-right .train_a p{margin:0 0 4px;font-size:13px;color:var(--nx-text);}
.user-right .train_a span{font-size:12px;color:var(--nx-muted);}
.user-right .page{margin-top:30px;display:flex;justify-content:center;}
.user-right .page .pagination{display:flex;gap:8px;list-style:none;padding:0;margin:0;}
.user-right .page .pagination li a,.user-right .page .pagination li span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--nx-border);background:#fff;color:var(--nx-text-2);text-decoration:none;font-size:13px;}
.user-right .page .pagination li.active span{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));border-color:transparent;color:#fff;font-weight:600;}
.user-right .page .pagination li.disabled span{color:#c8ced4;background:#f7f9fa;}
@media (max-width:1000px){.user-box{grid-template-columns:1fr;}.user-right .class_list{grid-template-columns:repeat(2,1fr);}.user-right .order_list li{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.user-right .class_list{grid-template-columns:1fr;}.user-right{padding:18px 16px 24px;}}

/* 支付页 */
.nx-pay-card{background:#fff;border:1px solid var(--nx-border);border-radius:16px;padding:40px 30px 36px;text-align:center;max-width:520px;margin:0 auto;}
.nx-pay-card h3{margin:0 0 10px;font-size:15px;color:var(--nx-text-2);font-weight:400;}
.nx-pay-card h3 strong{display:block;font-size:34px;color:var(--nx-primary-deep);font-weight:700;margin-top:8px;}
.nx-pay-tip{font-size:13px;color:var(--nx-muted);margin:0 0 26px;}
.nx-pay-tip i{font-style:normal;color:#ff7400;font-weight:600;}
.nx-qr{display:inline-flex;padding:14px;border:1px solid var(--nx-border);border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(28,31,33,.06);}
.nx-qr img,.nx-qr iframe{display:block;border:0;}
.nx-qr-tip{display:block;margin-top:18px;font-size:13px;color:var(--nx-muted);}

/* 确认订单页 */
.nx-order-card{background:#fff;border:1px solid var(--nx-border);border-radius:16px;padding:30px 34px 34px;max-width:820px;margin:0 auto;}
.nx-order-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--nx-border);margin-bottom:22px;}
.nx-order-head h3{margin:0;font-size:19px;color:var(--nx-text);}
.nx-order-head span{font-size:12px;color:var(--nx-muted);}
.nx-order-user{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#f7f9fa;border-radius:10px;margin-bottom:26px;}
.nx-order-user img{width:44px;height:44px;border-radius:50%;object-fit:cover;}
.nx-order-user strong{display:block;font-size:14px;color:var(--nx-text);margin-bottom:4px;}
.nx-order-user p{margin:0;font-size:12px;color:var(--nx-muted);}
.nx-order-label{font-size:14px;margin:0 0 14px;color:var(--nx-text);font-weight:600;padding-left:10px;position:relative;}
.nx-order-label::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:14px;border-radius:2px;background:var(--nx-primary);}
.nx-pay-style dl{display:flex;gap:12px;margin:0 0 28px;flex-wrap:wrap;}
.nx-pay-style dt{display:none;}
.nx-pay-style dd{display:flex;align-items:center;gap:9px;padding:13px 22px;border:1px solid var(--nx-border);border-radius:10px;cursor:pointer;font-size:14px;color:var(--nx-text-2);transition:.2s;margin:0;}
.nx-pay-style dd:hover{border-color:var(--nx-primary);}
.nx-pay-style dd span{width:16px;height:16px;border-radius:50%;border:1px solid #c8ced4;position:relative;display:inline-block;}
.nx-pay-style dd span.curr{border-color:var(--nx-primary);}
.nx-pay-style dd span.curr::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--nx-primary);}
.nx-pay-style dd img{width:24px;height:24px;object-fit:contain;}
.nx-buy-goods{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid var(--nx-border);border-radius:12px;margin-bottom:28px;}
.nx-buy-goods a{display:flex;align-items:center;gap:16px;text-decoration:none;flex:1;min-width:0;}
.nx-buy-goods img{width:132px;height:74px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.nx-buy-goods strong{display:block;font-size:15px;color:var(--nx-text);margin-bottom:6px;line-height:1.4;}
.nx-buy-goods p{margin:0 0 8px;font-size:13px;color:var(--nx-muted);}
.nx-buy-goods b{font-size:11px;color:var(--nx-primary-deep);background:var(--nx-primary-light);padding:2px 8px;border-radius:4px;font-weight:500;}
.nx-buy-goods em{font-style:normal;font-size:22px;color:var(--nx-primary-deep);font-weight:700;flex-shrink:0;}
.nx-order-foot{display:flex;align-items:center;justify-content:flex-end;gap:24px;padding-top:22px;border-top:1px solid var(--nx-border);}
.nx-order-total{font-size:14px;color:var(--nx-text-2);}
.nx-order-total strong{font-size:24px;color:var(--nx-primary-deep);font-weight:700;margin-left:6px;}
.nx-order-foot .nx-btn-lg{min-width:160px;border:0;cursor:pointer;font-family:inherit;}
.nx-order-agree{text-align:right;font-size:12px;color:var(--nx-muted);margin:14px 0 0;}
.nx-order-agree a{color:var(--nx-primary-deep);text-decoration:none;}
@media (max-width:640px){.nx-order-card{padding:22px 18px 26px;}.nx-buy-goods{flex-direction:column;align-items:flex-start;}.nx-order-foot{flex-direction:column;align-items:stretch;}.nx-order-total{text-align:right;}}

/* ===== 个人中心 ===== */
.user-box{display:grid;grid-template-columns:210px 1fr;gap:32px;align-items:start;}
.user-left.nx-user-side{background:#fff;border-radius:14px;padding:22px 16px;border:1px solid var(--nx-border);}
.nx-user-profile{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid #f0f3f5;margin-bottom:12px;text-align:left;}
.nx-user-profile img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--nx-primary-light);flex-shrink:0;margin:0;display:block;}
.nx-user-profile strong{font-size:15px;color:var(--nx-text);font-weight:600;flex:1;line-height:1.4;}
.nx-user-nav{list-style:none;padding:0;margin:0;text-align:left;}
.nx-user-nav li{margin-bottom:4px;list-style:none;height:auto;line-height:normal;}
.nx-user-nav a{display:block;position:relative;padding:11px 14px 11px 42px;border-radius:9px;font-size:14px;line-height:1.4;color:var(--nx-text-2);text-decoration:none;transition:.18s;}
/* 图标与文字垂直居中对齐（覆盖 main.css 的 top:10px 绝对定位） */
.user-left .nx-user-nav a:before{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;background-size:contain;background-repeat:no-repeat;background-position:center;}
.nx-user-nav a:hover{background:var(--nx-primary-light);color:var(--nx-text-2);}
.nx-user-nav a.curr,.nx-user-nav a.curr:hover{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-weight:600;}

.user-right{background:#fff;border-radius:14px;padding:26px 28px;border:1px solid var(--nx-border);min-height:420px;}

.u-con p{margin:0 0 18px;font-size:14px;color:var(--nx-text-2);line-height:2;}
.u-con p span{display:inline-block;min-width:78px;color:var(--nx-muted);}
.u-con p em{font-style:normal;color:var(--nx-text);}
.u-con p a{color:var(--nx-primary-deep);text-decoration:none;margin-left:10px;font-size:13px;}
.u-con p a:hover{text-decoration:underline;}
.u-con p b{font-weight:400;color:var(--nx-muted);font-size:12px;margin-left:8px;}
.u-con label{display:inline-block;padding:6px 20px;border-radius:8px;border:1px solid var(--nx-border);margin-right:8px;cursor:pointer;font-size:14px;color:var(--nx-text-2);}
.u-con label.curr{border-color:var(--nx-primary);background:var(--nx-primary-light);color:var(--nx-primary-deep);font-weight:600;}
.u-con select{height:38px;border:1px solid var(--nx-border);border-radius:8px;padding:0 10px;font-size:14px;margin-right:10px;background:#fff;color:var(--nx-text-2);outline:0;}

/* 我的课程：3 列卡片 */
.class_list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px;}
.class_list .list{width:auto;margin:0;border:1px solid var(--nx-border);border-radius:12px;overflow:hidden;background:#fff;transition:.2s;}
.class_list .list:hover{box-shadow:0 10px 28px rgba(28,31,33,.1);border-color:var(--nx-primary);transform:translateY(-2px);}
.class_list .list a{display:block;text-decoration:none;}
.class_list .list img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:#f4f6f7;border-radius:0;}
.class_list .list h3{padding:12px 14px 6px;margin:0;font-size:14px;line-height:1.5;color:var(--nx-text);font-weight:600;height:auto;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.class_list .list p{padding:0 14px 13px;margin:0;height:auto;display:flex;justify-content:space-between;align-items:center;line-height:1.4;}
.class_list .list em{float:none;font-style:normal;font-size:12px;color:var(--nx-muted);}
.class_list .list strong{float:none;font-size:15px;color:var(--nx-primary-deep);font-weight:600;}

/* 我的订单：表格行布局 */
.order_list{background:transparent;}
.u-con.order .order_list li{display:flex;align-items:center;padding:18px 0;border-bottom:1px solid #f0f3f5;height:auto;}
.u-con.order .order_list li:first-child{height:44px;padding:0 4px;background:#f8fafb;border-radius:8px;margin-bottom:6px;border-bottom:0;font-size:13px;color:var(--nx-muted);font-weight:600;}
.u-con.order .order_list li:first-child p,
.u-con.order .order_list li:first-child span{height:44px;line-height:44px;}
.u-con.order .order_list li p,
.u-con.order .order_list li .training{flex:8;padding-right:18px;height:auto;line-height:1.6;}
.u-con.order .order_list li span{flex:3;text-align:center;height:auto;line-height:1.6;font-size:14px;color:var(--nx-text-2);}
.u-con.order .training em{display:block;font-size:12px;line-height:1.7;color:#a8b0b6;font-style:normal;margin:0;}
.u-con.order .training h4{margin:5px 0;font-size:14px;line-height:1.5;color:var(--nx-text);font-weight:600;}
.u-con.order .training b{font-size:12px;color:var(--nx-primary-deep);font-weight:400;}
.u-con.order .order_list li span.act{line-height:1.6;padding:0;}
.u-con.order .order_list li a.gopay{display:inline-block;width:auto;padding:0 16px;height:32px;line-height:32px;margin:0 0 6px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:13px;border-radius:8px;}
.u-con.order .order_list li a.cancel,
.u-con.order .order_list li a.delete{display:inline-block;font-size:13px;color:#e6a23c;margin-top:0;}

/* 个人信息：收窄为表单布局 */
.u-con.info{max-width:520px;margin:0;}
.u-con.info > p{display:flex;align-items:center;gap:12px;padding:9px 0;margin:0;border-bottom:1px solid #f5f7f9;line-height:1.6;}
.u-con.info > p:last-child{border-bottom:0;}
.u-con.info > p > span{width:62px;flex-shrink:0;color:var(--nx-muted);font-size:14px;}
.u-con.info > p > em{font-style:normal;color:var(--nx-text);font-size:14px;}
.u-con.info > p > img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--nx-border);}
.u-con.info > p > a{font-size:13px;color:var(--nx-primary-deep);text-decoration:none;margin-left:8px;}
.u-con.info > p > a:hover{text-decoration:underline;}
.u-con.info > p > b{font-weight:400;color:var(--nx-muted);font-size:12px;margin-left:6px;}
.u-con.info > p > i{font-style:normal;}
.u-con.info select{height:36px;border:1px solid var(--nx-border);border-radius:8px;padding:0 10px;font-size:14px;margin:0;background:#fff;color:var(--nx-text-2);outline:0;max-width:200px;}
.u-con.info label{display:inline-flex;align-items:center;padding:6px 22px;border-radius:8px;border:1px solid var(--nx-border);margin:0;cursor:pointer;font-size:14px;color:var(--nx-text-2);transition:.18s;}
.u-con.info label.curr{border-color:var(--nx-primary);background:var(--nx-primary-light);color:var(--nx-primary-deep);font-weight:600;}
.u-con.info .f-l{float:none !important;}

/* 观看记录、收藏 */
.mx_list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.mx_list .list{width:auto;margin:0;border:1px solid var(--nx-border);border-radius:12px;overflow:hidden;background:#fff;}
.mx_list .list img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.mx_list .list h3{padding:12px 14px;margin:0;font-size:14px;color:var(--nx-text);}

/* 操作按钮 */
.gopay{display:inline-block;padding:6px 18px;border-radius:8px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:13px;text-decoration:none;border:0;cursor:pointer;font-family:inherit;}
.gopay:hover{filter:brightness(.96);}
.cancel,.delete{color:#e6a23c;cursor:pointer;font-size:13px;}
.cancel:hover,.delete:hover{color:#d48806;}
.act,.bank,.bk,.browse,.copy,.fx,.f_link,.fx_link,.mx_box,.my_cash,.share_link{font-size:13px;color:var(--nx-text-2);}
.curr{color:var(--nx-primary-deep);}

/* 个人中心分页 */
.user-right .page{margin-top:24px;display:flex;justify-content:center;gap:8px;}
.user-right .page a,.user-right .page span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--nx-border);background:#fff;color:var(--nx-text-2);text-decoration:none;font-size:13px;}
.user-right .page .active,.user-right .page .curr{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));border-color:transparent;color:#fff;}

@media (max-width:1100px){.user-box{grid-template-columns:1fr;}.class_list,.order_list,.mx_list{grid-template-columns:1fr;}}

/* ===== 手机端精细优化（覆盖前面的断点） ===== */
@media (max-width:768px){
  body{overflow-x:hidden;-webkit-text-size-adjust:100%;}
  .nx-container{max-width:calc(100% - 20px);}

  /* 顶部：两行布局，logo+登录 第一行，搜索+导航 第二行起 */
  .nx-header-inner{height:auto;padding:10px 0;flex-wrap:wrap;gap:10px;row-gap:2px;}
  .nx-logo{font-size:17px;white-space:nowrap;}
  .nx-logo::before{width:22px;height:22px;border-radius:6px;}
  .nx-header-right{display:flex;align-items:center;gap:8px;margin-left:auto;}
  .nx-search{padding:3px 3px 3px 12px;}
  .nx-search input{width:90px;font-size:13px;}
  .nx-search button{padding:6px 12px;font-size:13px;}
  .nx-btn{padding:7px 14px;font-size:13px;}
  .nx-user-link span{display:none;}
  .nx-user-link img{width:30px;height:30px;}
  .nx-nav{order:3;width:100%;overflow-x:auto;padding:0 0 6px;gap:2px;-webkit-overflow-scrolling:touch;}
  .nx-nav::-webkit-scrollbar{display:none;}
  .nx-nav-item{height:32px;padding:0 11px;font-size:13.5px;}
  .nx-nav-more-menu{top:36px;}

  /* Hero 紧凑 */
  .nx-hero{padding:26px 0 30px;}
  .nx-hero h1{font-size:20px;line-height:1.45;margin-bottom:10px;}
  .nx-hero p{font-size:12.5px;margin-bottom:18px;padding:0 4px;}
  .nx-hero-search{width:100%;padding:4px 4px 4px 14px;}
  .nx-hero-search input{font-size:13.5px;min-width:0;}
  .nx-hero-search button{padding:9px 16px;font-size:13.5px;white-space:nowrap;}

  /* 四大分类两列 */
  .nx-hero-portals{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:22px;}
  .nx-hero-portal{padding:15px 13px;border-radius:11px;}
  .nx-hero-portal h3{font-size:15px;margin-bottom:5px;}
  .nx-hero-portal p{font-size:11.5px;line-height:1.45;}

  /* 区块与白块 */
  .nx-section{padding:18px 0;}
  .nx-section > .nx-container{border-radius:10px;padding:18px 13px;}
  .nx-crumb{padding:12px 0;}

  /* 切换标签 */
  .nx-tabs{gap:24px;margin-bottom:18px;}
  .nx-tab{font-size:16px;padding:11px 2px;}

  /* 卡片两列 */
  .nx-cards{grid-template-columns:repeat(2,1fr);gap:11px;}
  .nx-card{border-radius:10px;}
  .nx-card-body{padding:10px 11px 12px;gap:7px;}
  .nx-card-body h3{font-size:12.5px;min-height:36px;}
  .nx-price{font-size:14px;}
  .nx-price.nx-free{font-size:13px;}
  .nx-views{font-size:10.5px;}

  /* 分页紧凑 */
  .nx-pager{gap:10px;margin-top:26px;flex-wrap:wrap;}
  .nx-pager-total{font-size:13px;}
  .nx-pager-btn{min-width:32px;height:32px;padding:0 10px;font-size:13px;}

  /* 系统化课堂（老页面用） */
  .nx-systems{grid-template-columns:repeat(2,1fr);gap:10px;}
  .nx-system{padding:18px 14px;}
  .nx-system h3{font-size:15px;}
}

/* 手机端溢出兜底 */
@media (max-width:768px){
  html,body{max-width:100vw;overflow-x:hidden;}
  .nx-container{width:auto!important;max-width:calc(100vw - 20px)!important;}
  .nx-section > .nx-container{max-width:calc(100vw - 20px)!important;}
  .nx-hero .nx-container{max-width:calc(100vw - 20px)!important;}
  .nx-hero-search{width:auto!important;max-width:100%!important;}
  .nx-course-hero-inner{grid-template-columns:1fr!important;}
  .nx-course-body{grid-template-columns:1fr!important;}
  .nx-play-box{aspect-ratio:16/10;}
  .nx-course-actions{flex-wrap:wrap;}
  img{max-width:100%;}
  *{box-sizing:border-box;}
}

/* ===== 登录/注册/找回密码 弹窗 ===== */
.login_float_box{display:none;position:fixed;inset:0;background:rgba(15,26,23,.55);z-index:9999;overflow:hidden;}

.login_box,.register_box,.forget_password{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(420px,calc(100vw - 32px));
  height:auto;min-height:0;padding:26px 30px 22px;
  background:#fff;border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.22);
  box-sizing:border-box;
  max-height:calc(100vh - 40px);
  overflow-y:auto;overflow-x:hidden;
}
.login_box i,.register_box i,.forget_password i{
  position:absolute;right:14px;top:12px;width:20px;height:20px;cursor:pointer;
  background:none;font-style:normal;
}
.login_box i::before,.register_box i::before,.forget_password i::before{
  content:"\00d7";font-size:22px;line-height:20px;color:#b8c0c6;
}
.login_box i:hover::before,.register_box i:hover::before,.forget_password i:hover::before{color:#1c1f21;}

/* 标签页 */
.login_box ul{width:100%;height:46px;border-bottom:1px solid #eef1f4;display:flex;margin:0 auto;}
.login_box li{flex:1;text-align:center;font-size:16px;color:#93999f;line-height:46px;position:relative;cursor:pointer;list-style:none;}
.login_box li.curr{color:#1c1f21;font-weight:600;}
.login_box li:after{display:none;}
.login_box li.curr:after{display:block;height:3px;width:100%;background:linear-gradient(90deg,#81d8d0,#4fb8ae);position:absolute;left:0;bottom:-1px;content:"";border-radius:2px;}

.login_content{margin-top:24px;}
.login_form{display:none;width:100%;margin:0 auto;}
.login_form:first-child{display:block;}

/* 输入框 */
.lf-i{margin-bottom:16px;padding-left:14px;width:100%;height:48px;border:1px solid #e8ecf0;border-radius:10px;position:relative;box-sizing:border-box;transition:.18s;}
.lf-i:before{display:none;}
.lf-i.focus,.verify_box .verify.focus{border-color:#81d8d0;box-shadow:0 0 0 3px rgba(129,216,208,.14);}
.lf-i input{width:100%;height:46px;padding:0;line-height:46px;font-size:15px;color:#1c1f21;border:0;background:transparent;outline:none;box-sizing:border-box;font-family:inherit;}
.lf-i input::placeholder{color:#a8b0b6;}

.verify_box{margin-bottom:16px;height:48px;display:flex;gap:10px;}
.verify_box .verify{flex:1;width:auto;height:48px;margin:0;padding:0 0 0 14px;border:1px solid #e8ecf0;border-radius:10px;box-sizing:border-box;}
.verify_box .verify input{width:100%;height:46px;padding:0;line-height:46px;font-size:15px;border:0;background:transparent;outline:none;font-family:inherit;}
.verify_box .vb,.verify_box .fvb{width:112px;height:48px;line-height:46px;text-align:center;color:#2f9d92;background:#eaf9f7;border:1px solid #b7e6df;border-radius:10px;font-size:14px;cursor:pointer;flex-shrink:0;font-family:inherit;}
.verify_box .vb.disabled,.verify_box .fvb.disabled{background:#f7f9fa;color:#a8b0b6;border-color:#e8ecf0;cursor:not-allowed;}

/* 主按钮 */
.if-btn{width:100%;height:48px;line-height:48px;text-align:center;color:#fff;font-size:16px;font-weight:600;background:linear-gradient(135deg,#81d8d0,#4fb8ae);border:0;border-radius:10px;cursor:pointer;font-family:inherit;transition:.2s;}
.if-btn:hover{filter:brightness(.96);}

/* 底部小字 */
.lf-s{height:auto;padding:14px 0 0;line-height:18px;color:#93999f;font-size:13px;overflow:hidden;}
.lf-s label{float:left;position:relative;cursor:pointer;color:#7d858c;}
.lf-s label:after{content:"";display:none;}
.lf-s label span{width:15px;height:15px;border:1px solid #cfd6dc;border-radius:4px;box-sizing:border-box;float:left;margin-right:6px;position:relative;margin-top:1px;}
.lf-s label span.selected{background:#81d8d0;border-color:#81d8d0;}
.lf-s label span.selected:after{display:block;width:9px;height:9px;content:"";background:url("/home/image/dui.png") no-repeat center / 100%;position:absolute;left:2px;top:2px;}
.lf-s .f-l{color:#2f9d92;text-decoration:none;margin-right:14px;}
.lf-s .f-l:hover{text-decoration:underline;}
.lf-s .go_register{float:right;color:#2f9d92;text-decoration:none;}
.lf-s .go_register:hover{text-decoration:underline;}
.lf-s em{font-style:normal;color:#93999f;}

/* 其他登录方式 */
.login_bottom{margin-top:20px;padding-top:16px;border-top:1px solid #f0f3f5;text-align:center;font-size:12px;color:#a8b0b6;}
.login_bottom span{display:block;margin-bottom:10px;}
.login_bottom .lg-wx{display:inline-block;width:38px;height:38px;border-radius:50%;background:#f4f6f7;background-image:url("/home/image/wx.png");background-repeat:no-repeat;background-position:center;background-size:22px;transition:.2s;}
.login_bottom .lg-wx:hover{background-color:#eaf9f7;}

/* 注册/找回密码标题 */
.register_box h3,.forget_password h3{font-size:18px;margin:0 0 20px;color:#1c1f21;font-weight:700;text-align:center;}

/* 找回密码步骤 */
.find-step{margin-bottom:20px;}
.find-step p{display:flex;justify-content:space-between;font-size:12px;color:#a8b0b6;}
.find-step p span{position:relative;}
.find-step p span.now{color:#2f9d92;font-weight:600;}
.find-step em{display:none;}
.step_box form{display:none;}
.step_box form:first-child{display:block;}
.step_box .m86,.step_box .ps{margin-bottom:16px;}
.step_box input{width:100%;height:48px;border:1px solid #e8ecf0;border-radius:10px;padding:0 14px;font-size:15px;box-sizing:border-box;outline:none;font-family:inherit;}
.step_box input:focus{border-color:#81d8d0;box-shadow:0 0 0 3px rgba(129,216,208,.14);}
.step_box button{width:100%;height:48px;border:0;border-radius:10px;background:linear-gradient(135deg,#81d8d0,#4fb8ae);color:#fff;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;}
.step_box .step3 em{display:block;text-align:center;color:#22b573;font-size:15px;margin-bottom:16px;}
.step_box .step3 a{display:block;text-align:center;color:#2f9d92;text-decoration:none;font-size:14px;}

/* 移动端 */
@media (max-width:480px){
  .login_box,.register_box,.forget_password{padding:22px 20px 18px;}
  .login_box li{font-size:15px;}
  .if-btn{height:46px;line-height:46px;font-size:15px;}
}

/* 手机导航强制换行 */
@media (max-width:768px){
  .nx-header-inner{flex-wrap:wrap!important;}
  .nx-header-right{margin-left:auto!important;}
  .nx-nav{order:3!important;flex:0 0 100%!important;width:100%!important;max-width:100%!important;min-width:100%!important;}
}

/* ===== 汉堡菜单与抽屉 ===== */
.nx-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;padding:0;border:0;background:transparent;cursor:pointer;flex-shrink:0;}
.nx-burger span{display:block;width:19px;height:2px;background:var(--nx-text);border-radius:2px;}
.nx-drawer-mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:998;}
.nx-drawer-mask.is-open{display:block;}
.nx-drawer{position:fixed;left:0;top:0;bottom:0;width:80%;max-width:300px;background:#fff;z-index:999;transform:translateX(-102%);transition:transform .26s ease;overflow-y:auto;box-shadow:4px 0 24px rgba(0,0,0,.12);}
.nx-drawer.is-open{transform:translateX(0);}
.nx-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid #f0f3f5;}
.nx-drawer-title{font-size:16px;font-weight:700;color:var(--nx-text);}
.nx-drawer-close{border:0;background:transparent;font-size:24px;line-height:1;color:var(--nx-muted);cursor:pointer;padding:0 4px;}
.nx-drawer-search{display:flex;gap:8px;padding:14px 18px;border-bottom:1px solid #f0f3f5;}
.nx-drawer-search input{flex:1;height:36px;border:1px solid var(--nx-border);border-radius:8px;padding:0 12px;font-size:14px;outline:0;min-width:0;}
.nx-drawer-search button{height:36px;padding:0 14px;border:0;border-radius:8px;background:var(--nx-primary);color:#fff;font-size:14px;cursor:pointer;flex-shrink:0;}
.nx-drawer-nav{display:flex;flex-direction:column;padding:8px 0 28px;}
.nx-drawer-nav a{display:block;padding:13px 20px;font-size:15px;color:var(--nx-text-2);text-decoration:none;border-left:3px solid transparent;}
.nx-drawer-nav a:hover,.nx-drawer-nav a:active{background:var(--nx-primary-light);color:var(--nx-primary-deep);border-left-color:var(--nx-primary);}

@media (max-width:768px){
  .nx-burger{display:flex;}
  .nx-nav{display:none!important;}
  .nx-search{display:none!important;}
  .nx-header-inner{flex-wrap:nowrap!important;padding:10px 0;gap:12px;align-items:center;}
  .nx-logo{margin-right:auto;font-size:17px;}
  .nx-header-right{gap:8px;}
}

/* 性别单选：隐藏浏览器原生圆点 */
.u-con.info label{position:relative;}
.u-con.info label input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px;}

/* 隐藏老样式画的性别单选圆点（main.css 第 458-459 行的 label:before） */
.user-right .info p label:before,
.user-right .info p label.curr:before{display:none !important;content:none !important;border:0 !important;}
.u-con.info label:before,
.u-con.info label:after{display:none !important;content:none !important;}

/* 邮箱绑定表单 */
.email-bind-box{padding:6px 0 12px;border-bottom:1px solid #f5f7f9;}
.email-bind-box p{display:flex;align-items:center;gap:10px;padding:6px 0;margin:0;border:0;}
.email-bind-box p > span{width:62px;flex-shrink:0;}
.email-bind-box input{flex:1;max-width:280px;height:38px;border:1px solid var(--nx-border);border-radius:8px;padding:0 12px;font-size:14px;outline:none;box-sizing:border-box;font-family:inherit;}
.email-bind-box input:focus{border-color:var(--nx-primary);}
.email-bind-box .bind-send{height:38px;padding:0 14px;border:1px solid #b7e6df;background:#eaf9f7;color:var(--nx-primary-deep);border-radius:8px;font-size:13px;cursor:pointer;white-space:nowrap;font-family:inherit;}
.email-bind-box .bind-send.disabled{background:#f7f9fa;color:#a8b0b6;border-color:var(--nx-border);cursor:not-allowed;}
.email-bind-box .bind-submit{height:38px;padding:0 22px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary-dark));color:#fff;font-size:14px;cursor:pointer;font-family:inherit;}
.email-bind-box .bind-cancel{font-size:13px;color:var(--nx-muted);text-decoration:none;margin-left:6px;}
.email-bind-box .bind-cancel:hover{color:var(--nx-primary-deep);}
.u-con.info > p > a.bind-email{font-size:13px;color:var(--nx-primary-deep);text-decoration:none;margin-left:8px;}
.u-con.info > p > a.bind-email:hover{text-decoration:underline;}

/* ===== 全部课程页 ===== */
.nx-all-head{padding:6px 0 26px;border-bottom:1px solid #f0f3f5;margin-bottom:30px;}
.nx-all-head h1{margin:0 0 8px;font-size:26px;color:var(--nx-text);font-weight:700;}
.nx-all-head p{margin:0;font-size:14px;color:var(--nx-muted);}
.nx-cate-block{margin-bottom:44px;}
.nx-cate-block:last-child{margin-bottom:0;}
.nx-cate-head{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;margin-bottom:22px;border-bottom:2px solid var(--nx-primary-light);}
.nx-cate-head h2{margin:0;font-size:20px;color:var(--nx-text);font-weight:700;position:relative;padding-left:12px;}
.nx-cate-head h2::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,var(--nx-primary),var(--nx-primary-dark));}
.nx-cate-count{font-size:13px;color:var(--nx-muted);}
.nx-sub-block{margin-bottom:28px;}
.nx-sub-block:last-child{margin-bottom:0;}
.nx-sub-block h3{margin:0 0 14px;font-size:15px;color:var(--nx-text-2);font-weight:600;padding-left:10px;border-left:3px solid var(--nx-primary);line-height:1.4;}

/* ===== 导航：课程下拉 ===== */
.nx-nav-drop{position:relative;display:flex;align-items:center;height:36px;}
.nx-nav-drop .nx-nav-item{cursor:pointer;}
.nx-nav-drop-menu{position:absolute;left:0;top:100%;z-index:999;background:#fff;border:1px solid var(--nx-border);border-radius:12px;box-shadow:0 14px 40px rgba(28,31,33,.14);min-width:150px;padding:8px;display:none;}
.nx-nav-drop:hover .nx-nav-drop-menu{display:block;}
.nx-nav-drop-menu a{display:block;padding:10px 14px;font-size:14px;color:var(--nx-text-2);text-decoration:none;border-radius:8px;transition:.15s;white-space:nowrap;}
.nx-nav-drop-menu a:hover{background:var(--nx-primary-light);color:var(--nx-primary-deep);}
/* 移动端抽屉的分组标题与子项 */
.nx-drawer-group{display:block;padding:14px 4px 6px;font-size:13px;color:var(--nx-muted);font-weight:600;}
.nx-drawer-nav a.nx-drawer-sub{padding-left:16px;font-size:14px;color:var(--nx-text-2);}

/* ===== 交互修正（2026-10-30）=====
   老 main.css 第 5 行有全局 a:hover{color:#00ba6d}，会把 LOGO 和按钮上的白字染绿。
   这里统一：文字颜色 hover 不变，只让背景/边框变化。 */

/* 1. LOGO 与品牌文字：hover 不变色 */
.nx-logo,
.nx-logo:hover { color: var(--nx-text); }

/* 2. 深色按钮：文字恒为白色，hover 只加深背景 */
.nx-btn-primary,
.nx-btn-primary:hover,
.nx-btn-solid,
.nx-btn-solid:hover,
.nx-btn-sm,
.nx-btn-sm:hover,
.login_float_box .verify_box button:hover,
.login_float_box .if-btn:hover { color: #fff; }

.nx-btn-primary:hover { background: var(--nx-primary-dark); }
.nx-btn-solid:hover {
    filter: none;
    background: linear-gradient(135deg, var(--nx-primary-dark), #16463a);
}
.nx-btn-sm:hover { filter: brightness(.94); }
.login_float_box .if-btn:hover { filter: brightness(.94); }

/* 3. 白底按钮：hover 只改背景/边框，文字保持原色 */
.nx-btn-ghost:hover {
    border-color: var(--nx-primary);
    color: var(--nx-text-2);
    background: var(--nx-primary-light);
}
.nx-play-btn:hover { color: var(--nx-primary-deep); }

/* 4. 文字跳转类：hover 只加深背景，文字保持原色 */
.nx-nav-item:hover { color: var(--nx-text-2); background: var(--nx-primary-light); }
.nx-footer a:hover { color: var(--nx-text-2); }
.nx-user-drop a:hover { color: var(--nx-text-2); background: var(--nx-primary-light); }
.nx-nav-more-menu a:hover { color: var(--nx-text-2); background: var(--nx-primary-light); }
.nx-nav-drop-menu a:hover { color: var(--nx-text-2); background: var(--nx-primary-light); }
.nx-more:hover { color: var(--nx-text-2); }
.nx-tab:hover { color: var(--nx-text-2); }
.nx-crumb a:hover { color: var(--nx-text-2); }

/* ===== 用户中心左侧菜单：选中态（2026-10-30）=====
   老图标是 2019 年的绿色 PNG，CSS 改不了图片本身颜色，用 filter 强制刷白。
   背景保持青绿渐变不变。 */
.nx-user-nav a.curr,
.nx-user-nav a.curr:hover {
    background: linear-gradient(135deg, var(--nx-primary), var(--nx-primary-dark)) !important;
    color: #fff !important;
    font-weight: 600;
}

.nx-user-nav a.curr:before,
.nx-user-nav a.curr:hover:before {
    filter: brightness(0) invert(1);
    -webkit-filter: brightness(0) invert(1);
}

/* ===== 用户中心左侧菜单图标对应修正（2026-10-30）=====
   老 main.css 按 nth-child(1,2,5,6,8) 写的，但菜单现在只有 5 项，
   结果个人信息/观看记录/我的订单都用错了图标。这里按实际顺序重排。 */
.user-left .nx-user-nav li:nth-child(1) a:before { background-image: url("/home/image/my_class.png"); }
.user-left .nx-user-nav li:nth-child(2) a:before { background-image: url("/home/image/my_sc.png"); }
.user-left .nx-user-nav li:nth-child(3) a:before { background-image: url("/home/image/my_grxx.png"); }
.user-left .nx-user-nav li:nth-child(4) a:before { background-image: url("/home/image/my_gkjl.png"); }
.user-left .nx-user-nav li:nth-child(5) a:before { background-image: url("/home/image/my_order.png"); }

/* ===== 评论区（2026-10-30）=====
   1) 评分从「方块」改成「星星」：原 .nx-stars span 是 20x20 圆角方块，
      JS 逻辑不动（点第 N 颗给前 N 颗加 .selected），只换视觉。
   2) 输入框去掉右下角 resize 斜线，边框与聚焦态柔化。 */

/* 星星 */
.nx-stars {
    display: flex;
    gap: 2px;
    margin: 0;
    align-items: center;
}

.nx-stars span {
    width: 24px;
    height: 24px;
    cursor: pointer;
    background: none;
    border-radius: 0;
    font-size: 22px;
    line-height: 24px;
    text-align: center;
    color: #dfe4e8;
    transition: color .15s, transform .15s;
    user-select: none;
    -webkit-user-select: none;
}

.nx-stars span::before {
    content: "★";
}

.nx-stars span:hover {
    transform: scale(1.12);
}

.nx-stars span.selected {
    background: none;
    color: #f5b301;
}

/* 评论列表里如果有静态星级，也换成星星 */
.nx-stars-static i {
    display: inline-block;
    width: auto;
    height: auto;
    background: none;
    border-radius: 0;
    font-style: normal;
    font-size: 13px;
    line-height: 1;
    margin-right: 1px;
    color: #f5b301;
}

.nx-stars-static i::before {
    content: "★";
}

/* 输入框 */
.nx-comment-write {
    background: #f8fafb;
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 24px;
}

.nx-comment-write textarea {
    width: 100%;
    height: 96px;
    border: 1px solid #e4ebe9;
    border-radius: 10px;
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.7;
    font-family: inherit;
    resize: none;
    outline: 0;
    box-sizing: border-box;
    background: #fff;
    color: #1c1f21;
    transition: border-color .18s, box-shadow .18s;
}

.nx-comment-write textarea::placeholder {
    color: #a9b5b2;
}

.nx-comment-write textarea:focus {
    border-color: #81d8d0;
    box-shadow: 0 0 0 3px rgba(129, 216, 208, .16);
}

/* ===== 评论列表：星级与点赞（2026-10-30）=====
   原来 .nx-comment-foot 里只输出一个数字（click 字段=点赞数），没任何说明，
   看着像误输入。这里补上「赞」字；评论头补上星级显示。 */
.nx-comment-stars {
    display: inline-block;
    margin-left: 8px;
    font-size: 13px;
    line-height: 1;
    letter-spacing: 1px;
    color: #f5b301;
    vertical-align: middle;
}

.nx-comment-stars em {
    font-style: normal;
    color: #e2e7ea;
}

.nx-like::before {
    content: "赞 ";
    font-weight: 400;
    color: #9aa8a5;
}

.nx-like.is-liked::before {
    color: inherit;
}

/* ===== 评论点赞：右侧大拇指 + 数字（2026-10-30）=====
   原来只输出一个裸数字，现在改成「👍 数字」并右对齐。 */
.nx-comment-foot {
    display: flex;
    justify-content: flex-end;
    margin-top: 6px;
}

.nx-like {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    font-weight: 400;
    font-size: 13px;
    line-height: 1;
    color: #9aa8a5;
    transition: color .15s;
    user-select: none;
    -webkit-user-select: none;
}

.nx-like svg {
    display: block;
    flex: 0 0 auto;
}

.nx-like:hover {
    color: #2a6b56;
}

.nx-like.is-liked {
    color: #2a6b56;
}

/* 去掉上一版加的「赞 」文字前缀 */
.nx-like::before {
    content: none;
}

.nx-like.is-liked::before {
    content: none;
}

/* ===== 评论：内容与点赞同一行（2026-10-30）=====
   原来点赞单独占一行，现在内容在左、点赞贴右，同一行。 */
.nx-comment-body {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 8px;
}

.nx-comment-body .nx-comment-text {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.nx-comment-body .nx-like {
    flex: 0 0 auto;
    margin-top: 3px;
}

/* ===== 章节授课老师（2026-10-30）=====
   每节课可以单独指定老师，没指定的不显示（回落到课程老师）。 */
.nx-lesson-teacher {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    font-size: 12px;
    line-height: 18px;
    color: #7b8a87;
    background: #f1f5f4;
    border-radius: 4px;
    vertical-align: middle;
    white-space: nowrap;
}

/* ===== 课后作业标签：移到时间后面（2026-10-30）=====
   原来是放在 <a> 外面，和章节行不同层级；现在移进行内，靠 .nx-lesson 的 gap:10px 自动间隔。 */
.nx-lesson .nx-homework {
    flex: 0 0 auto;
    margin-left: 0;
    font-size: 12px;
    line-height: 18px;
    padding: 1px 8px;
    color: #d9822b;
    background: #fdf6ec;
    border: 1px solid #f5dab1;
    border-radius: 4px;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s;
}

.nx-lesson .nx-homework:hover {
    background: #fbeed8;
}

/* ===== 页脚美化（2026-10-30）=====
   原来 line-height 1.8 + margin-bottom 10px，两行之间空得太多；
   友情链接用 &nbsp;&nbsp; 分隔，跟左边文字的行距也对不齐。 */
.nx-footer {
    background: #fff;
    color: #7b8a87;
    padding: 26px 0 22px;
    border-top: 1px solid #e4ebe9;
}

.nx-footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap;
}

.nx-footer-brand {
    flex: 1;
    min-width: 260px;
}

.nx-footer-desc {
    margin: 0 0 5px;
    font-size: 13px;
    line-height: 1.55;
    color: #7b8a87;
}

.nx-footer-copy {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
    color: #a9b5b2;
}

.nx-footer-links {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    flex: 0 0 auto;
}

.nx-footer-label {
    font-size: 12px;
    line-height: 1.55;
    color: #a9b5b2;
    white-space: nowrap;
}

.nx-footer-link-list {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.nx-footer-link-list a {
    font-size: 13px;
    line-height: 1.55;
    color: #7b8a87;
    text-decoration: none;
    transition: color .15s;
}

.nx-footer-link-list a:hover {
    color: #2a6b56;
}

@media (max-width: 768px) {
    .nx-footer {
        padding: 20px 0 18px;
    }
    .nx-footer-inner {
        flex-direction: column;
        gap: 14px;
    }
    .nx-footer-brand {
        min-width: 0;
    }
    .nx-footer-link-list {
        gap: 12px;
    }
}

/* ===== 移动端抽屉：防止滚动穿透（2026-10-30）=====
   原来只给 body 设 overflow:hidden，iOS 上不生效，
   而且抽屉内滚动会传递给背景页面。 */
html.nx-nav-open,
body.nx-nav-open {
    overflow: hidden !important;
    height: 100%;
    touch-action: none;
}

/* 抽屉内部照常滚动，但滚动到底/顶不会带动背景 */
.nx-drawer {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: auto;
}

/* 遮罩层吃掉所有触摸手势 */
.nx-drawer-mask {
    overscroll-behavior: contain;
    touch-action: none;
}

/* ===== 导航 Logo 换成图片（2026-10-30）=====
   沿用老站「龙华大讲堂」logo（210x53 透明底），去掉 CSS 画的渐变方块。 */
.nx-logo::before {
    display: none;
}

.nx-logo img {
    display: block;
    height: 40px;
    width: auto;
}

@media (max-width: 768px) {
    .nx-logo img {
        height: 32px;
    }
}

/* ===== 首页 Banner 背景（2026-10-30）=====
   后台上传的广告图做 hero 背景；红绸底图上文字改白色，搜索框和分类卡保持白底保证可读。 */
.nx-hero.has-banner {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 520px;
}

.nx-hero.has-banner h1 {
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .25);
}

.nx-hero.has-banner p {
    color: rgba(255, 255, 255, .88);
    text-shadow: 0 1px 6px rgba(0, 0, 0, .25);
}

/* 分类入口卡片在深色底上描边弱化 */
.nx-hero.has-banner .nx-hero-portal {
    border-color: rgba(255, 255, 255, .45);
}

/* ===== 首页 Banner 高度收一收（2026-10-30）=====
   原来 min-height 520 + padding 64/72，加上 4 个分类卡太高；
   移动端分类卡还是 1 列堆叠，整块接近一屏。 */
.nx-hero.has-banner {
    min-height: 380px;
    padding: 40px 0 44px;
}

.nx-hero.has-banner .nx-hero-portals {
    margin-top: 24px;
}

@media (max-width: 1100px) {
    .nx-hero.has-banner {
        min-height: 0;
        padding: 34px 0 38px;
    }
}

@media (max-width: 768px) {
    .nx-hero.has-banner {
        padding: 26px 0 30px;
    }
    .nx-hero.has-banner .nx-hero-portals {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        margin-top: 18px;
    }
}

/* ===== 首页 Banner 高度对齐老站 446px（2026-10-30）===== */
.nx-hero.has-banner {
    min-height: 446px;
    padding: 52px 0 52px;
    box-sizing: border-box;
}

@media (max-width: 1100px) {
    .nx-hero.has-banner {
        min-height: 0;
        padding: 34px 0 38px;
    }
}

@media (max-width: 768px) {
    .nx-hero.has-banner {
        min-height: 0;
        padding: 26px 0 30px;
    }
}

/* ===== 首页 Banner 改用 img 层（2026-10-30）=====
   之前用 background-image + background-size:cover，一旦 CSS 缓存没刷新，
   图会按原始尺寸铺在左上角，看着就像"背景没生效"。改成绝对定位的 img 更稳。 */
.nx-hero.has-banner {
    position: relative;
    overflow: hidden;
    min-height: 446px;
    padding: 52px 0;
    box-sizing: border-box;
    background: #7d1c1c;
}

.nx-hero.has-banner .nx-hero-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
    pointer-events: none;
    display: block;
}

.nx-hero.has-banner .nx-container {
    position: relative;
    z-index: 1;
}

@media (max-width: 1100px) {
    .nx-hero.has-banner {
        min-height: 0;
        padding: 34px 0 38px;
    }
}

@media (max-width: 768px) {
    .nx-hero.has-banner {
        min-height: 0;
        padding: 26px 0 30px;
    }
}

/* ===== Banner 区文字修正（2026-10-30）=====
   上一步把 .nx-hero.has-banner 里的 p 全设成白色，连白底分类卡里的说明文字也被染白了，
   导致「医学行业体系化学习」这类文案看不见。分类卡里恢复深色。 */
.nx-hero.has-banner .nx-hero-portal h3 {
    color: var(--nx-text);
    text-shadow: none;
}

.nx-hero.has-banner .nx-hero-portal p {
    color: var(--nx-muted);
    text-shadow: none;
}

/* 手机端去掉 4 个分类入口卡：竖排太占地方，红色 banner 会拉得很长。
   分类在下面的课程区还能进，这里不留。 */
@media (max-width: 768px) {
    .nx-hero.has-banner .nx-hero-portals {
        display: none;
    }
    .nx-hero.has-banner {
        min-height: 0;
        padding: 34px 0 36px;
    }
    .nx-hero.has-banner .nx-container {
        text-align: center;
    }
}

/* ===== 手机端搜索框收窄（2026-10-30）=====
   原来 width:100% 撑满整行，看着太长；限个最大宽度并居中。 */
@media (max-width: 768px) {
    .nx-hero.has-banner .nx-hero-search,
    .nx-hero .nx-hero-search {
        width: 100%;
        max-width: 280px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 360px) {
    .nx-hero.has-banner .nx-hero-search,
    .nx-hero .nx-hero-search {
        max-width: 100%;
    }
}

/* ===== 手机端搜索框宽度 60%（2026-10-30）=====
   上面 @media(max-width:768px) 里有一条 .nx-hero-search{width:auto!important;max-width:100%!important}
   是溢出兜底，带 !important 会压掉普通规则，所以这里也必须用 !important 才盖得住。 */
@media (max-width: 768px) {
    .nx-hero.has-banner .nx-hero-search,
    .nx-hero .nx-hero-search {
        width: 80% !important;
        max-width: 80% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* 超小屏（≤360）60% 会挤坏输入框，放宽一点 */
@media (max-width: 360px) {
    .nx-hero.has-banner .nx-hero-search,
    .nx-hero .nx-hero-search {
        width: 88% !important;
        max-width: 88% !important;
    }
}

/* ===== 移动端抽屉美化（2026-10-30）=====
   原来是纯白一长条，头部分组没有层次。改成：深墨绿头部 + 浅灰搜索区 +
   分组小标题 + 二级项圆点缩进，和站点主题一致。 */
.nx-drawer {
    width: 82%;
    max-width: 320px;
    background: #ffffff;
    box-shadow: 6px 0 28px rgba(0, 0, 0, .16);
}

/* 头部：深墨绿 */
.nx-drawer-head {
    background: #1f3d34;
    padding: 22px 18px 20px;
    border-bottom: 0;
}

.nx-drawer-title {
    color: #ffffff;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .5px;
}

.nx-drawer-close {
    color: rgba(255, 255, 255, .7);
    font-size: 26px;
    line-height: 1;
    padding: 0 2px;
}

.nx-drawer-close:active {
    color: #ffffff;
}

/* 搜索区：浅灰底，和头部分开 */
.nx-drawer-search {
    padding: 16px 18px;
    background: #f6f9f8;
    border-bottom: 1px solid #eaf0ee;
    gap: 10px;
}

.nx-drawer-search input {
    height: 38px;
    border: 1px solid #e2e9e7;
    border-radius: 10px;
    background: #ffffff;
    font-size: 14px;
    padding: 0 14px;
}

.nx-drawer-search input:focus {
    border-color: #81d8d0;
}

.nx-drawer-search button {
    height: 38px;
    padding: 0 16px;
    border-radius: 10px;
    font-size: 14px;
    background: #2a6b56;
}

/* 导航区 */
.nx-drawer-nav {
    padding: 6px 0 32px;
}

/* 分组小标题 */
.nx-drawer-group {
    display: block;
    padding: 18px 20px 8px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #9aa8a5;
    background: transparent;
}

/* 一级项 */
.nx-drawer-nav a {
    padding: 14px 20px;
    font-size: 15px;
    color: #2a3b38;
    border-left: 3px solid transparent;
    transition: background .15s, color .15s, border-color .15s;
}

.nx-drawer-nav a:active,
.nx-drawer-nav a:hover {
    background: #f2f8f6;
    color: #2a6b56;
    border-left-color: #2a6b56;
}

/* 二级项：圆点 + 缩进，和一级拉开层次 */
.nx-drawer-nav a.nx-drawer-sub {
    position: relative;
    padding: 12px 20px 12px 36px;
    font-size: 14px;
    color: #7b8a87;
    border-left-color: transparent;
}

.nx-drawer-nav a.nx-drawer-sub::before {
    content: "";
    position: absolute;
    left: 22px;
    top: 50%;
    width: 5px;
    height: 5px;
    margin-top: -2.5px;
    border-radius: 50%;
    background: #cdd8d5;
    transition: background .15s;
}

.nx-drawer-nav a.nx-drawer-sub:active::before,
.nx-drawer-nav a.nx-drawer-sub:hover::before {
    background: #2a6b56;
}

/* 抽屉滚动条收细 */
.nx-drawer::-webkit-scrollbar {
    width: 4px;
}

.nx-drawer::-webkit-scrollbar-thumb {
    background: #dfe4e8;
    border-radius: 2px;
}

.nx-drawer::-webkit-scrollbar-track {
    background: transparent;
}

/* 抽屉头部：logo 是深色字，放深底看不清，所以头保持白底 + 细边框 */
.nx-drawer-head {
    background: #ffffff;
    padding: 16px 18px;
    border-bottom: 1px solid #eef2f1;
}

.nx-drawer-logo {
    display: block;
    text-decoration: none;
}

.nx-drawer-logo img {
    display: block;
    height: 30px;
    width: auto;
}

.nx-drawer-close {
    color: #9aa8a5;
    font-size: 26px;
}

.nx-drawer-close:active {
    color: #2a6b56;
}

/* ===== 登录弹窗：居中修正 + 关闭按钮加大 + 手机端适配（2026-10-30）=====
   原来用 100vh 算 max-height，手机浏览器地址栏占位导致实际可视区更小，
   弹窗顶部被顶出屏幕，看着"太靠上"。改用 dvh（动态视口高度）。 */
.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password {
    max-height: calc(100dvh - 48px);
}

/* 关闭按钮：22px 太小手指点不准，扩成 44x44 触控区（图标仍 24px） */
.login_float_box .login_box > i,
.login_float_box .register_box > i,
.login_float_box .forget_password > i {
    right: 6px;
    top: 6px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    z-index: 2;
    -webkit-tap-highlight-color: transparent;
}

.login_float_box .login_box > i::before,
.login_float_box .register_box > i::before,
.login_float_box .forget_password > i::before {
    font-size: 26px;
    line-height: 1;
}

.login_float_box .login_box > i:active,
.login_float_box .register_box > i:active,
.login_float_box .forget_password > i:active {
    background: #eef3f2;
}

@media (max-width: 768px) {
    .login_float_box .login_box,
    .login_float_box .register_box,
    .login_float_box .forget_password {
        width: calc(100vw - 32px);
        max-width: 400px;
        max-height: calc(100dvh - 64px);
        padding: 32px 22px 24px;
        border-radius: 16px;
    }
    .login_float_box .login_box > ul {
        gap: 20px;
    }
    .login_float_box .login_box > ul li {
        font-size: 15px;
    }
}

/* ===== 登录弹窗居中：改用 fixed + inset:0 + margin:auto（2026-10-30）=====
   之前用 left/top:50% + translate(-50%,-50%)，百分比算的是父容器（.login_float_box
   inset:0 等于 100vh，含手机地址栏）的一半，实际可视区更矮，所以看起来偏上。
   改成 position:fixed 直接相对视口，margin:auto 自动居中，不依赖任何高度计算。 */
.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    transform: none;
    width: 400px;
    height: auto;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
    .login_float_box .login_box,
    .login_float_box .register_box,
    .login_float_box .forget_password {
        width: calc(100vw - 32px);
        max-width: 400px;
        max-height: calc(100dvh - 72px);
    }
}

/* ===== 登录弹窗：彻底解决手机端「内容少时偏上」（2026-10-30）=====
   根因：手机浏览器里 position:fixed 参照的是 layout viewport（含地址栏），
   不是实际可视区。页面内容少时地址栏展开，可视区变矮，按 100vh 居中就偏上；
   内容多滚动时地址栏收起，视口接近 100vh，看起来就正常了。
   解法：遮罩层高度改用 100dvh（动态视口高度，随地址栏变化），
   弹窗改成相对遮罩层 absolute + margin:auto 居中。 */
.login_float_box {
    position: fixed;
    top: 0;
    left: 0;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 100vh;      /* 老浏览器兜底 */
    height: 100dvh;     /* 现代浏览器：动态视口高度 */
    overflow: hidden;
}

.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password {
    position: absolute;   /* 相对遮罩层（100dvh），不再相对 layout viewport */
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    transform: none;
    width: 400px;
    height: auto;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
    .login_float_box .login_box,
    .login_float_box .register_box,
    .login_float_box .forget_password {
        width: calc(100vw - 32px);
        max-width: 400px;
        max-height: calc(100dvh - 72px);
    }
}

/* ===== 登录弹窗：改用 flex 居中（2026-10-30 最终方案）=====
   不再用任何 left/top 百分比或 JS 计算，交给浏览器 flex 布局，
   地址栏、键盘、视口怎么变都居中。 */
.login_float_box.is-open {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
    overflow-y: auto;
}

.login_float_box .login_box,
.login_float_box .register_box,
.login_float_box .forget_password {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    margin: auto;
    transform: none;
    width: 400px;
    height: auto;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 0 0 auto;
}

@media (max-width: 768px) {
    .login_float_box .login_box,
    .login_float_box .register_box,
    .login_float_box .forget_password {
        width: calc(100vw - 32px);
        max-width: 400px;
    }
}

/* ===== 去掉移动端点击时浏览器自带的半透明高亮块（2026-10-30）=====
   这不是 :active 样式，是 Chrome/Safari 等移动浏览器在手指点按可点击元素时
   自动叠上去的一层灰蓝色块（tap highlight）。用 -webkit-tap-highlight-color 关掉。
   自己写的 :active / :hover 反馈不受影响。 */
html,
body,
a,
button,
input,
textarea,
select,
label,
summary,
[onclick],
[role="button"] {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
}

/* 点击后不要留虚线框，但保留键盘 Tab 导航的可见焦点 */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible) {
    outline: none;
}

/* ===== 手机端：个人中心（2026-10-30）=====
   老 main.css 给这套结构写死了像素宽度：.user-box 1200 / .user-left 230 / .user-right 950，
   而 newskin.css 原有的媒体查询只改了 grid 的列数、没改宽度，所以手机上容器仍是 1200 宽，
   整页横向溢出 833px，看起来就是「手机端显示的是电脑端样式」。
   这里放在文件末尾统一压掉：权重相同、顺序在后，能覆盖 main.css 与前面的所有规则。 */
@media (max-width:1000px){
  .user-box{display:block;width:auto;max-width:100%;margin:0 0 40px;min-height:0;}
  .user-left.nx-user-side{width:100%;float:none;margin:0 0 14px;padding:16px 14px;}
  .user-right{width:100%;float:none;padding:20px 16px 24px;min-height:0;}
  .user-right .ut{height:auto;display:flex;flex-wrap:wrap;gap:20px;margin:0 0 16px;border-bottom:1px solid var(--nx-border);}
  .user-right .ut span{float:none;height:auto;line-height:1.6;padding:0 0 8px;margin:0;font-size:15px;}
  .u-con.info{max-width:100%;}
  .u-con.info > p{flex-wrap:wrap;}
  /* 播放页：.nx-course-body 是 grid，写 1fr 时列宽不能小于内容的 min-content，
     侧栏卡片把列撑到 410px（容器只有 370），整页横向溢出 43px。
     用 minmax(0,1fr) 才允许收缩到容器宽度。 */
  .nx-course-body{grid-template-columns:minmax(0,1fr)!important;}
  .nx-course-main,.nx-course-side,.nx-side-card{min-width:0;}
  /* 个人信息：main.css 第 452 行把每行钉死 height:70px + line-height:70px，
     头像 64px 加「用户名只允许修改一次」那条提示一折行就装不下，溢出压到下一行。
     另外头像那行里的 <input type="file" style="visibility:hidden"> 仍占 253x25 的布局位置，
     把整行挤得换行 —— 这里让它脱离文档流。 */
  .user-right .u-con.info p{height:auto;min-height:0;line-height:1.6;row-gap:6px;}
  .user-right .u-con.info p > input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
  .user-right .u-con.info p > i{flex-basis:100%;margin:2px 0 0;line-height:1.5;}
  .user-right .u-con.info p > img{align-self:center;}
  /* 订单表：≤1000px 起就改成卡片式（.u-con.order .order_list li 前面被设成 display:flex，
     特异性高于 .user-right .order_list li，必须用 .user-right .u-con.order 前缀才能压回 block） */
  .user-right .u-con.order .order_list li{display:block;padding:14px 0;}
  .user-right .u-con.order .order_list li:first-child{display:none;}
  .user-right .u-con.order .order_list li > .training{padding-bottom:8px;margin-bottom:8px;border-bottom:1px dashed #eef1f4;}
  .user-right .u-con.order .order_list li > span[data-label]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;padding:3px 0;}
  .user-right .u-con.order .order_list li > span[data-label]::before{content:attr(data-label);color:var(--nx-muted);flex-shrink:0;}
  .user-right .u-con.order .order_list li > span.act{display:flex;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin-top:8px;width:auto;}
  .user-right .u-con.order .order_list li > span.act a{white-space:nowrap;}
}

@media (max-width:640px){
  /* 左侧菜单在手机上改成横向可滑动的标签条，省掉半屏高度 */
  .nx-user-profile{padding-bottom:12px;margin-bottom:10px;}
  .nx-user-profile img{width:44px;height:44px;}
  .nx-user-nav{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 0 4px;margin:0;}
  .nx-user-nav li{margin:0;flex:0 0 auto;}
  .nx-user-nav a{padding:8px 14px 8px 34px;white-space:nowrap;font-size:13px;background:#f4f8f7;}
  .user-left .nx-user-nav a:before{left:9px;width:17px;height:17px;}
  /* 订单表在手机上改成卡片式（规则见 ≤1000px 那段，这里只补窄屏细节） */
  .user-right .class_list{grid-template-columns:1fr;}
  .user-right .mx_list{grid-template-columns:1fr;}
  .u-con.info > p > span{width:auto;min-width:64px;}
  .user-right .u-con.info p>span:first-child{width:auto;min-width:64px;}
  .user-right .u-con.info textarea{max-width:100%;}
  .u-con.info select{min-width:0;max-width:100%;}
  /* 性别三个选项宽度对齐（男/女/保密字数不同，会一个宽一个窄）；
     内边距收到 14px 并去掉 margin-right，否则加上 12px 的 gap 后第三个会换行。
     必须用 .user-right .u-con.info p > label，否则压不过前面第 638 行的 .user-right .u-con.info p label */
  .user-right .u-con.info p > label{padding:6px 14px;margin-right:0;min-width:52px;justify-content:center;}
  .user-right .u-con.info p > button{margin:6px auto 0;float:none;}
  /* 播放页章节行：标题的 min-content（最长单词）加时长、课后作业标签会顶出容器。
     允许标题收缩出省略号，并允许整行换行兜底，避免标签溢出到屏幕外。 */
  .nx-lesson{flex-wrap:wrap;row-gap:4px;}
  .nx-lesson-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  /* 空状态：别让空的分页容器和容器底部内边距把页面撑出一大片空白 */
  .user-right .u-con{padding-bottom:20px;}
  .user-right .u-con .page:empty{display:none;margin:0;}
  .u-con > .nx-empty{padding:44px 16px;}
}

/* 空状态提示：订单/收藏/观看记录没有内容时别只留一大片空白 */
.nx-empty{padding:56px 16px;text-align:center;color:var(--nx-muted);font-size:14px;line-height:1.8;background:#fafcfc;border:1px dashed var(--nx-border);border-radius:12px;}

/* 课程卡片标题统一按两行占位，避免有的卡一行有的两行导致底部对不齐 */
@media (max-width:768px){
  .nx-card-body h3{min-height:2.9em;}
}
