/* =========================================================
   Lumina Light Theme (Global Tokens + Layout + Components)
   - Replace your previous CSS with this version
   - Keeps: topbar / lang / nav pills / home grid / hero / dopamine
   ========================================================= */
/* LUMINA_BASECSS_MARK_0303 */
/* ===== Lumina Brand Tokens (Light) ===== */
:root{
  --bg:#ffffff;
  --soft:#f8fafc;
  --card:#ffffff;

  --text:#0f172a;
  --muted:#475569;
  --line:#e2e8f0;

  /* Brand (keep readable, not too dark) */
  --brand:#2563eb;
  --brand-2:#1d4ed8;

  --brand-soft: rgba(37,99,235,.10);
  --brand-soft-2: rgba(37,99,235,.16);

  /* =====================================================
     Hero Gradient (PASTEL / readable)
     - light sky -> mint -> peach
     ===================================================== */
  --hero-start: #93C5FD;  /* light sky blue */
  --hero-mid:   #A7F3D0;  /* mint green */
  --hero-end:   #FDBA74;  /* soft peach/orange */

  /* ===== Premium Tokens ===== */
  --glass: rgba(255,255,255,.72);
  --glass-2: rgba(255,255,255,.88);
  --glass-line: rgba(255,255,255,.25);

  --shadow-xs: 0 2px 10px rgba(2,6,23,.06);
  --shadow-sm: 0 6px 18px rgba(2,6,23,.08);
  --shadow: 0 12px 34px rgba(2,6,23,.10);
  --shadow-md: 0 18px 52px rgba(2,6,23,.12);

  --focus: 0 0 0 4px rgba(59,130,246,.18);

  /* Buttons (lighter palette, still readable) */
  --btn-a: #38BDF8; /* sky */
  --btn-b: #34D399; /* mint/emerald */
  --btn-c: #FDBA74; /* peach */

  /* Radius & layout */
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 26px;
  --max: 1120px;

  /* Motion */
  --ease: cubic-bezier(.2,.8,.2,1);
  --dur: .18s;

  /* ---- Backward compatibility (old tokens) ---- */
  --accent: var(--brand);          /* old name */
}

/* ===== Reset ===== */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  background: var(--soft);
  color: var(--text);
}

/* ===== Global polish ===== */
a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible{
  outline:none;
  box-shadow: var(--focus);
  border-radius: 10px;
}

/* ===== Layout ===== */
.wrap{ max-width: var(--max); margin:0 auto; padding:18px 16px; }
.page-wrap{ padding:0; margin-top:14px; }

/* ===== Card (global) ===== */
.card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 18px;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.card:hover{
  box-shadow: var(--shadow);
}

/* =========================================================
   Topbar
   ========================================================= */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.topbar .brand a{
  font-weight:900;
  font-size:22px;
  text-decoration:none;
  color: var(--brand);
  letter-spacing: -0.2px;
}
.topbar .brand small{
  display:block;
  margin-top:4px;
  color: var(--muted);
}

/* =========================================================
   Language Buttons
   ========================================================= */
.lang{ display:flex; gap:6px; }
.lang button{
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-weight:900;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.lang button:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(2,6,23,.06);
}
.lang button.active{
  border-color: rgba(37,99,235,.30);
  background: rgba(37,99,235,.08);
  color: var(--brand);
}

/* =========================================================
   Nav Pills
   ========================================================= */
.site-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding-top:10px;
  border-top:1px solid rgba(2,6,23,.06);
}

.site-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border-radius:999px;
  text-decoration:none;
  background: rgba(2,6,23,.04);
  border: 1px solid rgba(2,6,23,.06);
  color: var(--text);
  font-weight:900;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.site-nav a:hover{
  color: var(--brand);
  background: rgba(37,99,235,.09);
  border-color: rgba(37,99,235,.20);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(2,6,23,.06);
}
.site-nav a.active{
  color: var(--brand);
  background: rgba(37,99,235,.13);
  border-color: rgba(37,99,235,.26);
}

/* =========================================================
   Home Grid
   ========================================================= */
.home-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:14px;
}

/* Base Home Card */
.home-card{
  position:relative;
  overflow:hidden;
  text-align:left;
  border:1px solid var(--line);
  background:#fff;
  border-radius:16px;
  padding:16px;
  cursor:pointer;
  font-weight:900;
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.home-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow);
  border-color: rgba(2,6,23,.10);
}

/* Dopamine color bar (page.home.js sets style="--dop:#xxxx") */
.home-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:7px;
  background: var(--dop, rgba(56,189,248,.70));
}

/* Hover tint (safe fallback if color-mix not supported) */
@supports (background: color-mix(in srgb, #000 10%, #fff)){
  .home-card:hover{
    background: color-mix(in srgb, var(--dop, rgba(56,189,248,.22)) 12%, #ffffff 88%);
  }
}
.home-card span{ vertical-align:middle; }

/* =========================================================
   Home Hero / Badges (used by page.home.js)
   ========================================================= */
.hero{
  position: relative;
  overflow: hidden;
  padding: 34px;
  border-radius: calc(var(--radius-lg) + 6px);

  /* default: clean white */
  background: #fff;
  box-shadow: var(--shadow-md);

  transition: transform .25s ease, box-shadow .35s ease;
}

/* ✅ 已移除 hover 渐变遮字层（.hero::before / ::after），避免覆盖文字 */

.hero:hover{
  transform: translateY(-2px);
  box-shadow: 0 30px 60px rgba(0,0,0,.08);
}

/* Hero cards: glass (only inside hero) */
.hero .card{
  background: var(--glass-2);
  border: 1px solid rgba(255,255,255,.40);
  box-shadow: var(--shadow-xs);
  backdrop-filter: blur(10px);
}

/* Hero typography polish (only inside hero) */
.hero .title{
  margin:0;
  font-size:44px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:-0.8px;
  color: rgba(15,23,42,.92);
}
.hero .desc{
  margin:10px 0 0;
  color: rgba(15,23,42,.72);
  line-height:1.55;
  font-weight:650;
  max-width: 56ch;
}

/* Badges */
.badges{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.70);
  font-weight:900;
  color: rgba(15,23,42,.70);
  backdrop-filter: blur(8px);
}
/* =========================================================
   Buttons (safe: mild upgrade, won't break JS)
   - targets common button look + hero emphasis
   ========================================================= */
button{
  font-family:inherit;
}

.hero button{
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.70);
  color: rgba(15,23,42,.85);
  border-radius: 14px;
  padding: 10px 14px;
  font-weight: 900;
  cursor: pointer;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease), background var(--dur) var(--ease);
}
.hero button:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(2,6,23,.10);
}

/* If your primary CTA already has a class like .primary, it will look premium */
.hero button.primary, .hero .btn.primary{
  border: 0;
  color:#fff;
  background: linear-gradient(135deg, var(--btn-a), var(--btn-b));
  box-shadow: 0 16px 34px rgba(56,189,248,.20);
}
.hero button.primary:hover, .hero .btn.primary:hover{
  filter: brightness(1.02);
}

/* =========================================================
   Dopamine NAV (optional class: .site-nav.dopamine)
   ========================================================= */
.site-nav.dopamine a{
  --navc: var(--brand);
  background: rgba(2,6,23,.04);
  border: 1px solid rgba(2,6,23,.06);
}

.site-nav.dopamine a:hover{
  color: var(--navc);
  border-color: rgba(37,99,235,.20);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
  background: rgba(37,99,235,.09);
}

.site-nav.dopamine a.active{
  color: var(--navc);
  background: rgba(37,99,235,.13);
  border-color: rgba(37,99,235,.26);
}

/* =========================================================
   FINAL NAV LAYOUT FIX (kept, but tokenized)
   ========================================================= */
#siteNav .topbar{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  padding:16px 6px 10px !important;
}

#siteNav .brand{
  font-size:22px;
  font-weight:900;
}

#siteNav .lang{
  display:flex;
  gap:6px;
}

#siteNav .site-nav{
  display:flex !important;
  flex-wrap:wrap;
  gap:12px !important;
  padding-top:10px;
  border-top:1px solid rgba(2,6,23,.06);
}

#siteNav .site-nav a{
  padding:8px 14px !important;
  border-radius:999px;
  background: rgba(2,6,23,.04);
  border: 1px solid rgba(2,6,23,.06);
  font-weight:900;
}

#siteNav .site-nav a:hover{
  background: rgba(37,99,235,.09);
  color: var(--brand);
  border-color: rgba(37,99,235,.20);
}

/* Optional: brand glow emphasis for logo hover */
#siteNav .brand a:hover{
  filter: drop-shadow(0 10px 18px rgba(37,99,235,.14));
}
/* =========================================================
   FORCE OVERRIDE (Home Hero)
   - Put this at the VERY END of base.css
   - Ensures it wins over injected styles
   ========================================================= */

.lumina-home .hero{
  position: relative !important;
  overflow: hidden !important;
  border-radius: calc(var(--radius-lg) + 6px) !important;

  /* default: pure white */
  background: #fff !important;
  background-image: none !important;

  box-shadow: var(--shadow-md) !important;
  transition: transform .25s ease, box-shadow .35s ease !important;
}

/* ✅ 已移除 lumina-home hero hover 渐变遮字层 */

.lumina-home .hero:hover{
  transform: translateY(-2px) !important;
  box-shadow: 0 30px 60px rgba(0,0,0,.08) !important;
}

/* =========================================================
   Lumina Kids Character Bubbles (MVP)
   - 仅作为可选层，不影响旧对话渲染
   ========================================================= */
.lumina-char-bubble{
  background:#fff7e6;
  border-radius:12px;
  padding:12px;
  margin:8px 0;
  max-width:320px;
}

.lumina-char-head{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  margin-bottom:6px;
}

.lumina-char-avatar{
  font-size:18px;
}

.lumina-char-name{
  font-size:13px;
  color:#444;
}

.lumina-char-text{
  font-size:16px;
}

/* =========================================================
   Teacher workspace hub (materials / courses / listings)
   ========================================================= */
.teacher-workspace-layers{
  margin: 12px 0 0;
  padding-left: 1.25rem;
  color: rgba(71, 85, 105, 0.95);
  font-size: 14px;
  line-height: 1.55;
  max-width: 62ch;
}
.teacher-workspace-layers li{
  margin: 6px 0;
}
.teacher-tile-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.teacher-hub-badge{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #4338ca;
  background: #eef2ff;
  border: 1px solid rgba(67, 56, 202, 0.2);
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
a.teacher-entry-cta{
  display: inline-block;
  margin-top: 12px;
  padding: 9px 16px;
  border-radius: 12px;
  background: #0f172a;
  color: #f8fafc !important;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
a.teacher-entry-cta:hover{
  opacity: 0.92;
  transform: translateY(-1px);
}
.teacher-tile-scope{
  margin: 10px 0 0;
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.45;
}
a.teacher-back-link{
  font-size: 14px;
  font-weight: 650;
  color: #4338ca;
  text-decoration: none;
}
a.teacher-back-link:hover{
  text-decoration: underline;
}

/* =========================================================
   Teacher manage shells (#teacher-materials / #teacher-courses)
   ========================================================= */
.teacher-manage-page{
  padding-bottom: 40px;
}
.teacher-manage-back{
  margin: 0 0 12px;
}
.teacher-manage-header .title{
  margin-bottom: 6px;
}
.teacher-manage-tagline{
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(51, 65, 85, 0.95);
  max-width: 62ch;
}
.teacher-manage-toolbar{
  margin-top: 14px;
}
.teacher-manage-toolbar-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 20px;
}
.teacher-manage-cta{
  font-family: inherit;
  border-radius: 12px;
  padding: 10px 18px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: #0f172a;
  color: #f8fafc;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.teacher-manage-cta:not(:disabled):hover{
  opacity: 0.92;
  transform: translateY(-1px);
}
.teacher-manage-cta--disabled,
.teacher-manage-cta:disabled{
  opacity: 0.48;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
  background: rgba(15, 23, 42, 0.35);
  border-color: rgba(15, 23, 42, 0.08);
  color: rgba(248, 250, 252, 0.85);
}
.teacher-manage-toolbar-hint{
  margin: 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
  flex: 1 1 220px;
  min-width: 180px;
}
.teacher-manage-list{
  margin-top: 14px;
}
.teacher-manage-list-title{
  margin: 0 0 14px;
  font-size: 1.05rem;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.9);
}
.teacher-manage-table-scroll{
  overflow-x: auto;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  background: rgba(248, 250, 252, 0.65);
}
.teacher-manage-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.teacher-manage-table thead th{
  text-align: left;
  padding: 10px 12px;
  background: rgba(241, 245, 249, 0.95);
  color: rgba(30, 41, 59, 0.88);
  font-weight: 800;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  white-space: nowrap;
}
.teacher-manage-col-actions{
  text-align: right;
  vertical-align: middle;
}
.teacher-material-row-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  max-width: 240px;
  margin-left: auto;
}
.teacher-material-row-actions__btn{
  margin: 0;
  padding: 4px 8px;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
  border-radius: 6px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: rgba(30, 41, 59, 0.92);
  cursor: pointer;
}
.teacher-material-row-actions__btn:hover{
  background: rgba(241, 245, 249, 0.95);
}
.teacher-material-row-actions__btn--danger{
  border-color: rgba(220, 38, 38, 0.35);
  color: #b91c1c;
}
.teacher-material-row-actions__btn:disabled,
.teacher-material-row-actions__btn[aria-disabled="true"]{
  opacity: 0.48;
  cursor: not-allowed;
  pointer-events: none;
}
.teacher-manage-empty-row td{
  padding: 0;
  vertical-align: top;
  border-bottom: none;
}
.teacher-manage-empty{
  padding: 28px 20px 32px;
  text-align: left;
}
.teacher-manage-empty-title{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.92);
}
.teacher-manage-empty-intro{
  margin: 0 0 10px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
}
.teacher-manage-empty-list{
  margin: 0;
  padding-left: 1.2rem;
  color: rgba(51, 65, 85, 0.95);
  line-height: 1.55;
  font-size: 14px;
}
.teacher-manage-empty-list li{
  margin: 6px 0;
}
.teacher-manage-relation{
  margin-top: 14px;
}
.teacher-manage-relation-title{
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.88);
}
.teacher-manage-relation-list{
  margin: 0;
  padding-left: 1.2rem;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(51, 65, 85, 0.95);
}
.teacher-manage-relation-list li{
  margin: 6px 0;
}

/* =========================================================
   Teacher workspace (#teacher) — round 2
   ========================================================= */
