@charset "UTF-8";

/* ---- inline block 1/9 #ws-onb-mobile-hotfix ---- */

@media (max-width:600px){
  html body #wsOnb.ws-onb{box-sizing:border-box!important;padding:12px 26px!important;overflow:hidden!important}
  html body #wsOnb.ws-onb .ws-onb-card{box-sizing:border-box!important;width:100%!important;max-width:338px!important;min-width:0!important;margin:0 auto!important;padding:24px 18px 20px!important;max-height:calc(100dvh - 48px)!important;overflow-y:auto!important}
  html body #wsOnb.ws-onb .ws-onb-next{box-sizing:border-box!important;width:100%!important;max-width:100%!important}
}


/* ---- inline block 2/9 #ws-gamification-hidden-guard ---- */

  html body [hidden],
  html body nav button[hidden],
  html body .top-install-btn[hidden],
  html body .desktop-pill[hidden],
  html body .mobile-home-pill[hidden],
  html body .mobile-home-rank[hidden]{display:none!important;}


/* ---- inline block 3/9 #ws-layout-ia-v1 ---- */

  .menu-panel-path{margin:0 0 12px;color:var(--ink-soft);font-size:13px;font-weight:850;line-height:1.45;}
  .menu-panel-tools{margin:0 0 12px;}
  .menu-panel-back{height:34px;margin:0 0 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-soft);font:850 12px/1 var(--cjk);padding:0 12px;cursor:pointer;}
  .menu-panel-back:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
  .menu-panel-search{width:100%;height:44px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,transparent);color:var(--ink);padding:0 14px;font:800 14px/1 var(--cjk);box-sizing:border-box;outline:none;}
  .menu-panel-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent);}
  .menu-panel-shortcuts{display:grid;gap:10px;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--paper) 76%,transparent);}
  .menu-panel-shortcuts b{display:block;margin-bottom:7px;color:var(--ink);font-size:12px;letter-spacing:.04em;}
  .menu-panel-chiprow{display:flex;flex-wrap:wrap;gap:7px;}
  .menu-panel-chiprow button{min-height:34px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-soft);font:850 12px/1 var(--cjk);padding:0 11px;cursor:pointer;}
  .menu-panel-chiprow button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
  .menu-panel-item.has-children{background:color-mix(in srgb,var(--card) 92%,var(--accent-soft));}
  .menu-panel-item-path{display:block;margin-top:5px;color:var(--ink-faint);font-size:11px;font-weight:760;line-height:1.35;}
  .menu-panel-empty{grid-column:1/-1;padding:22px;border:1px dashed var(--line);border-radius:16px;color:var(--ink-soft);text-align:center;font-weight:850;}
  .menu-panel-item.danger{border-color:color-mix(in srgb,var(--danger) 32%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--card));}
  .menu-panel-item.danger .arrow{color:var(--danger);}
  .header-actions #topRankBtn,.header-actions #topShopBtn,.header-actions #installAppTop{background:color-mix(in srgb,var(--card) 84%,transparent)!important;color:var(--ink-soft)!important;border-color:var(--line)!important;box-shadow:none!important;}
  .desktop-side-footer{opacity:.9;}
  .desktop-side-footer .desktop-side-title{font-size:11px!important;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)!important;}
  .desktop-side-footer button{color:var(--ink-soft)!important;}
  .desktop-side-footer button:hover{color:var(--accent)!important;background:color-mix(in srgb,var(--accent-soft) 42%,transparent);}
  #mobilePkBtn,#mobileEarBtn,#mobileCwBtn,#mobileTreeBtn,.share-hero .ws-hero-game,.desktop-actions .ws-pk-entry,.desktop-actions .ws-ear-entry,.desktop-actions .ws-cw-entry,.desktop-actions .ws-tree-entry{background:transparent!important;color:var(--ink-soft)!important;border:1px solid var(--line)!important;box-shadow:none!important;}
  #mobilePkBtn:active,#mobileEarBtn:active,#mobileCwBtn:active,#mobileTreeBtn:active{transform:scale(.99);}
  /* V7.0.0：计划卡下面这一行从 3 颗变 4 颗（加了单词 PK），手机上排成 2×2，字不再挤成两行。只认「计划卡的直接子行」：整行被搬去别处（横滑）时这条不再命中 */
  #mobileHome > * > div:has(> #mobilePkBtn){flex-wrap:wrap!important;}
  #mobileHome > * > div:has(> #mobilePkBtn) > .mobile-start-btn{flex:1 1 calc(50% - 5px)!important;}
  @media(max-width:480px){
    .menu-panel-dialog{padding-bottom:calc(18px + env(safe-area-inset-bottom));}
    .menu-panel-shortcuts{padding:10px;}
    .menu-panel-chiprow button{min-height:36px;}
    .menu-panel-item{min-height:68px!important;}
  }


/* ---- inline block 4/9 #ws-mobile-account-status-nav-fix-v1 ---- */

  @media(max-width:768px){
    html.mobile-account-active,
    body.mobile-account-active{
      height:auto!important;
      min-height:100%!important;
      overflow-y:auto!important;
    }
    body.mobile-account-active .wrap{
      min-height:max-content!important;
      overflow:visible!important;
    }
    html body #view-account.ws-ia-enhanced.active{
      padding-bottom:calc(94px + env(safe-area-inset-bottom,0px) * .55)!important;
      overflow-x:hidden!important;
      overflow-y:visible!important;
      min-height:max-content!important;
    }
    html body #view-account .ws-mobile-ia{
      display:grid!important;
      gap:12px!important;
      min-width:0!important;
      width:100%!important;
      max-width:100%!important;
      padding:8px 0 calc(90px + env(safe-area-inset-bottom,0px) * .55)!important;
    }
    html body #view-account .ws-mobile-ia > *{
      width:100%!important;
      max-width:100%!important;
      min-width:0!important;
      box-sizing:border-box!important;
    }
    html body #view-account .ws-mobile-ia-head{
      display:grid!important;
      grid-template-columns:64px minmax(0,1fr)!important;
      gap:12px!important;
      align-items:center!important;
      padding:0 2px!important;
      min-height:54px!important;
    }
    html body #view-account .ws-mobile-ia-head button{
      min-height:42px!important;
      border-radius:15px!important;
      border:1px solid var(--line)!important;
      background:color-mix(in srgb,var(--card) 88%,transparent)!important;
      color:var(--ink)!important;
      font-weight:950!important;
      box-shadow:none!important;
    }
    html body #view-account .ws-mobile-ia-head h2{
      margin:0!important;
      font-size:26px!important;
      line-height:1.08!important;
      color:var(--ink)!important;
      letter-spacing:0!important;
    }
    html body #view-account .ws-mobile-ia-head p{
      margin:4px 0 0!important;
      font-size:12px!important;
      line-height:1.35!important;
      color:var(--ink-soft)!important;
      font-weight:800!important;
    }
    html body #view-account .ws-mobile-ia-asset{
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:13px!important;
      align-items:start!important;
      min-height:128px!important;
      padding:18px 16px!important;
      border-radius:22px!important;
      border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))!important;
      background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 9%,var(--card)),color-mix(in srgb,var(--paper) 86%,transparent))!important;
      box-shadow:0 12px 28px rgba(42,37,32,.08)!important;
      color:var(--ink)!important;
      overflow:hidden!important;
    }
    html body #view-account .ws-mobile-ia-asset.is-logged{
      border-color:color-mix(in srgb,var(--accent) 36%,var(--line))!important;
      background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 13%,var(--card)),color-mix(in srgb,var(--card) 92%,transparent))!important;
    }
    html body #view-account .ws-mobile-ia-asset b{
      display:block!important;
      margin:0 0 8px!important;
      font-size:20px!important;
      line-height:1.2!important;
      color:var(--ink)!important;
      font-weight:950!important;
      letter-spacing:0!important;
      white-space:nowrap!important;
      overflow:hidden!important;
      text-overflow:ellipsis!important;
    }
    html body #view-account .ws-mobile-ia-asset span{
      display:block!important;
      margin:0!important;
      font-size:13px!important;
      line-height:1.65!important;
      color:var(--ink-soft)!important;
      font-weight:800!important;
    }
    html body #view-account .ws-mobile-ia-asset button{
      justify-self:start!important;
      min-width:82px!important;
      min-height:38px!important;
      padding:0 12px!important;
      border-radius:999px!important;
      border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))!important;
      background:color-mix(in srgb,var(--card) 88%,transparent)!important;
      color:var(--accent)!important;
      font-size:12px!important;
      font-weight:950!important;
      white-space:nowrap!important;
      box-shadow:none!important;
    }
    html body #view-account .ws-mobile-ia-search input{
      display:block!important;
      width:100%!important;
      height:52px!important;
      border-radius:17px!important;
      border:1px solid var(--line)!important;
      background:color-mix(in srgb,var(--card) 92%,transparent)!important;
      color:var(--ink)!important;
      box-shadow:none!important;
      font-size:14px!important;
    }
    html body #view-account .ws-mobile-ia-quick{
      display:flex!important;
      flex-wrap:wrap!important;
      gap:8px!important;
      align-items:center!important;
      width:100%!important;
      margin:0!important;
      padding:0!important;
    }
    html body #view-account .ws-mobile-ia-quick>b{
      flex:0 0 100%!important;
      display:block!important;
      margin:0 0 2px!important;
      font-size:16px!important;
      line-height:1.3!important;
      color:var(--ink)!important;
      font-weight:950!important;
    }
    html body #view-account .ws-mobile-ia-quick button{
      flex:0 1 auto!important;
      min-width:0!important;
      min-height:40px!important;
      padding:0 12px!important;
      border-radius:999px!important;
      border:1px solid var(--line)!important;
      background:color-mix(in srgb,var(--card) 88%,transparent)!important;
      color:var(--ink)!important;
      font-size:13px!important;
      font-weight:900!important;
      box-shadow:none!important;
      white-space:nowrap!important;
    }
    html body #view-account .ws-mobile-ia-list{
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:10px!important;
      width:100%!important;
      margin:0!important;
    }
    html body #view-account .ws-mobile-ia-row{
      display:grid!important;
      grid-template-columns:minmax(0,1fr) auto!important;
      align-items:center!important;
      gap:12px!important;
      width:100%!important;
      min-height:78px!important;
      padding:18px 20px!important;
      border-radius:18px!important;
      border:1px solid var(--line)!important;
      background:color-mix(in srgb,var(--card) 90%,transparent)!important;
      color:var(--ink)!important;
      box-shadow:0 8px 20px rgba(42,37,32,.055)!important;
      transform:translateZ(0);
      text-align:left!important;
      overflow:hidden!important;
    }
    html body #view-account .ws-mobile-ia-row b{
      display:block!important;
      grid-column:1!important;
      grid-row:1!important;
      margin:0 0 5px!important;
      font-size:18px!important;
      line-height:1.25!important;
      color:var(--ink)!important;
      font-weight:950!important;
      white-space:normal!important;
    }
    html body #view-account .ws-mobile-ia-row small{
      display:block!important;
      grid-column:1!important;
      grid-row:2!important;
      margin:0!important;
      font-size:13px!important;
      line-height:1.45!important;
      color:var(--ink-soft)!important;
      font-weight:800!important;
      white-space:normal!important;
    }
    html body #view-account .ws-mobile-ia-row em{
      grid-column:2!important;
      grid-row:1 / span 2!important;
      align-self:center!important;
      justify-self:end!important;
      color:var(--ink-faint)!important;
      font-size:18px!important;
      font-style:normal!important;
      font-weight:950!important;
    }
    html body nav.ws-v4-mobile-nav,
    html body nav.ws-mobile-bottom-nav,
    html body nav{
      bottom:max(4px,calc(env(safe-area-inset-bottom,0px) * .18))!important;
      min-height:64px!important;
      height:66px!important;
      padding:6px 8px max(6px,calc(env(safe-area-inset-bottom,0px) * .42))!important;
      border-radius:22px 22px 20px 20px!important;
      transform:translateZ(0);
    }
    html body nav > button[data-tab]{
      height:48px!important;
      min-height:48px!important;
      border-radius:16px!important;
    }
    html body :is(.view.active,section.view.active,.mobile-home-shell,.mobile-wordbook-shell,.mobile-plan-shell,.mobile-stats-shell,.mobile-settings-shell){
      padding-bottom:calc(90px + env(safe-area-inset-bottom,0px) * .55)!important;
    }
  }
  @media(max-width:380px){
    html body #view-account .ws-mobile-ia-asset{
      grid-template-columns:1fr!important;
      min-height:118px!important;
    }
    html body #view-account .ws-mobile-ia-asset button{
      justify-self:start!important;
    }
  }
  @media(prefers-reduced-motion:no-preference) and (max-width:768px){
    html body #view-account .ws-mobile-ia-row,
    html body #view-account .ws-mobile-ia-asset,
    html body nav > button[data-tab]{
      transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
    }
    html body #view-account .ws-mobile-ia-row:active,
    html body nav > button[data-tab]:active{
      transform:translateZ(0) scale(.985);
    }
  }


