/* =====================================================================
   科美诊断云课堂 · 移动端皮肤 v7 (2026-10-21)
   v7：tab「课程」页课程分类卡（复用我的课程行卡样式）、新 logo 适配
   （半透明 chip 承载白色透明底 logo）、登录页 chip 半透明化
   回滚：sudo bash /root/ui-backup-20261020-1846/rollback.sh
   ===================================================================== */
@media (max-width: 767.98px),
       (orientation: landscape) and (max-height: 500px) {

  :root{
    --cmb:#0F47AD;--cmb-600:#1E5FD6;--cmb-50:#EEF3FF;
    --cm-ink:#16233A;--cm-ink2:#5A6B85;--cm-ink3:#8A9AB5;
    --cm-line:#E6ECF6;--cm-bg:#F2F5FB;
  }

  /* ---------- 基础 ---------- */
  html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body{
    background:var(--cm-bg) !important;
    font-size:14px;
    -webkit-font-smoothing:antialiased;
    overscroll-behavior-y:contain;
  }
  body:not(.path-login){
    padding-bottom:calc(58px + env(safe-area-inset-bottom, 0px));
  }
  h1,h2,h3,h4,h5{ letter-spacing:-.2px; }

  /* ---------- 顶部导航栏 ---------- */
  .navbar.fixed-top{
    background:#fff !important;
    border-bottom:0 !important;
    box-shadow:0 1px 0 var(--cm-line), 0 2px 12px rgba(15,42,87,.06) !important;
    height:54px;
    padding:0 8px !important;
  }
  /* 二级导航（更多/课程/参与人...）在移动端隐藏 */
  .secondary-navigation,
  #secondary-navigation{ display:none !important; }
  .navbar .navbar-brand{
    display:flex !important;
    align-items:center;
    height:100%;
    margin:0 !important;
    padding:0 4px !important;
  }
  .navbar img.logo{ height:30px !important; width:auto !important; max-width:46vw; object-fit:contain; }
  .navbar .logo.dark{ display:none !important; }
  .navbar .navbar-toggler{
    width:38px;height:38px;border-radius:10px;
    background:#F3F6FC;border:0;margin:0 !important;
  }
  .navbar .navbar-toggler-icon{
    background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath stroke='%2316233A' stroke-width='1.8' stroke-linecap='round' d='M2 4.5h12M2 8h12M2 11.5h12'/%3E%3C/svg%3E") !important;
  }
  .navbar .primary-navigation,
  .navbar .searchform-navbar,
  .navbar .search-input-group,
  #lang-action-menu{ display:none !important; }
  .usernavigation{ display:flex; align-items:center; gap:4px !important; }
  .usernavigation .usermenu .userbutton .usertext{ display:none !important; }
  .usernavigation .userinitials{ font-size:13px !important; }
  .usernavigation .nav-link.icon-no-margin{ padding:6px !important; }
  .usernavigation .icon{ width:19px !important; height:19px !important; }

  /* 关键：主题自带 #page margin-top（课程页为 130px），若再叠加 padding-top
     会产生 184px 顶部空白。这里统一用 margin-top 让位给 54px 固定导航栏，
     并把 padding-top 归零，保证任何视口宽度都只有 54px 的让位高度。 */
  body:not(.path-login) #page{
    margin-top:54px !important;
    padding-top:0 !important;
  }
  body.path-login #page{ margin-top:0 !important; padding-top:0 !important; }
  body:not(.path-login) .main-inner{ padding-top:8px !important; }
  /* 统一水平留白：由 main-inner 的 12px 控制，#page 不再额外加 15px */
  #page{ padding-left:0 !important; padding-right:0 !important; }

  /* ---------- 内容区密度 ---------- */
  .main-inner{ padding:10px 12px 16px !important; max-width:100% !important; }
  #page-content{ padding:0 !important; }
  #region-main{ padding:0 !important; }

  .card{
    border-radius:14px;
    border:1px solid var(--cm-line);
    box-shadow:0 1px 2px rgba(15,42,87,.04), 0 2px 8px rgba(15,42,87,.05);
  }
  .card-body{ padding:12px !important; }

  /* 区块（时间轴/日历/课程概览等 block 卡片） */
  .block.card{ margin-bottom:12px !important; }
  .block .card-body{ padding:12px !important; }
  .block .card-title{ font-size:13.5px !important; font-weight:800 !important; }
  .block .block-header{ border-bottom:0 !important; margin-bottom:2px !important; }
  .block_timeline .timeline-action-button,
  .block .btn-outline-secondary{ border-radius:999px; font-size:11px; }

  /* 页面大标题 */
  .page-header-headings h1,
  .page-header-headings h2{ font-size:19px !important; font-weight:800; }
  .activity-header, .page-context-header{ padding:0 !important; }

  /* 首页：隐藏次要导航与营销位 */
  .pagelayout-frontpage .secondary-navigation,
  .pagelayout-frontpage #secondary,
  .pagelayout-frontpage .frontpage-marketing,
  .pagelayout-frontpage #frontpage-available-course-list h2,
  .pagelayout-frontpage #frontpage-course-list h2{ display:none !important; }

  /* 首页：课程分类树 → 卡片 */
  #frontpage-category-names h2{ font-size:16px !important; font-weight:800; margin:6px 2px 10px !important; }
  .course_category_tree .collapsible-actions{
    text-align:right; margin:0 2px 6px !important; padding:0 !important;
  }
  .course_category_tree .collapsible-actions a,
  .course_category_tree .collapsible-actions .collapseall,
  .course_category_tree .collapsible-actions .expandall{
    font-size:11.5px; color:var(--cmb) !important; font-weight:600;
  }
  .course_category_tree .category{
    background:#fff !important;
    border:1px solid var(--cm-line) !important;
    border-radius:14px !important;
    box-shadow:0 1px 2px rgba(15,42,87,.04) !important;
    margin-bottom:10px !important;
    padding:4px 12px !important;
  }
  .course_category_tree .category .categoryname{
    font-size:13.5px !important; font-weight:700; padding:9px 0 !important;
    background:none !important; border:0 !important;
  }
  .course_category_tree .category .categoryname a{ color:var(--cm-ink) !important; }
  .course_category_tree .category .categoryname::before{
    content:""; display:inline-block; width:6px; height:6px; border-radius:50%;
    background:var(--cmb); margin-right:8px; vertical-align:2px; opacity:.85;
  }
  .course_category_tree .category > .content{ border-top:0 !important; padding:0 0 4px 10px !important; }
  .course_category_tree .courses .course{
    display:flex; align-items:center; justify-content:space-between;
    padding:9px 2px !important; border-top:1px solid #F1F4FA;
  }
  .course_category_tree .courses .course:first-child{ border-top:0; }
  .course_category_tree .courses .course a{ font-size:12.5px; font-weight:600; color:var(--cm-ink) !important; }
  .course_category_tree .course .course-info{ text-align:right; }
  .course_category_tree .subcategory{ margin-left:-6px; }

  /* ---------- 课程概览卡（我的课程） ---------- */
  .dashboard-card{
    border-radius:14px !important;
    box-shadow:0 1px 2px rgba(15,42,87,.04), 0 2px 8px rgba(15,42,87,.05) !important;
    border:1px solid rgba(15,71,173,.06) !important;
    margin-bottom:10px !important;
    overflow:hidden;
  }
  .dashboard-card .dashboard-card-img{ border-radius:0 !important; }
  .dashboard-card .dashboard-card-img img{ height:96px !important; object-fit:cover; }
  .dashboard-card .card-body{ padding:11px 12px !important; }
  .dashboard-card .dashboard-card-title,
  .dashboard-card .multiline-text{
    font-size:13.5px !important; font-weight:700; line-height:1.45;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .dashboard-card .progress{ height:4px !important; border-radius:2px; }
  .dashboard-card .progress-bar{ background:linear-gradient(90deg,#4B86F0,#0F47AD) !important; }
  /* 课程概览过滤器 */
  .block_myoverview .filtheader,
  .block_myoverview .course-filter{ font-size:12px; }
  .block_myoverview .btn-group .btn,
  .block_myoverview .dropdown-toggle{ border-radius:999px !important; font-size:11.5px; }

  /* =================================================================
     课程内容页 · 严格对齐 prototype.html 的 [data-v="course"] 视图
     （.nav / .stat-float / .block / .collapse / .act 的设计值）
     ================================================================= */
  body.path-course .drawer-toggles{ display:none !important; }

  /* 二级页导航条（原型 .nav） */
  /* 注意：#page 是滚动容器（overflow 计算为 auto），sticky 的基准是 #page
     而不是视口；#page 已用 margin-top:54px 让位给固定导航栏，故此处 top:0 */
  .cm-nav{
    position:sticky;top:0;z-index:60;
    display:flex;align-items:center;gap:9px;
    padding:10px 13px 12px;
    margin:-8px -12px 0;
    background:linear-gradient(160deg,#0F47AD,#1B54C4);
    color:#fff;
  }
  .cm-nav .cm-back{
    width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.16);
    display:grid;place-items:center;flex:none;cursor:pointer;
  }
  .cm-nav .cm-back svg{ width:14px;height:14px; }
  .cm-nav .cm-nt{
    font-size:14px;font-weight:800;flex:1;min-width:0;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }

  /* 进度悬浮卡（原型 .stat-float） */
  .cm-stat{
    position:relative;z-index:3;
    margin:0;
    background:#fff;border-radius:16px;padding:12px 13px;
    box-shadow:0 4px 16px rgba(15,42,87,.09);
    display:flex;align-items:center;gap:12px;
  }
  .cm-ring{
    width:48px;height:48px;border-radius:50%;flex:none;
    display:grid;place-items:center;position:relative;
    background:conic-gradient(var(--cmb) 0 0%, #E7EDF8 0% 100%);
  }
  .cm-ring::after{ content:"";position:absolute;inset:5px;border-radius:50%;background:#fff; }
  .cm-ring b{ position:relative;z-index:2;font-size:11.5px;font-weight:800;color:var(--cmb); }
  .cm-stxt{ flex:1;min-width:0; }
  .cm-stxt .l1{ font-size:11px;color:var(--cm-ink3); }
  .cm-stxt .l2{ font-size:13.5px;font-weight:800;margin-top:1px; }
  .cm-stxt .l3{ font-size:11px;color:var(--cm-ink3);margin-top:2px; }
  .cm-streak{
    font-size:10px;font-weight:700;color:#B25E00;background:#FFF4EA;
    border-radius:999px;padding:3px 8px;flex:none;white-space:nowrap;
  }
  .cm-streak.ok{ color:#12A16B;background:#E9F8F1; }

  /* 区块头（原型 .block / .block-hd） */
  .cm-block{ margin:16px 0 0; }
  .cm-block-hd{ display:flex;align-items:center;justify-content:space-between;margin-bottom:9px; }
  .cm-block-hd h3{ font-size:13.5px;font-weight:800;margin:0; }
  .cm-block-hd a{ font-size:11px;color:var(--cmb);text-decoration:none;font-weight:600;cursor:pointer; }

  /* 可折叠章节（原型 .collapse） */
  .cm-collapse{
    background:#fff;border-radius:16px;
    border:1px solid rgba(15,71,173,.06);
    box-shadow:0 1px 2px rgba(15,42,87,.05), 0 2px 8px rgba(15,42,87,.05);
    overflow:hidden;margin-bottom:8px;
  }
  .cm-chd{ display:flex;align-items:center;gap:9px;padding:11px 12px;cursor:pointer; }
  .cm-ct{ flex:1;min-width:0; }
  .cm-ct b{ display:block;font-size:12.5px;font-weight:700;line-height:1.4; }
  .cm-ct span{ display:block;font-size:10.5px;color:var(--cm-ink3);margin-top:1px; }
  .cm-chev{
    width:22px;height:22px;border-radius:7px;background:#F3F6FC;
    display:grid;place-items:center;flex:none;transition:transform .22s;
  }
  .cm-chev svg{ width:10px;height:10px;opacity:.55; }
  .cm-collapse.open .cm-chev{ transform:rotate(180deg); }
  .cm-cbd{ display:none;padding:0 12px 9px; }
  .cm-collapse.open .cm-cbd{ display:block; }

  /* 状态徽标（原型 .done / .pending） */
  .cm-done,.cm-pending{
    display:inline-flex;align-items:center;gap:4px;
    font-size:9.5px;font-weight:700;border-radius:999px;
    padding:1px 6px 1px 4px;flex:none;white-space:nowrap;
  }
  .cm-pending{ color:#B25E00;background:#FFF4EA;border:1px solid #FBE0C6; }
  .cm-pending::before{ content:"";width:4px;height:4px;border-radius:50%;background:#E8833A; }
  .cm-done{ color:#12A16B;background:#E9F8F1;border:1px solid #CBEEDD; }
  .cm-done::before{ content:"";width:4px;height:4px;border-radius:50%;background:#12A16B; }

  /* 活动行（原型 .act） */
  .cm-act{
    display:flex;align-items:center;gap:8px;padding:8px 2px;
    border-top:1px solid #F1F4FA;text-decoration:none !important;color:var(--cm-ink);
  }
  .cm-act:first-child{ border-top:0; }
  .cm-act:active{ background:#F8FBFF; }
  .cm-act .cm-ai{
    width:25px;height:25px;border-radius:8px;flex:none;display:grid;place-items:center;
    background:#EEF3FF;color:var(--cmb);
  }
  .cm-act .cm-ai svg{ width:13px;height:13px; }
  .cm-act.pending-item .cm-ai{ background:#FFF4EA;color:#E8833A; }
  .cm-at{ flex:1;min-width:0; }
  .cm-at b{
    display:block;font-size:11.5px;font-weight:600;line-height:1.35;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .cm-at span{ display:block;font-size:10px;color:var(--cm-ink3); }

  /* ---------- 课程内容页章节 ---------- */
  .course-content .section{
    background:#fff;
    border-radius:14px;
    border:1px solid var(--cm-line);
    box-shadow:0 1px 2px rgba(15,42,87,.04);
    padding:6px 12px;
    margin-bottom:10px;
  }
  .course-content .section .sectionname a,
  .course-section-header .section-title{ font-size:14px !important; font-weight:700; }
  .course-content .section .activity,
  .activity-item{
    border:1px solid #F1F4FA !important;
    border-radius:11px !important;
    margin:6px 0 !important;
    padding:9px 11px !important;
    box-shadow:none !important;
    background:#fff;
  }
  .course-content .section .activity .activityname a,
  .activity-item .activityname a{ font-size:13px; font-weight:600; line-height:1.45; }
  .activity-item .activityname .instancename{ font-size:13px !important; }
  .activity-item .description{ display:none; }
  .activity-badge, .badge{ font-size:10px !important; }
  /* 完成条件提示卡弱化 */
  .completion-info{ font-size:11px; }
  .completion-info .automatic-completion-conditions{ padding:8px 10px !important; }

  /* ---------- 视频播放页（supervideo）---------- */
  body.path-mod-supervideo #page-content,
  body.path-mod-supervideo #region-main-box{ padding:0 !important; }
  body.path-mod-supervideo .main-inner{ padding:0 0 14px !important; }
  body.path-mod-supervideo #page{ padding-left:0 !important; padding-right:0 !important; }
  /* 逐层去掉水平留白，播放器真正满宽 */
  body.path-mod-supervideo .moove-container-fluid,
  body.path-mod-supervideo #region-main,
  body.path-mod-supervideo #region-main > div,
  body.path-mod-supervideo .card-body{ padding-left:0 !important; padding-right:0 !important; }
  body.path-mod-supervideo .block-region{ padding:0 !important; }
  /* 活动标题头 */
  body.path-mod-supervideo .activity-header{
    background:#fff; padding:10px 12px 12px !important; margin:0 0 10px !important;
    border-bottom:1px solid var(--cm-line);
  }
  body.path-mod-supervideo .activity-header .activity-page-information,
  body.path-mod-supervideo .activity-header .text-muted{ font-size:11px; }
  /* 播放器：真正满宽（容器 id 是 upload-* / 位于 #supervideo_area_embed 内） */
  #supervideo_area_embed > div,
  #supervideo_area_embed .plyr,
  #supervideo_area_embed .plyr__video-wrapper,
  div[id^="upload-"],
  div[id^="videoPlayer"]{
    width:100% !important;
    max-width:100% !important;
    border-radius:0 !important;
    margin:0 !important;
  }
  #supervideo_area_embed{ background:#0A1424; }
  #supervideo_area_embed .plyr{ background:#0A1424; }
  /* 隐藏"观看记录图"等噪声 */
  #map-visualization, #supervideo_area_embed ~ #map-visualization{ display:none !important; }
  body.path-mod-supervideo .card.activity-navigation{ margin:10px 12px 0 !important; }
  body.path-mod-supervideo .card.activity-navigation .btn{ border-radius:12px; font-size:12.5px; }

  /* ---------- 登录页 ---------- */
  body.path-login #page{ background:transparent !important; padding-top:0 !important; }
  body.path-login .login-container{
    max-width:430px;
    margin:0 auto;
    padding:0 16px 26px !important;
    background:transparent;
  }
  body.path-login #page-content{ background:transparent !important; }
  /* 顶部品牌带（压缩比例） */
  .cm-hero{
    background:linear-gradient(165deg,#0F47AD 0%,#1B54C4 55%,#2A64D6 100%);
    border-radius:0 0 20px 20px;
    padding:26px 18px 34px;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .cm-hero::after{
    content:"";position:absolute;right:-40px;top:-30px;
    width:140px;height:140px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.16),rgba(255,255,255,0) 70%);
  }
  .cm-hero-logo{
    display:inline-flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);
    border-radius:11px;padding:7px 12px;
    box-shadow:0 6px 16px rgba(6,26,64,.26);
    position:relative;z-index:2;
  }
  .cm-hero-logo img{ height:30px;width:auto;display:block; }
  .cm-hero-sub{
    color:rgba(255,255,255,.82);
    font-size:11px;letter-spacing:.4px;
    margin-top:9px;position:relative;z-index:2;
  }
  /* 登录后的紧凑品牌头（首页/课程/我的） */
  .cm-hero.cm-mini{
    border-radius:0 0 18px 18px;
    padding:12px 14px 14px;
    display:flex;align-items:center;gap:10px;
    text-align:left;
    margin:0 0 12px;
  }
  .cm-hero.cm-mini .cm-hero-logo{ padding:5px 9px; border-radius:9px; }
  .cm-hero.cm-mini .cm-hero-logo img{ height:24px; }
  .cm-hero.cm-mini .cm-hero-title{
    color:#fff;font-size:15px;font-weight:800;letter-spacing:-.2px;
    position:relative;z-index:2;flex:1;min-width:0;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .cm-hero.cm-mini::after{ width:110px;height:110px;opacity:.7; }
  /* 表单卡片 */
  body.path-login .login-form,
  body.path-login .login-container form{
    background:#fff;
    border-radius:18px;
    border:1px solid var(--cm-line);
    box-shadow:0 14px 34px rgba(12,40,95,.12);
    padding:18px 16px 16px;
    margin-top:12px;
    position:relative;z-index:3;
  }
  body.path-login .login-container form:first-of-type{ margin-top:-20px; }
  body.path-login .login-form h2,
  body.path-login .login-container h2{ font-size:16px;font-weight:800; }
  body.path-login .login-container .lead,
  body.path-login .login-container .text-muted{ font-size:11.5px; }
  body.path-login .login-container .form-control{
    min-height:46px;
    border-radius:12px;
    font-size:16px !important;
    background:#F8FAFE;
    border:1.5px solid var(--cm-line);
    padding:6px 13px;
  }
  body.path-login .login-container .form-control:focus{
    border-color:var(--cmb);background:#fff;
    box-shadow:0 0 0 3px rgba(15,71,173,.09);
  }
  body.path-login .btn-primary{
    min-height:46px;border-radius:13px;
    background:linear-gradient(135deg,#1E5FD6,#0F47AD) !important;
    border:0 !important;font-weight:700;
    box-shadow:0 8px 20px rgba(15,71,173,.28);
  }
  body.path-login .login-identityprovider-btn{ border-radius:12px;min-height:44px; }
  body.path-login .login-languagemenu{ margin:14px 0 0 !important; }
  body.path-login .login-languagemenu .dropdown-toggle{ font-size:12px; }
  body.path-login .login-separator{ display:none; }
  body.path-login .login-layout-left{ display:none !important; }
  body.path-login #logoimage{ display:none !important; }
  body.path-login .login-layout-stats{ display:none; }

  /* =================================================================
     v6 · 按 prototype.html 重建 tab 页与视频页（严格对齐原型设计值）
     ================================================================= */

  /* tab 页（首页/我的课程/成绩/我的/个人主页）：隐藏白导航栏，
     蓝色渐变页头直接吸顶（对齐原型 app-hd / profile-hd） */
  body.cm-tabpage .navbar.fixed-top{ display:none !important; }
  /* moove 主题 dashboard 的「返回」箭头悬浮在渐变页头上，隐藏 */
  body.cm-tabpage .dir-rtl-hide,
  body.cm-tabpage a:has(> i.fa-chevron-left){ display:none !important; }
  body.cm-tabpage #page{ margin-top:0 !important; }
  body.cm-tabpage .main-inner{ padding:0 0 16px !important; }
  body.cm-tabpage [data-block]{ display:none !important; }
  body.cm-tabpage #frontpage-category-names{ padding:0 12px; }

  /* 渐变页头（原型 .app-hd） */
  .cm-hd{
    padding:calc(26px + env(safe-area-inset-top,0px)) 15px 40px;
    background:linear-gradient(160deg,#0F47AD 0%,#1B54C4 58%,#2A64D6 100%);
    border-radius:0 0 22px 22px;color:#fff;position:relative;overflow:hidden;
  }
  .cm-hd::after{
    content:"";position:absolute;right:-46px;top:-30px;
    width:150px;height:150px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.16),rgba(255,255,255,0) 70%);
  }
  .cm-hd-row{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:2;}
  .cm-hd-logo img{height:42px;display:block;filter:drop-shadow(0 1px 3px rgba(6,26,64,.28));}
  .cm-hd-tcol{flex:1;min-width:0;}
  .cm-hd-title{font-size:17px;font-weight:800;letter-spacing:-.2px;}
  .cm-hd-sub{font-size:11px;opacity:.75;margin-top:2px;}
  .cm-hd-actions{display:flex;gap:8px;align-items:center;}
  .cm-iconbtn{
    width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
    background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.14);
    position:relative;flex:none;text-decoration:none;
  }
  .cm-iconbtn svg{width:15px;height:15px;}
  .cm-iconbtn .dot{
    position:absolute;top:6px;right:7px;width:5px;height:5px;border-radius:50%;
    background:#FFB020;border:1.2px solid #1B54C4;
  }
  .cm-avatar{
    width:30px;height:30px;border-radius:10px;
    background:linear-gradient(140deg,#fff,#D9E6FF);color:var(--cmb);
    display:grid;place-items:center;font-weight:800;font-size:12px;flex:none;text-decoration:none;
  }
  .cm-searchbar{
    position:relative;z-index:2;margin-top:13px;height:34px;border-radius:11px;
    background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.14);
    display:flex;align-items:center;gap:7px;padding:0 11px;
    font-size:11.5px;color:rgba(255,255,255,.78);text-decoration:none;
  }
  .cm-searchbar svg{width:13px;height:13px;opacity:.8;}

  /* 进度悬浮卡（原型 .stat-float：-36px 上浮叠在页头上） */
  .cm-fz{position:relative;z-index:3;margin:-36px 12px 0;}
  .cm-float{
    background:#fff;border-radius:16px;padding:12px 13px;
    box-shadow:0 4px 16px rgba(15,42,87,.09);
    display:flex;align-items:center;gap:12px;
  }

  /* 四宫格快捷入口（原型 .quick） */
  .cm-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:13px 12px 0;}
  .cm-q{
    background:#fff;border-radius:12px;padding:10px 3px 8px;text-align:center;
    box-shadow:0 1px 2px rgba(15,42,87,.05),0 2px 8px rgba(15,42,87,.05);
    border:1px solid rgba(15,71,173,.05);text-decoration:none;
  }
  .cm-q .cm-qi{
    width:29px;height:29px;border-radius:9px;margin:0 auto 5px;
    display:grid;place-items:center;background:var(--cmb-50);color:var(--cmb);
  }
  .cm-q .cm-qi svg{width:15px;height:15px;}
  .cm-q span:last-child{display:block;font-size:10.5px;color:var(--cm-ink2);font-weight:600;}

  /* cm-app 内区块：自带 12px 边距（课程页 cm-course 由父容器提供） */
  .cm-app .cm-block{ margin:16px 12px 0; }

  /* 继续学习横滑（原型 .hscroll / .vcard） */
  .cm-hlist{display:flex;gap:8px;overflow-x:auto;padding:1px 0 6px;scrollbar-width:none;scroll-snap-type:x proximity;}
  .cm-hlist::-webkit-scrollbar{display:none;}
  .cm-vcard{
    flex:none;width:128px;scroll-snap-align:start;background:#fff;border-radius:12px;overflow:hidden;
    box-shadow:0 1px 2px rgba(15,42,87,.05),0 2px 8px rgba(15,42,87,.05);
    border:1px solid rgba(15,71,173,.05);text-decoration:none;
  }
  .cm-thumb{height:64px;position:relative;background:linear-gradient(135deg,#123C86,#2E6BD8);}
  .cm-thumb img,.cm-cthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
  .cm-thumb::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 60%);}
  .cm-thumb .play{
    position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);
    border-radius:50%;background:rgba(255,255,255,.28);display:grid;place-items:center;
  }
  .cm-vbody{padding:7px 8px 8px;}
  .cm-vbody p{
    margin:0;font-size:11px;font-weight:700;line-height:1.4;height:31px;overflow:hidden;color:var(--cm-ink);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  .cm-pbar{height:3px;border-radius:2px;background:#EDF1F8;margin-top:6px;overflow:hidden;}
  .cm-pbar i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,#2E6BD8,#0F47AD);}
  .cm-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--cm-ink3);margin-top:4px;}

  /* 筛选 chips（原型 .chips / .chip） */
  .cm-chips{display:flex;gap:6px;overflow-x:auto;padding:12px 12px 10px;scrollbar-width:none;}
  .cm-chips::-webkit-scrollbar{display:none;}
  .cm-chip{
    flex:none;font-size:11px;font-weight:600;color:var(--cm-ink2);background:#fff;
    border:1px solid var(--cm-line);border-radius:999px;padding:5px 11px;
    white-space:nowrap;cursor:pointer;transition:.16s;
  }
  .cm-chip.on{background:var(--cmb);border-color:var(--cmb);color:#fff;font-weight:700;}

  /* 课程行（原型 .course-row） */
  .cm-crowbox{padding:0 12px;}
  .cm-crow{
    display:flex;gap:10px;background:#fff;border-radius:16px;padding:10px;
    box-shadow:0 1px 2px rgba(15,42,87,.05),0 2px 8px rgba(15,42,87,.05);
    border:1px solid rgba(15,71,173,.05);margin-bottom:8px;align-items:center;text-decoration:none;
  }
  .cm-cthumb{width:64px;height:64px;border-radius:11px;flex:none;position:relative;overflow:hidden;}
  .cm-cthumb::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.24),transparent 62%);}
  .cm-cbody{flex:1;min-width:0;}
  .cm-cbody b{
    font-size:12.5px;font-weight:700;line-height:1.38;color:var(--cm-ink);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .cm-cmeta{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--cm-ink3);margin-top:5px;}
  .cm-cbar{height:3px;border-radius:2px;background:#EDF1F8;margin-top:5px;overflow:hidden;}
  .cm-cbar i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,#4B86F0,#0F47AD);}
  .cm-cbar.full i{background:linear-gradient(90deg,#34C08A,#12A16B);}

  /* 课程分类（tab「课程」页，卡片样式与我的课程一致） */
  .cm-catwrap{ margin-bottom:8px; }
  .cm-catwrap .cm-crow{ margin-bottom:0; cursor:pointer; }
  .cm-cat:focus, .cm-cat:focus-visible{ outline:none; }
  .cm-catwrap.open > .cm-crow{ border-color:rgba(15,71,173,.28); }
  .cm-cat .cm-cthumb{ display:grid;place-items:center; }
  .cm-catico{ width:26px;height:26px;color:#fff;display:block; }
  .cm-catico svg{ width:100%;height:100%;display:block; }
  .cm-cat .cm-chev{ flex:none; }
  .cm-catwrap.open > .cm-crow .cm-chev svg{ transform:rotate(180deg); }
  .cm-cat-cbd{ display:none; padding:2px 0 2px 14px; }
  .cm-catwrap.open .cm-cat-cbd{ display:block; }
  .cm-subchips{ padding:2px 0 8px; }
  .cm-subcourses{ padding-top:2px; }
  .cm-catin{ margin-bottom:7px; }
  .cm-catin .cm-cthumb{ width:52px;height:52px;border-radius:10px; }
  .cm-catempty{ font-size:11px;color:var(--cm-ink3);padding:3px 2px 8px; }

  /* 内嵌媒体（标签/页面活动中的视频、音频） */
  .cm-media{ cursor:pointer; }
  .cm-play{
    width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;
    background:var(--cmb);
  }
  .cm-play svg{ width:12px;height:12px; }
  .cm-media.open .cm-play{ background:var(--cm-ink3); }
  .cm-mediabox{ display:none;height:0;overflow:hidden;margin:2px 0 8px; }
  .cm-mediabox.open{ display:block;height:auto;overflow:visible; }
  .cm-mediabox video,.cm-mediabox audio{
    width:100%;display:block;border-radius:10px;background:#000;
  }
  .cm-mediabox video{ max-height:212px; }

  /* 成绩（原型 .score-hero / .score-item） */
  .cm-shero{
    background:#fff;border-radius:16px;padding:14px;
    box-shadow:0 4px 16px rgba(15,42,87,.09);
    display:flex;align-items:center;gap:14px;
  }
  .cm-sbig{font-size:30px;font-weight:800;color:var(--cmb);letter-spacing:-1px;line-height:1;}
  .cm-sbig small{font-size:12px;color:var(--cm-ink3);font-weight:600;margin-left:3px;letter-spacing:0;}
  .cm-slabel{font-size:10px;color:var(--cm-ink3);margin-top:5px;}
  .cm-sside{flex:1;border-left:1px solid var(--cm-line);padding-left:13px;}
  .cm-sside div{display:flex;justify-content:space-between;font-size:11px;color:var(--cm-ink3);margin:3px 0;}
  .cm-sside div b{color:var(--cm-ink);font-weight:700;}
  .cm-sitem{
    display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:11px 12px;
    box-shadow:0 1px 2px rgba(15,42,87,.05);border:1px solid rgba(15,71,173,.05);
    margin-bottom:7px;text-decoration:none;
  }
  .cm-sitem .nm{flex:1;min-width:0;}
  .cm-sitem .nm b{
    font-size:11.5px;font-weight:600;line-height:1.4;color:var(--cm-ink);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .cm-sitem .nm span{font-size:10px;color:var(--cm-ink3);}
  .cm-sitem .val{font-size:16px;font-weight:800;color:var(--cmb);flex:none;letter-spacing:-.5px;}
  .cm-sitem .val.low{color:#E5484D;}
  .cm-sitem .val.mid{color:#E8833A;}

  /* 课程成绩明细页（/course/user.php?mode=grade）
     二级页：顶部导航条 + 白色总览卡 + 明细列表（对齐课程内容页 .cm-course 的排版） */
  .cm-gradedetail{ padding-top:12px; }
  .cm-gdet-top{ padding:0; }
  .cm-gdet-top .cm-shero{ margin:0; }
  .cm-gdet-top .cm-sbig{ font-size:32px; }
  .cm-gradedetail .cm-block{ margin:16px 0 0; }
  .cm-gh{
    font-size:10.5px;font-weight:700;color:var(--cm-ink3);letter-spacing:.3px;
    padding:0 2px 6px;
  }
  .cm-gitem{
    display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;
    box-shadow:0 1px 2px rgba(15,42,87,.05);border:1px solid rgba(15,71,173,.05);
    margin-bottom:7px;text-decoration:none;
  }
  .cm-gitem:active{ background:#FAFCFF; }
  .cm-gi{
    width:29px;height:29px;border-radius:9px;flex:none;
    display:grid;place-items:center;background:var(--cmb-50);color:var(--cmb);
  }
  .cm-gi svg{ width:15px;height:15px; }
  .cm-gt{ flex:1;min-width:0; }
  .cm-gt b{
    display:block;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--cm-ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .cm-gt span{
    display:block;font-size:10px;color:var(--cm-ink3);margin-top:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .cm-gv{ font-size:16px;font-weight:800;color:var(--cmb);flex:none;letter-spacing:-.5px; }
  .cm-gv small{ font-size:10.5px;font-weight:600;color:var(--cm-ink3);letter-spacing:0; }
  .cm-gv.none{ font-size:15px;color:#B9C4D6; }
  .cm-gv.low{ color:#E5484D; }
  .cm-gv.mid{ color:#E8833A; }
  .cm-hint{ font-size:10.5px;font-weight:500;color:var(--cm-ink3); }

  /* 我的（原型 .profile-hd / .stat3 / .menu） */
  .cm-phd{
    background:linear-gradient(160deg,#0F47AD,#2A64D6);
    padding:calc(30px + env(safe-area-inset-top,0px)) 15px 40px;
    color:#fff;border-radius:0 0 22px 22px;position:relative;overflow:hidden;
  }
  .cm-phd::after{
    content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);
  }
  .cm-prow{display:flex;align-items:center;gap:11px;margin-top:8px;position:relative;z-index:2;}
  .cm-pavatar{
    width:52px;height:52px;border-radius:17px;background:linear-gradient(140deg,#fff,#D9E6FF);color:var(--cmb);
    display:grid;place-items:center;font-size:19px;font-weight:800;flex:none;
  }
  .cm-pname{font-size:16px;font-weight:800;letter-spacing:-.2px;}
  .cm-pdept{font-size:11px;opacity:.72;margin-top:2px;font-weight:400;}
  .cm-stat3{
    margin:-28px 12px 0;background:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(15,42,87,.09);
    display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:3;padding:12px 0;
  }
  .cm-stat3 div{text-align:center;position:relative;}
  .cm-stat3 div+div::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--cm-line);}
  .cm-stat3 b{display:block;font-size:16px;font-weight:800;color:var(--cmb);letter-spacing:-.4px;}
  .cm-stat3 span{font-size:10px;color:var(--cm-ink3);}
  .cm-menubox{padding:12px 12px 0;}
  .cm-menu{
    background:#fff;border-radius:16px;box-shadow:0 1px 2px rgba(15,42,87,.05);
    border:1px solid rgba(15,71,173,.05);overflow:hidden;margin-bottom:9px;
  }
  .cm-mrow{display:flex;align-items:center;gap:10px;padding:12px;border-top:1px solid #F1F4FA;text-decoration:none;}
  .cm-mrow:first-child{border-top:0;}
  .cm-mrow:active{background:#FAFCFF;}
  .cm-mrow .cm-mii{width:27px;height:27px;border-radius:8px;background:var(--cmb-50);color:var(--cmb);display:grid;place-items:center;flex:none;}
  .cm-mrow .cm-mii svg{width:14px;height:14px;}
  .cm-mrow .cm-mit{flex:1;font-size:12.5px;font-weight:600;color:var(--cm-ink);}
  .cm-mrow .cm-mchev{color:#C2CDE0;font-size:14px;}

  /* 视频页悬浮信息卡（原型 .video-info） */
  .cm-vidinfo{
    margin:-16px 11px 0;background:#fff;border-radius:16px;padding:13px;
    box-shadow:0 4px 16px rgba(15,42,87,.09);position:relative;z-index:3;
  }
  .cm-vidinfo h1{font-size:13.5px;font-weight:800;margin:0;line-height:1.45;color:var(--cm-ink);}
  .cm-vmeta{display:flex;gap:8px;margin-top:7px;font-size:10.5px;color:var(--cm-ink3);flex-wrap:wrap;}

  /* 空态 */
  .cm-empty{padding:18px 4px;text-align:center;font-size:12px;color:var(--cm-ink3);}

  /* ---------- 个人资料页 ---------- */
  .userprofile .profile_tree > section.node_category{
    background:#fff;border-radius:14px;border:1px solid var(--cm-line);
    box-shadow:0 1px 2px rgba(15,42,87,.04);
    padding:12px 14px !important;margin-bottom:10px !important;
    display:block !important;width:100% !important;
  }
  .userprofile .node_category h3{ font-size:13px !important; font-weight:800; margin-bottom:8px !important; }
  .userprofile .node_category dl,
  .userprofile .node_category ul{ margin-bottom:0 !important; }
  .userprofile .node_category dt,
  .userprofile .node_category .itemdefinition{ font-size:11.5px; color:var(--cm-ink3); }
  .userprofile .node_category dd{ font-size:13px; }

  /* ---------- 底部 tabbar（4 项） ---------- */
  .cm-tabbar{
    position:fixed;left:0;right:0;bottom:0;z-index:1030;
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
    border-top:1px solid rgba(15,71,173,.08);
    box-shadow:0 -3px 14px rgba(12,38,90,.06);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .cm-tabbar .cm-row{ display:grid;grid-template-columns:repeat(4,1fr);height:54px;max-width:520px;margin:0 auto; }
  .cm-tab{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    color:var(--cm-ink3);font-size:10px;font-weight:600;
    text-decoration:none !important;height:100%;
  }
  .cm-tab .cm-ico{ padding:2px 10px;border-radius:9px;display:grid;place-items:center;transition:background .16s; }
  .cm-tab svg{ width:20px;height:20px;display:block; }
  .cm-tab.cm-on{ color:var(--cmb);font-weight:800; }
  .cm-tab.cm-on .cm-ico{ background:var(--cmb-50); }
  body.show-drawer-left .cm-tabbar,
  body.show-drawer-right .cm-tabbar{ display:none; }

  /* ---------- 钉钉 / 系统适配 ---------- */
  body.cm-dt .navbar.fixed-top{ padding-top:env(safe-area-inset-top,0px) !important; }
  body.cm-ios input,
  body.cm-ios select,
  body.cm-ios textarea{ font-size:16px !important; }

  /* ---------- 杂项 ---------- */
  #page-footer, .btn-footer-popover{ display:none !important; }
  #region-main-settings-menu{ display:none !important; }
  .toast{ max-width:92vw !important; }
  .drawer{ max-width:88vw; }
  ::selection{ background:rgba(15,71,173,.18); }
}