.teacher-page-kicker{
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.teacher-page-kicker--shell{
  margin-top: 4px;
}
.teacher-hero--compact .hero .title{
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.08;
}
.teacher-hero-lead{
  max-width: 52ch;
}
.teacher-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  margin-top: 16px;
}
.teacher-relation-flow{
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(67, 56, 202, 0.18);
  background: linear-gradient(180deg, #fafbff 0%, #f8fafc 100%);
  border-radius: 14px;
}
.teacher-relation-flow-title{
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 800;
  color: #4338ca;
  letter-spacing: 0.02em;
}
.teacher-relation-flow-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}
.teacher-relation-flow .teacher-path-strip{
  margin-top: 0;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
  box-shadow: none;
}
.teacher-subnav{
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
}
.teacher-subnav-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 8px;
}
.teacher-subnav-item{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 780;
  line-height: 1.3;
  border: 1px solid transparent;
  color: #475569;
  background: #f8fafc;
}
.teacher-subnav-item--current{
  color: #312e81;
  background: linear-gradient(180deg, #eef2ff 0%, #e0e7ff 100%);
  border-color: #a5b4fc;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
a.teacher-subnav-item--link{
  text-decoration: none;
  color: #334155;
  background: #fff;
  border-color: #e2e8f0;
  transition: background 0.12s ease, border-color 0.12s ease;
}
a.teacher-subnav-item--link:hover{
  background: #f1f5f9;
  border-color: #cbd5e1;
}
.teacher-center-page + .teacher-subnav{
  margin-top: 12px;
}
.teacher-relation-flow + .teacher-grid{
  margin-top: 14px;
}
.lts0-seed-sync-hint{
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  max-width: 52ch;
}
/* 工作台首页顶部：四步路径条（与下方内容留空） */
.teacher-workbench-path-strip-top{
  margin-bottom: 16px;
}
.teacher-workbench-path-strip-top .teacher-path-strip{
  margin-top: 0;
}
.teacher-path-strip{
  margin-top: 12px;
  padding: 12px 14px;
}
.teacher-path-strip-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 10px;
}
.teacher-path-strip-node{
  flex: 1 1 120px;
  min-width: 108px;
  text-align: center;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 780;
  line-height: 1.35;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #334155;
}
.teacher-path-strip-node--current{
  background: linear-gradient(180deg, #eef2ff 0%, #e0e7ff 100%);
  border-color: #a5b4fc;
  color: #312e81;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}
a.teacher-path-strip-node--link{
  text-decoration: none;
  color: #334155;
  background: #fff;
  transition: background 0.12s ease, border-color 0.12s ease;
}
a.teacher-path-strip-node--link:hover{
  background: #f1f5f9;
  border-color: #cbd5e1;
}
.teacher-path-strip-arrow{
  flex: 0 0 auto;
  color: #94a3b8;
  font-weight: 900;
  font-size: 14px;
}
.teacher-path-strip-parallel-sep{
  flex: 0 0 auto;
  color: #94a3b8;
  font-weight: 800;
  font-size: 13px;
  padding: 0 2px;
  user-select: none;
}
.teacher-guide-panel{
  margin-top: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(67, 56, 202, 0.14);
  background: linear-gradient(180deg, #fafbff 0%, #f8fafc 100%);
  border-radius: 14px;
}
.teacher-guide-panel-title{
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 900;
  color: rgba(30, 27, 75, 0.92);
}
.teacher-guide-panel-intro,
.teacher-guide-panel-note,
.teacher-guide-panel-scope{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.55;
  color: #475569;
  max-width: 70ch;
}
.teacher-guide-panel-note,
.teacher-guide-panel-scope{
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 232, 240, 0.95);
}
.teacher-guide-routes{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px 14px;
  margin-top: 4px;
}
.teacher-guide-route{
  padding: 12px 12px 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e2e8f0;
}
.teacher-guide-route-heading{
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 900;
  color: #4338ca;
  letter-spacing: 0.02em;
}
.teacher-guide-route-body{
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  min-height: 3.1em;
}
a.teacher-guide-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #0f172a;
  color: #f8fafc !important;
  transition: opacity 0.12s ease, transform 0.1s ease;
}
a.teacher-guide-cta:hover{
  opacity: 0.92;
  transform: translateY(-1px);
}
a.teacher-guide-cta--accent{
  background: #312e81;
  border-color: #3730a3;
  color: #eef2ff !important;
}
a.teacher-guide-cta--ghost{
  background: transparent;
  color: #334155 !important;
  border-color: #cbd5e1;
}
.teacher-guide-panel-foot{
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px dashed rgba(148, 163, 184, 0.55);
}
.lts0-page .teacher-path-strip{
  margin-top: 14px;
}
.lts0-page .teacher-guide-panel{
  margin-top: 14px;
}
.teacher-flow-step{
  flex: 1 1 140px;
  min-width: 120px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e2e8f0;
  text-align: center;
}
.teacher-flow-step-label{
  font-size: 13px;
  font-weight: 750;
  color: #334155;
  line-height: 1.35;
}
.teacher-flow-arrow{
  color: #94a3b8;
  font-weight: 900;
  flex: 0 0 auto;
}
.teacher-tile--primary{
  grid-column: 1 / -1;
  border: 2px solid #c7d2fe;
  box-shadow: 0 12px 32px rgba(79, 70, 229, 0.1);
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.teacher-tile--primary .teacher-tile-title{
  font-size: 1.2rem;
}
.teacher-classroom-form--primary{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
}
.teacher-tile-stage-kicker{
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4338ca;
}
.teacher-tile-workflow-note{
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
  max-width: 62ch;
}
.teacher-relation-flow-classroom{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
  max-width: 72ch;
}
.teacher-admin-workflow-note{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
  max-width: 68ch;
}
a.teacher-guide-cta--classroom{
  background: #f0fdf4;
  border-color: #86efac;
  color: #14532d !important;
}
a.teacher-guide-cta--classroom:hover{
  background: #dcfce7;
  border-color: #4ade80;
}
.lumina-classroom-page .classroom-topbar{
  margin-bottom: 14px;
}
.lumina-classroom-page .classroom-topbar-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 10px;
}
.lumina-classroom-page .classroom-back{
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
  cursor: pointer;
}
.lumina-classroom-page .classroom-back:hover{
  background: #f8fafc;
}
.lumina-classroom-page .classroom-back-secondary{
  font-size: 13px;
  font-weight: 650;
  color: #4338ca;
  text-decoration: none;
}
.lumina-classroom-page .classroom-back-secondary:hover{
  text-decoration: underline;
}
.lumina-classroom-page .classroom-teacher-ctx{
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  max-width: min(100%, 40rem);
}
.lumina-classroom-page .classroom-ctx-line1{
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.4;
}
.lumina-classroom-page .classroom-ctx-badge{
  display: inline-block;
  margin-right: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  color: #3730a3;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
}
.lumina-classroom-page .classroom-ctx-muted{
  color: #64748b;
  font-size: 12px;
}
.lumina-classroom-page .classroom-ctx-line2{
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: #334155;
  font-weight: 650;
}
.lumina-classroom-page .classroom-title{
  font-size: 1.35rem;
  font-weight: 850;
  color: #0f172a;
}
.lumina-classroom-page .classroom-subtitle{
  margin-top: 6px;
  font-size: 14px;
  color: #64748b;
  font-weight: 650;
}
.teacher-tile--muted{
  opacity: 0.96;
}
.teacher-tile--muted .teacher-tile-desc{
  color: #64748b;
}
.teacher-tile-title--inline{
  margin: 0;
}
a.teacher-hub-cta,
button.teacher-hub-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 10px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: inherit;
  transition: opacity 0.15s ease, transform 0.12s ease;
}
a.teacher-hub-cta:hover,
button.teacher-hub-cta:hover{
  opacity: 0.92;
  transform: translateY(-1px);
}
.teacher-hub-cta--primary{
  grid-column: 1 / -1;
  justify-self: start;
  background: #4f46e5;
  color: #fff !important;
  border-color: #4338ca;
}
.teacher-hub-cta--secondary{
  background: #0f172a;
  color: #f8fafc !important;
}
.teacher-hub-cta--accent{
  background: #312e81;
  color: #eef2ff !important;
  border-color: #3730a3;
}
.teacher-hub-cta--danger{
  background: #fff1f2;
  color: #9f1239 !important;
  border-color: #fecdd3;
}
.teacher-hub-cta--danger:hover{
  background: #ffe4e6;
}
.teacher-hub-cta--compact{
  padding: 8px 12px;
  font-size: 13px;
  border-radius: 10px;
}
.teacher-hub-cta--ghost{
  background: transparent !important;
  color: #475569 !important;
  border: 1px dashed #cbd5e1;
}
.teacher-hub-cta--ghost:hover{
  background: #f8fafc !important;
  color: #0f172a !important;
}
.teacher-hub-muted{
  font-size: 12px;
  color: #94a3b8;
}

/* =========================================================
   Teacher workbench A5: hub + unified surface
   ========================================================= */
.teacher-surface-hero{
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}
.teacher-surface-hero .teacher-page-kicker{
  margin: 0 0 6px;
}
.teacher-surface-hero h1.teacher-admin-title,
.teacher-surface-hero .teacher-hub-surface-title,
.teacher-surface-hero .teacher-asset-editor-title,
.teacher-surface-hero .teacher-listing-title{
  font-size: clamp(22px, 3.2vw, 28px);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.teacher-surface-hero.teacher-asset-editor-hero,
.teacher-surface-hero.teacher-admin-header{
  padding: 20px 22px 18px;
}
.teacher-surface-hero.teacher-listing-hero{
  padding: 20px 22px 24px;
}
.teacher-surface-action-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}
.teacher-surface-link{
  font-size: 13px;
  font-weight: 800;
  color: #1d4ed8;
  text-decoration: none;
}
.teacher-surface-link:hover{ text-decoration: underline; }
.teacher-surface-link--secondary{
  color: #475569;
  font-weight: 700;
}
.teacher-hub{
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.teacher-hub-surface-title{
  margin: 0 0 6px;
  color: #0f172a;
  font-size: clamp(1.4rem, 2.3vw, 1.7rem);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.teacher-hub-identity{
  margin: 0 0 6px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  font-size: 14px;
  color: #334155;
}
.teacher-hub-identity-k{
  font-weight: 800;
  color: #0f172a;
}
.teacher-hub-identity-v{ font-weight: 700; }
.teacher-hub-inline-link{
  font-size: 13px;
  font-weight: 800;
  color: #1d4ed8;
  text-decoration: none;
}
.teacher-hub-inline-link:hover{ text-decoration: underline; }
.teacher-hub-profile-chip{
  vertical-align: middle;
  margin: 0;
}
.teacher-hub-section-title{
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-hub-section-title--small{
  font-size: 1rem;
  margin: 0 0 6px;
}
.teacher-hub-recommended{
  padding: 16px 18px 18px;
  border: 1px solid rgba(79, 70, 229, 0.15);
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 100%);
}
.teacher-hub-recommended-line{
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.5;
  color: #1e1b4b;
  font-weight: 600;
}
.teacher-hub-recommended-cta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
}
.teacher-workspace-overview--hub .teacher-workspace-overview-disclosure--short{
  font-size: 12px;
  line-height: 1.4;
  color: #64748b;
  max-width: 64ch;
}
.teacher-workspace-overview--hub .teacher-workspace-chip--hub{
  font-size: 12px;
  padding: 4px 8px;
}
.teacher-relation-flow--tight{
  padding: 12px 16px 14px;
}
.teacher-relation-flow--tight .teacher-relation-flow-title{
  font-size: 0.9rem;
  font-weight: 800;
  margin: 0 0 4px;
  color: #475569;
}
.teacher-hub-workflow-panels{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}
.teacher-hub-wf-card{
  padding: 14px 16px 16px;
  min-height: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.teacher-hub-wf-h{
  margin: 0 0 6px;
  font-size: 1.02rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-hub-wf-p{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  min-height: 2.8em;
}
.teacher-hub-wf-card--primary{
  border-color: rgba(37, 99, 235, 0.25);
  background: #eff6ff;
}
.teacher-hub-wf-cta-stack{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
}
.teacher-hub-wf-routing-hint{
  margin: 0;
  flex: 1 1 100%;
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  max-width: 52ch;
}
.teacher-hub-wf-p .teacher-hub-cta{ margin: 4px 0 0; }
.teacher-hub-recent-dual{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
  padding: 16px 18px 20px;
}
@media (max-width: 800px){
  .teacher-hub-recent-dual{ grid-template-columns: 1fr; }
}
.teacher-hub-recent-dual-hint{ margin: 0 0 6px; font-size: 12px; }
.teacher-assets-mine-hint--tight{ max-width: 64ch; }
.teacher-assets-home-peek{
  padding: 12px 16px 14px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #f8fafc;
}
.teacher-assets-home-peek-body{
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  font-size: 13px;
  line-height: 1.45;
  color: #475569;
}
.teacher-assets-home-peek-meta{
  font-size: 12px;
  color: #64748b;
}
.teacher-module-placeholder-h1,
.teacher-hub-classroom-h2{
  margin: 0 0 8px;
  font-size: clamp(1.1rem, 2.2vw, 1.3rem);
  font-weight: 900;
  color: #0f172a;
}
.teacher-module-placeholder-page .teacher-module-placeholder-lead{
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.5;
  color: #334155;
}
.teacher-module-placeholder-page .teacher-module-placeholder-note{
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  max-width: 62ch;
}
.teacher-module-placeholder-page .teacher-module-placeholder-p{ margin: 0 0 12px; }
.teacher-hub-classroom-only{
  padding: 16px 18px 20px;
}
.teacher-create-material-page .teacher-create-material-lead{
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
  max-width: 68ch;
}
.teacher-create-material-types-hint{
  margin: 0 0 12px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
}
.teacher-create-material-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}
.teacher-create-material-type-card{
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
}
.teacher-create-material-type-btn{
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 12px;
  padding: 12px 10px;
  font-weight: 800;
  font-size: 13px;
  color: #334155;
  cursor: pointer;
  opacity: 1;
}
.teacher-create-material-type-btn:hover{
  border-color: #cbd5e1;
  background: #f8fafc;
}
.teacher-create-material-type-btn:focus-visible{
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}
.teacher-create-material-step-card{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.teacher-create-material-step-placeholder{
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
  max-width: 68ch;
}
.teacher-create-material-step-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.teacher-create-material-type-badge{
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  text-align: center;
}
.teacher-create-material-next-lead{
  margin: 0 0 12px;
  font-size: 14px;
  color: #475569;
  line-height: 1.5;
}
.teacher-admin-manage-note{
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  max-width: 72ch;
}
.teacher-material-category-pill{
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  color: #0f766e;
  background: rgba(13, 148, 136, 0.1);
  border: 1px solid rgba(13, 148, 136, 0.2);
}
.teacher-materials-create-link{
  margin: 10px 0 0;
  font-size: 13px;
}
.teacher-my-sales-hero .teacher-my-sales-h1{
  margin: 0 0 8px;
  font-size: clamp(1.25rem, 2.6vw, 1.55rem);
  font-weight: 950;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.teacher-my-sales-sub{
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.55;
  color: #334155;
  max-width: 68ch;
}
.teacher-my-sales-note{
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  max-width: 72ch;
}
.teacher-my-sales-summary-title{
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-my-sales-summary-lead{
  margin: 0 0 14px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
  max-width: 70ch;
}
.teacher-my-sales-summary-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 10px;
}
.teacher-my-sales-stat{
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 10px;
  background: #f8fafc;
  text-align: center;
}
.teacher-my-sales-stat-value{
  display: block;
  font-size: 1.35rem;
  font-weight: 950;
  color: #0f172a;
  line-height: 1.2;
}
.teacher-my-sales-stat-label{
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 800;
  color: #64748b;
  line-height: 1.3;
}
.teacher-my-sales-next-title{
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-my-sales-next-list{
  margin: 0 0 14px;
  padding-left: 1.2em;
  color: #334155;
  font-size: 14px;
  line-height: 1.55;
}
.teacher-my-sales-next-ctas{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.teacher-my-sales-next-table-hint{
  margin: 12px 0 0;
  font-size: 13px;
}
.teacher-my-sales-guide-fold{
  padding: 0;
  overflow: hidden;
}
.teacher-my-sales-guide-fold-sum{
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 800;
  font-size: 14px;
  color: #334155;
  list-style: none;
}
.teacher-my-sales-guide-fold-sum::-webkit-details-marker{ display: none; }
.teacher-my-sales-guide-fold-body{
  padding: 0 16px 16px;
  border-top: 1px solid #e2e8f0;
}
.teacher-my-sales-guide-fold-body .teacher-guide-panel{
  margin-top: 12px;
  box-shadow: none;
}
.lts0-to-full-console-hint--sales{
  font-size: 13px;
}
.lts0-to-full-console-hint--sales a{
  color: #64748b;
  font-weight: 700;
}
.teacher-assets-recent-list--hub{
  margin: 0;
  padding: 0 0 0 1.1em;
  max-width: 100%;
}
.teacher-hub-recent-listing-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.teacher-hub-recent-listing-item{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e2e8f0;
}
.teacher-hub-recent-listing-item:last-child{ border-bottom: 0; padding-bottom: 0; }
.teacher-hub-recent-listing-link{
  text-decoration: none;
  color: #0f172a;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.3;
}
.teacher-hub-recent-listing-link:hover{ text-decoration: underline; }
.teacher-hub-recent-listing-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.teacher-state-pill{
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #f1f5f9;
  color: #334155;
  letter-spacing: 0.01em;
}
.teacher-state-pill--draft{ background: #eff6ff; color: #1e3a8a; border-color: #93c5fd; }
.teacher-state-pill--pending{ background: #fffbeb; color: #92400e; border-color: #fcd34d; }
.teacher-state-pill--approved{ background: #ecfdf3; color: #14532d; border-color: #86efac; }
.teacher-state-pill--rejected{ background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.teacher-state-pill--vis_public{ background: #ecfdf3; color: #14532d; border-color: #86efac; }
.teacher-state-pill--vis_unlisted{ background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.teacher-state-pill--vis_private{ background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.teacher-state-pill--muted{ background: #f8fafc; color: #94a3b8; border-color: #e2e8f0; font-weight: 700; }
.teacher-state-pill--asset_draft{ background: #eff6ff; color: #1e3a8a; border-color: #93c5fd; }
.teacher-state-pill--asset_ready{ background: #ecfdf3; color: #14532d; border-color: #86efac; }
.teacher-state-pill--asset_archived{ background: #f5f5f4; color: #44403c; border-color: #d6d3d1; }
.teacher-listing-hero.teacher-surface-hero .teacher-listing-pill{
  font-size: 11px;
  font-weight: 800;
  border-radius: 999px;
  padding: 3px 10px;
  border: 1px solid rgba(15, 23, 42, 0.1);
}
.teacher-listing-unified-badges{
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

/* =========================================================
   Teacher admin shell (materials / courses / listing outer)
   ========================================================= */
.teacher-admin-shell:not(.teacher-shell){
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 48px;
}

/* 老师端后台：左栏模块导航 + 右栏主内容（与 .wrap 同用时可放宽总宽） */
.teacher-shell{
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px 28px;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 48px;
}
.teacher-shell.wrap{
  max-width: min(1240px, 100%);
}
.teacher-shell.lts0-page.wrap{
  max-width: min(1280px, 100%);
}
.teacher-shell-sidebar{
  flex: 0 0 220px;
  width: 220px;
  max-width: 100%;
  position: sticky;
  top: 10px;
  padding: 14px 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}
.teacher-shell-brand{
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}
.teacher-shell-brand-text{
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.35;
}
.teacher-shell-nav{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.teacher-shell-nav-link{
  display: block;
  padding: 9px 11px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  color: #334155;
  text-decoration: none;
  border: 1px solid transparent;
  background: #f8fafc;
}
a.teacher-shell-nav-link:hover{
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #0f172a;
}
.teacher-shell-nav-link--current{
  color: #1e1b4b;
  background: linear-gradient(180deg, #eef2ff 0%, #e0e7ff 100%);
  border-color: #a5b4fc;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
.teacher-shell-main{
  flex: 1 1 0;
  min-width: 0;
}
.teacher-shell .teacher-main{
  min-width: 0;
}
@media (max-width: 900px) {
  .teacher-shell {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .teacher-shell-sidebar {
    position: static;
    flex: 0 0 auto;
    width: 100%;
  }
  .teacher-shell-nav {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .teacher-shell-nav .teacher-shell-nav-link,
  .teacher-shell-nav .teacher-shell-nav-link--current {
    flex: 1 1 auto;
    min-width: 112px;
    text-align: center;
  }
}

/* =========================================================
   通用页壳：左侧区块导航 + 右侧主内容（与 .teacher-shell 视觉对齐，全站可复用）
   ========================================================= */
.page-shell{
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px 28px;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 48px;
}
.page-shell.wrap{
  max-width: min(1240px, 100%);
}
.page-shell--resource{
  padding-left: 16px;
  padding-right: 16px;
}
.section-side-nav{
  flex: 0 0 220px;
  width: 220px;
  max-width: 100%;
  position: sticky;
  top: 10px;
  padding: 14px 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}
.culture-side-search{
  margin-bottom: 14px;
}
.culture-side-search-input{
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(148, 163, 184, 0.45);
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 14px;
  background: #fff;
}
.culture-side-search-input:focus{
  outline: none;
  border-color: #818cf8;
  box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.16);
}
.culture-side-search-panel[hidden]{
  display: none !important;
}
.culture-search-results{
  margin-bottom: 16px;
  display: grid;
  gap: 8px;
}
.culture-search-results-title{
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.culture-search-no-results{
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: #64748b;
}
.culture-search-results-list{
  display: grid;
  gap: 8px;
}
.culture-search-result-item{
  width: 100%;
  text-align: left;
  border: 0;
  border-radius: 12px;
  padding: 10px 12px;
  background: #f8fafc;
  cursor: pointer;
  font-family: inherit;
}
.culture-search-result-item:hover{
  background: #eef2ff;
}
.culture-search-result-word{
  font-weight: 800;
  color: #0f172a;
}
.culture-search-result-pinyin{
  font-size: 12px;
  color: #64748b;
  margin-top: 2px;
}
.culture-search-result-type{
  font-size: 11px;
  color: #64748b;
  margin-top: 4px;
}
.section-side-nav__title{
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.95);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.35;
}
.section-side-nav-inner{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
button.section-side-nav-item{
  font-family: inherit;
}
.section-side-nav-item{
  display: block;
  width: 100%;
  text-align: left;
  padding: 9px 11px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  color: #334155;
  text-decoration: none;
  border: 1px solid transparent;
  background: #f8fafc;
  cursor: pointer;
}
button.section-side-nav-item:hover,
a.section-side-nav-item:hover{
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #0f172a;
}
.section-side-nav-item.is-active{
  color: #1e1b4b;
  background: linear-gradient(180deg, #eef2ff 0%, #e0e7ff 100%);
  border-color: #a5b4fc;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
/* 三级、四级：文化页侧栏二级可展开 + 三级子项 */
.section-side-nav__group{
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 0;
}
.section-side-nav-item.section-side-nav-item--expandable{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.section-side-nav-item__text{
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
.section-side-nav-count{
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
  user-select: none;
}
.section-side-nav-item__chev{
  flex: 0 0 auto;
  font-size: 0.7rem;
  line-height: 1;
  color: #94a3b8;
  font-weight: 800;
  user-select: none;
}
.section-side-nav-children{
  display: grid;
  gap: 6px;
  width: 100%;
  margin-top: 6px;
  margin-bottom: 2px;
  padding: 0;
}
/* hidden 须压过本类的 display:grid，否则带 #culture?tab=idioms&id= 进入时三级列表仍可见 */
.section-side-nav-children[hidden]{
  display: none !important;
}
.section-side-nav__subgroup{
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 0;
}
.section-side-nav-item.level-3{
  font-size: 14px;
  font-weight: 700;
  padding-left: 26px;
  margin-top: 0;
  opacity: 0.95;
}
.section-side-nav-item.level-3.is-active{
  opacity: 1;
  color: #312e81;
  font-weight: 700;
  background: #eef2ff;
  border-color: #a5b4fc;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
/* Hanja #hanja：basic3000 下六级，字号小于二级、左侧缩进 */
.hanja-page .hanja-level-subnav{
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  margin: 0 0 8px 0;
  padding: 0 0 0 8px;
  border-left: 2px solid rgba(99, 102, 241, 0.28);
  box-sizing: border-box;
}
.hanja-page .hanja-level-subnav[hidden]{
  display: none !important;
}
.hanja-page .section-side-nav-item.hanja-level-item{
  font-size: 12px;
  font-weight: 600;
  padding: 6px 9px 6px 10px;
  opacity: 0.95;
}
.hanja-page .section-side-nav-item.hanja-level-item.is-active{
  opacity: 1;
  font-weight: 700;
}
.hanja-page .hanja-side-block[hidden]{
  display: none !important;
}
/* #hanja · 한국 한자능력검정 · 급/단계 서브네비 */
.hanja-page .hanja-korea-subnav{
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin: 0 0 8px 0;
  padding: 0 0 0 8px;
  border-left: 2px solid rgba(99, 102, 241, 0.28);
  box-sizing: border-box;
}
.hanja-page .hanja-korea-subnav[hidden]{
  display: none !important;
}
.hanja-page .hanja-ko-grade-block .section-side-nav-children.level-4-group{
  margin-top: 4px;
}
.hanja-page .hanja-ko-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.hanja-page .hanja-ko-card{
  border: 1px solid rgba(148, 163, 184, 0.45);
  border-radius: 12px;
  padding: 12px 10px;
  background: #fff;
  text-align: center;
}
.hanja-page .hanja-ko-card__glyph{
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  font-family: "Noto Sans CJK KR", "Noto Sans SC", serif;
}
.hanja-page .hanja-ko-card__kr{
  margin-top: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #4f46e5;
}
.hanja-page .hanja-ko-card__py{
  margin-top: 4px;
  font-size: 13px;
  color: #64748b;
}
.hanja-page .hanja-ko-card__links{
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.4;
}
.hanja-page .hanja-ko-card__links a{
  color: #0d9488;
  font-weight: 700;
  text-decoration: none;
}
.hanja-page .hanja-ko-card__links a:hover{
  text-decoration: underline;
}
.hanja-page .hanja-ko-card__dot{
  margin: 0 4px;
  color: #cbd5e1;
  font-weight: 700;
}
.hanja-page .hanja-ko-stage-linklist{
  margin: 12px 0 0;
  padding-left: 1.25rem;
}
.hanja-page .hanja-ko-stage-linklist li{
  margin: 6px 0;
}
.hanja-page .hanja-ko-stage-link{
  color: #4f46e5;
  font-weight: 700;
  text-decoration: none;
}
.hanja-page .hanja-ko-stage-link:hover{
  text-decoration: underline;
}
.hanja-page .hanja-ko-hint{
  margin-top: 10px;
  color: #64748b;
  font-size: 14px;
}
.hanja-page .hanja-ko-count-line{
  margin-top: 6px;
  color: #64748b;
  font-size: 14px;
}
.hanja-page .hanja-ko-stage-list{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.hanja-page .hanja-ko-lv-stage-row{
  display: block;
  width: 100%;
}
.hanja-page .section-side-nav-item.hanja-ko-lv-stage.level-3{
  padding: 7px 8px 7px 11px;
  font-size: 11.5px;
}
.hanja-page .hanja-ko-lv-stage{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 7px 8px 7px 11px;
  text-align: left;
  margin-top: 0;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.25;
}
.hanja-page .hanja-ko-lv-stage__label{
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.25;
  font-size: 11.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hanja-page .hanja-ko-lv-stage .hanja-ko-lv-badge{
  flex-shrink: 0;
  font-size: 9px;
  padding: 2px 5px;
  margin-left: 0;
}
.hanja-page .hanja-ko-lv-stage::after{
  content: "▾";
  flex-shrink: 0;
  font-size: 10px;
  color: #94a3b8;
  line-height: 1;
  transition: transform 0.15s ease;
}
.hanja-page .hanja-ko-lv-stage[aria-expanded="false"]::after{
  transform: rotate(-90deg);
}
.hanja-page .hanja-ko-grade-block > .hanja-ko-day-subnav,
.hanja-page .hanja-ko-stage-block > .hanja-ko-day-subnav{
  margin-top: 4px;
  margin-left: 12px;
}
.hanja-page .hanja-ko-stage-block + .hanja-ko-stage-block{
  margin-top: 8px;
}
.hanja-page .hanja-ko-day-subnav{
  display: grid;
  gap: 4px;
  margin: 0 0 4px 8px;
  padding: 6px 0 2px 12px;
  border-left: 2px dashed rgba(148, 163, 184, 0.5);
  box-sizing: border-box;
}
.hanja-page .hanja-ko-day-subnav[hidden]{
  display: none !important;
}
.hanja-page .section-side-nav-item.level-5.hanja-ko-day{
  font-size: 12px;
  font-weight: 600;
  padding: 5px 10px 5px 12px;
  text-align: left;
  opacity: 0.95;
}
.hanja-page .section-side-nav-item.level-5.hanja-ko-day.is-active{
  opacity: 1;
  font-weight: 700;
}
.hanja-page .hanja-ko-day-banner{
  margin-top: 4px;
  color: #4338ca;
  font-weight: 700;
}
.hanja-page .hanja-ko-grid--lesson{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  width: 100%;
  max-width: 100%;
}
.hanja-page .hanja-ko-card--lesson.hanja-ko-card--dayrow{
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: left;
  padding: 8px 10px 10px;
  border-radius: 10px;
  align-items: stretch;
}
.hanja-page .hanja-ko-card--dayrow > .hanja-ko-expand{
  margin-top: 8px;
  padding-top: 8px;
}
.hanja-page .hanja-ko-dayrow{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 46%);
  gap: 12px 16px;
  align-items: start;
  width: 100%;
}
@media (max-width: 900px){
  .hanja-page .hanja-ko-dayrow{
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.hanja-page .hanja-ko-dayrow__learn{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
}
.hanja-page .hanja-ko-dayrow__learn .hanja-ko-dayrow__glyph-line{
  justify-content: flex-start;
}
.hanja-page .hanja-ko-dayrow__cn-glyph-line{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 4px;
  font-size: 13px;
  line-height: 1.4;
  color: #64748b;
}
.hanja-page .hanja-ko-dayrow__cn-glyph-label{
  font-weight: 600;
  color: #94a3b8;
}
.hanja-page .hanja-ko-dayrow__cn-glyph{
  font-size: 1.35rem;
  font-weight: 700;
  color: #0f766e;
  letter-spacing: 0.02em;
  cursor: pointer;
}
.hanja-page .hanja-ko-tts-hit--glyph-cn{
  display: inline-block;
  padding: 1px 6px;
  border-radius: 8px;
  background: rgba(15, 118, 110, 0.12);
}
.hanja-page .hanja-ko-tts-hit--glyph-cn:hover,
.hanja-page .hanja-ko-tts-hit--glyph-cn:active{
  background: rgba(15, 118, 110, 0.22);
}
.hanja-page .hanja-ko-stroke-form-switch{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin: 0 0 6px;
}
.hanja-page .hanja-ko-glyph--hanja{
  font-family: "Source Han Serif KR", "Noto Serif CJK KR", "Batang", "Malgun Gothic", "Apple SD Gothic Neo", serif;
  font-variant-east-asian: traditional;
}
.hanja-page .hanja-ko-glyph--cn{
  font-family: "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;
  font-variant-east-asian: simplified;
}
.hanja-page .hanja-ko-stroke-form-btn{
  font-size: 11px;
  line-height: 1;
  min-width: 44px;
  min-height: 40px;
  padding: 4px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hanja-page .hanja-ko-stroke-form-glyph{
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
}
.hanja-page .hanja-ko-stroke-form-btn:hover{
  background: #f1f5f9;
}
.hanja-page .hanja-ko-stroke-form-btn.is-active{
  background: #0ea5e9;
  border-color: #0ea5e9;
  color: #fff;
}
.hanja-page .hanja-ko-stroke-form-btn.is-active .hanja-ko-stroke-form-glyph{
  color: #fff;
}
.hanja-page .hanja-ko-dayrow__stroke-side{
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.hanja-page .hanja-ko-dayrow__learn .hanja-ko-toolbar--dayrow{
  margin-top: 4px;
}
.hanja-page .hanja-ko-dayrow__stroke-embed{
  width: 100%;
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.hanja-page .hanja-ko-stroke-embed-loading{
  margin: 0 0 4px;
  font-size: 12px;
  line-height: 1.35;
  color: #64748b;
  text-align: center;
}
.hanja-page .hanja-ko-stroke-embed-loading[hidden]{
  display: none !important;
}
.hanja-page .hanja-ko-stroke-host{
  flex: 1 1 auto;
  min-height: 180px;
  min-width: 0;
  width: 100%;
  display: block;
  box-sizing: border-box;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* 主站未加载 Tailwind：补 stroke 播放器内用到的工具类下限，避免顶部工具条塌成「空白」观感 */
.hanja-page .hanja-ko-stroke-host .flex{ display:flex; }
.hanja-page .hanja-ko-stroke-host .flex-wrap{ flex-wrap:wrap; }
.hanja-page .hanja-ko-stroke-host .items-center{ align-items:center; }
.hanja-page .hanja-ko-stroke-host .justify-between{ justify-content:space-between; }
.hanja-page .hanja-ko-stroke-host .justify-end{ justify-content:flex-end; }
.hanja-page .hanja-ko-stroke-host .gap-2{ gap:0.5rem; }
.hanja-page .hanja-ko-stroke-host .mb-1{ margin-bottom:0.25rem; }
.hanja-page .hanja-ko-stroke-host .mb-3{ margin-bottom:0.75rem; }
.hanja-page .hanja-ko-stroke-host .mb-2{ margin-bottom:0.5rem; }
.hanja-page .hanja-ko-stroke-host .gap-8{ gap:2rem; }
/* 收窄列内：抵消 ui-stroke-player 注入样式的 min-width:280px，并让演示/练习纵向铺满可见 */
.hanja-page .hanja-ko-stroke-host .stroke-card-inner.embed-mode{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.hanja-page .hanja-ko-stroke-host .stroke-card-inner.embed-mode .stroke-page{
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
}
.hanja-page .hanja-ko-stroke-host .stroke-card-inner.embed-mode .jsp-demo-panel,
.hanja-page .hanja-ko-stroke-host .stroke-card-inner.embed-mode .jsp-practice-panel{
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100%;
  flex: 1 1 auto !important;
  box-sizing: border-box;
}
.hanja-page .hanja-ko-stroke-host .jsp-player-host{
  min-height: 140px;
}
/* 韩国检卡片内笔顺工具条：加大字号、彩色按钮（覆盖 slate-100 / text-xs） */
.hanja-page .hanja-ko-stroke-host .btnReplay,
.hanja-page .hanja-ko-stroke-host .btnTrace,
.hanja-page .hanja-ko-stroke-host .btnClear,
.hanja-page .hanja-ko-stroke-host .btnRedo,
.hanja-page .hanja-ko-stroke-host .btnSpeak{
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  padding: 6px 11px !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.hanja-page .hanja-ko-stroke-host .btnReplay{
  color: #1d4ed8 !important;
  background: #dbeafe !important;
  border-color: #93c5fd !important;
}
.hanja-page .hanja-ko-stroke-host .btnReplay:hover{
  background: #bfdbfe !important;
}
.hanja-page .hanja-ko-stroke-host .btnTrace{
  color: #047857 !important;
  background: #d1fae5 !important;
  border-color: #6ee7b7 !important;
}
.hanja-page .hanja-ko-stroke-host .btnTrace:hover{
  background: #a7f3d0 !important;
}
.hanja-page .hanja-ko-stroke-host .btnClear,
.hanja-page .hanja-ko-stroke-host .btnRedo{
  color: #b45309 !important;
  background: #ffedd5 !important;
  border-color: #fdba74 !important;
}
.hanja-page .hanja-ko-stroke-host .btnClear:hover,
.hanja-page .hanja-ko-stroke-host .btnRedo:hover{
  background: #fed7aa !important;
}
.hanja-page .hanja-ko-stroke-host .btnSpeak{
  color: #6d28d9 !important;
  background: #ede9fe !important;
  border-color: #c4b5fd !important;
}
.hanja-page .hanja-ko-stroke-host .btnSpeak:hover{
  background: #ddd6fe !important;
}
/* 嵌入笔顺合并模式：↻ 다시 / ✍ 따라쓰기 / ✕ 지우기 */
.hanja-page .hanja-ko-stroke-host .jsp-embed-toolbar{
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 4px 0 8px;
}
.hanja-page .hanja-ko-stroke-host .jsp-embed-toolbar button{
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  padding: 8px 14px !important;
  border-radius: 10px !important;
  border: 2px solid transparent !important;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.12);
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease,
    background 0.12s ease;
}
.hanja-page .hanja-ko-stroke-host .jsp-embed-toolbar button:hover{
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.16);
}
.hanja-page .hanja-ko-stroke-host .btnEmbedReplay{
  color: #1e40af !important;
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%) !important;
  border-color: #60a5fa !important;
}
.hanja-page .hanja-ko-stroke-host .btnEmbedReplay:hover{
  background: linear-gradient(180deg, #bfdbfe 0%, #93c5fd 100%) !important;
}
.hanja-page .hanja-ko-stroke-host .btnEmbedTrace{
  color: #047857 !important;
  background: linear-gradient(180deg, #d1fae5 0%, #a7f3d0 100%) !important;
  border-color: #34d399 !important;
}
.hanja-page .hanja-ko-stroke-host .btnEmbedTrace:hover{
  background: linear-gradient(180deg, #a7f3d0 0%, #6ee7b7 100%) !important;
}
.hanja-page .hanja-ko-stroke-host .btnEmbedTrace.is-active{
  color: #fff !important;
  background: linear-gradient(180deg, #fb923c 0%, #f97316 100%) !important;
  border-color: #ea580c !important;
  box-shadow: 0 2px 8px rgba(249, 115, 22, 0.4);
}
.hanja-page .hanja-ko-stroke-host .btnEmbedClear{
  color: #be123c !important;
  background: linear-gradient(180deg, #ffe4e6 0%, #fecdd3 100%) !important;
  border-color: #fb7185 !important;
}
.hanja-page .hanja-ko-stroke-host .btnEmbedClear:hover{
  background: linear-gradient(180deg, #fecdd3 0%, #fda4af 100%) !important;
}
/* static import 실패 등으로 mount 結果为空时用 */
.hanja-page .hanja-ko-stroke-blank{
  box-sizing: border-box;
  width: 100%;
  min-height: 160px;
  padding: 10px;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
}
.hanja-page .hanja-ko-stroke-blank__msg{
  font-size: 13px;
  font-weight: 700;
  color: #b45309;
  margin-bottom: 6px;
}
.hanja-page .hanja-ko-stroke-blank__sub{
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: #475569;
}
.hanja-page .hanja-ko-stroke-blank__path{
  margin: 0;
  padding: 8px;
  font-size: 11px;
  line-height: 1.4;
  color: #64748b;
  background: #fff;
  border-radius: 6px;
  white-space: pre-wrap;
  word-break: break-all;
  overflow-x: auto;
}
.hanja-page .hanja-ko-dayrow__glyph-line{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 2px 6px;
}
.hanja-page .hanja-ko-dayrow__glyph{
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  color: #0f172a;
  cursor: pointer;
  user-select: none;
}
.hanja-page .hanja-ko-dayrow__learn,
.hanja-page .hanja-ko-dayrow__center{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  line-height: 1.35;
  color: #334155;
}
.hanja-page .hanja-ko-dayrow__center--compact{
  justify-content: flex-start;
}
.hanja-page .hanja-ko-dayrow--no-words{
  /* legacy：现为两栏布局，无单独样式 */
}
.hanja-page .hanja-ko-dayrow__kr-line{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 6px;
}
.hanja-page .hanja-ko-dayrow__kr-hun{
  font-size: 15px;
  font-weight: 700;
  color: #0f766e;
  letter-spacing: 0.02em;
}
.hanja-page .hanja-ko-dayrow__kr-eum{
  font-size: 18px;
  font-weight: 800;
  color: #4338ca;
  letter-spacing: 0.04em;
}
.hanja-page .hanja-ko-dayrow__py{
  font-size: 18px;
  font-weight: 800;
  color: #c2410c;
  letter-spacing: 0.03em;
  line-height: 1.35;
}
.hanja-page .hanja-ko-dayrow__meaning-line{
  margin-top: 0;
  font-size: 16px;
  line-height: 1.4;
  color: #334155;
}
.hanja-page .hanja-ko-dayrow__mini-label{
  font-weight: 800;
  color: #9d174d;
  font-size: 16px;
}
.hanja-page .hanja-ko-dayrow__lbl-punct{
  font-weight: 800;
  color: #9d174d;
  font-size: 16px;
}
.hanja-page .hanja-ko-dayrow__meaning-body{
  font-weight: 700;
  color: #c026d3;
  font-size: 16px;
}
.hanja-page .hanja-ko-dayrow__example{
  margin-top: 2px;
  padding: 9px 11px 9px 13px;
  border-left: 3px solid #ea580c;
  border-radius: 0 10px 10px 0;
  background: linear-gradient(105deg, rgba(234, 88, 12, 0.11) 0%, rgba(192, 38, 211, 0.05) 48%, rgba(255, 255, 255, 0) 100%);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}
.hanja-page .hanja-ko-dayrow__example-label{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #a21caf;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.hanja-page .hanja-ko-dayrow__example-zh{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  line-height: 1.45;
}
.hanja-page .hanja-ko-dayrow__example-han{
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  font-family: "Noto Sans CJK KR", "Noto Sans SC", serif;
}
.hanja-page .hanja-ko-dayrow__example-py{
  margin-top: 5px;
  font-size: 16px;
  font-weight: 700;
  color: #c2410c;
  line-height: 1.4;
  letter-spacing: 0.03em;
}
.hanja-page .hanja-ko-dayrow__example-gloss{
  margin-top: 5px;
  font-size: 15px;
  font-weight: 600;
  color: #7e22ce;
  line-height: 1.45;
}
.hanja-page .hanja-ko-beg-examples{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hanja-page .hanja-ko-beg-examples--compact{
  gap: 6px;
  margin-top: 4px;
  padding: 8px 10px 8px 12px;
  border-left: 3px solid rgba(99, 102, 241, 0.45);
  border-radius: 0 10px 10px 0;
  background: linear-gradient(105deg, rgba(99, 102, 241, 0.08) 0%, rgba(255, 255, 255, 0) 72%);
}
.hanja-page .hanja-ko-beg-examples--compact .hanja-ko-beg-section--compact + .hanja-ko-beg-section--compact{
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed rgba(148, 163, 184, 0.4);
}
.hanja-page .hanja-ko-beg-examples--compact .hanja-ko-beg-section__title{
  color: #4f46e5;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 12px;
}
.hanja-page .hanja-ko-beg-note{
  margin: 0 0 2px;
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  color: #9a3412;
  background: rgba(251, 191, 36, 0.18);
  border-radius: 8px;
}
.hanja-page .hanja-ko-beg-section{
  margin: 0;
  padding: 0;
}
.hanja-page .hanja-ko-beg-section + .hanja-ko-beg-section{
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px dashed rgba(148, 163, 184, 0.45);
}
.hanja-page .hanja-ko-beg-section__title{
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #7c3aed;
  text-transform: uppercase;
}
.hanja-page .hanja-ko-beg-line{
  margin: 0;
}
.hanja-page .hanja-ko-beg-line + .hanja-ko-beg-line,
.hanja-page .hanja-ko-beg-sub-list .hanja-ko-beg-line + .hanja-ko-beg-line{
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dotted rgba(148, 163, 184, 0.35);
}
.hanja-page .hanja-ko-beg-line__zh{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  line-height: 1.45;
}
.hanja-page .hanja-ko-beg-line__han{
  font-size: 17px;
  font-weight: 800;
  color: #0f172a;
  font-family: "Noto Sans CJK KR", "Noto Sans SC", serif;
}
.hanja-page .hanja-ko-beg-line__py{
  margin-top: 4px;
  font-size: 15px;
  font-weight: 700;
  color: #c2410c;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.hanja-page .hanja-ko-beg-line__ko{
  margin-top: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #7e22ce;
  line-height: 1.45;
}
.hanja-page .hanja-ko-beg-line--compact .hanja-ko-beg-line__han{
  font-size: 15px;
}
.hanja-page .hanja-ko-beg-section--sub{
  margin-top: 2px;
}
.hanja-page .hanja-ko-beg-sub-toggle{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 6px 8px;
  border: 1px solid rgba(124, 58, 237, 0.28);
  border-radius: 8px;
  background: rgba(237, 233, 254, 0.55);
  color: #5b21b6;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  text-align: left;
}
.hanja-page .hanja-ko-beg-sub-toggle:hover{
  background: rgba(221, 214, 254, 0.75);
}
.hanja-page .hanja-ko-beg-sub-toggle[aria-expanded="true"] .hanja-ko-beg-sub-toggle__icon{
  transform: rotate(180deg);
}
.hanja-page .hanja-ko-beg-sub-toggle__icon{
  display: inline-block;
  font-size: 10px;
  transition: transform 0.15s ease;
}
.hanja-page .hanja-ko-beg-sub-list{
  margin-top: 8px;
  padding: 8px 8px 4px;
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.9);
}
.hanja-page .hanja-ko-advanced-example{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(148, 163, 184, 0.5);
}
.hanja-page .hanja-ko-advanced-example__label{
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #64748b;
  text-transform: uppercase;
}
.hanja-page .hanja-ko-dayrow__learn .hanja-ko-dayrow__words-block,
.hanja-page .hanja-ko-dayrow__right{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
}
.hanja-page .hanja-ko-dayrow__words-label{
  font-size: 13px;
  font-weight: 800;
  color: #4f46e5;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.hanja-page .hanja-ko-word-list.hanja-ko-word-list--dayrow{
  margin: 0;
  padding: 0 0 0 0.85rem;
  font-size: 15px;
  line-height: 1.5;
  list-style: disc;
}
.hanja-page .hanja-ko-word-list--dayrow .hanja-ko-word-item{
  margin: 0 0 8px;
}
.hanja-page .hanja-ko-word-list--dayrow .hanja-ko-word-zh{
  font-size: 17px;
  font-weight: 800;
  color: #0f172a;
  font-family: "Noto Sans CJK KR", "Noto Sans SC", serif;
}
.hanja-page .hanja-ko-word-list--dayrow .hanja-ko-word-py{
  font-size: 15px;
  font-weight: 700;
  color: #c2410c;
}
.hanja-page .hanja-ko-word-list--dayrow .hanja-ko-word-sep{
  margin: 0 5px;
  font-weight: 600;
  color: #94a3b8;
}
.hanja-page .hanja-ko-word-list--dayrow .hanja-ko-word-gloss{
  font-size: 15px;
  font-weight: 700;
  color: #a21caf;
}
.hanja-page .hanja-ko-toolbar--dayrow{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
  padding-top: 4px;
}
.hanja-page .hanja-ko-toolbar--dayrow .hanja-ko-mini-btn{
  flex: 1 1 auto;
  min-width: 108px;
  max-width: 100%;
  padding: 5px 8px;
  font-size: 11px;
  border-radius: 8px;
}
.hanja-page .hanja-ko-tts-hit{
  cursor: pointer;
  border: none;
  padding: 2px 6px;
  margin: -2px -4px;
  border-radius: 6px;
  -webkit-tap-highlight-color: transparent;
  transition:
    background 0.15s ease,
    box-shadow 0.15s ease;
}
.hanja-page .hanja-ko-tts-hit--glyph{
  display: inline-block;
  padding: 2px 10px;
  margin: 0;
  border-radius: 10px;
  background: rgba(99, 102, 241, 0.14);
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  font-family: "Noto Sans CJK KR", "Noto Sans SC", serif;
  color: #0f172a;
}
.hanja-page .hanja-ko-tts-hit--zh{
  background: rgba(99, 102, 241, 0.1);
}
.hanja-page .hanja-ko-tts-hit--ko{
  background: rgba(15, 118, 110, 0.1);
}
.hanja-page .hanja-ko-dayrow__kr-hun.hanja-ko-tts-hit--ko{
  background: rgba(15, 118, 110, 0.14);
}
.hanja-page .hanja-ko-dayrow__kr-eum.hanja-ko-tts-hit--ko{
  background: rgba(67, 56, 202, 0.12);
}
.hanja-page .hanja-ko-dayrow__meaning-body.hanja-ko-tts-hit--ko{
  padding: 0 2px;
  margin: 0;
  background: transparent;
  font-weight: 700;
  color: #c026d3;
  font-size: 16px;
  box-shadow: 0 2px 0 rgba(192, 38, 211, 0.28);
}
.hanja-page .hanja-ko-tts-hit:hover,
.hanja-page .hanja-ko-tts-hit:active{
  text-decoration: none;
}
.hanja-page .hanja-ko-tts-hit--glyph:hover,
.hanja-page .hanja-ko-tts-hit--glyph:active{
  background: rgba(99, 102, 241, 0.22);
}
.hanja-page .hanja-ko-tts-hit--zh:hover,
.hanja-page .hanja-ko-tts-hit--zh:active{
  background: rgba(99, 102, 241, 0.18);
}
.hanja-page .hanja-ko-tts-hit--ko:hover,
.hanja-page .hanja-ko-tts-hit--ko:active{
  background: rgba(15, 118, 110, 0.18);
}
.hanja-page .hanja-ko-dayrow__meaning-body.hanja-ko-tts-hit--ko:hover,
.hanja-page .hanja-ko-dayrow__meaning-body.hanja-ko-tts-hit--ko:active{
  background: transparent;
  box-shadow: 0 2px 0 rgba(192, 38, 211, 0.45);
}
.hanja-page .hanja-ko-tts-hit:focus-visible{
  outline: 2px solid rgba(99, 102, 241, 0.45);
  outline-offset: 2px;
}
.hanja-page .hanja-ko-tts-hit.is-speaking{
  background: rgba(99, 102, 241, 0.22);
  box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.28);
}
.hanja-page .hanja-ko-tts-hit--glyph.is-speaking{
  background: rgba(99, 102, 241, 0.28);
}
.hanja-page .hanja-ko-tts-hit--ko.is-speaking{
  background: rgba(15, 118, 110, 0.22);
  box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.28);
}
.hanja-page .hanja-ko-dayrow__meaning-body.hanja-ko-tts-hit--ko.is-speaking{
  background: rgba(192, 38, 211, 0.08);
  box-shadow:
    0 2px 0 rgba(192, 38, 211, 0.5),
    0 0 0 2px rgba(192, 38, 211, 0.18);
}
.hanja-page .hanja-ko-beg-line__ko-row,
.hanja-page .hanja-ko-dayrow__example-gloss.hanja-ko-beg-line__ko-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
}
.hanja-page .hanja-ko-word-item{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
}
.hanja-page .hanja-ko-word-zh{
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  white-space: nowrap;
}
.hanja-page .hanja-ko-word-meta{
  white-space: normal;
}
.hanja-page .hanja-ko-mini-btn{
  flex: 1 1 120px;
  border: 1px solid rgba(99, 102, 241, 0.45);
  background: #eef2ff;
  color: #312e81;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.hanja-page .hanja-ko-mini-btn:hover{
  background: #e0e7ff;
}
.hanja-page a.hanja-ko-mini-btn--link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}
.hanja-page .hanja-ko-stroke-loading{
  margin: 0 0 8px;
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
}
.hanja-page .hanja-ko-stroke-loading[hidden]{
  display: none !important;
}
.hanja-page .hanja-ko-expand{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(226, 232, 240, 1);
}
.hanja-page .hanja-ko-expand[hidden]{
  display: none !important;
}
.hanja-page .hanja-ko-expand--detail .hanja-ko-detail-prose{
  font-size: 14px;
  line-height: 1.65;
  color: #334155;
  white-space: pre-wrap;
}
.hanja-page .hanja-ko-expand[data-ko-expand="stroke"]{
  max-height: 560px;
  overflow-y: auto;
}
.section-side-nav-children.level-4-group{
  display: grid;
  gap: 5px;
  margin-top: 5px;
}
.section-side-nav-item.level-4{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.35;
  text-align: left;
  padding-left: 40px;
  padding-top: 8px;
  padding-bottom: 8px;
  opacity: 0.9;
}
.section-side-nav-idiom-word{
  font-size: 14px;
  font-weight: 700;
  color: inherit;
}
.section-side-nav-idiom-pinyin{
  font-size: 12px;
  color: #64748b;
  font-weight: 500;
}
.section-side-nav-item.level-4.is-active{
  background: #eef2ff;
  color: #312e81;
  font-weight: 700;
  opacity: 1;
  border-color: #a5b4fc;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
.section-side-nav-item.level-4.is-active .section-side-nav-idiom-pinyin{
  color: #475569;
}
.section-main-panel{
  flex: 1 1 0;
  min-width: 0;
}
.section-main-panel-inner{
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
  padding: 20px 22px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}
.section-main-panel-inner .title{
  margin: 0 0 12px;
  font-size: 1.2rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.section-main-panel-inner .desc{
  margin: 0;
  color: #475569;
  font-size: 15px;
  line-height: 1.65;
}
/* Culture · 成语详情（单卡阅读式，外框为 .section-main-panel-inner） */
.idiom-detail-card{
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.idiom-detail-header{
  margin: 0 0 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}
.idiom-detail-title{
  margin: 0 0 8px;
  font-size: clamp(1.4rem, 2.2vw, 1.7rem);
  font-weight: 900;
  color: #0f172a;
  letter-spacing: 0.02em;
  line-height: 1.25;
}
.idiom-pinyin{
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.05em;
}
.idiom-detail-section--reading{
  margin: 0;
  padding: 18px 0;
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}
.idiom-detail-section--reading:last-of-type{
  border-bottom: 0;
}
.idiom-section-title{
  margin: 0 0 12px;
  font-size: 0.95rem;
  font-weight: 800;
  color: #334155;
  letter-spacing: 0.02em;
}
.idiom-cn-text{
  margin: 0 0 10px;
  color: #0f172a;
  font-size: 1.05rem;
  line-height: 1.8;
  font-weight: 520;
}
.idiom-pinyin-line{
  color: #64748b;
  font-size: 0.95em;
  line-height: 1.7;
  margin: 4px 0 10px;
  letter-spacing: 0.04em;
}
.idiom-meaning-pinyin-line{
  display: block;
}
.idiom-lang-text{
  margin: 0;
  color: #334155;
  font-size: 1rem;
  line-height: 1.75;
}
.idiom-ai-button-wrap{
  margin: 0;
}
.idiom-ai-button{
  margin-top: 20px;
  padding: 8px 16px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #475569;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  cursor: pointer;
  line-height: 1.4;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.idiom-ai-button:hover{
  border-color: #94a3b8;
  color: #334155;
  background: #f8fafc;
}
.culture-idiom-ai-toast{
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 2000;
  max-width: min(90vw, 400px);
  margin: 0;
  padding: 12px 18px;
  border-radius: 10px;
  background: #1e293b;
  color: #f1f5f9;
  font-size: 0.95rem;
  line-height: 1.45;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
  pointer-events: none;
  opacity: 0;
  transform: translateX(-50%) translateY(6px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.culture-idiom-ai-toast.culture-idiom-ai-toast--show{
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.culture-idiom-loading,
.culture-idiom-error,
.culture-idiom-empty{
  margin: 4px 0 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.5;
}
.culture-idiom-error{
  color: #b91c1c;
}
@media (max-width: 900px) {
  .page-shell{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .section-side-nav{
    position: static;
    flex: 0 0 auto;
    width: 100%;
  }
  .section-side-nav-inner{
    flex-direction: row;
    flex-wrap: wrap;
  }
  .section-side-nav-item{
    flex: 1 1 auto;
    min-width: 112px;
    text-align: center;
  }
  .section-side-nav-item.level-4{
    padding-left: 24px;
    text-align: left;
  }
  .section-side-nav-children .section-side-nav-item.level-3{
    padding-left: 20px;
  }
  .hanja-page .hanja-level-subnav{
    flex: 1 1 100%;
  }
}
.teacher-admin-back{
  margin: 0 0 6px;
}
.teacher-admin-header{
  padding: 18px 20px;
}
.teacher-admin-header--with-actions{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.teacher-admin-header--with-actions .teacher-admin-header-text{
  flex: 1 1 320px;
  min-width: 0;
}

/* 「+ 新建教材」下拉（基于 <details>，不需要额外 JS 状态） */
.teacher-new-material{
  position: relative;
  flex: 0 0 auto;
}
.teacher-new-material-trigger{
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: 10px;
  border: 1px solid #4f46e5;
  background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: 0 1px 0 rgba(255,255,255,0.16) inset, 0 1px 2px rgba(15,23,42,0.12);
  user-select: none;
}
.teacher-new-material-trigger::-webkit-details-marker{ display: none; }
.teacher-new-material-trigger:hover{
  background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%);
}
.teacher-new-material-trigger:focus-visible{
  outline: 2px solid #818cf8;
  outline-offset: 2px;
}
.teacher-new-material-trigger-plus{
  font-size: 16px;
  line-height: 1;
  font-weight: 900;
}
.teacher-new-material-trigger-caret{
  font-size: 10px;
  margin-left: 2px;
  opacity: 0.85;
}
.teacher-new-material[open] .teacher-new-material-trigger-caret{
  transform: rotate(180deg);
}
.teacher-new-material-menu{
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 260px;
  padding: 8px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12), 0 2px 4px rgba(15, 23, 42, 0.06);
  z-index: 30;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.teacher-new-material-item{
  display: block;
  width: 100%;
  text-align: left;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #1e293b;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  cursor: pointer;
}
.teacher-new-material-item:hover,
.teacher-new-material-item:focus-visible{
  background: #eef2ff;
  outline: none;
}
.teacher-new-material-item--primary{
  color: #312e81;
  background: #f5f3ff;
}
.teacher-new-material-item--primary:hover{
  background: #ede9fe;
}
.teacher-new-material-item-sub{
  margin: -2px 12px 4px;
  font-size: 12px;
  color: #64748b;
  line-height: 1.4;
}
.teacher-new-material-divider{
  height: 1px;
  background: #e2e8f0;
  margin: 6px 4px;
}
.teacher-new-material-section-title{
  margin: 2px 12px 4px;
  font-size: 11px;
  font-weight: 800;
  color: #64748b;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* 我的教材 · 本地上传（页内卡片，非弹层） */
.teacher-local-upload{
  margin-top: 14px;
  padding: 16px 18px 18px;
}
.teacher-local-upload__h2{
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.92);
}
.teacher-local-upload__stage{
  margin: 0 0 10px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
}
.teacher-local-upload__types{
  margin: 0 0 14px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
}
.teacher-local-upload__session-hint{
  margin: -6px 0 14px;
  font-size: 12px;
  color: #64748b;
  line-height: 1.45;
  max-width: 72ch;
}
.teacher-local-upload__drop{
  position: relative;
  border: 2px dashed #cbd5e1;
  border-radius: 12px;
  padding: 18px 14px;
  text-align: center;
  background: #f8fafc;
  margin-bottom: 14px;
  transition: border-color 0.15s ease, background 0.15s ease;
  outline: none;
}
.teacher-local-upload__drop:focus-visible{
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25);
}
.teacher-local-upload__drop:focus-within,
.teacher-local-upload__drop:hover{
  border-color: #94a3b8;
  background: #f1f5f9;
}
.teacher-local-upload__input{
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}
.teacher-local-upload__drop-line{
  margin: 0;
  font-size: 14px;
  color: #475569;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.teacher-local-upload__browse{
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-weight: 800;
  color: #4f46e5;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.teacher-local-upload__picked{
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
  word-break: break-all;
}
.teacher-local-upload__field{
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 10px;
}
.teacher-local-upload__label{
  font-size: 13px;
  font-weight: 750;
  color: #475569;
}
.teacher-local-upload__textinp{
  font-family: inherit;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
}
.teacher-local-upload__textinp:focus{
  outline: 2px solid #818cf8;
  outline-offset: 0;
  border-color: #a5b4fc;
}
.teacher-local-upload__err{
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  color: #b91c1c;
}
.teacher-local-upload__progress{
  margin-bottom: 12px;
}
.teacher-local-upload__progress-track{
  height: 8px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}
.teacher-local-upload__progress-bar{
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: linear-gradient(90deg, #6366f1, #4f46e5);
  transition: width 0.65s ease;
}
.teacher-local-upload__actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}
.teacher-local-upload__btn{
  font-family: inherit;
  border-radius: 10px;
  padding: 9px 16px;
  font-weight: 800;
  font-size: 14px;
  cursor: pointer;
  border: 1px solid transparent;
}
.teacher-local-upload__btn--primary{
  background: #4f46e5;
  color: #fff;
}
.teacher-local-upload__btn--primary:hover{
  background: #4338ca;
}
.teacher-local-upload__btn:disabled{
  opacity: 0.5;
  cursor: not-allowed;
}
.teacher-admin-title{
  margin: 0 0 6px;
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 900;
  color: rgba(15, 23, 42, 0.92);
}
.teacher-admin-subtitle{
  margin: 0;
  font-size: 15px;
  font-weight: 650;
  color: rgba(51, 65, 85, 0.95);
}
.teacher-admin-tagline{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  max-width: 62ch;
}
.teacher-admin-toolbar{
  margin-top: 14px;
  padding: 14px 18px;
}
.teacher-admin-toolbar-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 20px;
}
.teacher-admin-btn{
  font-family: inherit;
  border-radius: 12px;
  padding: 10px 18px;
  font-weight: 800;
  font-size: 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #0f172a;
  color: #f8fafc;
}
.teacher-admin-btn--disabled,
.teacher-admin-btn:disabled{
  opacity: 0.48;
  cursor: not-allowed;
}
.teacher-admin-toolbar-hint{
  margin: 0;
  font-size: 13px;
  color: #64748b;
  flex: 1 1 200px;
  line-height: 1.45;
}
.teacher-admin-list-card{
  margin-top: 14px;
  padding: 16px 18px;
}
.teacher-admin-list-heading{
  margin: 0 0 12px;
  font-size: 1.05rem;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.9);
}
.teacher-admin-empty{
  padding: 24px 18px 28px;
  text-align: center;
}
.teacher-admin-empty-title{
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.9);
}
.teacher-admin-empty-sub{
  margin: 0 0 12px;
  font-size: 13px;
  color: #64748b;
}
.teacher-admin-empty-intro{
  margin: 0 0 8px;
  font-size: 13px;
  color: #475569;
  text-align: left;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
}
.teacher-admin-empty-list{
  margin: 0 auto;
  padding-left: 1.2rem;
  max-width: 48ch;
  text-align: left;
  font-size: 14px;
  line-height: 1.55;
  color: #334155;
}
.teacher-admin-empty-list li{
  margin: 5px 0;
}
.teacher-info-note{
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
}
.teacher-info-note-title{
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 900;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.teacher-info-note-lead{
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
  color: #334155;
}
.teacher-info-note-list{
  margin: 0;
  padding-left: 1.15rem;
  font-size: 13px;
  line-height: 1.45;
  color: #64748b;
}
.teacher-info-note-list li{
  margin: 3px 0;
}
.teacher-demo-disclosure{
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 750;
  color: #64748b;
  line-height: 1.45;
  max-width: 72ch;
}
.teacher-list-demo-note{
  margin: 0 0 12px;
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.4;
  max-width: 72ch;
}
.teacher-demo-badge{
  display: inline-block;
  margin-right: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #4338ca;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  vertical-align: middle;
}
.teacher-local-session-badge{
  display: inline-block;
  margin-right: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #0f766e;
  background: #ccfbf1;
  border: 1px solid #5eead4;
  vertical-align: middle;
}
.teacher-cloud-storage-badge{
  display: inline-block;
  margin-right: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #1d4ed8;
  background: #dbeafe;
  border: 1px solid #93c5fd;
  vertical-align: middle;
}
.teacher-manage-cell-title{
  font-weight: 750;
  color: rgba(15, 23, 42, 0.9);
}
.teacher-manage-cell-meta{
  font-size: 13px;
  line-height: 1.45;
  color: #64748b;
  max-width: 28ch;
}
.teacher-manage-cell-phase{
  vertical-align: top;
  white-space: nowrap;
}
.teacher-phase-pill{
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 780;
  letter-spacing: 0.01em;
  line-height: 1.35;
  color: #334155;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}
.teacher-phase-pill--sub{
  font-weight: 700;
  color: #475569;
  background: #f8fafc;
}
.teacher-phase-pill--mat-in_course_can_list,
.teacher-phase-pill--mat-can_list_only{
  color: #14532d;
  background: #ecfdf5;
  border-color: #bbf7d0;
}
.teacher-phase-pill--mat-in_course_internal{
  color: #1e3a8a;
  background: #eff6ff;
  border-color: #bfdbfe;
}
.teacher-phase-pill--mat-not_ready{
  color: #92400e;
  background: #fffbeb;
  border-color: #fde68a;
}
.teacher-phase-pill--crs-linked_listing{
  color: #3730a3;
  background: #eef2ff;
  border-color: #c7d2fe;
}
.teacher-phase-pill--crs-ready_for_listing{
  color: #14532d;
  background: #ecfdf5;
  border-color: #bbf7d0;
}
.teacher-phase-pill--crs-has_materials_building{
  color: #0f766e;
  background: #f0fdfa;
  border-color: #99f6e4;
}
.teacher-phase-pill--crs-organizing{
  color: #92400e;
  background: #fffbeb;
  border-color: #fde68a;
}
.teacher-mini-chip{
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
  color: #334155;
  background: #fff;
  border: 1px solid #e2e8f0;
}
.teacher-mini-chip--muted{
  color: #94a3b8;
  background: #f8fafc;
}
.teacher-meta-subline{
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.4;
  color: #64748b;
  max-width: 36ch;
}
.teacher-meta-subline--accent{
  color: #4338ca;
  font-weight: 650;
}
.teacher-listing-hint-line{
  display: block;
  font-size: 13px;
  line-height: 1.45;
  color: #475569;
}
.teacher-workspace-overview{
  margin-top: 14px;
  padding: 16px 18px 18px;
}
.teacher-workspace-overview-title{
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 850;
  color: #0f172a;
  letter-spacing: 0.01em;
}
.teacher-workspace-overview-disclosure{
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  max-width: 72ch;
}
.teacher-workspace-overview-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.teacher-workspace-chip{
  display: inline-block;
  padding: 5px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 650;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  line-height: 1.3;
}

.teacher-workbench-hero-row{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
}
.teacher-wb-status-chip{
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  border: 1px solid #e2e8f0;
  background: #f1f5f9;
  color: #334155;
  white-space: nowrap;
}
.teacher-wb-status-chip--approved{
  color: #14532d;
  background: #ecfdf3;
  border-color: #86efac;
}
.teacher-wb-status-chip--pending_review{
  color: #7c2d12;
  background: #fff7ed;
  border-color: #fdba74;
}
.teacher-wb-status-chip--draft,
.teacher-wb-status-chip--no_profile{
  color: #1e3a5f;
  background: #eff6ff;
  border-color: #93c5fd;
}
.teacher-wb-status-chip--rejected{
  color: #7f1d1d;
  background: #fef2f2;
  border-color: #fca5a5;
}
.teacher-wb-status-chip--suspended{
  color: #44403c;
  background: #f5f5f4;
  border-color: #d6d3d1;
}
.teacher-wb-status-chip--not_teacher{
  color: #4b5563;
  background: #f3f4f6;
  border-color: #d1d5db;
}

.teacher-identity-gate{
  margin-top: 12px;
  padding: 16px 18px;
  border: 1px solid rgba(67, 56, 202, 0.2);
  border-radius: 14px;
  background: linear-gradient(180deg, #fafbff 0%, #f8fafc 100%);
}
.teacher-identity-gate-title{
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 900;
  color: rgba(30, 27, 75, 0.95);
}
.teacher-identity-gate-body,
.teacher-identity-gate-next,
.teacher-identity-gate-scope,
.teacher-identity-gate-reason,
.teacher-identity-gate-locked-note,
.teacher-identity-gate-foot{
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
  max-width: 68ch;
}
.teacher-identity-gate-next{
  font-size: 13px;
}
.teacher-identity-gate-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
}
.teacher-identity-gate-cta{
  margin-top: 4px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 750;
  padding: 9px 16px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #e2e8f0;
  color: #64748b;
  cursor: not-allowed;
}
.teacher-relation-flow--muted{
  opacity: 0.9;
}
.teacher-path-classroom-hint{
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  max-width: 72ch;
}
.teacher-access-gate{
  margin: 0 0 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #fecaca;
  background: #fff1f2;
}
.teacher-access-gate-title{
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 900;
  color: #7f1d1d;
}
.teacher-access-gate-body{
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #991b1b;
  max-width: 68ch;
}
.teacher-admin-toolbar-hint--stage{
  color: #64748b;
  font-size: 13px;
}

.teacher-path-strip-lead{
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  max-width: 72ch;
}
.teacher-assets-mine{
  margin-top: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(67, 56, 202, 0.16);
  border-radius: 14px;
  background: linear-gradient(180deg, #fafbff 0%, #fff 100%);
}
.teacher-assets-mine-head{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
}
.teacher-assets-mine-head-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  justify-content: flex-end;
}
.teacher-assets-mine-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 900;
  color: rgba(30, 27, 75, 0.95);
}
.teacher-assets-mine-hint{
  margin: 8px 0 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  max-width: 68ch;
}
.teacher-assets-quick{
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}
.teacher-assets-quick-note{
  margin: 0;
  font-size: 12px;
  color: #94a3b8;
  max-width: 48ch;
}
.teacher-assets-recent-heading{
  margin: 16px 0 8px;
  font-size: 13px;
  font-weight: 800;
  color: #4338ca;
}
.teacher-assets-recent-list{
  margin: 0;
  padding: 0;
  list-style: none;
}
.teacher-assets-recent-item{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  margin-bottom: 8px;
}
.teacher-assets-recent-item--empty{
  color: #64748b;
  font-size: 13px;
}
.teacher-assets-recent-main{
  flex: 1 1 200px;
  min-width: 0;
}
.teacher-assets-recent-title{
  display: block;
  font-weight: 750;
  color: #0f172a;
  font-size: 14px;
}
.teacher-assets-recent-src{
  display: block;
  font-size: 12px;
  color: #64748b;
  margin-top: 2px;
}
.teacher-assets-recent-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
}
.teacher-asset-link{
  font-size: 13px;
  font-weight: 750;
  color: #4338ca;
  text-decoration: none;
}
.teacher-asset-link:hover{
  text-decoration: underline;
}
.teacher-asset-ghost{
  font-family: inherit;
  font-size: 12px;
  font-weight: 650;
  border: none;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  padding: 0;
}
.teacher-asset-ghost:disabled{
  cursor: not-allowed;
  opacity: 0.55;
}
.teacher-asset-ghost.teacher-asset-move-trash:not(:disabled):hover{
  color: #be123c !important;
  text-decoration: underline;
}
.teacher-asset-row-btn{
  font-family: inherit;
  font-size: 12px;
  font-weight: 750;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #312e81;
  cursor: pointer;
}
.teacher-asset-row-btn:hover{
  background: #e0e7ff;
}
.teacher-asset-type-pill{
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
}
.teacher-asset-type-pill--uploaded{
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  color: #9a3412;
  border: 1px solid #fdba74;
}
.teacher-assets-import-slot{
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}
.teacher-assets-empty-import-hint{
  margin: 10px 0 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  max-width: 56ch;
}
.teacher-assets-empty-cta{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
}
.teacher-courses-import-cta{
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: baseline;
}
.teacher-courses-import-cta-hint{
  flex: 1 1 100%;
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
}
.teacher-asset-note-chip--import{
  font-weight: 650;
  color: #9a3412;
  background: #fff7ed;
  border: 1px dashed #fdba74;
}
.teacher-asset-editor-import-card{
  margin-top: 14px;
}
.teacher-asset-editor-import-card .teacher-asset-type-pill--uploaded{
  margin: 8px 0 12px;
}
.teacher-asset-editor-import-dl{
  margin-top: 4px;
}
.teacher-asset-editor-import-disclaimer{
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 14px;
  color: #334155;
}
.teacher-asset-editor-import-future{
  margin: 10px 0 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  max-width: 60ch;
}
.teacher-asset-status-chip{
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #475569;
}
.teacher-asset-status-chip--draft{ color:#1e3a5f; background:#eff6ff; border-color:#93c5fd; }
.teacher-asset-status-chip--ready{ color:#14532d; background:#ecfdf3; border-color:#86efac; }
.teacher-asset-status-chip--archived{ color:#57534e; background:#f5f5f4; border-color:#d6d3d1; }
.teacher-asset-import-status-sub{
  margin-top: 6px;
  font-size: 11px;
  font-weight: 650;
  color: #64748b;
  line-height: 1.35;
  max-width: 22ch;
}
.teacher-manage-cell-status{
  vertical-align: top;
}
.teacher-assets-empty{
  margin: 12px 0;
  padding: 20px 18px;
  text-align: left;
}
.teacher-assets-empty-title{
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 900;
}
.teacher-assets-empty-body{
  margin: 0;
  font-size: 14px;
  color: #64748b;
  line-height: 1.5;
}
.teacher-assets-list-card{
  margin-top: 12px;
}

/* #teacher-assets 页头：L1 子导航 → L2 流程条 → L3 标题+副标+tab；收紧块间距与副标层级 */
.teacher-assets-page .teacher-subnav{
  margin-top: 0;
}
.teacher-assets-page .teacher-path-strip{
  margin-top: 10px;
}
.teacher-assets-page .teacher-path-strip--no-lead{
  padding-top: 10px;
  padding-bottom: 10px;
}
.teacher-assets-page .teacher-assets-page-hero{
  margin-top: 14px;
}
.teacher-assets-page .teacher-assets-page-hero .teacher-admin-title{
  margin-bottom: 8px;
}
.teacher-assets-page .teacher-assets-page-hero .teacher-admin-subtitle{
  margin: 0;
  max-width: 64ch;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: #64748b;
}
.teacher-assets-list-toolbar{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e2e8f0;
}
.teacher-assets-list-card--trash .teacher-assets-list-toolbar{
  border-bottom-color: #fecdd3;
}
.teacher-assets-list-toolbar-text{
  min-width: min(100%, 28rem);
}
.teacher-assets-list-toolbar-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.25;
}
.teacher-assets-list-toolbar-desc{
  margin: 6px 0 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
  max-width: 52ch;
}
.teacher-assets-list-toolbar-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px 10px;
  margin-left: auto;
}
.teacher-assets-list-toolbar-actions .teacher-hub-cta{
  margin-top: 0;
}
.teacher-assets-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 4px;
}
.teacher-assets-tab{
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  color: #475569;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
}
.teacher-assets-tab:hover{
  border-color: #cbd5e1;
  color: #0f172a;
}
.teacher-assets-tab.is-active{
  color: #fff;
  background: #1d4ed8;
  border-color: #1d4ed8;
}
/* 「我的课程」页顶：课程列表 / 课堂资产 Tab 与下方流程条间距 */
.teacher-courses-hub-tabs{
  margin: 0 0 16px;
}
.teacher-assets-list-card--trash{
  border-color: #fecdd3;
}
.teacher-asset-move-trash{
  color: #9f1239 !important;
  cursor: pointer;
}
.teacher-trash-meta-line{
  margin: 6px 0 0;
  font-size: 12px;
  color: #64748b;
  line-height: 1.4;
}
.teacher-trash-badge{
  display: inline-block;
  margin-right: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
}
.teacher-trash-days-pill{
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  background: #ecfeff;
  color: #0e7490;
  border: 1px solid #a5f3fc;
}
.teacher-trash-days-pill--urgent{
  background: #fff7ed;
  color: #c2410c;
  border-color: #fed7aa;
}
.teacher-trash-restore{
  white-space: nowrap;
}
.teacher-trash-empty .teacher-assets-empty-body{
  max-width: 52ch;
}
.teacher-asset-editor-delete-deck{
  border-color: #fecdd3 !important;
  color: #9f1239 !important;
  background: #fff1f2 !important;
}
.teacher-asset-editor-delete-deck:hover{
  filter: brightness(0.97);
}
.teacher-asset-editor-trashed-gate{
  margin-top: 16px;
  padding: 20px 18px;
  border-radius: 12px;
  border: 1px solid #fecdd3;
  background: #fff1f2;
}
.teacher-asset-editor-trashed-title{
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 900;
  color: #9f1239;
}
.teacher-asset-editor-trashed-body{
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #881337;
}
.teacher-asset-editor-trashed-actions{
  margin: 14px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.teacher-courses-empty-create{
  margin: 10px 0 0;
}
.classroom-topbar-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.classroom-asset-wrap{
  margin: 10px 0 0;
}
.classroom-asset-ctx{
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  margin-bottom: 4px;
}
.classroom-asset-ctx-kicker{
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #4338ca;
}
.classroom-asset-ctx-title{
  margin: 4px 0 0;
  font-size: 15px;
  font-weight: 900;
  color: #1e1b4b;
}
.classroom-asset-ctx-row{
  margin: 6px 0 0;
}
.classroom-asset-ctx-status{
  font-size: 12px;
  font-weight: 700;
  color: #475569;
}
.classroom-asset-warn{
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #fecdd3;
  background: #fff1f2;
  color: #9f1239;
  font-size: 13px;
  line-height: 1.45;
}
.classroom-asset-warn p{
  margin: 0;
}
.classroom-asset-ctx-subtitle{
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: #312e81;
  line-height: 1.4;
}
.classroom-asset-ctx-summary{
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #334155;
  max-width: 64ch;
}
.classroom-asset-ctx-pill{
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 800;
  border-radius: 999px;
  background: #fff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  vertical-align: middle;
}
.lumina-classroom-page[data-teacher-courseware="1"] .classroom-asset-ctx{
  border-color: #7c3aed;
  background: #f5f3ff;
}
.lumina-classroom-page--teacher-courseware-shell{
  --classroom-teacher-accent: #6d28d9;
  --classroom-teacher-surface: #faf5ff;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-topbar,
.lumina-classroom-page--teacher-courseware-shell .classroom-control-bar{
  border-bottom: 1px solid #e9d5ff;
  background: linear-gradient(180deg, #ffffff 0%, #f5f3ff 100%);
  padding-bottom: 8px;
}
.lumina-classroom-page--from-asset:not(.lumina-classroom-page--teacher-courseware-shell) .classroom-asset-ctx{
  border-color: #94a3b8;
  background: #f8fafc;
}
.classroom-asset-ctx--courseware{
  box-shadow: 0 1px 0 rgba(109, 40, 217, 0.1);
}
.classroom-asset-ctx-mode-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0 0 4px;
}
.classroom-asset-ctx-mode-pill{
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #5b21b6;
  background: #ede9fe;
  border: 1px solid #c4b5fd;
}
.classroom-asset-ctx-kicker-inline{
  font-size: 12px;
  font-weight: 700;
  color: #4c1d95;
  margin: 0;
}
.classroom-asset-ctx-type-line{
  margin: 0 0 2px;
  font-size: 12px;
  color: #5b21b6;
  font-weight: 700;
}
.classroom-asset-ctx--courseware .classroom-asset-ctx-title,
.classroom-asset-ctx-title{
  margin: 2px 0 0;
  font-size: 1.1rem;
  font-weight: 900;
  color: #1e1b4b;
}
.classroom-asset-ctx-source-block{
  margin: 8px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: #ffffff9c;
  border: 1px solid #c4b5fd55;
}
.classroom-asset-ctx-source-label{
  display: block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b21a8;
  margin: 0 0 2px;
}
.classroom-asset-ctx-source-line{
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #1e1b4b;
  font-weight: 600;
}
.classroom-asset-ctx-note-hint{
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #4c1d95;
  padding: 6px 8px;
  border-left: 3px solid #a78bfa;
  background: #faf5ff;
  border-radius: 4px;
  max-width: 68ch;
}
/* 老师课件 A6-1 / A6-2：slide_outline 段指示 + 章节目录导航 */
.classroom-courseware-section-strip,
.classroom-courseware-strip{
  margin: 8px 0 6px;
}
.classroom-courseware-strip-inner{
  padding: 10px 12px 12px;
  border-radius: 12px;
  background: linear-gradient(180deg, #faf5ff 0%, #fff 100%);
  border: 1px solid #ddd6fe;
  box-shadow: 0 2px 12px rgba(91, 33, 182, 0.06);
}
.classroom-cwstrip-head{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  margin: 0 0 10px;
  font-size: 12px;
  color: #5b21b6;
  font-weight: 800;
}
.classroom-cwstrip-head-t{ font-size: 14px; color: #1e1b4b; }
.classroom-cwstrip-head-sep{ opacity: 0.45; }
.classroom-cwstrip-head-sub{ font-size: 12px; font-weight: 700; color: #6d28d9; }
.classroom-cwstrip-head-badge{
  display: inline-block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 6px;
  background: #5b21b6;
  color: #fff;
}
.classroom-cwstrip-items{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: stretch;
}
.classroom-cwstrip-item{
  position: relative;
  flex: 1 1 108px;
  min-width: 100px;
  max-width: 200px;
  text-align: left;
  display: flex;
  gap: 8px;
  padding: 8px 10px 8px 8px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #334155;
  font: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.classroom-cwstrip-item:hover{
  border-color: #c4b5fd;
  background: #faf5ff;
  box-shadow: 0 1px 0 #ede9fe;
}
.classroom-cwstrip-item--current{
  border-color: #7c3aed;
  background: #fff;
  box-shadow: 0 0 0 1px #7c3aed33, 0 4px 14px rgba(91, 33, 182, 0.12);
  z-index: 1;
  transform: translateY(-1px);
}
.classroom-cwstrip-item--done{
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #14532d;
  opacity: 0.95;
}
.classroom-cwstrip-item--upcoming{
  opacity: 0.9;
  color: #64748b;
}
.classroom-cwstrip-item--notes{
  border-style: dashed;
  background: #ecfdf5;
  border-color: #6ee7b7;
}
.classroom-cwstrip-item--notes.classroom-cwstrip-item--current{
  background: #fff;
  border-style: solid;
}
.classroom-cwstrip-item-no{
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 900;
  border-radius: 999px;
  background: #e2e8f0;
  color: #0f172a;
}
.classroom-cwstrip-item--current .classroom-cwstrip-item-no{
  background: #7c3aed;
  color: #fff;
}
.classroom-cwstrip-item--done .classroom-cwstrip-item-no{
  background: #22c55e;
  color: #fff;
}
.classroom-cwstrip-item-main{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.classroom-cwstrip-item-name{
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  color: inherit;
}
.classroom-cwstrip-item-st{
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}
.classroom-cwstrip-item--current .classroom-cwstrip-item-st{ color: #5b21b6; }
.classroom-cwstrip-item--done .classroom-cwstrip-item-st{ color: #166534; }
.classroom-cwstrip-notes-tag{
  display: inline-block;
  margin-top: 3px;
  font-size: 10px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 4px;
  background: #059669;
  color: #fff;
  align-self: flex-start;
}
.classroom-cwstrip-item--notes .classroom-cwstrip-item-st{ color: #047857; }
.lumina-classroom-page--teacher-courseware-shell .classroom-stage{
  background: #faf5ff;
  border-radius: 12px;
  border: 1px solid #e9d5ff;
  padding: 12px 10px 16px;
  min-height: 12rem;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel{
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e9d5ff;
  box-shadow: 0 1px 0 #f3e8ff;
  margin: 0 0 10px;
  padding: 16px 18px 18px;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-cw-struct-kicker{
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d28d9;
  margin: 0 0 6px;
}
.classroom-cw-missing-hint{
  font-size: 12px;
  color: #64748b;
  margin: 6px 0 0;
  line-height: 1.45;
  max-width: 56ch;
}
.classroom-panel--courseware-slide{
  background: linear-gradient(135deg, #ffffff 0%, #f5f3ff 100%);
  border: 1px solid #c4b5fd !important;
}
.classroom-cw-cover-card{ max-width: 52rem; }
.classroom-cw-cover-kicker{
  font-size: 12px;
  font-weight: 900;
  color: #5b21b6;
  margin: 0 0 4px;
  letter-spacing: 0.02em;
}
.classroom-cw-cover-title{
  font-size: 1.45rem;
  font-weight: 900;
  color: #1e1b4b;
  margin: 0 0 6px;
  line-height: 1.25;
}
.classroom-cw-cover-sub{ font-size: 15px; font-weight: 700; color: #4338ca; margin: 0 0 6px; }
.classroom-cw-cover-desc{ font-size: 14px; line-height: 1.5; color: #334155; margin: 0 0 8px; }
.classroom-cw-cover-note{
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff;
  border: 1px dashed #a78bfa;
}
.classroom-cw-cover-note-label{
  display: block;
  font-size: 11px;
  font-weight: 800;
  color: #5b21b6;
  margin: 0 0 4px;
}
.classroom-cw-cover-note-t{ margin: 0; font-size: 13px; line-height: 1.5; color: #0f172a; }
.classroom-cw-scene-embed-desc{
  margin: 12px 0 0;
  font-size: 12px;
  color: #64748b;
  line-height: 1.45;
  border-top: 1px solid #e9d5ff;
  padding-top: 8px;
}
/* A6-2 当前章节头 + 切页动效 */
.classroom-cw-slide{
  animation: classroomCwEnter 0.35s ease-out;
}
@keyframes classroomCwEnter{
  from{ opacity: 0; transform: translateY(8px); }
  to{ opacity: 1; transform: translateY(0); }
}
.classroom-cw-slide-panel{ margin: 0; }
.classroom-current-section{
  margin: 0 0 12px;
  padding: 10px 12px 12px;
  border-radius: 10px 10px 0 0;
  background: linear-gradient(90deg, #f5f3ff 0%, #fff 100%);
  border: 1px solid #e9d5ff;
  border-bottom: none;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-current-section{
  background: linear-gradient(90deg, #ede9fe 0%, #ffffff 55%);
  border-color: #c4b5fd;
}
.classroom-current-section-kicker{
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #6d28d9;
}
.classroom-current-section-row{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  justify-content: space-between;
}
.classroom-current-section-title{
  margin: 0;
  font-size: 1.1rem;
  font-weight: 900;
  color: #1e1b4b;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.classroom-current-section-idx{
  font-size: 12px;
  font-weight: 800;
  color: #5b21b6;
  padding: 2px 8px;
  border-radius: 999px;
  background: #fff8;
  border: 1px solid #c4b5fd88;
  white-space: nowrap;
}
/* 各段 kind 差异（老师课件） */
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-cover{
  border-top: 3px solid #7c3aed !important;
  box-shadow: 0 6px 20px rgba(91, 33, 182, 0.08) !important;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-vocab{
  border-top: 3px solid #2563eb !important;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 32%) !important;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-dialogue{
  border-top: 3px solid #0ea5e9 !important;
  background: linear-gradient(180deg, #f0f9ff 0%, #fff 30%) !important;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-practice{
  border-top: 3px solid #ea580c !important;
  background: linear-gradient(180deg, #fff7ed 0%, #fff 32%) !important;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel-words--courseware .classroom-words-main{
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-dialogue .classroom-panel-title{
  color: #0c4a6e;
}
.lumina-classroom-page--teacher-courseware-shell .classroom-panel--cw-kind-practice .classroom-panel-title{
  color: #9a3412;
}
/* notes：更柔和、仍偏辅助，不像后台红框 */
.classroom-panel-notes{
  background: linear-gradient(180deg, #f7fee7 0%, #fff 40%) !important;
  border: 1px solid #bfe8c5 !important;
  border-left: 4px solid #4d7c0f !important;
  box-shadow: 0 2px 8px rgba(20, 83, 45, 0.06) !important;
}
.classroom-panel--cw-kind-notes{ border-left-color: #4d7c0f !important; }
.classroom-notes-eyebrow{
  display: block;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #3f6212;
  margin: 0 0 4px;
}
.classroom-notes-title{ color: #14532d !important; }
.classroom-notes-lead{
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #3f6212;
  font-weight: 600;
  max-width: 58ch;
}
.classroom-notes-body{
  font-size: 14px;
  line-height: 1.6;
  color: #0f172a;
  white-space: pre-wrap;
  margin: 0;
  padding: 10px 0 0;
  border-top: 1px dashed #bbf7d0;
}
/* 工具栏：课件模式偏控制，弱化与目录重复 */
.classroom-toolbar-wrap--courseware .classroom-step-now--courseware{
  min-width: 0;
  padding: 4px 8px;
  background: #faf5ff;
  border-radius: 8px;
  border: 1px solid #e9d5ff;
}
.classroom-step-now--courseware .classroom-step-now-kicker{
  display: block;
  font-size: 10px;
  font-weight: 900;
  color: #6d28d9;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 2px;
}
.classroom-step-now-idx--solo{
  font-size: 14px;
  font-weight: 800;
  color: #1e1b4b;
}
.classroom-toolbar--courseware .classroom-step-tabs{
  gap: 4px;
  opacity: 0.92;
}
.classroom-toolbar-row--tabs--cw .classroom-step-btn{
  font-size: 12px;
  padding: 5px 8px;
  border-radius: 8px;
}
.teacher-asset-editor-hint--cw{
  font-size: 12px;
  line-height: 1.5;
  color: #4c1d95;
  margin-top: 4px;
  padding: 6px 8px;
  border-left: 3px solid #a78bfa;
  background: #faf5ff;
  border-radius: 0 6px 6px 0;
  max-width: 56ch;
}
.teacher-assets-empty-cta{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  margin: 10px 0 0;
}
.teacher-asset-row-primary{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-bottom: 8px;
}
.teacher-asset-row-secondary{
  display: block;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  padding-top: 4px;
  border-top: 1px solid #e2e8f0;
  margin: 0;
}
.teacher-asset-btn{
  display: inline-block;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  line-height: 1.2;
  border: 1px solid transparent;
}
.teacher-asset-btn--primary{
  background: #1d4ed8;
  color: #fff;
  border-color: #1e40af;
}
.teacher-asset-btn--primary:hover{ filter: brightness(0.95); }
.teacher-asset-btn--accent{
  background: #5b21b6;
  color: #fff;
  border-color: #4c1d95;
}
.teacher-asset-btn--accent:hover{ filter: brightness(0.95); }

/* =========================================================
   课件编辑 #teacher-asset-editor
   ========================================================= */
.teacher-asset-editor-page{
  padding-bottom: 48px;
}
.teacher-asset-editor-hero{
  margin-bottom: 16px;
}
.teacher-asset-editor-title{
  margin: 0 0 8px;
  font-size: 1.4rem;
  font-weight: 900;
}
.teacher-asset-editor-lead{
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.55;
}
.teacher-asset-editor-form{
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.teacher-asset-editor-section{
  padding: 16px 18px;
}
.teacher-asset-editor-h{
  margin: 0 0 12px;
  font-size: 1.02rem;
  font-weight: 900;
}
.teacher-asset-editor-field{
  display: block;
  margin: 0 0 12px;
}
.teacher-asset-editor-label{
  display: block;
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}
.teacher-asset-editor-input,
.teacher-asset-editor-textarea{
  width: 100%;
  max-width: 40rem;
  box-sizing: border-box;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 10px;
  font: inherit;
}
.teacher-asset-editor-dl{
  display: grid;
  gap: 8px 16px;
  font-size: 14px;
}
.teacher-asset-editor-dl dt{
  font-weight: 700;
  color: #64748b;
  margin: 0;
}
.teacher-asset-editor-dl dd{
  margin: 0;
}
.teacher-asset-editor-outline-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.teacher-asset-editor-outline-readonly{
  font-size: 12px;
  color: #64748b;
}
.teacher-asset-editor-outline-kind{
  font-weight: 800;
  color: #0f172a;
}
.teacher-asset-editor-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
  align-items: center;
}
.teacher-asset-editor-actions--bar{
  position: sticky;
  top: 0;
  z-index: 2;
  margin: 0 0 12px;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
.teacher-asset-editor-toast{
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #ecfdf3;
  border: 1px solid #86efac;
  color: #14532d;
  font-size: 13px;
  font-weight: 700;
}
.teacher-asset-editor-toast:empty[hidden]{
  display: none;
}
.teacher-asset-editor-section-hint{
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  max-width: 52ch;
}
.teacher-asset-editor-sublabel{
  display: block;
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.01em;
}
.teacher-asset-editor-section--teacher-note{
  border-color: #e9d5ff;
  background: #faf5ff;
}
.teacher-asset-editor-section--source .teacher-asset-editor-dl{
  margin-top: 0;
}
.teacher-asset-editor-kind-pill{
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  background: #e0f2fe;
  color: #0c4a6e;
  border: 1px solid #bae6fd;
  max-width: 100%;
  word-break: break-word;
}
.teacher-asset-editor-outline-item--vocab .teacher-asset-editor-kind-pill{ background: #ecfdf3; color: #14532d; border-color: #86efac; }
.teacher-asset-editor-outline-item--dialogue .teacher-asset-editor-kind-pill{ background: #fff7ed; color: #9a3412; border-color: #fdba74; }
.teacher-asset-editor-outline-item--practice .teacher-asset-editor-kind-pill{ background: #eff6ff; color: #1e3a5f; border-color: #93c5fd; }
.teacher-asset-editor-outline-item--cover .teacher-asset-editor-kind-pill{ background: #f5f3ff; color: #5b21b6; border-color: #c4b5fd; }
.teacher-asset-editor-outline-item--notes{
  border-color: #d8b4fe;
  background: #faf5ff;
}
.teacher-asset-editor-outline-item--notes .teacher-asset-editor-kind-pill{
  background: #ede9fe;
  color: #4c1d95;
  border-color: #c4b5fd;
}
.teacher-asset-editor-outline-head{
  align-self: start;
}
.teacher-asset-editor-outline-body{
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.teacher-asset-editor-outline-item{
  display: grid;
  grid-template-columns: minmax(4.5rem, 5.5rem) 1fr;
  gap: 10px 12px;
  align-items: start;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}
.teacher-asset-editor-outline-en-wrap{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.teacher-asset-editor-en-toggle{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  margin: 0;
}
.teacher-asset-editor-en-toggle.is-disabled{ cursor: not-allowed; opacity: 0.6; }
.teacher-asset-editor-en-input{
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 24px;
  margin: 0;
  opacity: 0.001;
  cursor: pointer;
  z-index: 2;
}
.teacher-asset-editor-en-input:focus-visible + .teacher-asset-editor-en-track{
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}
.teacher-asset-editor-en-track{
  position: relative;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #e2e8f0;
  border: 1px solid #cbd5e1;
  flex: none;
  transition: background 0.12s ease;
}
.teacher-asset-editor-en-thumb{
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 1px #94a3b8;
  transition: transform 0.12s ease;
}
.teacher-asset-editor-en-input:checked + .teacher-asset-editor-en-track{
  background: #1d4ed8;
  border-color: #1d4ed8;
}
.teacher-asset-editor-en-input:checked + .teacher-asset-editor-en-track .teacher-asset-editor-en-thumb{
  transform: translateX(16px);
}
.teacher-asset-editor-en-state{
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}
.teacher-asset-editor-banner--warn{
  background: #fffbeb;
  border: 1px solid #fde68a;
  padding: 10px 12px;
  border-radius: 8px;
  color: #92400e;
  font-size: 13px;
}
.teacher-asset-editor-denied,
.teacher-asset-editor-empty{
  padding: 20px 18px;
  font-size: 14px;
  color: #475569;
  line-height: 1.6;
}
.teacher-asset-subline{
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
  line-height: 1.4;
  font-weight: 500;
}
.teacher-asset-note-chip{
  font-size: 12px;
  color: #94a3b8;
  font-weight: 600;
}
.teacher-asset-note-chip.has-note{
  color: #1d4ed8;
}

/* =========================================================
   Teacher listings / publishing console (#teacher-publishing)
   ========================================================= */
.lts0-page{
  padding-bottom: 48px;
}
.lts0-draft-source-hint{
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  max-width: 62ch;
}
.lts0-flow-note{
  margin: -6px 0 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  max-width: 62ch;
}
.lts0-cell-source{
  font-size: 13px;
  line-height: 1.45;
  color: #475569;
  max-width: 22rem;
}
.lts0-source-line{
  display: inline-block;
}
.lts0-source-stage{
  display: block;
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.4;
  color: #64748b;
  max-width: 22rem;
}
.lts0-classroom-asset-explain{
  display: block;
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #c4b5fd;
  background: #faf5ff;
  color: #1e1b4b;
  max-width: 28rem;
}
.lts0-classroom-asset-pill{
  display: inline-block;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 999px;
  background: #5b21b6;
  color: #fff;
  border: 1px solid #4c1d95;
}
.lts0-classroom-asset-skind{
  font-size: 11px;
  font-weight: 800;
  color: #6b21a8;
}
.lts0-classroom-asset-pillline{
  margin: 0 0 4px;
}
.lts0-classroom-asset-ttl{
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.35;
}
.lts0-classroom-asset-people,
.lts0-classroom-asset-ids,
.lts0-classroom-asset-crs{
  margin: 0 0 2px;
  font-size: 12px;
  line-height: 1.4;
  word-break: break-word;
}
.lts0-classroom-asset-ids code,
.lts0-classroom-asset-people code{
  font-size: 11px;
}
.lts0-hero .title{
  margin-bottom: 6px;
}
.lts0-hero-top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.lts0-hero-text{
  flex: 1 1 280px;
  min-width: 0;
}
.lts0-stage-note{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: #64748b;
  max-width: 62ch;
}
.lts0-stage-badge{
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 6px 12px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  border: 1px solid rgba(67, 56, 202, 0.25);
}
.lts0-actions-hub{
  margin-top: 14px;
}
.lts0-actions-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.lts0-panel{
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px 16px;
  background: #fafafa;
}
.lts0-panel--primary{
  border-color: #c7d2fe;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.lts0-panel--identity{
  background: #fff;
}
.lts0-panel--guide{
  background: #f8fafc;
}
.lts0-panel-title{
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.9);
}
.lts0-panel-desc{
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
}
.lts0-form-draft{
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: stretch;
}
.lts0-form-primary-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  align-items: end;
}
.lts0-form-draft label,
.lts0-form-primary-grid label,
.lts0-form-more-grid label{
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 650;
  color: #475569;
}
.lts0-form-draft input,
.lts0-form-draft select,
.lts0-form-primary-grid input,
.lts0-form-primary-grid select,
.lts0-form-more-grid input,
.lts0-form-more-grid select{
  font: inherit;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.lts0-form-more{
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  padding: 4px 10px 10px;
  background: #fafafa;
}
.lts0-form-more-summary{
  cursor: pointer;
  list-style: none;
  padding: 8px 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lts0-form-more-summary::-webkit-details-marker{
  display: none;
}
.lts0-form-more-title{
  font-size: 13px;
  font-weight: 800;
  color: #334155;
}
.lts0-form-more-hint{
  font-size: 12px;
  color: #94a3b8;
  font-weight: 600;
}
.lts0-form-more-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  align-items: end;
  padding: 0 4px 4px;
}
.lts0-form-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.lts0-btn{
  font-family: inherit;
  border-radius: 10px;
  padding: 8px 14px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  border: 1px solid rgba(15, 23, 42, 0.12);
  transition: opacity 0.15s ease, transform 0.12s ease;
}
.lts0-btn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.lts0-btn--primary{
  background: #4f46e5;
  color: #fff;
  border-color: #4338ca;
  justify-self: start;
}
.lts0-btn--primary:hover:not(:disabled){
  opacity: 0.92;
}
.lts0-btn--ghost{
  background: #fff;
  color: #334155;
}
.lts0-btn--ghost:hover:not(:disabled){
  background: #f8fafc;
}
.lts0-btn--reviewer{
  background: #d97706;
  color: #fff;
  border-color: #b45309;
}
.lts0-btn--reviewer:hover:not(:disabled){
  opacity: 0.92;
}
.lts0-btn--teacher{
  background: #0f172a;
  color: #f8fafc;
  font-size: 12px;
  padding: 6px 10px;
}
.lts0-identity-row{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}
.lts0-identity-select select{
  font: inherit;
  margin-left: 6px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.lts0-reviewer-hint{
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  padding: 8px 10px;
  border-radius: 8px;
}
.lts0-muted{
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #94a3b8;
}
.lts0-guide-list{
  margin: 8px 0 0;
  padding-left: 1.2rem;
  font-size: 13px;
  line-height: 1.55;
  color: #475569;
}
.lts0-guide-list li{
  margin: 4px 0;
}
.lts0-listing-main{
  margin-top: 16px;
  border: 2px solid #e0e7ff;
  box-shadow: 0 10px 28px rgba(79, 70, 229, 0.07);
}
.lts0-listing-main-title{
  margin: 0 0 6px;
  font-size: 1.25rem;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.92);
}
.lts0-listing-main-hint{
  margin: 0 0 14px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  max-width: 70ch;
}
.lts0-table-scroll{
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
.lts0-table-scroll--tight{
  margin-top: 10px;
}
.lts0-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.lts0-table th,
.lts0-table td{
  border: 1px solid #e2e8f0;
  padding: 8px 10px;
  text-align: left;
  vertical-align: middle;
}
.lts0-table th{
  background: #f8fafc;
  font-weight: 800;
  color: rgba(30, 41, 59, 0.88);
}
.lts0-th-actions,
.lts0-cell-actions{
  text-align: right;
  white-space: nowrap;
}
.lts0-cell-strong{
  font-weight: 650;
  color: #0f172a;
}
.lts0-list-empty-cell{
  padding: 0 !important;
  border-bottom: none;
}
.lts0-empty-in-table{
  padding: 28px 20px;
  text-align: center;
  background: #f8fafc;
}
.lts0-empty-in-table-title{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.9);
}
.lts0-empty-in-table-desc{
  margin: 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
}
.lts0-status-pill{
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  line-height: 1.3;
}
.lts0-status-pill--draft{
  background: #e2e8f0;
  color: #1e293b;
}
.lts0-status-pill--pending_review{
  background: #fef3c7;
  color: #92400e;
}
.lts0-status-pill--approved{
  background: #d1fae5;
  color: #065f46;
}
.lts0-status-pill--rejected{
  background: #fee2e2;
  color: #991b1b;
}
.lts0-status-pill--delisted{
  background: #f1f5f9;
  color: #475569;
}
.lts0-status-pill--archived{
  background: #ede9fe;
  color: #5b21b6;
}
.lts0-status-pill--unknown{
  background: #f1f5f9;
  color: #64748b;
}
.lts0-reviewer-zone{
  margin-top: 14px;
  background: linear-gradient(180deg, #fffbeb 0%, #ffffff 40%);
  border: 1px solid #fcd34d;
}
.lts0-reviewer-zone-title{
  margin: 12px 16px 4px;
  font-size: 1.1rem;
  font-weight: 900;
  color: #92400e;
}
.lts0-reviewer-zone-sub{
  margin: 0 16px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: #a16207;
}
.lts0-reviewer-panel-title{
  margin: 0 16px 4px;
  font-size: 14px;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.88);
}
.lts0-reviewer-panel-desc{
  margin: 0 16px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: #78716c;
}
.lts0-review-controls{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
  padding: 0 16px 16px;
}
.lts0-review-controls label{
  font-size: 12px;
}
.lts0-review-reason-text input{
  width: min(320px, 100%);
  min-width: 180px;
  font: inherit;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.lts0-secondary{
  margin-top: 12px;
  border-color: #e2e8f0;
}
.lts0-secondary-kicker{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #94a3b8;
  margin: 0 0 6px;
}
.lts0-banner-note{
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 8px 10px;
  border-radius: 8px;
  margin: 0 0 10px;
}
.lts0-secondary-title{
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 800;
  color: #334155;
}
.lts0-access-line{
  font-size: 13px;
  line-height: 1.55;
  color: #475569;
}
.lts0-profile-caption{
  font-size: 12px;
  color: #94a3b8;
  margin: 0 0 8px;
}
.lts0-order-note{
  margin: 0 0 10px;
  font-size: 12px;
  color: #64748b;
}
.lts0-grant-form{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
  margin-bottom: 10px;
}
.lts0-grant-form label{
  font-size: 12px;
}
.lts0-grant-form input,
.lts0-grant-form select{
  font: inherit;
  margin-left: 6px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.lts0-fold-secondary{
  margin-top: 16px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  background: #fcfcfd;
}
.lts0-fold-secondary-summary{
  cursor: pointer;
  list-style: none;
  padding: 14px 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 16px;
}
.lts0-fold-secondary-summary::-webkit-details-marker{
  display: none;
}
.lts0-fold-secondary-title{
  font-size: 15px;
  font-weight: 900;
  color: #334155;
}
.lts0-fold-secondary-hint{
  font-size: 13px;
  color: #64748b;
  font-weight: 650;
}
.lts0-fold-secondary-body{
  padding: 0 18px 8px;
  border-top: 1px solid #e2e8f0;
}
.lts0-secondary-chunk{
  padding: 14px 0;
  border-bottom: 1px solid #f1f5f9;
}
.lts0-secondary-chunk:last-child{
  border-bottom: none;
}
.lts0-chunk-title{
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
  color: #334155;
}
.lts0-chunk-banner{
  margin: 0 0 8px;
}

/* =========================================================
   Classroom · presentation / full screen (Lumina Step 3)
   仅作用于 .lumina-classroom-page 内，不污染全局
   ========================================================= */
.lumina-classroom-page.classroom-control-bar,
.lumina-classroom-page .classroom-control-bar{
  position: sticky;
  top: 0;
  z-index: 6;
  padding: 12px 0 14px;
  margin: 0 -6px 12px;
  padding-left: 6px;
  padding-right: 6px;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 62%);
  border-bottom: 1px solid #e2e8f0;
}
.lumina-classroom-page .classroom-control-kicker{
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.lumina-classroom-page .classroom-control-bar-row1{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  margin-bottom: 10px;
}
.lumina-classroom-page .classroom-topbar-ctrl{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.lumina-classroom-page .classroom-title-block{
  margin: 4px 0 8px;
}
.lumina-classroom-page .classroom-title--main{
  margin: 0;
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  line-height: 1.25;
}
.lumina-classroom-page .classroom-ctx-badge--teach{
  background: #ecfdf3;
  border-color: #86efac;
  color: #14532d;
}
.lumina-classroom-page .classroom-asset-ctx-meta{
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: #475569;
  font-weight: 650;
}
.lumina-classroom-page .classroom-asset-status-chip{
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  border: 1px solid #e2e8f0;
}
.lumina-classroom-page .classroom-asset-status-chip--draft{
  color: #1e3a5f;
  background: #eff6ff;
  border-color: #93c5fd;
}
.lumina-classroom-page .classroom-asset-status-chip--ready{
  color: #14532d;
  background: #ecfdf3;
  border-color: #86efac;
}
.lumina-classroom-page .classroom-asset-status-chip--archived{
  color: #57534e;
  background: #f5f5f4;
  border-color: #d6d3d1;
}
.lumina-classroom-page .classroom-asset-warn-title{
  margin: 0;
  font-weight: 800;
}

/* 工具栏 */
.lumina-classroom-page .classroom-toolbar-wrap{
  margin: 10px 0 16px;
}
.lumina-classroom-page .classroom-toolbar{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}
.lumina-classroom-page .classroom-toolbar-row--nav{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 12px;
}
.lumina-classroom-page .classroom-step-now{
  flex: 1 1 200px;
  min-width: 0;
  text-align: center;
  padding: 6px 10px;
  border-radius: 12px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}
.lumina-classroom-page .classroom-step-now-kicker{
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 2px;
}
.lumina-classroom-page .classroom-step-now-name{
  display: block;
  font-size: 1.1rem;
  font-weight: 900;
  color: #0f172a;
}
.lumina-classroom-page .classroom-step-now-idx{
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
}
.lumina-classroom-page .classroom-nav-btn--large{
  min-height: 44px;
  padding: 10px 16px;
  font-size: 15px;
  font-weight: 800;
  border-radius: 12px;
}
.lumina-classroom-page .classroom-toolbar-row--tabs{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}
.lumina-classroom-page .classroom-step-tabs{
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  min-width: min-content;
}
.lumina-classroom-page .classroom-step-btn{
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #fff;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
}
.lumina-classroom-page .classroom-step-btn.is-active{
  border-color: #4338ca;
  background: #eef2ff;
  color: #312e81;
  font-weight: 900;
}
.lumina-classroom-page .classroom-toolbar-row--view{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 16px;
}
.lumina-classroom-page .classroom-view-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}
.lumina-classroom-page .classroom-toolbar-muted{
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}
.lumina-classroom-page .classroom-ctrl-btn{
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  color: #1e293b;
}
.lumina-classroom-page .classroom-ctrl-btn--primary{
  border-color: #4338ca;
  background: #4338ca;
  color: #fff;
}
.lumina-classroom-page .classroom-ctrl-btn:hover{
  filter: brightness(0.98);
}
.lumina-classroom-page .classroom-keyboard-hint{
  margin: 0;
  flex: 1 1 220px;
  font-size: 12px;
  line-height: 1.45;
  color: #64748b;
  max-width: 42rem;
}
.lumina-classroom-page .classroom-keyboard-hint.is-compact{
  max-width: 28rem;
  font-size: 11px;
}

/* 全屏时工具条仍可见（相对视口 sticky 在 section 内） */
.lumina-classroom-page[data-classroom-fullscreen="1"] .classroom-toolbar-wrap,
.lumina-classroom-page[data-classroom-fullscreen="1"] .classroom-control-bar{
  position: relative;
  z-index: 5;
}

/* 展示模式：主内容加宽、弱化「后台」感 */
.lumina-classroom-page.lumina-classroom--presentation .classroom-teacher-ctx{
  max-width: min(100%, 52rem);
  padding: 8px 10px;
}
.lumina-classroom-page.lumina-classroom--presentation .classroom-ctx-line2{
  font-size: 12px;
  color: #64748b;
}
.lumina-classroom-page.lumina-classroom--presentation .classroom-stage{
  max-width: min(100%, 92rem);
  margin-left: auto;
  margin-right: auto;
}
.lumina-classroom-page.lumina-classroom--presentation .classroom-panel,
.lumina-classroom-page.lumina-classroom--presentation .classroom-scene-card{
  margin-bottom: 18px;
}
.lumina-classroom-page.lumina-classroom--presentation .classroom-control-kicker,
.lumina-classroom-page.lumina-classroom--presentation .classroom-topbar-actions .classroom-back-secondary{
  font-size: 12px;
}
.lumina-classroom-page.lumina-classroom--presentation .classroom-keyboard-hint{
  display: none;
}

/* 主舞台 */
.lumina-classroom-page .classroom-stage{
  max-width: min(100%, 72rem);
  margin: 0 auto;
  padding: 4px 4px 32px;
}
.lumina-classroom-page .classroom-panel{
  margin-bottom: 14px;
}

/* =========================================================
   Teacher · Step 4 资产发布、前台 listing 公开展示
   ========================================================= */
.teacher-publish-chips{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.teacher-publish-chip{
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}
.teacher-publish-chip--state{
  background: #eef2ff;
  color: #3730a3;
  border-color: #c7d2fe;
}
.teacher-asset-reject-hint{
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #9f1239;
  max-width: 32rem;
}
.teacher-asset-primary{
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid #4338ca;
  background: #4338ca;
  color: #fff;
  cursor: pointer;
}
.teacher-asset-primary:disabled{
  opacity: 0.5;
  cursor: not-allowed;
}
.teacher-asset-actions{
  min-width: 12rem;
}
.teacher-asset-muted{
  font-size: 12px;
  color: #64748b;
}
.teacher-listing-public-page{
  padding-bottom: 48px;
}
.teacher-listing-preview-banner{
  max-width: min(100%, 44rem);
  margin: 0 auto 14px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #c4b5fd;
  background: linear-gradient(135deg, #faf5ff 0%, #ffffff 100%);
  box-shadow: 0 1px 0 rgba(91, 33, 182, 0.06);
}
.teacher-listing-preview-banner-kicker{
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b21a8;
}
.teacher-listing-preview-banner-title{
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #4c1d95;
  line-height: 1.3;
}
.teacher-listing-preview-banner-lead,
.teacher-listing-preview-banner-context{
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
  max-width: 62ch;
}
.teacher-listing-preview-banner-go-public{
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
  color: #14532d;
  background: #ecfdf3;
  border: 1px solid #86efac;
  max-width: 62ch;
}
.teacher-listing-preview-facts{
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.45;
  color: #334155;
}
.teacher-listing-preview-facts li{
  margin: 0 0 2px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
}
.teacher-listing-preview-k{
  font-weight: 800;
  color: #64748b;
  min-width: 5.5em;
}
.teacher-listing-preview-v{
  font-weight: 700;
  color: #0f172a;
}
.teacher-listing-preview-nav{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
  align-items: center;
}
.teacher-listing-preview-nav-link{
  color: #1d4ed8;
  font-weight: 800;
  text-decoration: none;
}
.teacher-listing-preview-nav-link:hover{
  text-decoration: underline;
}
.teacher-listing-preview-nav-sep{
  color: #94a3b8;
  margin: 0 2px;
}
.teacher-listing-pill--preview{
  background: #ede9fe;
  border-color: #c4b5fd;
  color: #5b21b6;
  font-weight: 900;
}
.teacher-listing-pill--state{
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
}
.teacher-listing-preview-purchase-hint{
  font-size: 13px;
  line-height: 1.5;
  color: #5b21b6;
  margin: 0 0 8px;
  padding: 8px 10px;
  background: #f5f3ff;
  border-radius: 8px;
  border: 1px solid #e9d5ff;
  max-width: 52ch;
}
.teacher-listing-hero,
.teacher-listing-gate{
  max-width: min(100%, 44rem);
  margin: 0 auto;
}
.teacher-listing-gate{
  text-align: left;
}
.teacher-listing-gate-title{
  margin: 0 0 8px;
  font-size: 1.25rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-listing-gate-body{
  margin: 0;
  color: #475569;
  line-height: 1.55;
  font-size: 14px;
}
.teacher-listing-kicker{
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  margin: 0 0 6px;
}
.teacher-listing-title{
  margin: 0 0 10px;
  font-size: 1.5rem;
  line-height: 1.2;
  color: #0f172a;
}
.teacher-listing-hero--courseware{
  border: 1px solid #e9d5ff;
  background: linear-gradient(160deg, #ffffff 0%, #faf5ff 100%);
  box-shadow: 0 2px 16px rgba(91, 33, 182, 0.08);
  padding: 20px 18px;
}
.teacher-listing-subtitle{
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 650;
  color: #5b21b6;
  line-height: 1.45;
}
.teacher-listing-pill--tone{
  border-color: #c4b5fd;
  background: #f5f3ff;
  color: #4c1d95;
  font-weight: 800;
}
.teacher-listing-cover-note,
.teacher-listing-teacher-public-tease{
  font-size: 14px;
  line-height: 1.55;
  color: #334155;
  margin: 8px 0 0;
  padding: 8px 10px;
  background: #f8fafc;
  border-left: 3px solid #a78bfa;
  border-radius: 6px;
}
.teacher-listing-public-page .teacher-listing-about.teacher-listing-body-skeleton{
  border-color: #e2e8f0;
}
.teacher-asset-editor-section--publishing{
  border-color: #bfdbfe;
  background: #f0f9ff;
}
.teacher-asset-editor-publish-facts{
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #0f172a;
}
.teacher-asset-editor-publish-facts li{
  margin: 0 0 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}
.teacher-asset-editor-publish-k{
  font-weight: 800;
  color: #64748b;
  min-width: 5.5em;
}
.teacher-asset-editor-publish-v{
  font-weight: 700;
  color: #0f172a;
}
.teacher-asset-editor-publish-meta{
  margin: 0 0 10px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid #bae6fd;
}
.teacher-asset-editor-publish-meta-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 8px;
}
.teacher-asset-editor-publish-meta-row:last-child{
  margin-bottom: 0;
}
.teacher-asset-editor-publish-pills{
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.teacher-asset-editor-visibility-hint{
  margin: 0 0 14px;
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
}
.teacher-asset-editor-publish-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: center;
}
.teacher-asset-editor-publish-actions .teacher-hub-cta{
  margin-top: 0;
}
.teacher-asset-editor-publish-secondary{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.teacher-asset-editor-publish-link{
  font-size: 14px;
  font-weight: 750;
  color: #4338ca;
  text-decoration: none;
}
.teacher-asset-editor-publish-link:hover{
  text-decoration: underline;
}
.teacher-listing-owner-vis{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
}
.teacher-listing-owner-vis-text{
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: #14532d;
  flex: 1 1 12rem;
}
.teacher-listing-owner-vis .teacher-hub-cta{
  margin-top: 0;
}
.teacher-asset-pub-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  align-items: center;
}
.teacher-asset-pub-quick{
  margin: 8px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
}
.teacher-asset-pub-quick .teacher-asset-ghost{
  font-size: 12px;
}
.teacher-asset-pub-vis-btn--private{
  color: #9f1239 !important;
}
.teacher-asset-pub-vis-btn--private:not(:disabled):hover{
  text-decoration: underline;
}
.teacher-hub-cta--preview-listing{
  background: #5b21b6;
  border-color: #4c1d95;
  color: #fff;
}
.teacher-hub-cta--preview-listing:hover{
  filter: brightness(0.95);
}
.teacher-asset-link--preview{
  font-weight: 800;
  color: #5b21b6;
}
.teacher-asset-pub-row{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  align-items: center;
  margin: 0 0 4px;
}
.teacher-asset-visibility-pill{
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  padding: 1px 8px;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  color: #64748b;
  background: #f8fafc;
}
.teacher-asset-visibility-pill.is-pub{
  color: #14532d;
  border-color: #86efac;
  background: #ecfdf3;
}
.teacher-asset-visibility-pill.is-prv{
  color: #92400e;
  background: #fffbeb;
  border-color: #fde68a;
}
.teacher-asset-pub-aux{
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.45;
}
.teacher-listing-meta,
.teacher-listing-source-line,
.teacher-listing-asset-hint{
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
  margin: 0 0 8px;
}
.teacher-listing-sep{
  margin: 0 6px;
  color: #94a3b8;
}
.teacher-listing-desc{
  font-size: 15px;
  line-height: 1.6;
  color: #1e293b;
  margin: 12px 0;
}
.teacher-listing-cta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-top: 18px;
  align-items: center;
}
.teacher-listing-cta-fake{
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #64748b;
  cursor: not-allowed;
}
.lts0-classroom-asset-strip{
  margin-bottom: 14px;
  border: 1px solid #c7d2fe;
  background: #eef2ff;
}
.lts0-classroom-asset-strip-title{
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #1e1b4b;
}
.lts0-classroom-asset-strip-desc{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
}
.lts0-classroom-asset-strip-list{
  margin: 0;
  padding-left: 1.1rem;
  font-size: 13px;
  line-height: 1.55;
  color: #1e293b;
}
.lts0-classroom-asset-strip-item{
  margin-bottom: 4px;
}
.lts0-strip-id{
  font-weight: 800;
  font-size: 12px;
  color: #4338ca;
}

/* Step 5 — learner “我的内容 / 我的订单” + teacher sales + asset commerce */
.learner-my-page{
  padding-bottom: 48px;
}
.learner-my-hero{
  max-width: min(100%, 44rem);
  margin: 0 auto 14px;
}
.learner-my-title{
  margin: 0 0 6px;
  font-size: 1.35rem;
  font-weight: 900;
  color: #0f172a;
}
.learner-my-lead{
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
}
.learner-my-section{
  max-width: min(100%, 56rem);
  margin: 0 auto;
}
.learner-my-empty{
  margin: 0;
  color: #64748b;
  font-size: 14px;
}
.learner-my-table-wrap{
  overflow-x: auto;
}
.learner-my-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.learner-my-table th,
.learner-my-table td{
  border-bottom: 1px solid #e2e8f0;
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
}
.learner-my-table th{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  font-weight: 800;
}
.learner-my-link{
  color: #2563eb;
  font-weight: 750;
  text-decoration: none;
}
.learner-my-link:hover{
  text-decoration: underline;
}
.learner-my-quicklinks{
  margin: 14px 0 0;
  font-size: 14px;
}
.learner-my-quicksep{
  margin: 0 8px;
  color: #94a3b8;
}
.teacher-listing-price-card{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: baseline;
  margin: 12px 0 6px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: linear-gradient(135deg, #f8fafc, #fff);
}
.teacher-listing-price-label{
  font-size: 12px;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.teacher-listing-price-value{
  font-size: 1.15rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-listing-price-type{
  font-size: 13px;
  font-weight: 700;
  color: #475569;
}
.teacher-listing-owned-badge{
  margin: 10px 0 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
  color: #065f46;
  font-weight: 800;
  font-size: 13px;
}
.teacher-listing-toast-placeholder{
  margin: 8px 0 0;
  font-size: 13px;
  color: #047857;
  font-weight: 700;
}
.teacher-listing-sim-note{
  font-size: 12px;
  color: #64748b;
  display: block;
  margin-top: 4px;
}
.teacher-sales-overview{
  max-width: min(100%, 48rem);
  margin: 0 auto 14px;
}
.teacher-sales-title{
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-sales-lead{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
}
.teacher-sales-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.teacher-sales-chip{
  font-size: 13px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
}
.teacher-sales-chip strong{
  color: #0f172a;
}
.teacher-sales-pending{
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #94a3b8;
}
.teacher-manage-cell-commerce{
  min-width: 11rem;
  vertical-align: top;
  font-size: 13px;
}
.teacher-asset-commerce-summary{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.teacher-commerce-chip{
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}
.teacher-commerce-chip.is-pub{
  border-color: #6ee7b7;
  background: #ecfdf5;
  color: #047857;
}
.teacher-commerce-mini{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.teacher-commerce-pt{
  font: inherit;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #fff;
}
.teacher-commerce-amt{
  width: 6.5rem;
  font: inherit;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.teacher-commerce-save{
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
  cursor: pointer;
}
.teacher-commerce-save:hover{
  background: #dbeafe;
}
.teacher-commerce-na{
  color: #94a3b8;
  font-size: 12px;
}
.visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* --- Demo shell: 教师上架 / 审核台 拆分、课堂演示、商品详情骨架（作用域化） --- */
.teacher-subnav-row--wrap{
  flex-wrap: wrap;
  gap: 6px 10px;
}
.teacher-publishing .lts0-hero .lts0-stage-note,
.teacher-review .lts0-hero .lts0-stage-note{
  color: #64748b;
  font-size: 13px;
}
.lts0-public-detail-link{
  display: block;
  font-size: 12px;
  font-weight: 750;
  margin-bottom: 6px;
  color: #2563eb;
  text-decoration: none;
}
.lts0-public-detail-link:hover{
  text-decoration: underline;
}
.lts0-to-full-console-hint{
  text-align: center;
  font-size: 13px;
  color: #64748b;
  margin: 16px auto 0;
  max-width: 40rem;
}
.lts0-to-full-console-hint a{
  color: #2563eb;
  font-weight: 700;
}
.teacher-review-gate-card{
  max-width: 40rem;
  margin: 0 auto;
}
.teacher-review-gate-title{
  margin: 0 0 8px;
  font-size: 1.2rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-review-gate-body,
.teacher-review-gate-hint{
  color: #475569;
  line-height: 1.55;
  font-size: 14px;
  margin: 0 0 8px;
}
.teacher-review-gate-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.teacher-review-gate-actions--dev{
  margin-top: 8px;
}
.teacher-review-gate-dev{
  margin: 18px 0 0;
  padding-top: 14px;
  border-top: 1px solid #e2e8f0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
}
.teacher-review-reviewer-banner{
  margin-top: 12px;
  border: 1px solid #c7d2fe;
  background: linear-gradient(135deg, #eef2ff 0%, #f8fafc 100%);
}
.teacher-review-reviewer-kicker{
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #4338ca;
}
.teacher-review-reviewer-banner-title{
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 900;
  color: #1e1b4b;
}
.teacher-review-reviewer-lead{
  margin: 0 0 10px;
  font-size: 14px;
  color: #334155;
  line-height: 1.5;
  max-width: 60ch;
}
.teacher-review-reviewer-caps{
  margin: 0 0 12px;
  padding-left: 1.2em;
  color: #0f172a;
  font-size: 14px;
  line-height: 1.55;
}
.teacher-review-reviewer-manual{
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #e2e8f0;
  font-size: 13px;
  color: #475569;
  line-height: 1.45;
}
.teacher-review-reviewer-ai{
  margin: 10px 0 0;
  font-size: 12px;
  color: #64748b;
  line-height: 1.45;
  max-width: 58ch;
}
.teacher-review-log-main{
  max-width: min(100%, 56rem);
  margin: 14px auto 0;
}
.teacher-review-log-main-title{
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0f172a;
}

.teacher-listing-detail .teacher-listing-gate--product{
  max-width: 40rem;
  margin: 0 auto;
  text-align: left;
}
.teacher-listing-gate-actions{
  margin-top: 16px;
}
.teacher-listing-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 10px 0 8px;
}
.teacher-listing-pill{
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
}
.teacher-listing-pill--ok{
  background: #ecfdf5;
  border-color: #6ee7b7;
  color: #047857;
}
.teacher-listing-body-skeleton{
  max-width: min(100%, 44rem);
  margin: 16px auto 0;
}
.teacher-listing-body-title{
  margin: 0 0 12px;
  font-size: 1.1rem;
  font-weight: 900;
  color: #0f172a;
}
.teacher-listing-dl{
  margin: 0;
  padding: 0;
}
.teacher-listing-dl-row{
  display: grid;
  grid-template-columns: min(10rem, 32%) 1fr;
  gap: 8px 16px;
  padding: 10px 0;
  border-bottom: 1px solid #e2e8f0;
  font-size: 14px;
}
.teacher-listing-dl dt{
  margin: 0;
  color: #64748b;
  font-weight: 800;
}
.teacher-listing-dl dd{
  margin: 0;
  color: #1e293b;
  line-height: 1.5;
}
.teacher-listing-coming-soon{
  margin: 16px 0 0;
  font-size: 13px;
  color: #94a3b8;
  line-height: 1.5;
}
.teacher-tile .teacher-hub-cta + .teacher-hub-cta{
  margin-top: 8px;
  display: inline-flex;
}

/* 课堂：演示模式减噪、键盘提示弱 / 藏 */
.lumina-classroom-page[data-presentation="1"] .classroom-teacher-ctx{
  display: none;
}
.lumina-classroom-page[data-presentation="1"] .classroom-ctx-line2--meta{
  display: none;
}
.lumina-classroom-page[data-presentation="1"] .classroom-asset-ctx-kicker{
  font-size: 10px;
  opacity: 0.75;
}
.lumina-classroom-page .classroom-topbar-ctrl .classroom-ctrl-btn{
  min-height: 40px;
  padding: 8px 14px;
  font-weight: 800;
}
.lumina-classroom-page .classroom-title--main{
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
}
.lumina-classroom-page .classroom-control-bar{
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 12px;
  margin-bottom: 8px;
  background: linear-gradient(180deg, #fff, #f8fafc);
  border-radius: 0 0 12px 12px;
}
.classroom-toolbar--presentation .classroom-keyboard-hint,
.classroom-toolbar--presentation-inner .classroom-keyboard-hint{
  display: none;
}
.lumina-classroom-page .classroom-toolbar--presentation,
.lumina-classroom-page .classroom-toolbar--presentation-inner{
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 8px 6px 10px;
  box-shadow: 0 4px 18px rgba(2,6,23,.05);
}
.lumina-classroom-page .classroom-stage{
  min-height: 42vh;
}

/* —— 最小账号：登录 / 注册 —— */
.auth-page{
  max-width: 720px;
  margin: 0 auto;
  padding: 20px 16px 48px;
}
.auth-card{
  border-radius: var(--radius);
  padding: 22px 20px 24px;
  box-shadow: var(--shadow-sm);
}
.auth-title{
  margin: 0 0 8px;
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.auth-brand-kicker{
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 900;
  color: var(--brand, #2563eb);
  letter-spacing: -0.02em;
}
.auth-brand-sub{
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--muted, #64748b);
}
.auth-lead{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}
.auth-prod-notice{
  margin: 0 0 14px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 12px;
}
.auth-form{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.auth-field{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.auth-label{
  font-size: 12px;
  font-weight: 800;
  color: #64748b;
}
.auth-form input,
.auth-form textarea,
.auth-form select,
.teacher-profile-form input,
.teacher-profile-form textarea{
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 15px;
  background: #fff;
}
.teacher-profile-form select{
  width: 100%;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 15px;
  background: #fff;
  cursor: pointer;
}
.auth-form select{
  cursor: pointer;
}
.lumina-teacher-apply--r2 .teacher-apply__section{
  margin: 0 0 22px;
}
.lumina-teacher-apply--r2 .teacher-apply__h2{
  margin: 0 0 10px;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.lumina-teacher-apply--r2 .teacher-apply__static{
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 0 0 10px;
}
.lumina-teacher-apply--r2 .teacher-apply__static-p{
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
}
.lumina-teacher-apply--r2 .teacher-apply__ack-row{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
}
.lumina-teacher-apply--r2 .teacher-apply__ack-row input{
  flex-shrink: 0;
  margin: 0.2em 0 0;
  width: auto;
}
.lumina-teacher-apply--r2 .teacher-apply__input-readonly{
  background: #f1f5f9;
  color: #334155;
  cursor: default;
}
.lumina-teacher-apply--r2 .teacher-apply__field-hint{
  margin: 4px 0 0;
  font-size: 12px;
  color: #64748b;
  line-height: 1.45;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-lead{
  margin: 0 0 8px;
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-list{
  margin: 0 0 12px;
  padding-left: 1.1rem;
  color: #475569;
  font-size: 13px;
  line-height: 1.5;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-list li{
  margin-bottom: 4px;
}
.lumina-teacher-apply--r2 .teacher-apply__identity-lead{
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.55;
  color: #475569;
}
.lumina-teacher-apply--r2 .teacher-apply__phone-send-row{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
}
.lumina-teacher-apply--r2 .teacher-apply__phone-send-row input{
  flex: 1 1 180px;
  min-width: 0;
}
.lumina-teacher-apply--r2 .teacher-apply__phone-send-row .auth-submit{
  flex: 0 0 auto;
  margin-top: 0;
  align-self: center;
  padding: 10px 14px;
}
.lumina-teacher-apply--r2 .teacher-apply__otp-banner{
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  font-size: 13px;
  font-weight: 700;
  color: #166534;
  line-height: 1.45;
  word-break: break-word;
}
.lumina-teacher-apply--r2 .teacher-apply__verify-ok{
  margin: -4px 0 0;
  font-size: 13px;
  font-weight: 800;
  color: var(--brand, #2563eb);
}
.lumina-teacher-apply--r2 .teacher-apply__cred-row{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-row:last-of-type{
  border-bottom: 0;
  margin-bottom: 8px;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-check{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.45;
  color: #334155;
  cursor: pointer;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-check input{
  flex-shrink: 0;
  margin-top: 0.25em;
  width: auto;
}
.lumina-teacher-apply--r2 .teacher-apply__cred-upload{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding-left: 28px;
}
.lumina-teacher-apply--r2 .teacher-apply__file-native{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
}
.lumina-teacher-apply--r2 .teacher-apply__file-btn{
  margin-top: 0;
  flex-shrink: 0;
}
.lumina-teacher-apply--r2 .teacher-apply__file-picked{
  font-size: 12px;
  color: #64748b;
  max-width: 100%;
  word-break: break-word;
}
.lumina-teacher-apply--r2 .teacher-apply__ack--final{
  margin: 4px 0 10px;
}
.teacher-profile-textarea{
  resize: vertical;
  min-height: 96px;
}
.teacher-profile-preserve-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}
.teacher-credential-commerce-block{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}
.teacher-intro-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.auth-submit,
.teacher-profile-save{
  margin-top: 4px;
  border: 0;
  border-radius: 14px;
  padding: 12px 16px;
  font-weight: 900;
  font-size: 15px;
  cursor: pointer;
  background: linear-gradient(180deg, var(--brand) 0%, var(--brand-2) 100%);
  color: #fff;
  box-shadow: 0 8px 22px rgba(37, 99, 235, 0.22);
}
.auth-submit--secondary,
#tpSubmit.auth-submit--secondary{
  background: #f1f5f9;
  color: #0f172a;
  box-shadow: none;
  border: 1px solid #e2e8f0;
}
.auth-submit:disabled,
.teacher-profile-save:disabled,
#tpSubmit:disabled{
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}
/* withButtonLock: request in-flight (see ui/lumina-commerce/uiAsync.js) */
.auth-submit[data-busy="1"],
.teacher-profile-save[data-busy="1"],
#tpSubmit[data-busy="1"],
.teacher-cred-remove[data-busy="1"]{
  cursor: progress;
}
.auth-error,
.auth-toast{
  color: #b91c1c;
  font-size: 13px;
  font-weight: 700;
  margin: 0;
}
.auth-toast[hidden]{
  display: none;
}
.auth-footer{
  margin: 16px 0 0;
  text-align: center;
  font-size: 14px;
}
.auth-link{
  color: var(--brand);
  font-weight: 800;
  text-decoration: none;
}
.auth-link:hover{
  text-decoration: underline;
}
.auth-field--check{
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
}
.auth-field--check input{
  width: auto;
  margin-top: 3px;
}
.auth-label-inline{
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  line-height: 1.4;
}
.lumina-onboarding__head{
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 8px;
}
.lumina-onboarding__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: 720px;
  margin: 0 auto;
}
@media (min-width: 700px){
  .lumina-onboarding__grid{
    grid-template-columns: 1fr 1fr;
  }
}
.lumina-onboarding__grid--single{
  grid-template-columns: 1fr !important;
  max-width: 420px;
}
.learner-my-shortcut{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(37,99,235,.14);
  background: rgba(37,99,235,.10);
  color: #2563eb;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: background .15s ease, transform .15s ease;
}
.learner-my-shortcut:hover{
  background: rgba(37,99,235,.16);
  transform: translateY(-1px);
}
.lumina-onboarding__card{
  padding: 20px 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 14rem;
}
.lumina-onboarding__card-title{
  margin: 0;
  font-size: 1.1rem;
  font-weight: 900;
}
.lumina-onboarding__card-desc,
.lumina-onboarding__hint{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
  flex: 1;
}
.lumina-onboarding__hint{
  font-size: 12px;
  opacity: 0.9;
}
.lumina-teacher-apply__tip{
  font-size: 13px;
  color: #64748b;
  margin: 0 0 12px;
  line-height: 1.5;
}
.lumina-teacher-apply__bullets{
  margin: 0 0 14px;
  padding-left: 1.1rem;
  color: #475569;
  font-size: 14px;
  line-height: 1.55;
}
.lumina-teacher-apply__bullets li{
  margin-bottom: 4px;
}
.lumina-dev-btns{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 4px 0 8px;
}
.teacher-apply__types{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.teacher-apply__check{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
}
.teacher-apply__check input{ margin-top: 3px; }
.teacher-apply__radio{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.role-pill{
  display: inline-block;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-radius: 999px;
  padding: 4px 10px;
  margin: 0 0 8px;
}
.role-pill--pending{
  background: rgba(245, 158, 11, 0.15);
  color: #b45309;
}
.role-pill--rejected{
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}
.role-pill--ok{
  background: rgba(34, 197, 94, 0.15);
  color: #15803d;
}
.teacher-lumina-home__hero,
.teacher-lumina-guide{
  margin-bottom: 14px;
}
.teacher-lumina-home__h1,
.teacher-lumina-guide__h1{
  margin: 0 0 8px;
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.teacher-lumina-home__lead,
.teacher-lumina-guide__lead{
  margin: 0 0 8px;
  color: var(--muted);
  line-height: 1.55;
  font-size: 14px;
}
.teacher-lumina-home__badge{ margin: 4px 0 8px; }
.teacher-lumina-home__top-actions{ margin: 0; }
.teacher-lumina-home__hero--slim{
  padding: 12px 14px 14px;
}
.teacher-lumina-home__kicker{
  margin: 0 0 4px;
  font-size: 12px;
}
.teacher-lumina-home__lead--one{
  margin: 0 0 6px;
  color: var(--muted);
  line-height: 1.45;
  font-size: 14px;
}
.teacher-lumina-home__head-cta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-top: 4px;
}
.teacher-lumina-wf-card .teacher-hub-cta--card{
  margin-top: auto;
  align-self: flex-start;
}
.teacher-lumina-wf-card__row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0;
}
.teacher-lumina-inline-link{
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: #2563eb;
}
.teacher-lumina-wf-card--muted .teacher-lumina-soon{ margin: 0; }
.teacher-lumina-next--tight{
  margin-bottom: 8px;
  padding: 10px 12px 12px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.teacher-lumina-next--tight .teacher-lumina-next__title{
  margin: 0 0 6px;
  font-size: 0.85rem;
  font-weight: 800;
  color: #64748b;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.teacher-lumina-next__steps--short{
  list-style: decimal;
  margin: 0;
  padding-left: 1.1rem;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
}
.teacher-lumina-next__steps--short li{ margin-bottom: 2px; }
.teacher-lumina-more{
  margin-bottom: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fafbfc;
  overflow: hidden;
}
.teacher-lumina-more__summary{
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  cursor: pointer;
  font-size: 14px;
  color: #475569;
}
.teacher-lumina-more__summary::-webkit-details-marker{ display: none; }
.teacher-lumina-more__summary::marker{ content: ""; }
.teacher-lumina-more__summary-text{
  font-weight: 800;
  color: #334155;
}
.teacher-lumina-more__summary-hint{
  font-size: 12px;
  color: #94a3b8;
  font-weight: 500;
}
.teacher-lumina-more[open] .teacher-lumina-more__summary{
  border-bottom: 1px solid #e2e8f0;
  background: #f1f5f9;
}
.teacher-lumina-more__body{
  padding: 10px 10px 12px;
  background: #fff;
}
.teacher-lumina-more__body .card{
  background: #fafbfc;
}
.teacher-lumina-more-identity{ padding: 12px 14px; }
.teacher-lumina-more-identity__h{
  margin: 0 0 8px;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
}
.teacher-lumina-more-identity__p{
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.5;
  color: #475569;
}
.teacher-lumina-more-identity__k{ color: #94a3b8; margin-right: 6px; }
.teacher-lumina-more-identity__v{ font-weight: 700; color: #334155; margin-right: 6px; }
.teacher-lumina-wf-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 14px;
}
@media (min-width: 700px){
  .teacher-lumina-wf-grid{ grid-template-columns: 1fr 1fr; }
}
.teacher-lumina-wf-grid--4{
  margin-bottom: 0;
}
@media (min-width: 900px){
  .teacher-lumina-wf-grid--4{ grid-template-columns: repeat(2, 1fr); }
}
.teacher-lumina-wf-card{
  padding: 16px 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 7.5rem;
}
.teacher-lumina-wf-card--muted{
  opacity: 0.92;
  border-style: dashed;
}
.teacher-lumina-wf-card__h{
  margin: 0;
  font-size: 1rem;
  font-weight: 900;
}
.teacher-lumina-wf-card__d{
  margin: 0;
  flex: 1;
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}
.teacher-lumina-soon{
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  color: #64748b;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  align-self: flex-start;
}
.teacher-lumina-next{ margin-bottom: 12px; }
.teacher-lumina-next__steps{
  margin: 0;
  padding-left: 1.2rem;
  color: #475569;
  font-size: 14px;
  line-height: 1.6;
}
.teacher-lumina-next__steps li{ margin-bottom: 6px; }
.teacher-lumina-next__i{
  display: inline-flex;
  width: 1.4rem;
  height: 1.4rem;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  margin-right: 6px;
}
.teacher-lumina-footnote{ margin-bottom: 16px; }
.teacher-lumina-footnote__p{ margin: 0; font-size: 13px; color: #64748b; line-height: 1.5; }
.teacher-lumina-guide__state{ font-size: 14px; margin: 8px 0 14px; }
.teacher-lumina-guide__mute{ color: #64748b; }
.teacher-lumina-guide__hint{ font-size: 13px; color: #64748b; }
.teacher-lumina-guide__cta{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.teacher-lumina-cap{ padding: 12px 12px; min-height: 0; }
.teacher-lumina-cap__t{ margin: 0; font-size: 13px; line-height: 1.45; color: #334155; }
.teacher-lumina-entry .teacher-lumina-guide{ margin-bottom: 0; }
.lumina-teacher-status__meta{
  font-size: 13px;
  color: #64748b;
  margin: 0 0 8px;
}
.lumina-teacher-status__actions{
  margin-top: 12px;
}
.lumina-teacher-status__dev{
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px dashed #e2e8f0;
}

/* 老师档案页 */
.teacher-profile-page .teacher-profile-hero{
  margin-bottom: 16px;
}
.teacher-profile-title{
  margin: 0 0 8px;
  font-size: 1.25rem;
  font-weight: 900;
}
.teacher-profile-status{
  margin: 0;
  color: #64748b;
  font-size: 14px;
}
.teacher-profile-locked{
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #854d0e;
  font-size: 14px;
  line-height: 1.5;
}
.teacher-profile-locked a{
  font-weight: 800;
  color: var(--brand);
}
.teacher-profile-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}
.teacher-profile-back{
  margin: 20px 0 0;
  text-align: center;
  font-size: 14px;
}
.teacher-profile-back a{
  font-weight: 800;
  color: var(--brand);
  text-decoration: none;
}
.teacher-profile-form--readonly{
  opacity: 0.92;
}

/* 教师门卡：未登录等 */
.teacher-gate--guest .teacher-hero,
.teacher-gate{
  border-radius: var(--radius);
}
.teacher-migration-hint{
  margin: 16px 0 8px;
  font-size: 13px;
  line-height: 1.5;
  color: #7c2d12;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  padding: 10px 12px;
}
.teacher-identity-gate-cta--dev{
  margin-top: 8px;
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
}
.teacher-identity-gate-cta--dev:hover{
  background: #e2e8f0;
}
.teacher-takeover-sub{
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
}
.my-content-empty,
.my-orders-empty{
  max-width: 40rem;
  line-height: 1.6;
}
.teacher-gate-auth-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.teacher-gate-cta-row{
  margin: 12px 0 0;
}
.teacher-gate-pending-hint{
  margin: 10px 0 0;
  font-size: 14px;
  color: #854d0e;
  line-height: 1.5;
}
.teacher-gate-draft-hint,
.teacher-gate-pending-ability{
  margin: 10px 0 0;
  font-size: 14px;
  color: #475569;
  line-height: 1.55;
}
.teacher-gate-submitted-line{
  margin: 10px 0 0;
  font-size: 14px;
  color: #0f172a;
}
.teacher-profile-meta-line{
  margin: 6px 0 0;
  font-size: 13px;
  color: #64748b;
}
.teacher-profile-section-title{
  margin: 0 0 14px;
  font-size: 1.05rem;
  font-weight: 900;
}
.teacher-profile-section-title--sub{
  margin-top: 20px;
}
.teacher-profile-shell-form{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.teacher-profile-fieldset{
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.teacher-profile-fieldset:disabled .teacher-profile-check,
.teacher-profile-fieldset:disabled label{
  cursor: not-allowed;
}
.teacher-profile-card--below{
  margin-top: 0;
}
.teacher-personal-card{
  margin-bottom: 0;
}
.teacher-personal-grid{
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.teacher-profile-input{
  width: 100%;
}
.teacher-reg-card{
  margin: 0 0 18px;
}
.teacher-reg-lead{
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
}
.teacher-reg-grid{
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.teacher-reg-age{
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}
.teacher-reg-cred-box{
  margin: 16px 0 12px;
}
.teacher-reg-subtitle{
  margin: 0 0 8px;
  font-size: 0.9rem;
  font-weight: 800;
  color: #334155;
}
.teacher-reg-cred-ul{
  margin: 0;
  padding-left: 1.1rem;
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
}
.teacher-reg-muted{
  margin: 0;
}
.teacher-reg-muted-inline{
  font-size: inherit;
  color: #94a3b8;
}
.teacher-reg-hint{
  margin: 10px 0 10px;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
}
.teacher-reg-mini{
  margin: 0 0 10px;
  font-size: 13px;
  color: #475569;
}
.teacher-reg-otp{
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.teacher-reg-intro-pre{
  margin: 10px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f1f5f9;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 13px;
  line-height: 1.5;
  color: #334155;
}
.teacher-reg-actions-row{
  margin: 12px 0 0;
}
.teacher-reg-ok{
  margin: 10px 0 4px;
  font-size: 14px;
  font-weight: 800;
  color: var(--brand, #2563eb);
}
.teacher-profile-checkgroup{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  row-gap: 10px;
}
.teacher-profile-check{
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}
.teacher-profile-check input[type="checkbox"]{
  flex-shrink: 0;
  width: auto;
  margin: 0;
}
.teacher-profile-optional{
  font-weight: 600;
  color: #94a3b8;
}
.teacher-credential-hint{
  font-size: 13px;
  color: #64748b;
  margin: 0 0 12px;
}
.teacher-credential-empty{
  margin: 0;
  padding: 12px;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  color: #64748b;
  font-size: 14px;
}
.teacher-credential-list{
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.teacher-credential-card{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
}
.teacher-credential-card-main{
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: #334155;
}
.teacher-credential-title{
  font-weight: 900;
  font-size: 15px;
  color: #0f172a;
}
.teacher-credential-meta,
.teacher-credential-file,
.teacher-credential-time{
  font-size: 12px;
  color: #64748b;
}
.teacher-credential-add{
  margin-top: 8px;
}
.teacher-credential-add-title{
  margin: 0 0 10px;
  font-size: 0.95rem;
  font-weight: 800;
}
.teacher-credential-add-form .teacher-profile-cred-file-native{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
}
.teacher-credential-add-form .teacher-cred-upload-field{
  position: relative;
}
.teacher-credential-add-form .teacher-cred-file-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.teacher-credential-add-form .teacher-cred-file-picked{
  font-size: 13px;
  color: #475569;
  word-break: break-word;
}
.teacher-credential-add-form .teacher-cred-file-hint{
  margin: 8px 0 0;
  font-size: 12px;
  color: #64748b;
  line-height: 1.45;
}
.teacher-profile-reject-banner{
  border: 1px solid #fecaca;
  background: #fef2f2;
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 14px;
}
.teacher-profile-reject-title{
  margin: 0 0 6px;
  font-weight: 900;
  color: #991b1b;
}
.teacher-profile-reject-body{
  margin: 0 0 8px;
  color: #7f1d1d;
  font-size: 14px;
}
.teacher-profile-reject-reason{
  margin: 0;
  font-size: 14px;
  color: #450a0a;
}
.teacher-workbench-profile-link{
  margin: 12px 0 0;
}

/* 审核台：老师档案分区 */
.teacher-review-profiles{
  border: 2px solid rgba(37,99,235,0.18);
  background: linear-gradient(180deg, #f8fafc 0%, #fff 40%);
}
.teacher-review-profiles-h2{
  margin: 0 0 8px;
  font-size: 1.15rem;
  font-weight: 900;
}
.teacher-review-profiles-lead{
  margin: 0 0 16px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.55;
}
.teacher-review-profiles-h3{
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 800;
}
.teacher-review-profiles-empty{
  margin: 0;
  padding: 14px;
  background: #f1f5f9;
  border-radius: 12px;
  color: #475569;
  font-size: 14px;
}
.teacher-review-tp-list{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.teacher-review-tp-list--compact .teacher-review-tp-card{
  opacity: 0.95;
}
.teacher-review-tp-card{
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 14px 16px;
  background: #fff;
}
.teacher-review-tp-card-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.teacher-review-tp-name{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 900;
}
.teacher-review-tp-pill{
  font-size: 11px;
  font-weight: 900;
  padding: 4px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #0f172a;
}
.teacher-review-tp-pill--pending{
  background: #fef3c7;
  color: #92400e;
}
.teacher-review-tp-pill--approved{
  background: #d1fae5;
  color: #065f46;
}
.teacher-review-tp-pill--rejected{
  background: #fee2e2;
  color: #991b1b;
}
.teacher-review-tp-ids{
  margin: 0 0 8px;
  font-size: 12px;
  color: #64748b;
}
.teacher-review-tp-summary{
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
}
.teacher-review-tp-meta{
  margin: 0;
  padding: 0 0 0 18px;
  font-size: 13px;
  color: #475569;
}
.teacher-review-tp-actions{
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.teacher-review-tp-reject{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
}
.teacher-review-tp-reject-lab{
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
}
.teacher-review-tp-reject input{
  min-width: min(100%, 220px);
  padding: 8px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
.teacher-review-tp-past-title{
  margin: 20px 0 10px;
  font-size: 0.95rem;
  font-weight: 800;
  color: #64748b;
}
.lts0-listing-section-sep{
  border: 1px solid #e0e7ff;
  background: #fafbff;
}
.lts0-listing-sep-title{
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 900;
  color: #312e81;
}
.lts0-listing-sep-desc{
  margin: 0;
  font-size: 13px;
  color: #64748b;
}

/* ===== Dictionary page + stroke 字典摘要 (#dictionary, #stroke digest) ===== */
.hanjadari-dictionary .dict-search-form {
  margin: 0;
}
.hanjadari-dictionary .dict-search-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.hanjadari-dictionary .dictionary-search-wrap {
  position: relative;
  z-index: 80;
  overflow: visible;
  flex: 1 1 220px;
  min-width: 180px;
}
.hanjadari-dictionary .dictionary-search-wrap .dict-input {
  flex: none;
  width: 100%;
  box-sizing: border-box;
}
.hanjadari-dictionary .dict-input {
  flex: 1 1 220px;
  min-width: 180px;
  padding: 10px 12px;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 12px;
  font-size: 16px;
  background: #fff;
}
.hanjadari-dictionary .btn {
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid var(--line, #e2e8f0);
  background: #fff;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: transform 0.15s, box-shadow 0.15s;
}
.hanjadari-dictionary .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}
.hanjadari-dictionary .btn.primary {
  border-color: transparent;
  background: var(--brand, #2563eb);
  color: #fff;
}
.hanjadari-dictionary .btn.primary:hover {
  background: var(--brand-2, #1d4ed8);
  color: #fff;
}

/* 单字学习卡片：结果区不再套一层内边距，由 .dictionary-entry-card 承担 */
.hanjadari-dictionary .card .inner#dict-result-area {
  padding: 0;
}

.dictionary-entry-card {
  background: #fff;
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
}
@media (max-width: 640px) {
  .dictionary-entry-card {
    padding: 22px 18px;
    border-radius: 18px;
  }
}
.dictionary-entry-head {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin: 0 0 24px;
  flex-wrap: wrap;
}
.dictionary-entry-char {
  font-size: 56px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1;
  font-family: "KaiTi", "STKaiti", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
}
.dictionary-entry-pinyin {
  font-size: 24px;
  font-weight: 800;
  color: #64748b;
}
.dictionary-entry-missing {
  margin: 0 0 20px;
  font-size: 15px;
  line-height: 1.5;
}
.dictionary-main-meaning {
  margin: 0 0 0.25em;
  font-size: 20px;
  line-height: 1.75;
  color: #0f172a;
}
.dictionary-cn-explanation {
  margin-top: 10px;
  font-size: 18px;
  line-height: 1.75;
  color: #334155;
}
.dictionary-learning-note {
  margin-top: 20px;
  padding: 16px 18px;
  border-radius: 18px;
  background: #f8fafc;
  color: #334155;
  line-height: 1.7;
  font-size: 16px;
}
.dictionary-section-title {
  margin: 28px 0 12px;
  font-size: 18px;
  font-weight: 800;
  color: #0f172a;
}
.dictionary-cw-list {
  margin: 0;
  padding: 0 0 0 1.15em;
  list-style: disc;
}
.dictionary-cw-list .dict-cw-line {
  margin: 8px 0;
  line-height: 1.55;
  font-size: 17px;
  color: #0f172a;
}
.dictionary-cw-list .dict-cw-py {
  opacity: 0.8;
  font-size: 0.92em;
  font-weight: 600;
  margin: 0 0.2em;
}
.dictionary-stroke-section {
  margin-top: 8px;
}
.dictionary-stroke-section .dictionary-section-title {
  margin-top: 24px;
}
.dictionary-stroke-status {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.5;
  color: #334155;
}
.dictionary-stroke-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* 词语卡片 */
.dictionary-word-head .dictionary-entry-word {
  font-size: clamp(32px, 7.5vw, 56px);
  font-weight: 900;
  color: #0f172a;
  line-height: 1.05;
  font-family: "KaiTi", "STKaiti", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
}
.dictionary-word-head {
  flex-wrap: wrap;
}
.dictionary-traditional-row {
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 1.5;
  color: #64748b;
}
.dictionary-traditional-label {
  font-weight: 800;
  color: #64748b;
}
.dictionary-example-block {
  margin-top: 0;
}
.dictionary-example-cn {
  margin: 0 0 6px;
  font-size: 18px;
  line-height: 1.7;
  color: #0f172a;
}
.dictionary-example-pinyin {
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.5;
  color: #64748b;
  letter-spacing: 0.02em;
}
.dictionary-example-tr {
  margin: 0;
  font-size: 17px;
  line-height: 1.65;
  color: #334155;
}
.dictionary-entry-card--word .dictionary-section-title:first-of-type {
  margin-top: 20px;
}
.dictionary-back-link {
  display: inline-flex;
  align-items: center;
  margin-bottom: 18px;
  color: #2563eb;
  font-weight: 700;
  text-decoration: none;
  font-size: 15px;
}
.dictionary-back-link:hover {
  text-decoration: underline;
}
.dictionary-component-char-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.dictionary-component-char-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 14px;
  background: #fff;
}
.dictionary-component-char-main {
  font-size: 24px;
  font-weight: 900;
  min-width: 36px;
  line-height: 1;
  font-family: "KaiTi", "STKaiti", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
  color: #0f172a;
}
.dictionary-component-char-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-left: auto;
}
.dictionary-component-sep {
  color: #94a3b8;
  font-size: 12px;
  user-select: none;
}
a.dictionary-component-link {
  font-size: 13px;
  font-weight: 700;
  color: #2563eb;
  text-decoration: none;
}
a.dictionary-component-link:hover {
  text-decoration: underline;
}

/* #stroke 笔顺页：轻量字典摘要 */
.stroke-dict-backword {
  margin-bottom: 8px;
}
.stroke-dict-backword .dictionary-back-link {
  margin-bottom: 0;
  font-size: 14px;
}
.stroke-dict-digest {
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
}
.stroke-dict-digest[hidden] {
  display: none !important;
}
.stroke-dict-digest--compact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
}
.stroke-dict-topline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  font-weight: 800;
  line-height: 1.2;
}
.stroke-dict-ch {
  font-size: 1.4rem;
  line-height: 1;
  font-family: "KaiTi", "STKaiti", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
  color: #0f172a;
}
.stroke-dict-py {
  color: #64748b;
  font-weight: 600;
  font-size: 0.95rem;
}
.stroke-dict-meaning-line {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
  max-width: 100%;
}
.stroke-dict-more {
  display: inline-block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--brand, #2563eb);
  text-decoration: none;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}
.stroke-dict-more:hover {
  text-decoration: underline;
}
.stroke-dict-digest--empty .stroke-dict-meaning-line {
  font-size: 13px;
}
.stroke-dict-digest-skel {
  font-size: 13px;
  margin: 0;
}

/* #stroke 工具页：HSK 命中卡片（仅 .hanjadari-stroke 内，见 page.stroke.js） */
.hanjadari-stroke .stroke-meaning-status {
  opacity: 0.65;
}
.hanjadari-stroke .stroke-meaning-hit {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hanjadari-stroke .stroke-meaning-hit__head {
  display: flex;
  gap: 8px;
  align-items: baseline;
  flex-wrap: wrap;
}
.hanjadari-stroke .stroke-meaning-hit__word b {
  font-weight: 800;
}
.hanjadari-stroke .stroke-meaning-hit__hsk {
  opacity: 0.7;
  font-size: 0.95em;
}
.hanjadari-stroke .stroke-meaning-hit__line {
  margin: 0;
  line-height: 1.45;
}
.hanjadari-stroke .stroke-meaning-hit__example {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0.95;
}

/* #home / #home-adventure-v2 first-paint shell. */
html:not(.home-v2-bootstrap) .home-v2-route-shell {
  display: none;
}
html.home-v2-bootstrap body:has(.home-v2-route-shell) {
  overflow-x: hidden;
  background: #8adfff;
}
html.home-v2-bootstrap body:has(.home-v2-route-shell) #app.wrap {
  max-width: none;
  margin: 0;
  padding: 0;
}
html.home-v2-bootstrap body:has(.home-v2-route-shell) > header.wrap {
  position: absolute;
  inset: 0 0 auto;
  z-index: 70;
  box-sizing: border-box;
  width: 100%;
  height: 82px;
  min-height: 82px;
  margin: 0;
  padding: 10px clamp(16px, 3vw, 44px);
  overflow: visible;
  background: transparent;
  border: 0;
  pointer-events: none;
}
html.home-v2-bootstrap body:has(.home-v2-route-shell) > header.wrap #siteNav {
  position: relative;
  display: block;
  width: 100%;
  height: 60px;
  pointer-events: none;
}
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap:has(#siteNav:not([data-nav-variant]))::before,
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap
  #siteNav:not([data-nav-variant])::before,
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap
  #siteNav:not([data-nav-variant])::after {
  content: "";
  position: absolute;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.94);
  background-color: rgba(255, 255, 255, 0.86);
  box-shadow: 0 10px 24px rgba(45, 105, 149, 0.12);
}
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap:has(#siteNav:not([data-nav-variant]))::before {
  left: clamp(16px, 3vw, 44px);
  top: 11px;
  width: 224px;
  height: 60px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 29px 30px, #fdfefe 0 18px, transparent 19px),
    radial-gradient(circle at 29px 30px, #9fdaff 0 20px, transparent 21px),
    linear-gradient(90deg, transparent 0 58px, #315f86 58px 131px, transparent 131px),
    linear-gradient(90deg, transparent 0 140px, #8294a5 140px 204px, transparent 204px),
    rgba(255, 255, 255, 0.9);
}
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap
  #siteNav:not([data-nav-variant])::before {
  left: 50%;
  top: 4px;
  width: 377.625px;
  height: 54px;
  border-color: rgba(87, 137, 166, 0.16);
  border-radius: 999px;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0 26px,
      rgba(61, 95, 126, 0.16) 26px 66px,
      transparent 66px 90px
    ),
    rgba(255, 255, 255, 0.78);
  transform: translateX(-50%);
}
html.home-v2-bootstrap
  body:has(.home-v2-route-shell)
  > header.wrap
  #siteNav:not([data-nav-variant])::after {
  right: 0;
  top: 1px;
  width: 302.344px;
  height: 60px;
  border-color: rgba(91, 139, 167, 0.18);
  border-radius: 18px;
  background:
    radial-gradient(circle at 27px 30px, #e9f8ff 0 18px, transparent 19px),
    linear-gradient(90deg, transparent 0 54px, #8091a0 54px 166px, transparent 166px),
    linear-gradient(90deg, transparent 0 176px, #ffffff 176px 232px, transparent 232px),
    linear-gradient(90deg, transparent 0 240px, #ffe1a4 240px 304px, transparent 304px),
    rgba(255, 255, 255, 0.86);
}
.home-v2-route-shell {
  position: relative;
  width: 100%;
  height: max(400px, 37.5vw);
  min-height: 0;
  overflow: hidden;
  background-color: #dff7fc;
  background-image:
    linear-gradient(180deg, rgba(223, 247, 252, 0.04), rgba(233, 248, 244, 0.22)),
    url("../../assets/hanjadari/world/home-hero-ocean-bridge-v21-beach-birds.png");
  background-position: center top;
  background-size: cover;
  isolation: isolate;
}
.home-v2-route-shell::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(255, 255, 255, 0.02) 22%,
    rgba(255, 255, 255, 0.18) 48%,
    rgba(255, 255, 255, 0.02) 72%
  );
  transform: translateX(-38%);
  animation: homeV2ShellSeaLight 3.8s ease-in-out infinite alternate;
  pointer-events: none;
}
.home-v2-route-shell__light {
  position: absolute;
  z-index: 2;
  left: 28px;
  top: 34px;
  width: min(320px, 42vw);
  height: 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.28);
  box-shadow: 0 28px 0 rgba(255, 255, 255, 0.16);
  opacity: 0.62;
}
@media (max-width: 980px) {
  .home-v2-route-shell {
    height: 590px;
    min-height: 590px;
  }
  html.home-v2-bootstrap body:has(.home-v2-route-shell) > header.wrap {
    height: 70px;
    min-height: 70px;
    padding: 9px 16px;
  }
  html.home-v2-bootstrap
    body:has(.home-v2-route-shell)
    > header.wrap
    #siteNav:not([data-nav-variant]) {
    height: 52px;
  }
  html.home-v2-bootstrap
    body:has(.home-v2-route-shell)
  > header.wrap:has(#siteNav:not([data-nav-variant]))::before {
    left: 16px;
    top: 8px;
    width: 205px;
    height: 54px;
    border-radius: 20px;
  }
  html.home-v2-bootstrap
    body:has(.home-v2-route-shell)
    > header.wrap
    #siteNav:not([data-nav-variant])::before {
    left: auto;
    right: 0;
    top: 5px;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background:
      linear-gradient(#2c5979, #2c5979) center 13px / 18px 2px no-repeat,
      linear-gradient(#2c5979, #2c5979) center 20px / 18px 2px no-repeat,
      linear-gradient(#2c5979, #2c5979) center 27px / 18px 2px no-repeat,
      rgba(255, 255, 255, 0.9);
    transform: none;
  }
  html.home-v2-bootstrap
    body:has(.home-v2-route-shell)
    > header.wrap
    #siteNav:not([data-nav-variant])::after {
    display: none;
  }
}
@media (max-width: 760px) {
  .home-v2-route-shell {
    background-position: 42% 31%;
  }
  .home-v2-route-shell__light {
    left: 18px;
    top: 24px;
    width: 190px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-v2-route-shell::after {
    animation: none;
  }
}
@keyframes homeV2ShellSeaLight {
  from {
    opacity: 0.45;
    transform: translateX(-38%);
  }
  to {
    opacity: 0.72;
    transform: translateX(38%);
  }
}
@media (max-width: 600px) {
  html.home-v2-bootstrap
    body:has(.home-v2-route-shell)
  > header.wrap:has(#siteNav:not([data-nav-variant]))::before {
    width: 148px;
    height: 48px;
    top: 11px;
    border-radius: 18px;
  }
}

/* Course-stage deep links reuse the existing lesson DOM while presenting one truthful step. */
.hanja-page .hanja-today-step-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  color: #234c6e;
}
.hanja-page .hanja-today-step-heading span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--v21-page-accent-soft, #fff3e4);
  color: var(--v21-page-accent, #d9782e);
  font-size: 0.72rem;
  font-weight: 900;
}
.hanja-page .hanja-today-step-heading strong {
  font-size: 1.05rem;
  font-weight: 950;
  letter-spacing: -0.025em;
}
.hanja-page .hanja-today-step-locked {
  padding: clamp(20px, 4vw, 34px);
  text-align: center;
}
.hanja-page .hanja-today-step-locked h3 {
  margin: 0;
  color: #294e68;
  font-size: 1.12rem;
  word-break: keep-all;
}
.hanja-page .hanja-today-step-locked p {
  margin: 8px 0 0;
  color: #667b89;
  line-height: 1.55;
  word-break: keep-all;
}
.hanja-page [data-today-step-anchor][hidden] {
  display: none !important;
}
.hanja-page[data-today-step-view="review"] .hanja-ko-dayrow__example,
.hanja-page[data-today-step-view="review"] [data-today-step-content="words"],
.hanja-page[data-today-step-view="review"] [data-today-step-content="sentence"] {
  display: none !important;
}
.hanja-page[data-today-step-view="review"] .hanja-ko-dayrow {
  grid-template-columns: minmax(0, 1fr);
}
.hanja-page[data-today-step-view="review"] .hanja-ko-dayrow__learn {
  display: none !important;
}
.hanja-page[data-today-step-view="words"] .hanja-ko-card--lesson:not(:has([data-today-step-content="words"])),
.hanja-page[data-today-step-view="sentence"] .hanja-ko-card--lesson:not(:has([data-today-step-content="sentence"])) {
  display: none !important;
}
.hanja-page[data-today-step-view="words"] .hanja-ko-dayrow__stroke-side,
.hanja-page[data-today-step-view="sentence"] .hanja-ko-dayrow__stroke-side {
  display: none !important;
}
.hanja-page[data-today-step-view="words"] .hanja-ko-dayrow__learn > :not([data-today-step-content="words"]):not(:has([data-today-step-content="words"])),
.hanja-page[data-today-step-view="sentence"] .hanja-ko-dayrow__learn > :not([data-today-step-content="sentence"]):not(:has([data-today-step-content="sentence"])) {
  display: none !important;
}
.hanja-page[data-today-step-view="words"] [data-today-step-content]:not([data-today-step-content="words"]),
.hanja-page[data-today-step-view="sentence"] [data-today-step-content]:not([data-today-step-content="sentence"]) {
  display: none !important;
}
.hanja-page[data-today-step-view="words"] .hanja-ko-dayrow,
.hanja-page[data-today-step-view="sentence"] .hanja-ko-dayrow {
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 600px) {
  .hanja-page .hanja-today-step-heading {
    align-items: flex-start;
    margin-bottom: 10px;
  }
  .hanja-page .hanja-today-step-heading strong {
    padding-top: 3px;
    font-size: 0.98rem;
    word-break: keep-all;
  }
}

/* Formal #hanja guided course: six visible steps, one expanded activity. */
.hanja-page[data-guided-course] .page-shell--resource {
  grid-template-columns: minmax(0, 1fr);
}
.hanja-page[data-guided-course] .section-main-panel {
  width: 100%;
}
.hanja-page[data-guided-course] [data-hanja-panel="title"],
.hanja-page[data-guided-course] [data-hanja-panel="desc"],
.hanja-page[data-guided-course] .hanja-ko-day-banner,
.hanja-page[data-guided-course] .hanja-ko-count-line,
.hanja-page[data-guided-course] .hanja-ko-progress-line {
  display: none;
}
#app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  min-height: 224px;
  padding: clamp(22px, 2.7vw, 30px);
}
#app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero__copy {
  display: grid;
  grid-template-columns:
    minmax(280px, 1fr) minmax(230px, 0.62fr)
    minmax(410px, 0.82fr);
  grid-template-areas:
    "eyebrow levels art"
    "title levels art"
    "lead levels art"
    "meta levels art";
  column-gap: clamp(18px, 2.4vw, 32px);
  row-gap: 0;
  align-items: center;
  min-height: 170px;
}
.hanja-page[data-guided-course] .v21-page-hero__eyebrow {
  grid-area: eyebrow;
  align-self: end;
}
.hanja-page[data-guided-course] .v21-page-hero h1 {
  grid-area: title;
}
.hanja-page[data-guided-course] .v21-page-hero__lead {
  grid-area: lead;
  max-width: 42ch;
}
.hanja-page[data-guided-course] .v21-page-hero__meta {
  grid-area: meta;
  align-self: start;
}
.hanja-course-hero__levels {
  position: relative;
  z-index: 3;
  grid-area: levels;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  max-width: 310px;
  align-self: center;
  justify-self: stretch;
}
.hanja-course-hero__levels .hanja-course-level {
  min-height: 58px;
  flex-direction: column;
  gap: 2px;
  padding: 8px 7px;
}
.hanja-course-hero__art {
  position: relative;
  z-index: 2;
  grid-area: art;
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(170px, 1fr);
  column-gap: clamp(24px, 3vw, 36px);
  align-items: end;
  justify-items: center;
  min-width: 0;
}
.hanja-page[data-guided-course] .hanja-course-hero-island {
  position: static;
  display: block;
  width: clamp(132px, 13vw, 172px);
  height: clamp(96px, 10vw, 128px);
  object-fit: contain;
  opacity: 1;
  filter: drop-shadow(0 9px 10px rgba(44, 87, 112, 0.13));
}
.hanja-course-hero-teacher {
  display: block;
  width: clamp(138px, 14vw, 184px);
  height: clamp(154px, 16vw, 202px);
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 10px 12px rgba(52, 88, 112, 0.13));
}
.hanja-guided-course {
  margin: 0 0 20px;
  padding: clamp(16px, 2.4vw, 24px);
  border: 1px solid rgba(92, 145, 164, 0.2);
  border-radius: 22px;
  background: linear-gradient(145deg, #fffdf7, #f2fbfb);
  box-shadow: 0 12px 28px rgba(55, 92, 121, 0.08);
}
.hanja-guided-course__context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.hanja-guided-course__context p {
  margin: 0 0 3px;
  color: var(--v21-page-accent, #d9782e);
  font-size: 0.78rem;
  font-weight: 900;
}
.hanja-guided-course__context strong {
  color: #274e64;
  font-size: 1.06rem;
  word-break: keep-all;
}
.hanja-guided-course__selectors {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}
.hanja-guided-course__levels {
  display: grid;
  grid-template-columns: repeat(3, minmax(88px, 1fr));
  gap: 6px;
}
.hanja-course-level {
  min-width: 0;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 7px 10px;
  border: 1px solid
    color-mix(in srgb, var(--hanja-level-accent) 24%, #d7e4e7);
  border-radius: 13px;
  background: color-mix(in srgb, var(--hanja-level-soft) 54%, #fff);
  color: #526b76;
  cursor: pointer;
  white-space: nowrap;
  word-break: keep-all;
  opacity: 0.74;
  transition:
    opacity 160ms ease,
    background 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}
.hanja-course-level:hover {
  border-color: color-mix(in srgb, var(--hanja-level-accent) 48%, #d7e4e7);
  opacity: 1;
  transform: translateY(-1px);
}
.hanja-course-level strong {
  color: var(--hanja-level-accent);
  font-size: 0.82rem;
}
.hanja-course-level span {
  font-size: 0.72rem;
  font-weight: 850;
}
.hanja-course-level.is-current {
  border-color: var(--hanja-level-accent);
  background: var(--hanja-level-soft);
  color: #294e60;
  opacity: 1;
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--hanja-level-accent) 13%, transparent);
}
.hanja-guided-course__day {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #58717e;
  font-size: 0.78rem;
  font-weight: 850;
}
.hanja-guided-course__day select {
  min-width: 104px;
  min-height: 44px;
  padding: 7px 32px 7px 12px;
  border: 1px solid #bfd6dc;
  border-radius: 12px;
  background: #fff;
  color: #294f61;
  font: inherit;
  cursor: pointer;
}
.hanja-guided-course__meter {
  height: 7px;
  margin: 14px 0 16px;
  overflow: hidden;
  border-radius: 999px;
  background: #dcebed;
}
.hanja-guided-course__meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--v21-page-accent, #ef884c), #f5b94d);
  transition: width 180ms ease;
}
.hanja-guided-course__steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.hanja-guided-step {
  width: 100%;
  min-height: 92px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  gap: 3px 7px;
  padding: 10px;
  border: 1px solid #d4e3e6;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.84);
  color: #526c78;
  text-align: left;
  cursor: pointer;
}
.hanja-guided-step > span {
  grid-row: 1 / 3;
  align-self: center;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #e8f1f2;
  font-size: 0.78rem;
  font-weight: 950;
}
.hanja-guided-step strong,
.hanja-guided-step small {
  min-width: 0;
  word-break: keep-all;
}
.hanja-guided-step strong {
  color: #315568;
  font-size: 0.82rem;
  line-height: 1.25;
}
.hanja-guided-step small {
  overflow: hidden;
  color: #788b93;
  font-size: 0.68rem;
  line-height: 1.3;
  text-overflow: ellipsis;
}
.hanja-guided-step.is-complete {
  border-color: #8fcba6;
  background: #effaf2;
}
.hanja-guided-step.is-complete > span {
  background: #39a766;
  color: #fff;
}
.hanja-guided-step.is-current,
.hanja-guided-step.is-active {
  border-color: var(--v21-page-accent, #ef884c);
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--v21-page-accent, #ef884c) 14%, transparent);
}
.hanja-guided-step.is-current > span,
.hanja-guided-step.is-active > span {
  background: var(--v21-page-accent, #ef884c);
  color: #fff;
}
.hanja-guided-step.is-locked {
  background: #f6f7f5;
  color: #849198;
}
.hanja-guided-step:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.hanja-course-level:focus-visible,
.hanja-guided-step:focus-visible,
.hanja-guided-course__day select:focus-visible,
.hanja-guided-course__footer button:focus-visible,
.hanja-course-reward button:focus-visible {
  outline: 3px solid #ef884c;
  outline-offset: 3px;
}
.hanja-guided-course__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 18px 0 0;
  padding: 16px;
  border-radius: 17px;
  background: #f2faf9;
}
.hanja-guided-course__footer p {
  margin: 0;
  color: #526f7b;
  font-weight: 800;
  word-break: keep-all;
}
.hanja-guided-course__footer p.is-complete {
  color: #278451;
}
.hanja-guided-course__footer button,
.hanja-course-reward button {
  min-height: 46px;
  border: 0;
  border-radius: 999px;
  background: var(--v21-page-accent, #ef884c);
  color: #fff;
  padding: 10px 18px;
  font-weight: 950;
  cursor: pointer;
}
.hanja-course-reward {
  display: grid;
  place-items: center;
  gap: 10px;
  min-height: 360px;
  padding: clamp(24px, 5vw, 48px);
  border: 1px solid #d5e7e7;
  border-radius: 24px;
  background: radial-gradient(circle at 50% 22%, #fff6bd, #fff4e5 42%, #edf9f8);
  text-align: center;
}
.hanja-course-reward img {
  width: min(230px, 58vw);
  height: 170px;
  object-fit: contain;
}
.hanja-course-reward h3,
.hanja-course-reward p {
  max-width: 46ch;
  margin: 0;
  word-break: keep-all;
}
.hanja-course-reward h3 {
  color: #28566a;
  font-size: clamp(1.25rem, 3vw, 1.7rem);
}
.hanja-course-reward__stars {
  color: #d56d24;
  font-size: 1.8rem;
  font-weight: 950;
}
@media (max-width: 1100px) {
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero {
    min-height: 206px;
    padding: 20px 22px;
  }
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero__copy {
    grid-template-columns:
      minmax(252px, 1fr) minmax(206px, 0.6fr)
      minmax(270px, 0.76fr);
    column-gap: 16px;
    min-height: 164px;
  }
  .hanja-course-hero__levels {
    max-width: 286px;
    gap: 6px;
  }
  .hanja-course-hero__levels .hanja-course-level {
    min-height: 52px;
    padding: 7px 5px;
  }
  .hanja-course-hero__levels .hanja-course-level strong {
    font-size: 0.78rem;
  }
  .hanja-course-hero__levels .hanja-course-level span {
    font-size: 0.66rem;
  }
  .hanja-course-hero__art {
    grid-template-columns: minmax(116px, 0.9fr) minmax(130px, 1fr);
    column-gap: 24px;
  }
  .hanja-page[data-guided-course] .hanja-course-hero-island {
    width: 116px;
    height: 88px;
  }
  .hanja-course-hero-teacher {
    width: 126px;
    height: 146px;
  }
}
@media (max-width: 980px) {
  .hanja-guided-course__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero {
    grid-template-columns: minmax(0, 1fr) 68px;
    gap: 10px;
    min-height: 132px;
    margin-bottom: 14px;
    padding: 15px 16px;
    border-radius: 21px;
  }
  #app.v21-page-root
    .hanja-page[data-guided-course]
    .v21-page-hero__teacher {
    width: 66px;
    height: 78px;
  }
  #app.v21-page-root
    .hanja-page[data-guided-course]
    .v21-page-hero__lead {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.45;
  }
  #app.v21-page-root
    .hanja-page[data-guided-course]
    .v21-page-hero__meta {
    gap: 5px;
    margin-top: 8px;
  }
  #app.v21-page-root
    .hanja-page[data-guided-course]
    .v21-page-hero__meta
    > span {
    min-height: 26px;
    padding: 3px 8px;
    font-size: 11px;
  }
  .hanja-guided-course {
    margin-inline: -2px;
    padding: 14px;
  }
  .hanja-guided-course__context {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }
  .hanja-guided-course__selectors {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }
  .hanja-guided-course__levels {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .hanja-course-level {
    min-height: 52px;
    flex-direction: column;
    gap: 1px;
    padding-inline: 5px;
  }
  .hanja-guided-course__day {
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
    gap: 8px;
  }
  .hanja-guided-course__day select {
    flex: 0 1 132px;
    min-width: 0;
  }
  .hanja-guided-course__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 2px 0;
  }
  .hanja-guided-step {
    min-height: 78px;
    padding: 8px;
  }
  .hanja-guided-course__footer {
    align-items: stretch;
    flex-direction: column;
  }
  .hanja-guided-course__footer button {
    width: 100%;
  }
  .hanja-page[data-guided-course] .hanja-course-hero-island {
    right: -56px;
    bottom: -10px;
    width: 74px;
    height: 56px;
    opacity: 0.58;
  }
}
@media (max-width: 860px) {
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    min-height: 0;
    margin-bottom: 14px;
    padding: 16px;
    border-radius: 21px;
  }
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero__copy {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "eyebrow"
      "title"
      "lead"
      "meta"
      "levels"
      "art";
    column-gap: 0;
    min-height: 0;
  }
  .hanja-page[data-guided-course] .v21-page-hero__lead {
    max-width: none;
  }
  .hanja-course-hero__levels {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    max-width: none;
    margin-top: 14px;
  }
  .hanja-course-hero__levels .hanja-course-level {
    min-height: 52px;
    padding: 6px 4px;
  }
  .hanja-course-hero__art {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 24px;
    width: min(100%, 340px);
    margin-top: 14px;
    justify-self: center;
  }
  .hanja-page[data-guided-course] .hanja-course-hero-island {
    position: static;
    width: min(38vw, 142px);
    height: min(29vw, 106px);
    opacity: 1;
  }
  .hanja-course-hero-teacher {
    width: min(40vw, 150px);
    height: min(46vw, 172px);
  }
  .hanja-guided-course__selectors {
    align-items: stretch;
    flex-direction: row;
    justify-content: stretch;
  }
  .hanja-guided-course__day {
    width: 100%;
  }
}
@media (min-width: 601px) and (max-width: 860px) {
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero__copy {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.82fr);
    grid-template-areas:
      "eyebrow eyebrow"
      "title title"
      "lead lead"
      "meta meta"
      "levels art";
    column-gap: 18px;
  }
  .hanja-course-hero__levels {
    margin-top: 12px;
  }
  .hanja-course-hero__art {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
    width: 100%;
    max-width: 280px;
    margin-top: 12px;
  }
  .hanja-page[data-guided-course] .hanja-course-hero-island {
    width: 110px;
    height: 82px;
  }
  .hanja-course-hero-teacher {
    width: 120px;
    height: 138px;
  }
}
@media (max-width: 600px) {
  #app.v21-page-root .hanja-page[data-guided-course] .v21-page-hero {
    padding: 14px;
  }
  .hanja-course-hero__levels {
    margin-top: 10px;
  }
  .hanja-course-hero__levels .hanja-course-level {
    min-height: 48px;
  }
  .hanja-course-hero__art {
    column-gap: 16px;
    width: min(100%, 280px);
    margin-top: 8px;
  }
  .hanja-page[data-guided-course] .hanja-course-hero-island {
    width: min(32vw, 112px);
    height: min(24vw, 84px);
  }
  .hanja-course-hero-teacher {
    width: min(34vw, 120px);
    height: min(37vw, 132px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hanja-guided-course__meter span {
    transition: none;
  }
  .hanja-guided-course__steps {
    scroll-behavior: auto;
  }
}