/* ---- inline block 5/9 #ws-lib-contrast-fix-v1 ---- */

  html body #view-lib .book-card .book-btn{
    background:linear-gradient(145deg,color-mix(in srgb,var(--card,#fffdf8) 96%,var(--paper,#f5eee2)),color-mix(in srgb,var(--paper,#f5eee2) 72%,var(--card,#fffdf8)))!important;
    border-color:color-mix(in srgb,var(--line,#e8dccb) 86%,var(--ink,#2a2520) 14%)!important;
    color:var(--ink,#2a2520)!important;
    text-shadow:none!important;
  }
  html body #view-lib .book-card .book-btn b,
  html body #view-lib .mobile-book-card .mobile-book-title h3{
    color:var(--ink,#2a2520)!important;
    opacity:1!important;
    text-shadow:none!important;
  }
  html body #view-lib .book-card .book-btn span,
  html body #view-lib .mobile-book-card :is(.mobile-book-summary,.mobile-book-detail,small,p,span){
    color:var(--ink-soft,#6b6055)!important;
    opacity:1!important;
    text-shadow:none!important;
  }
  html body #view-lib .book-card .book-btn.active{
    background:linear-gradient(145deg,color-mix(in srgb,var(--solid,#2a2520) 58%,#000 42%),color-mix(in srgb,var(--solid,#2a2520) 50%,#000 50%))!important;
    border-color:var(--solid,#2a2520)!important;
    color:var(--solid-text,#fdf8ee)!important;
    box-shadow:0 1px 2px color-mix(in srgb,var(--ink,#2a2520) 9%,transparent),0 14px 34px color-mix(in srgb,var(--ink,#2a2520) 16%,transparent)!important;
  }
  html body #view-lib .book-card .book-btn.active b,
  html body #view-lib .book-card .book-btn.active span{
    color:var(--solid-text,#fdf8ee)!important;
    opacity:1!important;
  }
  html body #view-lib .book-card .book-btn.active span{
    color:var(--solid-text,#fdf8ee)!important;
  }
  html[data-theme="dark"] body #view-lib .book-card .book-btn.active,
  html[data-theme="minimal-dark"] body #view-lib .book-card .book-btn.active,
  html[data-theme="supreme"] body #view-lib .book-card .book-btn.active,
  html[data-theme="pixel"] body #view-lib .book-card .book-btn.active{
    background:linear-gradient(145deg,var(--solid,#f4ecdf),color-mix(in srgb,var(--solid,#f4ecdf) 84%,#fff 16%))!important;
    color:var(--solid-text,#171511)!important;
  }
  html[data-theme="dark"] body #view-lib .book-card .book-btn:not(.active),
  html[data-theme="minimal-dark"] body #view-lib .book-card .book-btn:not(.active),
  html[data-theme="supreme"] body #view-lib .book-card .book-btn:not(.active),
  html[data-theme="pixel"] body #view-lib .book-card .book-btn:not(.active){
    background:linear-gradient(145deg,color-mix(in srgb,var(--card,#302a21) 94%,var(--paper,#16130e)),color-mix(in srgb,var(--card,#302a21) 78%,var(--accent,#72cfb4) 8%))!important;
    border-color:color-mix(in srgb,var(--line,#3e352a) 78%,var(--accent,#72cfb4) 22%)!important;
  }
  html[data-theme="dark"] body #view-lib .book-card .book-btn:not(.active) b,
  html[data-theme="minimal-dark"] body #view-lib .book-card .book-btn:not(.active) b,
  html[data-theme="supreme"] body #view-lib .book-card .book-btn:not(.active) b,
  html[data-theme="dark"] body #view-lib .mobile-book-card .mobile-book-title h3,
  html[data-theme="minimal-dark"] body #view-lib .mobile-book-card .mobile-book-title h3,
  html[data-theme="supreme"] body #view-lib .mobile-book-card .mobile-book-title h3,
  html[data-theme="pixel"] body #view-lib .book-card .book-btn:not(.active) b,
  html[data-theme="pixel"] body #view-lib .mobile-book-card .mobile-book-title h3{
    color:var(--ink,#f4ecdf)!important;
  }
  html[data-theme="dark"] body #view-lib .book-card .book-btn:not(.active) span,
  html[data-theme="minimal-dark"] body #view-lib .book-card .book-btn:not(.active) span,
  html[data-theme="supreme"] body #view-lib .book-card .book-btn:not(.active) span,
  html[data-theme="dark"] body #view-lib .mobile-book-card :is(.mobile-book-summary,.mobile-book-detail,small,p,span),
  html[data-theme="minimal-dark"] body #view-lib .mobile-book-card :is(.mobile-book-summary,.mobile-book-detail,small,p,span),
  html[data-theme="supreme"] body #view-lib .mobile-book-card :is(.mobile-book-summary,.mobile-book-detail,small,p,span),
  html[data-theme="pixel"] body #view-lib .book-card .book-btn:not(.active) span,
  html[data-theme="pixel"] body #view-lib .mobile-book-card :is(.mobile-book-summary,.mobile-book-detail,small,p,span){
    color:var(--ink-soft,#c8b9a4)!important;
  }
  html body #view-lib .book-share,
  html body #view-lib .book-upload{
    color:var(--accent,#1d775f)!important;
    background:color-mix(in srgb,var(--accent-soft,#d8ece2) 62%,var(--card,#fffdf8))!important;
    border-color:color-mix(in srgb,var(--accent,#1d775f) 42%,var(--line,#e8dccb))!important;
    text-shadow:none!important;
  }
  html body #view-lib .book-reset{
    color:var(--rose,#b1443b)!important;
    background:color-mix(in srgb,var(--card,#fffdf8) 88%,transparent)!important;
    text-shadow:none!important;
  }


/* ---- inline block 6/9 #ws-ios-pwa-safe-area-fix-v2 ---- */

  @media(max-width:768px),(display-mode:standalone){
    html body #wsStatusScrim{
      display:block!important;
      position:fixed!important;
      top:0!important;
      left:0!important;
      right:0!important;
      height:env(safe-area-inset-top,0px)!important;
      min-height:0!important;
      z-index:2147483647!important;
      pointer-events:none!important;
      background:linear-gradient(to bottom,rgba(0,0,0,.10),rgba(0,0,0,.02) 72%,transparent),#f5eee2!important;
      opacity:1!important;
    }
    html[data-theme="minimal-light"] body #wsStatusScrim{background:linear-gradient(to bottom,rgba(0,0,0,.10),rgba(0,0,0,.02) 72%,transparent),#f6faff!important;}
    html[data-theme="cute-pink"] body #wsStatusScrim{background:linear-gradient(to bottom,rgba(0,0,0,.10),rgba(0,0,0,.02) 72%,transparent),#fff7f6!important;}
    html[data-theme="dark"] body #wsStatusScrim,
    html[data-theme="minimal-dark"] body #wsStatusScrim,
    html[data-theme="supreme"] body #wsStatusScrim,
    html[data-theme="pixel"] body #wsStatusScrim{
      background-image:none!important;
    }
    html[data-theme="dark"] body #wsStatusScrim{background:#16130e!important;}
    html[data-theme="minimal-dark"] body #wsStatusScrim{background:#06101d!important;}
    html[data-theme="supreme"] body #wsStatusScrim{background:#05070c!important;}
  }


/* ---- inline block 7/9 #ws-mobile-modal-centering-fix-v1 ---- */

  @media(max-width:768px){
    html body :is(.contact-modal,.auth-modal,.ws-reg-modal,.ws-onb,.ws-onb-done-modal,
    .ws-qr-modal,.wait-modal,.wm-ask-mask,.ws-wxbind-mask,.mobile-ach-modal,.ws-rq-mask,
    .web-share-modal,.completion-share-modal,#view-plan .plan-full-modal){
      position:fixed!important;
      inset:0!important;
      left:0!important;
      right:0!important;
      width:100vw!important;
      max-width:100vw!important;
      height:100vh!important;
      height:100dvh!important;
      margin:0!important;
      box-sizing:border-box!important;
      align-items:center!important;
      justify-content:center!important;
      padding:max(14px,env(safe-area-inset-top,0px)) 12px max(14px,env(safe-area-inset-bottom,0px))!important;
      overflow:auto!important;
      transform:none!important;
    }
    html body :is(.contact-modal.on,.auth-modal.on,.ws-reg-modal.on,.ws-onb.on,
    .ws-onb-done-modal.on,.ws-qr-modal.on,.wait-modal.on,.wm-ask-mask,.ws-wxbind-mask.on,
    .mobile-ach-modal.is-open,.ws-rq-mask.on,.web-share-modal.on,.completion-share-modal.on,
    #view-plan .plan-full-modal.open){
      display:flex!important;
    }
    html body :is(.contact-dialog,.ws-reg-card,.ws-onb-card,.ws-onb-done-card,
    .ws-qr-dialog,.wait-dialog,.ws-wxbind-card,.mobile-ach-modal-panel,.ws-rq-panel,
    .web-share-dialog,.completion-share-dialog,#view-plan .plan-full-dialog){
      margin:auto!important;
      box-sizing:border-box!important;
      max-width:calc(100vw - 24px)!important;
      transform:none!important;
    }
    html body .ws-qr-dialog{
      width:min(360px,calc(100vw - 24px))!important;
      text-align:center!important;
    }
    html body .ws-qr-frame{
      width:min(212px,calc(100vw - 94px))!important;
      height:min(212px,calc(100vw - 94px))!important;
    }
  }


/* ---- inline block 8/9 #ws-global-ui-audit-fixes-20260701 ---- */

  html,
  body{
    background-color:var(--paper,#f5eee2)!important;
    color:var(--ink,#2a2520)!important;
  }
  @media(max-width:768px),(display-mode:standalone){
    html body #wsStatusScrim{
      display:block!important;
      height:env(safe-area-inset-top,0px)!important;
      min-height:0!important;
      background:linear-gradient(to bottom,rgba(0,0,0,.08),rgba(0,0,0,.015) 72%,transparent),var(--paper,#f5eee2)!important;
    }
    @media(display-mode:standalone){
      html body #wsStatusScrim{
        min-height:max(0px,env(safe-area-inset-top,0px))!important;
      }
    }
    html[data-theme="dark"] body #wsStatusScrim,
    html[data-theme="minimal-dark"] body #wsStatusScrim,
    html[data-theme="supreme"] body #wsStatusScrim,
    html[data-theme="pixel"] body #wsStatusScrim{
      background:var(--paper,#11100d)!important;
    }
  }
  /* V6.7.21 根修「安装版（桌面 PWA）左侧栏被压成一小条」：下面这组是手机底部胶囊导航的尺寸（高 64px、贴底、页面底部留 88px、弹窗时藏导航），
     原来和上面的状态栏遮罩共用 @media(max-width:768px),(display-mode:standalone)——于是安装版不管窗口多宽都命中：
     桌面侧栏的 <nav> 被钉成 64px 高（里面 10 个入口只能在两行高的小框里滚），弹窗时整条侧栏还会消失。
     状态栏遮罩确实需要 standalone；导航尺寸只该跟着宽度走（手机安装版本来就 ≤768px，不受影响）。 */
  @media(max-width:768px){
    html body nav.ws-v4-mobile-nav,
    html body nav.ws-mobile-bottom-nav,
    html body nav{
      bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;/* 尊重完整安全区，胶囊导航不再贴 iPhone home 横条 */
      height:64px!important;
      min-height:64px!important;
      padding:6px 8px 8px!important;
      transform:translate3d(0,0,0)!important;
      will-change:transform!important;
    }
    html body :is(.view.active,section.view.active,.mobile-home-shell,.mobile-wordbook-shell,.mobile-plan-shell,.mobile-hard-shell,.mobile-stats-shell,.mobile-settings-shell,.ws-mobile-ia){
      padding-bottom:calc(88px + env(safe-area-inset-bottom,0px) * .48)!important;
    }
    body.ws-modal-active nav,
    body:has(.contact-modal.on) nav,
    body:has(.ws-reg-modal.on) nav,
    body:has(.ws-qr-modal.on) nav,
    body:has(.web-share-modal.on) nav,
    body:has(.completion-share-modal.on) nav,
    body:has(.mobile-ach-modal.is-open) nav,
    body:has(.ws-rq-mask.on) nav{
      opacity:0!important;
      pointer-events:none!important;
      transform:translate3d(0,18px,0)!important;
    }
  }
  @media(min-width:769px){
    html body :is(#view-settings,#view-account,#view-lib,#view-plan){
      color:var(--ink,#2a2520)!important;
      opacity:1!important;
      filter:none!important;
    }
    html body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(h1,h2,h3,h4,b,strong,label,.sec-title,.ws-ia-card b,.ws-ia-head h2,.book-title,.mobile-book-title h3){
      color:var(--ink,#2a2520)!important;
      opacity:1!important;
      text-shadow:none!important;
    }
    html body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(p,span,small,em,.sec-desc,.ws-ia-card small,.ws-ia-head span,.book-meta,.book-desc,.mobile-book-summary,.mobile-book-detail){
      color:var(--ink-soft,#655b50)!important;
      opacity:1!important;
      text-shadow:none!important;
    }
    html body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(.card,.settings-card,.ws-ia-card,.ws-ia-detail,.account-box,.book-card,.book-btn,.mobile-book-card){
      background-color:color-mix(in srgb,var(--card,#fffdf8) 94%,var(--paper,#f5eee2))!important;
      border-color:color-mix(in srgb,var(--line,#e8dccb) 78%,var(--ink,#2a2520) 10%)!important;
      opacity:1!important;
    }
  }
  html[data-theme="dark"] body :is(#view-settings,#view-account,#view-lib,#view-plan),
  html[data-theme="minimal-dark"] body :is(#view-settings,#view-account,#view-lib,#view-plan),
  html[data-theme="supreme"] body :is(#view-settings,#view-account,#view-lib,#view-plan),
  html[data-theme="pixel"] body :is(#view-settings,#view-account,#view-lib,#view-plan){
    color:var(--ink,#f7ecd7)!important;
  }
  html[data-theme="dark"] body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(p,span,small,em,.sec-desc,.ws-ia-card small,.ws-ia-head span),
  html[data-theme="minimal-dark"] body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(p,span,small,em,.sec-desc,.ws-ia-card small,.ws-ia-head span),
  html[data-theme="supreme"] body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(p,span,small,em,.sec-desc,.ws-ia-card small,.ws-ia-head span),
  html[data-theme="pixel"] body :is(#view-settings,#view-account,#view-lib,#view-plan) :is(p,span,small,em,.sec-desc,.ws-ia-card small,.ws-ia-head span){
    color:var(--ink-soft,#c9b78f)!important;
  }


/* ---- inline block 9/9 #wsClassStyle ---- */

.ws-class-page{position:fixed;inset:0;z-index:12060;display:none;flex-direction:column;background:var(--paper);color:var(--ink);overflow:hidden}
.ws-class-page.on{display:flex}
.ws-cls-head{display:flex;align-items:center;gap:12px;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line);background:var(--card)}
.ws-cls-back{min-height:44px;min-width:44px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:15px;cursor:pointer}
.ws-cls-title{font-weight:900;font-size:17px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-cls-rolepill{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c)}
.ws-cls-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.ws-cls-col{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.ws-cls-card{background:var(--card);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:16px;padding:16px}
.ws-cls-card h3{margin:0 0 6px;font-size:15px}
.ws-cls-muted{color:var(--ink-soft,#777);font-size:12.5px;line-height:1.55}
.ws-cls-primary{display:block;width:100%;min-height:48px;border:none;border-radius:14px;background:var(--solid,#20201b);color:var(--solid-text,#fff);font-size:15.5px;font-weight:900;cursor:pointer}
.ws-cls-btn{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:13.5px;font-weight:700;cursor:pointer}
.ws-cls-btn.acc{border-color:var(--accent,#1f6e5c);color:var(--accent,#1f6e5c)}
.ws-cls-danger{border-color:rgba(189,82,44,.4);color:#bd522c}
.ws-cls-row{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.ws-cls-row:last-child{border-bottom:none}
.ws-cls-row b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.ws-cls-badge{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c);white-space:nowrap}
.ws-cls-badge.warn{background:rgba(189,82,44,.1);color:#bd522c}
.ws-cls-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
/* 5.8.0 学情看板：学生分层 / 掌握率分布 / 任务完成趋势（全部 token 化，明暗主题通吃） */
.ws-cls-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}
.ws-cls-tier{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;border-top:3px solid var(--line)}
.ws-cls-tier.watch{border-top-color:#c0392b}
.ws-cls-tier.steady{border-top-color:#c98a00}
.ws-cls-tier.lead{border-top-color:#1f9d55}
.ws-cls-tier .tier-head{display:flex;align-items:baseline;gap:6px}
.ws-cls-tier .tier-head b{font-size:22px;line-height:1.2}
.ws-cls-tier .tier-head span{font-size:12.5px;font-weight:800}
.ws-cls-tier.watch .tier-head span{color:#c0392b}
.ws-cls-tier.steady .tier-head span{color:#c98a00}
.ws-cls-tier.lead .tier-head span{color:#1f9d55}
.ws-cls-tier .tier-tip{font-size:11px;color:var(--ink-soft,#777);margin:2px 0 8px}
.ws-cls-tier .tier-chips{display:flex;flex-wrap:wrap;gap:4px}
.tier-chip{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--accent-soft,rgba(31,110,92,.1));color:var(--ink)}
.tier-chip.more{background:transparent;border:1px dashed var(--line);color:var(--ink-soft,#777)}
.ws-cls-dist{display:flex;align-items:center;gap:10px;margin-top:8px}
.ws-cls-dist .dist-label{flex:0 0 72px;font-size:12px;color:var(--ink-soft,#777);text-align:right}
.ws-cls-dist .dist-track{flex:1;height:14px;background:var(--paper);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.ws-cls-dist .dist-track i{display:block;height:100%;border-radius:999px;min-width:2px}
.ws-cls-dist .dist-track i.good{background:#1f9d55}
.ws-cls-dist .dist-track i.mid{background:#c98a00}
.ws-cls-dist .dist-track i.low{background:#c0392b}
.ws-cls-dist .dist-n{flex:0 0 44px;font-size:12px}
.ws-cls-trend{display:flex;align-items:flex-end;gap:6px;height:96px;margin-top:10px;padding:0 2px}
.ws-cls-trend .trend-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.ws-cls-trend .trend-col i{display:block;width:70%;max-width:26px;background:var(--accent,#1f6e5c);border-radius:6px 6px 2px 2px;opacity:.85}
.ws-cls-trend .trend-col span{font-size:10px;color:var(--ink-soft,#777);margin-top:4px;white-space:nowrap}
.ws-cls-stat{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.ws-cls-stat b{display:block;font-size:22px;line-height:1.2}
.ws-cls-stat span{font-size:11.5px;color:var(--ink-soft,#777)}
/* V7.4.5：班级页导航样式在本文件末尾「V7.4.5」块（原来的一行药丸页签规则已移除） */
.ws-cls-input{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:14px}
.ws-cls-field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ws-cls-field label{font-size:12.5px;font-weight:800;color:var(--ink-soft,#777)}
.ws-cls-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ws-cls-code{font-size:30px;font-weight:900;letter-spacing:4px;text-align:center;padding:14px;border:1.5px dashed var(--accent,#1f6e5c);border-radius:14px;color:var(--accent,#1f6e5c);user-select:all}
.ws-cls-qr{display:block;width:180px;height:180px;margin:10px auto;border-radius:12px;border:1px solid var(--line);background:#fff}
.ws-cls-empty{text-align:center;padding:28px 10px;color:var(--ink-soft,#777);font-size:13px}
#wsModeChip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap}
#wsModeChip .ws-mode-dot{width:8px;height:8px;border-radius:50%;background:var(--accent,#1f6e5c)}
#wsModeChip.in-class{border-color:var(--accent,#1f6e5c);background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c)}
#wsModeChipM.in-class{border-color:var(--accent,#1f6e5c)!important;background:var(--accent-soft,rgba(31,110,92,.12))!important;color:var(--accent,#1f6e5c)!important}
.ws-cls-wordsbox{display:none;margin-top:8px}
.ws-cls-wordsbox.on{display:block}
.ws-cls-wordsbox textarea{width:100%;box-sizing:border-box;min-height:120px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:13px;line-height:1.6;resize:vertical}
.ws-cls-linklike{background:none;border:none;padding:4px 0;color:var(--accent,#1f6e5c);font-size:13px;font-weight:700;cursor:pointer;text-align:left}
/* ---- 模式切换浮窗：桌面=锚定卡，手机=bottom sheet ---- */
.ws-mode-mask{position:fixed;inset:0;z-index:12070;display:none;background:rgba(20,16,10,.42)}
.ws-mode-mask.on{display:block}
.ws-mode-sheet{position:fixed;z-index:12071;display:none;flex-direction:column;gap:4px;background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.28);padding:14px}
.ws-mode-sheet.on{display:flex}
.ws-mode-sheet h4{margin:0 0 6px;font-size:13px;color:var(--ink-soft,#777);font-weight:800;letter-spacing:.04em}
.ws-mode-opt{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 12px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--ink);cursor:pointer;text-align:left;font-size:14px}
.ws-mode-opt:hover{background:var(--paper)}
.ws-mode-opt.cur{border-color:var(--accent,#1f6e5c);background:var(--accent-soft,rgba(31,110,92,.10))}
.ws-mode-opt .mo-ic{flex:0 0 34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--paper);border:1px solid var(--line)}
.ws-mode-opt .mo-tx{flex:1;min-width:0}
.ws-mode-opt .mo-tx b{display:block;font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-mode-opt .mo-tx span{display:block;font-size:11.5px;color:var(--ink-soft,#777);margin-top:1px}
.ws-mode-opt .mo-st{flex:none;font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;white-space:nowrap}
.ws-mode-opt .mo-st.ok{background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c)}
.ws-mode-opt .mo-st.todo{background:rgba(189,82,44,.1);color:#bd522c}
.ws-mode-manage{margin-top:6px;min-height:44px;border:1px dashed var(--line);border-radius:12px;background:transparent;color:var(--ink-soft,#777);font-size:13px;font-weight:700;cursor:pointer}
.ws-mode-manage:hover{color:var(--accent,#1f6e5c);border-color:var(--accent,#1f6e5c)}
@media (min-width:769px){.ws-mode-sheet{top:74px;right:18px;width:340px;border-radius:18px}}
@media (max-width:768px){.ws-mode-sheet{position:fixed;left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(92vw,380px);max-height:82vh;overflow:auto;border-radius:20px;padding-bottom:16px;animation:none;box-shadow:0 18px 50px rgba(0,0,0,.28),0 0 0 100vmax color-mix(in srgb,var(--ink) 42%,transparent)}}
@keyframes wsModeUp{from{transform:translateY(24px);opacity:.4}to{transform:translateY(0);opacity:1}}
@media (prefers-reduced-motion:reduce){.ws-mode-sheet{animation:none}}
/* ---- 老师总览：完成率主卡 ---- */
.ws-cls-ratecard{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:16px;padding:18px 16px}
.ws-cls-ratecard .rc-num{flex:none;font-size:44px;font-weight:900;line-height:1;color:var(--accent,#1f6e5c);min-width:110px;text-align:center}
.ws-cls-ratecard .rc-num small{display:block;font-size:12px;font-weight:700;color:var(--ink-soft,#777);margin-top:6px}
.ws-cls-ratecard .rc-side{flex:1;min-width:0}
#wsO_students{white-space:nowrap}.ws-cls-pending b{word-break:keep-all;overflow-wrap:anywhere} /* V7.4.5 「查看学生 ›」不拆行、名字不从中间断 */
.ws-cls-bar{height:8px;border-radius:99px;background:var(--paper);border:1px solid var(--line);overflow:hidden;margin:8px 0 6px}
.ws-cls-bar i{display:block;height:100%;border-radius:99px;background:var(--accent,#1f6e5c);transition:width .4s ease}
.ws-cls-bar.mini{height:6px;margin:6px 0 0}
.ws-cls-pending{font-size:12.5px;color:var(--ink-soft,#777);line-height:1.6}
/* 学情分析 */
.ws-cls-typerow{display:flex;align-items:center;gap:10px;margin:10px 0}
.ws-cls-typerow .tl{flex:0 0 76px;font-size:13px;font-weight:700;color:var(--ink)}
.ws-cls-typerow .ws-cls-bar{flex:1;margin:0}
.ws-cls-typerow .tv{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--ink)}
.ws-cls-typerow .tv em{font-style:normal;font-weight:500;color:var(--ink-soft,#999);font-size:11px}
.ws-cls-tips{background:color-mix(in srgb,var(--accent,#1f6e5c) 7%,var(--card));border-color:color-mix(in srgb,var(--accent,#1f6e5c) 26%,var(--line))}
.ws-cls-tip{font-size:13px;line-height:1.65;color:var(--ink);padding:5px 0;border-bottom:1px dashed color-mix(in srgb,var(--line) 60%,transparent)}
.ws-cls-tip:last-child{border-bottom:0}
.ws-cls-trend{display:flex;align-items:flex-end;gap:5px;height:76px;padding-top:6px;overflow-x:auto}
.ws-cls-tbar{flex:1;min-width:20px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}
.ws-cls-tbar i{display:block;width:70%;max-width:20px;border-radius:5px 5px 0 0}
.ws-cls-tbar em{font-style:normal;font-size:9px;color:var(--ink-soft,#999);white-space:nowrap}
/* Phase2：报告导出 + 学生详情 */
.ws-cls-reportbtn{display:block;width:100%;margin:12px 0 0;padding:14px;border:1px solid color-mix(in srgb,var(--accent,#1f6e5c) 40%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent,#1f6e5c) 8%,var(--card));color:var(--accent,#1f6e5c);font-weight:800;font-size:14px;cursor:pointer;transition:.15s}
.ws-cls-reportbtn:hover{background:color-mix(in srgb,var(--accent,#1f6e5c) 14%,var(--card))}
.ws-cls-row.clickable{cursor:pointer}
.ws-cls-chev{margin-left:auto;color:var(--ink-soft,#999);font-size:18px;transition:transform .18s ease;flex:0 0 auto}
.ws-cls-row.open .ws-cls-chev{transform:rotate(90deg)}
.ws-cls-studetail{padding:6px 6px 12px 44px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.ws-cls-sub{font-size:12px;font-weight:800;color:var(--ink-soft,#777);letter-spacing:.03em;margin:8px 0 4px}
.ws-cls-hwrow.slim{padding:8px 4px}
/* 学生详情：掌握分布 / 迷你趋势 / 强项词 */
.ws-cls-dist{margin:6px 0 2px}
.ws-cls-dist .dist-bar{display:flex;height:12px;border-radius:99px;overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.ws-cls-dist .dist-bar i{display:block;height:100%}
.ws-cls-dist .dist-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:11.5px;color:var(--ink-soft,#777)}
.ws-cls-dist .dist-legend em{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.ws-cls-trend.mini{height:52px;gap:4px}
.ws-cls-trend.mini .ws-cls-tbar i{max-width:16px}
.ws-cls-strongwords{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.ws-cls-strongwords .fwchip{background:color-mix(in srgb,#1f9d55 12%,transparent);color:#177a41}
.ws-cls-parentbtn{display:block;width:100%;margin:12px 0 2px;padding:11px;border:1px solid color-mix(in srgb,var(--accent,#1f6e5c) 34%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent,#1f6e5c) 7%,var(--card));color:var(--accent,#1f6e5c);font-weight:700;font-size:13px;cursor:pointer}
.ws-cls-parentbtn:hover{background:color-mix(in srgb,var(--accent,#1f6e5c) 13%,var(--card))}
/* 班级对比 */
.ws-cls-cmp{margin-top:10px}
.cmp-row{display:grid;grid-template-columns:1fr 48px 72px 80px;gap:6px;align-items:center;padding:11px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:13px}
.cmp-row:last-child{border-bottom:0}
.cmp-row:not(.cmp-head){cursor:pointer}
.cmp-row:not(.cmp-head):hover{background:color-mix(in srgb,var(--accent,#1f6e5c) 5%,transparent)}
.cmp-row>span:not(.cmp-name){text-align:center;font-weight:700}
.cmp-name{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-head{font-size:11px;font-weight:800;color:var(--ink-soft,#999);letter-spacing:.02em}
.cmp-head>span{font-weight:800!important}
/* 薄弱词按卡点分类 */
.ws-cls-reasongroup{padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent)}
.ws-cls-reasongroup:last-child{border-bottom:0}
.rg-head{font-size:13px;margin-bottom:8px}
.rg-head b{color:var(--accent,#1f6e5c)}
.rg-words{display:flex;flex-wrap:wrap;gap:6px}
/* 专业版 / 升级引导 */
.ws-cls-procard{background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#1f6e5c) 14%,var(--card)),var(--card));border-color:color-mix(in srgb,var(--accent,#1f6e5c) 34%,var(--line))}
.ws-cls-upsell{margin-top:12px;text-align:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#1f6e5c) 9%,var(--card)),var(--card))}
.ws-cls-upsell .upsell-ic{font-size:34px;margin-bottom:4px}
.ws-cls-upsell h3{margin:0 0 4px}
/* Phase3：薄弱词专项任务 */
.ws-cls-reportbtn.accent{margin-top:8px;background:var(--accent,#1f6e5c);color:#fff;border-color:var(--accent,#1f6e5c)}
.ws-cls-reportbtn.accent:hover{filter:brightness(1.06)}
.ws-cls-focuscard{border:1.5px solid color-mix(in srgb,var(--accent,#1f6e5c) 40%,var(--line))}
.ws-cls-focus-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;background:color-mix(in srgb,var(--accent,#1f6e5c) 14%,transparent);color:var(--accent,#1f6e5c);margin-bottom:8px}
.ws-cls-focuswords{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 2px}
.fwchip{padding:5px 11px;border-radius:9px;background:var(--paper);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink)}
.fwchip.more{background:transparent;color:var(--ink-soft,#999);font-weight:600}
.ws-cls-pending b{color:#bd522c;font-weight:800}
/* ---- 5 档强度 ---- */
.ws-cls-int{display:flex;gap:8px;flex-wrap:wrap}
.ws-cls-int button{flex:1 1 calc(20% - 8px);min-width:86px;min-height:52px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);cursor:pointer;font-size:12px;font-weight:700;line-height:1.35}
.ws-cls-int button b{display:block;font-size:15px;font-weight:900}
.ws-cls-int button.on{border-color:var(--accent,#1f6e5c);background:var(--accent-soft,rgba(31,110,92,.10));color:var(--accent,#1f6e5c)}
.ws-cls-warnnote{margin-top:8px;font-size:12px;line-height:1.55;color:#bd522c;background:rgba(189,82,44,.08);border:1px solid rgba(189,82,44,.25);border-radius:10px;padding:8px 10px}
/* ---- 学生列表 ---- */
.ws-cls-grouplabel{font-size:12px;font-weight:800;color:var(--ink-soft,#777);letter-spacing:.05em;margin:14px 2px 4px}
.ws-cls-ava{flex:0 0 34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c)}
.ws-cls-rm{min-height:34px;padding:0 10px;border:none;border-radius:10px;background:transparent;color:var(--ink-soft,#999);font-size:12px;cursor:pointer}
.ws-cls-rm:hover{color:#bd522c;background:rgba(189,82,44,.08)}
.ws-cls-rm[data-armed]{color:#fff;background:#bd522c;font-weight:800}
/* ---- 难词 ---- */
.ws-cls-hwrow{display:flex;align-items:flex-start;gap:12px;padding:13px 4px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.ws-cls-hwrow:last-child{border-bottom:none}
.ws-cls-hwrow .hw-rank{flex:0 0 26px;font-size:13px;font-weight:900;color:var(--ink-soft,#999);padding-top:3px}
.ws-cls-hwrow .hw-main{flex:1;min-width:0}
.ws-cls-hwrow .hw-word{font-size:17px;font-weight:900;letter-spacing:.01em}
.ws-cls-hwrow .hw-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ws-cls-hwbadge{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft,#666)}
.ws-cls-hwbadge.hot{background:rgba(189,82,44,.1);border-color:rgba(189,82,44,.3);color:#bd522c}
.ws-cls-hwrow .hw-n{flex:none;font-size:12px;color:var(--ink-soft,#777);white-space:nowrap;padding-top:4px}
/* ---- 学生完成态 ---- */
.ws-cls-donecard{text-align:center;padding:26px 16px 20px}
.ws-cls-donecard .dc-ic{font-size:40px;line-height:1}
.ws-cls-donecard h3{margin:10px 0 4px;font-size:18px}
/* ---- 游客/深链加入落地卡 ---- */
.ws-join-landing{position:fixed;inset:0;z-index:12050;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(20,16,10,.5)}
.ws-join-landing.on{display:flex}
.ws-join-card{width:min(430px,94vw);background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:24px 20px;box-shadow:0 24px 70px rgba(0,0,0,.35);text-align:center}
.ws-join-card .jc-eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--accent,#1f6e5c)}
.ws-join-card h3{margin:8px 0 2px;font-size:21px;font-weight:900}
.ws-join-card .jc-meta{font-size:12.5px;color:var(--ink-soft,#777);margin-bottom:12px}
.ws-join-card .jc-desc{font-size:13px;line-height:1.7;color:var(--ink-soft,#666);text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:14px}
.ws-join-card .ws-cls-primary{margin-bottom:8px}
@media (max-width:768px){.ws-cls-ratecard .rc-num{font-size:36px;min-width:88px}.ws-cls-int button{flex:1 1 calc(33% - 8px)}}
/* V7.4.5：桌面班级管理台（≥992px 两级侧栏）的规则在本文件末尾「V7.4.5」块（原来的单层侧栏规则已移除） */
/* ui-polish body>* 会把 fixed 子元素压成 relative（.ear-mini/.ws-onb 同款陷阱），逐 id 豁免 */
html.ws-v4-polish body > #wsJoinLanding{position:fixed!important;inset:0!important;z-index:12050!important}
html.ws-v4-polish body > #wsModeMask{position:fixed!important;inset:0!important;z-index:12070!important}
html.ws-v4-polish body > #wsModeSheet{position:fixed!important;z-index:12071!important}
html.ws-v4-polish body > #wsSciIntro{position:fixed!important;inset:0!important;z-index:12080!important} /* V6.7.2 修#1/#5:M3 三个入口都要能真的弹出科学引导(ui-polish body>* 会把它压成 relative,面板掉到页面最底) */
@media (min-width:769px){html.ws-v4-polish body > #wsModeSheet{top:74px!important;right:18px!important;left:auto!important;bottom:auto!important}}
@media (max-width:768px){html.ws-v4-polish body > #wsModeSheet{left:50%!important;right:auto!important;bottom:auto!important;top:50%!important;transform:translate(-50%,-50%)!important}} /* V6.4.1(深检#21):基础样式的translate(-50%)还在,旧规则left:0会把面板拖出屏幕左侧一半 */
body.new-user-quiet-home #view-home .share-hero,
body.new-user-quiet-home #view-home .progress-card,
body.new-user-quiet-home #view-home #streakLine,
body.new-user-quiet-home #view-home .tasknums,
body.new-user-quiet-home #view-home .today-meter,
body.new-user-quiet-home #view-home #finishLine,
body.new-user-quiet-home #topRankBtn,
body.new-user-quiet-home #desktopRankBtn,
body.new-user-quiet-home #topShopBtn,
body.new-user-quiet-home #mobileHomeReward,
body.new-user-quiet-home #mobileHomeRank,
body.new-user-quiet-home #mobileHomeShop,
body.new-user-quiet-home nav [data-tab="achievements"],
body.new-user-quiet-home .mobile-tip-card,
body.new-user-quiet-home .mobile-tip-dots,
body.new-user-quiet-home .mobile-home-pills>:not(#wsModeChipM),/* 保留班级入口chip：拿着班级码的新学生此前在手机上找不到任何入口 */
body.new-user-quiet-home .mobile-home-section[aria-labelledby="mobileStreakTitle"],
body.new-user-quiet-home #mobileCalendarCard,
body.new-user-quiet-home .mobile-home-section[aria-labelledby="mobileAchievementTitle"],
body.new-user-quiet-home .mobile-plan-book-row,
body.new-user-quiet-home .mobile-plan-row,
body.new-user-quiet-home .mobile-plan-progress,
body.new-user-quiet-home #mobileEarBtn,
body.new-user-quiet-home #mobileCwBtn{display:none!important}
body.new-user-quiet-home #view-home.active{align-items:start!important;display:block!important}/* V5.8.0 新手态只剩设置卡+价值卡：改块布局让两者同轴居中，不再被隐藏列拉偏 */
body.new-user-quiet-home #view-home .card.hero{max-width:760px;margin-inline:auto}
/* V5.8.0 新用户首页不再空旷：设置卡下方三张价值卡（只在新手态出现，设置完计划自动消失） */
#wsQuietIntro{display:none}
body.new-user-quiet-home #view-home #wsQuietIntro{display:block;grid-column:1 / -1;justify-self:center;max-width:760px;margin:18px auto 0;width:100%}
#wsQuietIntro .qi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
#wsQuietIntro .qi-card{background:var(--card,#fff);border:1px solid var(--line,rgba(0,0,0,.08));border-radius:16px;padding:16px 14px}
#wsQuietIntro .qi-card .qi-ic{font-size:22px;display:block;margin-bottom:8px}
#wsQuietIntro .qi-card b{display:block;font-size:14px;margin-bottom:6px}
#wsQuietIntro .qi-card p{margin:0;font-size:12.5px;line-height:1.65;color:var(--ink-soft,#6a7280)}
#wsQuietIntro .qi-foot{text-align:center;font-size:12px;color:var(--ink-soft,#8a8f98);margin-top:12px}
@media (max-width:768px){#wsQuietIntro .qi-grid{grid-template-columns:1fr}}
body.new-user-quiet-home #view-home #todayNudge{font-size:15px;line-height:1.7;color:var(--ink-soft)}
body.new-user-quiet-home #mobileHome .mobile-home-section[aria-labelledby="mobilePlanTitle"]{margin-top:18px}
body.new-user-quiet-home #mobileHome #mobileStartBtn{margin-top:16px}
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .plan-total,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .vocab-note,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .tasknums,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .today-game-entries,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .home-calendar-stack,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #desktopTopStreak,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home .desktop-top-streak,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #installAppTop,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home .desktop-side-footer,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active .mobile-home-pills,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active .mobile-plan-book-row,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active .mobile-plan-row,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active .mobile-plan-progress,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileHome .mobile-home-section[aria-labelledby="mobileStreakTitle"],
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileCalendarCard,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileHome .mobile-home-section[aria-labelledby="mobileAchievementTitle"],
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileEarBtn,
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileCwBtn{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home #view-home .card.hero{
  grid-template-columns:1fr!important;
  gap:16px!important;
}
html.new-user-quiet-home.ws-v4-polish body.new-user-quiet-home.mobile-home-active #mobileHome .mobile-home-section[aria-labelledby="mobilePlanTitle"]{
  margin-top:22px!important;
}
body.retention-day1-due #view-home .share-hero{display:none!important}
@media (min-width:901px){
  body.retention-day1-due #view-home.active{
    grid-template-columns:minmax(0,1fr) minmax(320px,420px)!important;
    align-items:start!important;
  }
  body.retention-day1-due #view-home .card.hero{
    grid-column:1!important;
    grid-row:2!important;
  }
  body.retention-day1-due #view-home .progress-card{
    grid-column:2!important;
    grid-row:2 / span 2!important;
  }
}
@media (max-width:768px){.ws-cls-grid2{grid-template-columns:1fr}.ws-cls-col{max-width:none}}
/* ===== V5.8.0 班级作业系统（练习/批改/成绩册/单元/公告）：全部走 token，状态=语义色（独立于主题 accent）===== */
.ws-cls-as-row{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line,rgba(0,0,0,.08));cursor:pointer;transition:background .15s}
.ws-cls-as-row:hover{background:var(--soft,rgba(0,0,0,.03))}
.ws-cls-as-row:last-child{border-bottom:none}
.ws-cls-as-main{flex:1;min-width:0}
.ws-cls-as-main b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-cls-as-main span{font-size:12px;color:var(--muted,#8a8f98)}
.ws-cls-as-count{font-variant-numeric:tabular-nums;font-size:13px;font-weight:800;white-space:nowrap}
.ws-cls-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;line-height:1;padding:4px 8px;border-radius:999px;white-space:nowrap}
.ws-cls-chip.open{background:rgba(31,110,92,.12);color:#1f6e5c}
.ws-cls-chip.closed{background:rgba(0,0,0,.08);color:var(--muted,#777)}
.ws-cls-chip.scheduled{background:rgba(140,110,20,.14);color:#8a6d1c}
.ws-cls-chip.late{background:rgba(190,60,60,.13);color:#b43c3c}
.ws-cls-chip.excellent{background:rgba(190,140,20,.16);color:#996f00}
.ws-cls-chip.redo{background:rgba(190,60,60,.13);color:#b43c3c}
.ws-cls-chip.reviewed{background:rgba(31,110,92,.12);color:#1f6e5c}
.ws-cls-chip.submitted{background:rgba(40,90,180,.12);color:#2f5fae}
.ws-cls-chip.excused{background:repeating-linear-gradient(45deg,rgba(0,0,0,.06),rgba(0,0,0,.06) 4px,transparent 4px,transparent 8px);color:var(--muted,#777)}
.ws-cls-chip.miss{background:rgba(190,60,60,.09);color:#b43c3c;border:1px dashed rgba(190,60,60,.4)}
.ws-cls-chip.due-soon{background:rgba(190,60,60,.13);color:#b43c3c}
.ws-cls-attn{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 7px;border-radius:6px;background:rgba(190,60,60,.1);color:#b43c3c;margin:2px 4px 0 0}
[data-theme*="dark"] .ws-cls-chip.open,[data-theme*="dark"] .ws-cls-chip.reviewed{background:rgba(90,200,170,.16);color:#7fd9bd}
[data-theme*="dark"] .ws-cls-chip.submitted{background:rgba(110,160,255,.16);color:#9dc0ff}
[data-theme*="dark"] .ws-cls-chip.late,[data-theme*="dark"] .ws-cls-chip.redo,[data-theme*="dark"] .ws-cls-chip.due-soon{background:rgba(255,110,110,.16);color:#ff9d9d}
[data-theme*="dark"] .ws-cls-chip.excellent{background:rgba(255,200,90,.16);color:#ffd98a}
[data-theme*="dark"] .ws-cls-attn{background:rgba(255,110,110,.13);color:#ff9d9d}
.ws-cls-composer .ws-cls-steps{display:flex;gap:6px;margin:4px 0 12px}
.ws-cls-composer .ws-cls-steps i{flex:1;height:3px;border-radius:2px;background:var(--line,rgba(0,0,0,.1))}
.ws-cls-composer .ws-cls-steps i.on{background:var(--accent,#1f6e5c)}
.ws-cls-typegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}
.ws-cls-typegrid button{border:1.5px solid var(--line,rgba(0,0,0,.12));background:var(--card,#fff);border-radius:12px;padding:12px 8px;cursor:pointer;text-align:center;color:inherit;transition:border-color .15s}
.ws-cls-typegrid button.on{border-color:var(--accent,#1f6e5c);box-shadow:0 0 0 2px rgba(31,110,92,.12)}
.ws-cls-typegrid button .tg-ic{display:block;font-size:20px;margin-bottom:4px}
.ws-cls-typegrid button b{display:block;font-size:13px}
.ws-cls-typegrid button span{font-size:11px;color:var(--muted,#8a8f98)}
.ws-cls-estnote{font-size:12px;margin-top:6px;color:var(--muted,#8a8f98)}
.ws-cls-estnote.warn{color:#8a6d1c;font-weight:700}
.ws-cls-gb-wrap{overflow-x:auto;margin-top:8px}
.ws-cls-gb{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;min-width:520px}
.ws-cls-gb th{position:sticky;top:0;background:var(--card,#fff);text-align:left;font-size:11px;color:var(--muted,#8a8f98);font-weight:700;padding:7px 8px;border-bottom:1.5px solid var(--line,rgba(0,0,0,.12));white-space:nowrap}
.ws-cls-gb td{padding:8px;border-bottom:1px solid var(--line,rgba(0,0,0,.06));white-space:nowrap}
.ws-cls-gb tr:hover td{background:var(--soft,rgba(0,0,0,.03))}
.ws-cls-gb td.num{text-align:right}
.ws-cls-gb .gb-low{color:#b43c3c;font-weight:800}
.ws-cls-gb .gb-good{color:#1f6e5c;font-weight:800}
.ws-cls-review-mask{position:fixed;inset:0;background:rgba(10,14,18,.55);z-index:12050;display:none;align-items:center;justify-content:center;padding:14px}
.ws-cls-review-mask.on{display:flex}
.ws-cls-review{background:var(--card,#fff);color:var(--ink,#1c222b);border-radius:16px;max-width:560px;width:100%;max-height:92vh;overflow:auto;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.3)}
.ws-cls-review .rv-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.ws-cls-review .rv-nav b{font-size:15px}
.ws-cls-review .rv-media{margin:10px 0;background:var(--soft,rgba(0,0,0,.04));border-radius:12px;padding:10px}
.ws-cls-review .rv-media audio,.ws-cls-review .rv-media video{width:100%;border-radius:8px}
.ws-cls-review .rv-media img{max-width:100%;border-radius:8px}
.ws-cls-review .rv-speed{display:flex;gap:6px;margin-top:8px}
.ws-cls-review .rv-speed button{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line,rgba(0,0,0,.15));background:transparent;color:inherit;cursor:pointer}
.ws-cls-review .rv-speed button.on{background:var(--accent,#1f6e5c);color:#fff;border-color:var(--accent,#1f6e5c)}
.ws-cls-review .rv-text{white-space:pre-wrap;font-size:14px;line-height:1.6;background:var(--soft,rgba(0,0,0,.04));border-radius:12px;padding:12px;margin:10px 0}
.ws-cls-review .rv-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.ws-cls-review .rv-acts button{padding:11px 6px;border-radius:12px;border:1.5px solid var(--line,rgba(0,0,0,.14));background:transparent;color:inherit;font-weight:800;cursor:pointer;font-size:13px}
.ws-cls-review .rv-acts button.ok{border-color:#1f6e5c;color:#1f6e5c}
.ws-cls-review .rv-acts button.star{border-color:#b8860b;color:#996f00}
.ws-cls-review .rv-acts button.redo{border-color:#b43c3c;color:#b43c3c}
.ws-cls-review .rv-score{display:flex;gap:8px;align-items:center;margin-top:10px}
.ws-cls-review .rv-score input[type=number]{width:90px}
.ws-cls-prevnext{display:flex;gap:8px}
.ws-cls-prevnext button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line,rgba(0,0,0,.15));background:transparent;color:inherit;font-size:17px;cursor:pointer}
.ws-cls-an{padding:11px 4px;border-bottom:1px solid var(--line,rgba(0,0,0,.07))}
.ws-cls-an:last-child{border-bottom:none}
.ws-cls-an .an-text{font-size:13.5px;line-height:1.55;white-space:pre-wrap}
.ws-cls-an .an-meta{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted,#8a8f98);margin-top:5px}
.ws-cls-an.unread .an-text{font-weight:700}
.ws-cls-cal{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px}
.ws-cls-cal .cal-day{min-width:64px;border:1px solid var(--line,rgba(0,0,0,.1));border-radius:10px;padding:7px 6px;text-align:center;flex:0 0 auto}
.ws-cls-cal .cal-day b{display:block;font-size:12px}
.ws-cls-cal .cal-day span{font-size:10.5px;color:var(--muted,#8a8f98);display:block;margin-top:2px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-cls-cal .cal-day.hasdue{border-color:rgba(190,60,60,.45)}
.ws-cls-cal .cal-day.today{border-color:var(--accent,#1f6e5c);box-shadow:0 0 0 1.5px rgba(31,110,92,.2)}
.ws-cls-progress-card{border-radius:14px;padding:14px;background:linear-gradient(135deg,rgba(31,110,92,.1),rgba(31,110,92,.02));border:1px solid rgba(31,110,92,.2);margin-bottom:12px}
.ws-cls-progress-card h4{margin:0 0 8px;font-size:14px}
.ws-cls-progress-card .pg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}
.ws-cls-progress-card .pg-grid b{display:block;font-size:19px;font-variant-numeric:tabular-nums}
.ws-cls-progress-card .pg-grid span{font-size:10.5px;color:var(--muted,#8a8f98)}
.ws-cls-progress-card .pg-delta{font-size:11px;font-weight:800}
.ws-cls-progress-card .pg-delta.up{color:#1f6e5c}
.ws-cls-progress-card .pg-delta.down{color:#b43c3c}
.ws-cls-team-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line,rgba(0,0,0,.07))}
.ws-cls-team-row:last-child{border-bottom:none}
.ws-cls-team-row .tm-name{flex:1;font-size:13.5px;font-weight:700}
.ws-cls-upload-tip{font-size:12px;color:var(--muted,#8a8f98);margin-top:6px}
.ws-cls-filebar{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.ws-cls-filebar progress{flex:1;height:8px;min-width:120px}
.ws-cls-quickstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.ws-cls-quickstat{border:1px solid var(--line,rgba(0,0,0,.09));border-radius:12px;padding:10px;cursor:pointer;text-align:center;background:var(--card,#fff);transition:border-color .15s}
.ws-cls-quickstat:hover{border-color:var(--accent,#1f6e5c)}
.ws-cls-quickstat b{display:block;font-size:19px;font-variant-numeric:tabular-nums}
.ws-cls-quickstat b.hot{color:#b43c3c}
.ws-cls-quickstat span{font-size:11px;color:var(--muted,#8a8f98)}
.ws-cls-unitrow{display:flex;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid var(--line,rgba(0,0,0,.07))}
.ws-cls-unitrow:last-child{border-bottom:none}
.ws-cls-unitrow b{flex:1;font-size:13.5px}
.ws-cls-dictate{font-size:13px}
.ws-cls-dictate ol{margin:8px 0 0 18px;padding:0;columns:2;column-gap:24px}
.ws-cls-dictate li{margin-bottom:6px;break-inside:avoid}
@media (max-width:560px){.ws-cls-typegrid{grid-template-columns:1fr 1fr 1fr}.ws-cls-typegrid button .tg-ic{font-size:17px}.ws-cls-progress-card .pg-grid{grid-template-columns:repeat(2,1fr)}.ws-cls-dictate ol{columns:1}}
@media print{body *{visibility:hidden}#wsClsPrintArea,#wsClsPrintArea *{visibility:visible}#wsClsPrintArea{position:absolute;left:0;top:0;width:100%}}
/* ===== V5.8.2 老师快捷入口：新老师一眼看懂「在哪布置作业/设长期背词/批改/看成绩」 ===== */
.ws-cls-quickact{margin-top:12px}
.ws-cls-quickact-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.ws-cls-quickact-head b{font-size:15px}
.ws-cls-quickact-head .qa-dismiss{font-size:12px;color:var(--muted,#8a8f98);background:none;border:none;cursor:pointer;padding:4px 6px}
.ws-cls-qa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ws-cls-qa-btn{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px 12px;border-radius:14px;border:1.5px solid var(--line,rgba(0,0,0,.1));background:var(--card,#fff);cursor:pointer;color:inherit;transition:border-color .15s,transform .1s}
.ws-cls-qa-btn:hover{border-color:var(--accent,#1f6e5c);transform:translateY(-1px)}
.ws-cls-qa-btn .qa-ic{font-size:24px;line-height:1}
.ws-cls-qa-btn .qa-t{font-size:14px;font-weight:800}
.ws-cls-qa-btn .qa-s{font-size:11.5px;line-height:1.45;color:var(--muted,#8a8f98)}
.ws-cls-qa-btn .qa-badge{align-self:flex-start;margin-top:2px;font-size:11px;font-weight:800;color:#fff;background:#b54832;border-radius:999px;padding:1px 8px}
.ws-cls-qa-btn.primary{border-color:var(--accent,#1f6e5c);box-shadow:0 0 0 2px rgba(31,110,92,.1)}
.ws-cls-twokinds{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.ws-cls-twokinds .tk{border:1px solid var(--line,rgba(0,0,0,.08));border-radius:12px;padding:12px}
.ws-cls-twokinds .tk b{display:block;font-size:13.5px;margin-bottom:4px}
.ws-cls-twokinds .tk p{margin:0;font-size:12px;line-height:1.6;color:var(--muted,#8a8f98)}
@media (max-width:640px){.ws-cls-qa-grid{grid-template-columns:1fr 1fr}.ws-cls-twokinds{grid-template-columns:1fr}}
/* ===== V5.9 班级信息/名片/听写/打卡/答疑/报告/年级：全部走 token，明暗主题通吃 ===== */
.ws-cls-teacherbar{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:14px;padding:10px 12px}
.ws-cls-teacherbar .tb-ava{flex:0 0 40px;height:40px;font-size:16px}
.ws-cls-teacherbar .tb-main{flex:1;min-width:0}
.ws-cls-teacherbar .tb-main b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-cls-teacherbar .tb-motto{display:block;font-style:italic;font-size:12px;color:var(--ink-soft,#777);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.ws-cls-teacherbar .tb-link{flex:none;font-size:12.5px;white-space:nowrap}
.ws-cls-ava64{flex:0 0 64px;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;background:var(--accent-soft,rgba(31,110,92,.12));color:var(--accent,#1f6e5c)}
.ws-cls-namecard{display:flex;gap:14px;align-items:flex-start}
.ws-cls-namecard .nc-main{flex:1;min-width:0}
.ws-cls-motto{font-style:italic;color:var(--ink-soft,#777)}
.ws-cls-inforow{display:flex;gap:10px;padding:9px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:13.5px}
.ws-cls-inforow:last-child{border-bottom:0}
.ws-cls-inforow .ir-k{flex:0 0 68px;color:var(--ink-soft,#777);font-size:12.5px;font-weight:700;padding-top:1px}
.ws-cls-inforow .ir-v{flex:1;min-width:0;white-space:pre-wrap;line-height:1.6}
.ws-tc-preview{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
/* 答疑折叠区 */
details.ws-cls-qa{margin-top:12px;border-top:1px dashed color-mix(in srgb,var(--line) 70%,transparent);padding-top:8px}
details.ws-cls-qa summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--accent,#1f6e5c);list-style:none;user-select:none;padding:2px 0}
details.ws-cls-qa summary::-webkit-details-marker{display:none}
details.ws-cls-qa summary .qa-n{font-weight:700;opacity:.8}
.ws-cls-qamsg{display:flex;flex-direction:column;gap:2px;padding:8px 10px;margin-top:8px;border-radius:12px;background:var(--paper);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);max-width:92%}
.ws-cls-qamsg.mine{margin-left:auto;background:var(--accent-soft,rgba(31,110,92,.08));border-color:color-mix(in srgb,var(--accent,#1f6e5c) 30%,var(--line))}
.ws-cls-qamsg .qm-head{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-soft,#777);font-weight:700}
.ws-cls-qamsg .qm-head em{font-style:normal;font-weight:400;margin-left:auto;font-size:10.5px}
.ws-cls-qamsg .qm-teacher{background:var(--accent,#1f6e5c);color:#fff;border-radius:6px;padding:1px 6px;font-size:10.5px;font-weight:800}
.ws-cls-qamsg .qm-me{border:1px solid var(--line);border-radius:6px;padding:0 6px;font-size:10.5px;color:var(--ink-soft,#777)}
.ws-cls-qamsg .qm-text{font-size:13.5px;line-height:1.55;white-space:pre-wrap;color:var(--ink)}
.ws-cls-qa .qa-input{display:flex;gap:8px;margin-top:10px}
.ws-cls-qa .qa-input input{flex:1;min-width:0}
/* 打卡进度点 */
.ws-ck-dots{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 2px}
.ws-ck-dots i{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--line);background:transparent}
.ws-ck-dots i.done{background:var(--accent,#1f6e5c);border-color:var(--accent,#1f6e5c)}
/* 自动听写 */
.ws-dict-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.ws-dict-row:last-child{border-bottom:0}
.ws-dict-row .dr-play{flex:0 0 auto;min-height:40px;white-space:nowrap}
.ws-dict-row .dr-main{flex:1;min-width:0}
.ws-dict-wrong{color:#b43c3c;font-weight:700}
[data-theme*="dark"] .ws-dict-wrong{color:#ff9d9d}
.ws-dict-score{text-align:center;font-size:42px;font-weight:900;color:var(--accent,#1f6e5c);margin:14px 0 4px;line-height:1}
/* 家长周报 */
.ws-wk-text{width:100%;box-sizing:border-box;min-height:220px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:13px;line-height:1.7;resize:vertical}
/* 年级 */
.ws-gr-code{font-weight:900;letter-spacing:2px;color:var(--accent,#1f6e5c);font-size:14px;white-space:nowrap}
.ws-gr-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:8px;background:var(--paper)}
details.ws-cls-fold{margin-top:12px;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
details.ws-cls-fold summary{cursor:pointer;font-size:13.5px;font-weight:800;color:var(--ink);user-select:none}
/* ===== V7.4.5 班级页两级导航 + 总览整理（release-packages/v745-class-nav/design/FINAL-SPEC.md §5–§8）=====
   类名避开 ui-polish 的子串选择器（nav/tab/menu/bottom/badge/pill/tag/icon/title/card/panel/count/desc/hint/primary…；旧类 .ws-cls-tab/.ws-cls-tabs/.tab-n 例外）；
   不用 <nav> 元素（index.html 有多处裸 nav{} 规则）；颜色只用主题令牌；新版皮的令牌映射在 22 号，旧版像素在 26 号。
   DOM：.ws-cls-gbar（<992 吸顶分组栏；≥992 隐藏）→ .ws-cls-route（<992 当前组的子页行；≥992 两级侧栏）→ #wsClsTabBody */
#wsClassPage{
  --cls-bg:var(--paper);--cls-track:var(--paper-2,var(--paper));--cls-face:var(--card);--cls-soft:var(--accent-soft);--cls-line:var(--line);
  --cls-ink:color-mix(in srgb,var(--accent) 45%,var(--ink));--cls-mute:color-mix(in srgb,var(--ink-soft,var(--ink)) 75%,var(--ink));--cls-hot:color-mix(in srgb,var(--rose) 55%,var(--ink));
  --cls-r:999px;--cls-r-row:10px;--cls-r-panel:16px;
  --cls-gl:max(16px,env(safe-area-inset-left,0px));--cls-gr:max(16px,env(safe-area-inset-right,0px));
}
#wsClassPage .ws-cls-body{padding-left:var(--cls-gl);padding-right:var(--cls-gr)}
#wsClassPage .ws-cls-col.has-rail{gap:12px}
#wsClassPage #wsClsTabBody>:first-child{margin-top:0!important}
/* 分组栏（<992 吸顶 57px：6+44+6+1） */
#wsClassPage .ws-cls-gbar{position:sticky;top:-16px;z-index:5;margin:-16px calc(-1*var(--cls-gr)) 0 calc(-1*var(--cls-gl));padding:6px var(--cls-gr) 6px var(--cls-gl);background:var(--cls-bg);border-bottom:1px solid var(--cls-line)} /* top:-16px：吸顶矩形按滚动容器 .ws-cls-body 的内边距（16）内缩，-16 才贴着头部底边 */
#wsClassPage .ws-cls-gtrack{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;padding:2px;border-radius:calc(var(--cls-r) + 2px);background:var(--cls-track)}
#wsClassPage .ws-cls-gtrack .ws-cls-g{position:relative;min-width:0;height:40px;min-height:40px;margin:0;padding:0 4px;border:0;border-radius:var(--cls-r);background:transparent;box-shadow:none;color:var(--cls-mute);appearance:none;-webkit-appearance:none;
  font:600 14px/1 var(--cjk,inherit);display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .16s,color .16s}
#wsClassPage .ws-cls-gtrack .ws-cls-g .gl{min-width:0;overflow:hidden;text-overflow:ellipsis}
#wsClassPage .ws-cls-gtrack .ws-cls-gi{display:none}
#wsClassPage .ws-cls-gtrack .ws-cls-g[aria-selected="true"]{background:var(--cls-soft);color:var(--cls-ink);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
[data-theme="cute-pink"] #wsClassPage .ws-cls-gtrack .ws-cls-g[aria-selected="true"]{box-shadow:inset 0 0 0 1.5px var(--accent)} /* 猫卷的 accent-soft 和 paper-2 几乎同色，选中段只剩描边能看出来：描边用足色 */
@media (hover:hover){#wsClassPage .ws-cls-gtrack .ws-cls-g[aria-selected="false"]:hover{color:var(--ink)}}
/* 子页行 / 侧栏共用 */
#wsClassPage .ws-cls-sec-h{display:none}
#wsClassPage .ws-cls-gi{width:18px;height:18px;flex:none}
/* 角标 + 读屏 */
#wsClassPage .tab-n{display:inline-grid;place-items:center;flex:none;min-width:18px;height:18px;margin:0;padding:0 5px;box-sizing:border-box;border:0;border-radius:var(--cls-r);font:700 12px/1 var(--cjk,inherit);font-variant-numeric:tabular-nums;opacity:1}
#wsClassPage .tab-n.is-act{background:var(--rose);color:var(--on-rose,var(--paper))}
#wsClassPage .tab-n.is-inv{background:transparent;color:var(--cls-mute);box-shadow:inset 0 0 0 1px var(--cls-line)}
#wsClassPage :is(.ws-cls-g,.ws-cls-tab)[aria-selected="true"] .tab-n.is-inv{color:inherit;box-shadow:inset 0 0 0 1px currentColor}
#wsClassPage .ws-cls-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#wsClassPage :is(.ws-cls-g,.ws-cls-tab,.ws-cls-qa-btn,.ws-cls-quickstat,.ws-cls-guide>summary):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:991px){
  #wsClassPage .ws-cls-route{margin-top:-8px}
  #wsClassPage .ws-cls-route[data-sub="0"]{display:none}
  #wsClassPage .ws-cls-route .ws-cls-sec{display:none}
  #wsClassPage .ws-cls-route .ws-cls-sec.on{display:block}
  #wsClassPage .ws-cls-route .ws-cls-tabs{display:flex;gap:12px;padding:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--cls-line)}
  #wsClassPage .ws-cls-route .ws-cls-tabs::-webkit-scrollbar{display:none}
  #wsClassPage .ws-cls-route .ws-cls-tab{flex:none;position:relative;height:40px;min-height:40px;margin:0;padding:0 6px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--cls-mute);appearance:none;-webkit-appearance:none;
    font:500 14px/1 var(--cjk,inherit);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent} /* 左右 6px：两字叶子也有 40px 宽的点击面 */
  #wsClassPage .ws-cls-route .ws-cls-tab:first-child{margin-left:-6px} /* 文字仍和下面卡片左缘对齐 */
  #wsClassPage .ws-cls-route .ws-cls-tab .ws-cls-gi{display:none}
  #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]{color:var(--cls-ink);font-weight:700}
  #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
}
@media (max-width:359px){
  #wsClassPage .ws-cls-gtrack .tab-n.is-act{min-width:8px;width:8px;height:8px;padding:0;font-size:0}
  #wsClassPage .ws-cls-gtrack .tab-n.is-inv{display:none}
}
@media (min-width:600px) and (max-width:991px){
  #wsClassPage .ws-cls-gbar{margin:-16px 0 0;padding:8px 0;border-bottom:0}
  #wsClassPage .ws-cls-gtrack{grid-auto-columns:max-content;width:max-content;max-width:100%}
  #wsClassPage .ws-cls-gtrack .ws-cls-g{padding:0 16px;gap:6px}
  #wsClassPage .ws-cls-gtrack .ws-cls-gi{display:block}
}
/* 吸顶后 scrollIntoView(block:start) 的目标（布置器 #wsAsComposer、设置页等）别钻到分组栏底下：正文里任何元素滚进视口时都给它留一条分组栏的高度 */
@media (max-width:991px){#wsClassPage #wsClsTabBody :is(*){scroll-margin-top:64px}}
@media (max-width:991px) and (max-height:500px){#wsClassPage .ws-cls-gbar{position:relative;top:auto}#wsClassPage #wsClsTabBody :is(*){scroll-margin-top:0}} /* 横屏不吸顶：top 必须一起归零，否则上面的 -16px 变成相对偏移，整条栏往上钻进头部被裁掉 8px */
/* 桌面：分组的两级侧栏，全部展开（窗口矮了侧栏自己滚） */
@media (min-width:992px){
  #wsClassPage .ws-cls-col.has-rail{max-width:1060px;display:grid;grid-template-columns:208px minmax(0,1fr);gap:20px;align-items:start}
  #wsClassPage .ws-cls-col.has-rail>.ws-cls-gbar{display:none}
  #wsClassPage .ws-cls-col.has-rail>.ws-cls-route{grid-column:1;position:sticky;top:0;max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:8px; /* top:0：吸顶矩形已按 .ws-cls-body 的 16px 内边距内缩，再加 16 侧栏就比正文低 16px、长短页之间还会跳 */
    background:var(--cls-face);border:1px solid var(--cls-line);border-radius:var(--cls-r-panel)}
  #wsClassPage .ws-cls-col.has-rail>#wsClsTabBody{grid-column:2;min-width:0}
  #wsClassPage .ws-cls-route .ws-cls-sec+.ws-cls-sec{margin-top:6px}
  #wsClassPage .ws-cls-route .ws-cls-sec-h{display:flex;align-items:center;gap:8px;height:26px;padding:0 12px;font:600 12px/1 var(--cjk,inherit);letter-spacing:.04em;color:var(--cls-mute)}
  #wsClassPage .ws-cls-route .ws-cls-sec-h .ws-cls-gi,#wsClassPage .ws-cls-route .ws-cls-tab .ws-cls-gi{width:16px;height:16px}
  #wsClassPage .ws-cls-route .ws-cls-tabs{display:flex;flex-direction:column;gap:2px}
  #wsClassPage .ws-cls-route .ws-cls-tab{position:relative;width:100%;height:40px;min-height:40px;margin:0;padding:0 10px 0 36px;border:0;border-radius:var(--cls-r-row);background:transparent;box-shadow:none;color:var(--ink);appearance:none;-webkit-appearance:none;
    font:500 14px/1 var(--cjk,inherit);display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}
  #wsClassPage .ws-cls-route .ws-cls-sec.is-one .ws-cls-tab{padding-left:12px}
  #wsClassPage .ws-cls-route .ws-cls-tab .tab-n{margin-left:auto}
  #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]{background:var(--cls-soft);color:var(--cls-ink);font-weight:700}
  #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]::before{content:"";position:absolute;left:4px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent)}
  #wsClassPage .ws-cls-route .ws-cls-tab[data-t="exit"]{margin-top:7px}
  #wsClassPage .ws-cls-route .ws-cls-tab[data-t="exit"]::after{content:"";position:absolute;left:12px;right:12px;top:-5px;height:1px;background:var(--cls-line)}
}
@media (min-width:992px) and (hover:hover){#wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="false"]:hover{background:var(--cls-track)}}
/* 老师总览：完成率 → 待处理 3 格（按钮）→ 常用操作一行 4 块 → 折叠说明 → 班级信息 → 概况 → 分层 / 分布 / 趋势 → 背词计划 → 近期任务 */
#wsClassPage .ws-cls-ov{display:flex;flex-direction:column;gap:12px}
#wsClassPage .ws-cls-ov>*{margin-top:0!important;margin-bottom:0!important}
#wsClassPage .ws-cls-stats{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}
#wsClassPage .ws-cls-stat{display:flex;flex-direction:column;justify-content:center;padding:12px 6px} /* 3 格一行后每格只有 ~100px：左右留 6 就能让「老师布置的新词」一行放下；上下居中，免得一格两行一格一行时参差 */
#wsClassPage .ws-cls-stat span{display:block;text-wrap:balance} /* 真要折行（总量上限（含复习）/ 320 宽）也两行均分，不会孤零零掉一个字 */
#wsClassPage .ws-cls-quickstats{gap:8px}
#wsClassPage .ws-cls-quickstat{position:relative;width:100%;min-height:64px;margin:0;padding:10px 6px;border:1px solid var(--cls-line);border-radius:var(--cls-r-row);background:var(--cls-face);color:var(--ink);appearance:none;-webkit-appearance:none;
  font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#wsClassPage .ws-cls-quickstat::after{content:"›";position:absolute;top:6px;right:8px;font-size:14px;line-height:1;color:var(--cls-mute)}
#wsClassPage .ws-cls-quickstat b{display:block;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}
#wsClassPage .ws-cls-quickstat b.hot{color:var(--cls-hot)}
#wsClassPage .ws-cls-quickstat span{font-size:12px;color:var(--cls-mute)}
#wsClassPage .ws-cls-quickact{margin:0}
#wsClassPage .ws-cls-qa-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#wsClassPage .ws-cls-qa-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;margin:0;padding:8px 4px;border:1px solid var(--cls-line);appearance:none;-webkit-appearance:none;
  border-radius:var(--cls-r-row);background:var(--cls-face);box-shadow:none;color:var(--ink);font:600 13px/1.2 var(--cjk,inherit);text-align:center;cursor:pointer;transform:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#wsClassPage .ws-cls-qa-btn .qa-ic{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--cls-r-row);background:var(--cls-soft);color:var(--cls-ink);font-size:0;line-height:0}
#wsClassPage .ws-cls-qa-btn .qa-svg{width:22px;height:22px}
#wsClassPage .ws-cls-qa-btn .qa-ic .tab-n{position:absolute;top:-6px;right:-10px;box-shadow:0 0 0 2px var(--cls-face)}
#wsClassPage .ws-cls-qa-btn .qa-t{white-space:nowrap;font-size:13px;font-weight:600}
#wsClassPage .ws-cls-qa-btn.is-key .qa-ic{box-shadow:inset 0 0 0 1.5px var(--accent)}
@media (hover:hover){#wsClassPage :is(.ws-cls-qa-btn,.ws-cls-quickstat):hover{border-color:var(--accent);transform:none}}
@media (min-width:600px){
  #wsClassPage .ws-cls-qa-btn{flex-direction:row;justify-content:flex-start;min-height:56px;padding:8px 12px;gap:10px;text-align:left}
  #wsClassPage .ws-cls-qa-btn .qa-t{font-size:14px}
  #wsClassPage .ws-cls-qa-btn .qa-ic{width:36px;height:36px}
}
#wsClassPage .ws-cls-guide{border:1px solid var(--cls-line);border-radius:var(--cls-r-row);background:var(--cls-face)}
#wsClassPage .ws-cls-guide>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;cursor:pointer;font:600 14px/1.3 var(--cjk,inherit);color:var(--ink);user-select:none;-webkit-tap-highlight-color:transparent}
#wsClassPage .ws-cls-guide>summary::-webkit-details-marker{display:none}
#wsClassPage .ws-cls-guide>summary::marker{content:""}
#wsClassPage .ws-cls-guide .gd-q{flex:1;min-width:0}
#wsClassPage .ws-cls-guide .gd-svg{width:20px;height:20px;flex:none;color:var(--cls-ink)}
#wsClassPage .ws-cls-guide .gd-chev{width:16px;height:16px;flex:none;margin-left:auto;color:var(--cls-mute);transform:rotate(90deg);transition:transform .16s}
#wsClassPage .ws-cls-guide[open] .gd-chev{transform:rotate(-90deg)}
#wsClassPage .ws-cls-guide .gd-body{display:flex;flex-direction:column;gap:10px;padding:0 12px 12px}
#wsClassPage .ws-cls-guide .gd-row{display:flex;gap:10px;align-items:flex-start}
#wsClassPage .ws-cls-guide .gd-row .gd-svg{margin-top:2px}
#wsClassPage .ws-cls-guide .gd-row p{margin:0;font-size:13px;line-height:1.6;color:var(--cls-mute)}
#wsClassPage .ws-cls-guide .gd-row b{display:block;margin-bottom:2px;font-size:13.5px;color:var(--ink)}
#wsClassPage .ws-cls-guide #wsO_guideX{align-self:flex-start}
#wsClassPage .ws-cls-kpis .ws-cls-stat{padding:8px 4px;border:0;border-radius:var(--cls-r-row);background:var(--cls-track)}
#wsClassPage .ws-cls-kpis .ws-cls-stat b{font-size:18px}
#wsClassPage .ws-cls-kpis .ws-cls-stat span{font-size:12px;color:var(--cls-mute)}
@media (prefers-reduced-motion:reduce){
  #wsClassPage :is(.ws-cls-gbar,.ws-cls-route,.ws-cls-guide,.ws-cls-quickact,.ws-cls-quickstats),
  #wsClassPage :is(.ws-cls-gbar,.ws-cls-route,.ws-cls-guide,.ws-cls-quickact,.ws-cls-quickstats) *{transition:none!important;animation:none!important}
}
