:root {
  --wb-ink: #172033;
  --wb-muted: #697386;
  --wb-line: #e6e8ee;
  --wb-paper: #ffffff;
  --wb-canvas: #f5f6f8;
  --wb-navy: #20324b;
  --wb-blue: #2f6fed;
  --wb-blue-soft: #edf3ff;
  --wb-coral: #ed765e;
  --wb-green: #2c9b73;
  --wb-shadow: 0 18px 50px rgba(27, 39, 59, .09);
}

#workspace-root { min-height: 100vh; color: var(--wb-ink); background: var(--wb-canvas); font-family: Outfit,Nunito,"PingFang SC","Microsoft YaHei",system-ui,sans-serif; font-weight: 500; }
#workspace-root[hidden],#root[hidden] { display: none !important; }
#workspace-root *,#workspace-root *::before,#workspace-root *::after,#workspace-global-nav * { box-sizing: border-box; }
#workspace-root button,#workspace-global-nav button { font: inherit; cursor: pointer; }
#workspace-root,#root,#wrongbook-root { width: calc(100% - 82px); margin-left: 82px; }
#workspace-global-nav { position: fixed; z-index: 9998; inset: 0 auto 0 0; width: 82px; display: flex; flex-direction: column; align-items: center; padding: 18px 10px 16px; color: #fff; background: #1d2d43; box-shadow: 5px 0 20px rgba(18,30,47,.1); font-family: Outfit,Nunito,"PingFang SC","Microsoft YaHei",system-ui,sans-serif; }
.ws-global-brand { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 34px; }
.ws-global-brand span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #1d2d43; background: #f8fafc; box-shadow: 0 7px 17px rgba(5,14,28,.25); font-size: 16px; font-weight: 850; }
.ws-global-brand strong { color: #eaf0f7; font-size: 10px; letter-spacing: .08em; }
#workspace-global-nav nav { display: flex; width: 100%; flex-direction: column; gap: 7px; }
#workspace-global-nav nav button { position: relative; display: flex; min-height: 57px; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 100%; padding: 5px 2px; border: 0; border-radius: 12px; color: #9eacc0; background: transparent; }
#workspace-global-nav nav button::before { content: ""; position: absolute; left: -10px; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: transparent; }
#workspace-global-nav nav button span { font-size: 18px; line-height: 1; }
#workspace-global-nav nav button small { font-size: 9px; font-weight: 720; }
#workspace-global-nav nav button:hover { color: #fff; background: rgba(255,255,255,.06); }
#workspace-global-nav nav button[aria-current="page"] { color: #fff; background: rgba(255,255,255,.11); }
#workspace-global-nav nav button[aria-current="page"]::before { background: #8db2fb; }
.ws-global-local { margin-top: auto; padding: 5px 7px; border: 1px solid rgba(255,255,255,.1); border-radius: 7px; color: #8fa0b7; font-size: 8px; font-weight: 700; }
.ws-shell { min-height: 100vh; }
.ws-main { min-width: 0; width: min(1280px,100%); margin: 0 auto; padding: 52px clamp(28px,5vw,72px) 72px; }
.ws-heading { margin-bottom: 30px; }
.ws-heading > p,.ws-section-head p,.ws-guide > p,.ws-module-copy p { margin: 0 0 7px; color: var(--wb-blue); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.ws-heading h1 { margin: 0; color: #172033; font-size: clamp(31px,4vw,48px); line-height: 1.08; letter-spacing: -.04em; }
.ws-heading > span { display: block; margin-top: 11px; color: var(--wb-muted); font-size: 14px; }
.ws-inline-class { padding: 0; border: 0; color: var(--wb-blue); background: transparent; font-weight: 780; }
.cr-shell { min-height: 100vh; background: #f2f4f7; }
.cr-main { width: min(1480px,100%); margin: 0 auto; padding: 30px clamp(22px,3vw,46px) 48px; }
.cr-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.cr-header > div:first-child > p { margin: 0 0 4px; color: var(--wb-blue); font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.cr-title { display: flex; align-items: center; gap: 12px; }
.cr-title h1 { margin: 0; color: #1d293d; font-size: clamp(26px,3vw,38px); letter-spacing: -.035em; }
.cr-title button { padding: 5px 8px; border: 1px solid #d6dce5; border-radius: 8px; color: #647084; background: #fff; font-size: 9px; font-weight: 720; }
.cr-header > div:first-child > span { display: block; margin-top: 7px; color: #7c8798; font-size: 10px; }
.cr-header-actions { display: flex; align-items: center; gap: 8px; }
.cr-header-actions button { min-height: 38px; padding: 0 13px; border: 1px solid #d5dce6; border-radius: 9px; color: #5b687b; background: #fff; font-size: 10px; font-weight: 750; }
.cr-header-actions .cr-class-switch-button { border-color: #315f9f; color: #fff; background: #315f9f; box-shadow: 0 7px 16px rgba(49,95,159,.16); }
.cr-class-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.cr-class-overview article { min-width: 0; padding: 14px 16px; border: 1px solid #e0e5eb; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(31,42,68,.035); }
.cr-class-overview span,.cr-class-overview strong,.cr-class-overview small { display: block; }
.cr-class-overview span { color: #7a8698; font-size: 9px; font-weight: 700; }
.cr-class-overview strong { margin-top: 5px; color: #27374f; font-size: 22px; line-height: 1.1; }
.cr-class-overview strong em { color: #8490a1; font-size: 11px; font-style: normal; font-weight: 650; }
.cr-class-overview small { margin-top: 5px; overflow: hidden; color: #9aa2af; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.cr-section-tabs { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 2px 0 10px; }
.cr-section-tabs > div:first-child strong,.cr-section-tabs > div:first-child span { display: block; }
.cr-section-tabs > div:first-child strong { color: #2c394d; font-size: 13px; }
.cr-section-tabs > div:first-child span { margin-top: 3px; color: #8a94a3; font-size: 9px; }
.cr-view-controls { display: flex; gap: 4px; padding: 4px; border-radius: 10px; background: #e5e9ef; }
.cr-view-controls button { min-height: 34px; padding: 0 13px; border: 0; border-radius: 7px; color: #727d8e; background: transparent; font-size: 10px; font-weight: 750; }
.cr-view-controls button.is-active { color: #293950; background: #fff; box-shadow: 0 2px 8px rgba(31,42,68,.09); }
.cr-workspace { display: grid; grid-template-columns: minmax(0,1fr) 300px; align-items: start; gap: 18px; }
.cr-content { min-width: 0; min-height: 650px; padding: 22px; border: 1px solid #e0e4ea; border-radius: 18px; background: #fff; box-shadow: 0 9px 30px rgba(31,42,68,.045); }
.cr-content-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.cr-content-head h2 { margin: 0; color: #2b374b; font-size: 16px; }
.cr-content-head p { margin: 5px 0 0; color: #8993a2; font-size: 9px; }
.cr-edit-button { min-height: 35px; padding: 0 12px; border: 1px solid #d8dfe8; border-radius: 9px; color: #5e6b80; background: #f9fafb; font-size: 10px; font-weight: 750; white-space: nowrap; }
.cr-edit-button.is-active { border-color: #9fbbec; color: #245fc8; background: #edf4ff; }
.cr-room { min-width: 0; padding: 4px 4px 20px; overflow-x: auto; }
.cr-front { display: flex; align-items: center; justify-content: center; width: min(440px,65%); height: 38px; margin: 0 auto 42px; border: 1px solid #cbd5e1; border-radius: 8px; color: #546276; background: #e9edf2; box-shadow: 0 4px 0 #c4ccd7; font-size: 10px; font-weight: 780; letter-spacing: .14em; }
.cr-groups { display: flex; align-items: flex-start; justify-content: center; gap: clamp(20px,4vw,54px); min-width: max-content; }
.cr-group { min-width: 0; }
.cr-group header { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 30px; margin-bottom: 10px; color: #647084; }
.cr-group header > div:first-child strong,.cr-group header > div:first-child small { display: block; }
.cr-group header strong { font-size: 10px; }
.cr-group header small { margin-top: 2px; font-size: 8px; }
.cr-dimension-controls { display: grid; grid-template-columns: repeat(2,auto); gap: 3px; }
.cr-dimension-controls button { min-height: 23px; padding: 0 6px; border: 1px solid #d7dee8; border-radius: 6px; color: #53637a; background: #fff; font-size: 7px; font-weight: 750; }
.cr-dimension-controls button:hover { border-color: #a9bfe4; color: #285fae; background: #f2f6fd; }
.cr-seat-grid { display: grid; grid-template-columns: repeat(var(--seat-columns),minmax(82px,104px)); gap: 12px; }
.cr-seat { position: relative; min-width: 0; min-height: 60px; padding: 0 0 10px; color: #4e5b70; background: transparent; isolation: isolate; }
.cr-seat:focus-within { z-index: 90; }
.cr-seat-placeholder { min-width: 0; min-height: 60px; visibility: hidden; }
.cr-seat-placeholder.is-editing { display: grid; place-items: center; visibility: visible; border: 1px dashed #d8dee8; border-radius: 9px; background: rgba(245,247,250,.65); }
.cr-seat-placeholder button { min-height: 25px; padding: 0 8px; border: 1px solid #d5dce7; border-radius: 7px; color: #778398; background: #fff; font-size: 7px; font-weight: 750; }
.cr-seat-placeholder button:hover { color: #2f66b4; border-color: #adc3e7; background: #f3f7fd; }
.cr-chair { position: absolute; z-index: -1; left: 50%; bottom: 0; width: 48%; height: 21px; transform: translateX(-50%); border: 1px solid #aab4c1; border-radius: 9px 9px 6px 6px; background: #cbd3dc; box-shadow: inset 0 3px 0 rgba(255,255,255,.35); }
.cr-desk-top { position: relative; z-index: 1; display: flex; min-height: 48px; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 4px 6px 6px; border: 1px solid #b8a27e; border-radius: 9px 9px 6px 6px; background: linear-gradient(180deg,#f0dfbd 0%,#dfc18f 100%); box-shadow: 0 3px 0 #b3976b,0 6px 9px rgba(70,58,40,.1),inset 0 1px 0 rgba(255,255,255,.55); }
.cr-seat-delete { position: absolute; z-index: 3; top: -6px; right: -6px; display: grid; place-items: center; width: 17px; height: 17px; padding: 0; border: 1px solid #dfb9b1; border-radius: 50%; color: #af6456; background: #fff; box-shadow: 0 2px 6px rgba(87,49,42,.12); font-size: 0; line-height: 0; }
.cr-seat-delete::before,.cr-seat-delete::after { content: ""; position: absolute; top: 50%; left: 50%; width: 7px; height: 1.5px; border-radius: 2px; background: currentColor; transform: translate(-50%,-50%) rotate(45deg); transform-origin: center; }
.cr-seat-delete::after { transform: translate(-50%,-50%) rotate(-45deg); }
.cr-seat-delete:hover { color: #fff; border-color: #bd6757; background: #bd6757; }
.cr-desk-top::after { content: ""; position: absolute; right: 7px; bottom: 4px; left: 7px; height: 1px; background: rgba(127,98,57,.18); }
.cr-seat-avatar { display: grid; place-items: center; width: 18px; height: 18px; flex: 0 0 18px; border-radius: 6px; color: #fff; background: var(--seat-avatar,#5f7db2); font-size: 7px; font-weight: 800; }
.cr-seat strong { max-width: 100%; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.cr-seat.is-occupied .cr-desk-top { flex-direction: row; justify-content: flex-start; gap: 6px; padding: 5px 7px 7px; }
.cr-seat.is-occupied strong { min-width: 0; flex: 1; text-align: left; }
.cr-seat.is-occupied .cr-seat-input { min-width: 0; flex: 1; }
.cr-seat.is-empty .cr-desk-top { border-style: dashed; border-color: #c7b999; color: #93866f; background: linear-gradient(180deg,#f7eedb,#ead8b7); box-shadow: 0 4px 0 #c8b38d; }
.cr-seat-input { width: 100%; min-height: 20px; padding: 1px 5px; border: 1px solid rgba(120,91,48,.25); border-radius: 6px; color: #493d2c; background: rgba(255,255,255,.72); outline: none; font-size: 8px; font-weight: 750; text-align: center; }
.cr-seat-input:focus { border-color: #6f94cd; background: #fff; box-shadow: 0 0 0 2px rgba(47,111,237,.12); }
.cr-seat-input::placeholder { color: #9e927e; font-weight: 600; }
.cr-suggestions { position: absolute; z-index: 80; top: calc(100% - 10px); left: 50%; width: min(190px,calc(100vw - 24px)); max-height: min(230px,45vh); padding: 5px; transform: translateX(-50%); border: 1px solid #d8dee7; border-radius: 11px; background: #fff; box-shadow: 0 16px 40px rgba(25,37,55,.18); overflow-y: auto; overscroll-behavior: contain; }
.cr-suggestions.is-above { top: auto; bottom: calc(100% - 8px); box-shadow: 0 -12px 36px rgba(25,37,55,.18); }
.cr-suggestions.is-align-left { left: 0; transform: none; }
.cr-suggestions.is-align-right { right: 0; left: auto; transform: none; }
.cr-suggestions > button { display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 8px; width: 100%; min-height: 43px; padding: 5px 7px; border: 0; border-radius: 8px; color: #3f4b60; background: transparent; text-align: left; }
.cr-suggestions > button:hover { background: #f1f5fb; }
.cr-suggestions .wb-avatar { width: 28px; height: 28px; border-radius: 8px; font-size: 9px; }
.cr-suggestions strong,.cr-suggestions small { display: block; }
.cr-suggestions strong { font-size: 10px; }
.cr-suggestions small { margin-top: 2px; color: #8b95a4; font-size: 7px; }
.cr-suggestion-empty { padding: 11px 8px; color: #7d8796; font-size: 8px; text-align: center; }
.cr-edit-button.is-active ~ * .cr-seat,.cr-seat[draggable="true"] { cursor: move; }
.cr-seat.is-selected .cr-desk-top { border-color: var(--wb-blue); box-shadow: 0 5px 0 #6685b7,0 0 0 3px rgba(47,111,237,.14); }
.cr-seat.is-dragging { opacity: .48; }
.cr-seat.is-drag-target .cr-desk-top { transform: translateY(-1px); border-color: #6f94cd; box-shadow: 0 4px 0 #6685b7,0 0 0 3px rgba(47,111,237,.14); }
.cr-student-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.cr-student-list article { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 62px; padding: 10px 12px; border: 1px solid #e6e9ee; border-radius: 12px; background: #fbfcfd; }
.cr-student-list strong,.cr-student-list small { display: block; }
.cr-student-list strong { color: #344056; font-size: 11px; }
.cr-student-list small { margin-top: 2px; color: #929baa; font-size: 8px; }
.cr-student-list em { color: #bd614f; font-size: 9px; font-style: normal; font-weight: 700; white-space: nowrap; }
.cr-empty { display: grid; min-height: 410px; place-items: center; align-content: center; color: #8791a2; text-align: center; }
.cr-empty > span { display: grid; place-items: center; width: 55px; height: 55px; border-radius: 16px; color: #5278ad; background: #edf3fb; font-size: 17px; font-weight: 800; }
.cr-empty h3 { margin: 14px 0 5px; color: #445167; font-size: 14px; }
.cr-empty p { margin: 0; font-size: 9px; }
.cr-empty .wb-btn { margin-top: 18px; }
.cr-content-empty { min-height: 560px; }
.cr-tools { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 10px; padding: 19px; border: 1px solid #dde2e9; border-radius: 18px; background: #fff; box-shadow: 0 9px 30px rgba(31,42,68,.05); }
.cr-tools > header { margin-bottom: 3px; }
.cr-tools > header p { margin: 0 0 3px; color: #27896a; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.cr-tools > header h2 { margin: 0; color: #2d394e; font-size: 16px; }
.cr-tool-primary,.cr-tool { display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 62px; padding: 10px 11px; border: 1px solid #dce3ed; border-radius: 12px; color: #38465d; background: #f8fafc; text-align: left; }
.cr-tool-primary { border-color: #b9cdf0; color: #254f8c; background: #edf4ff; }
.cr-tool-primary > span,.cr-tool > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: #fff; background: var(--wb-blue); font-size: 14px; font-weight: 850; }
.cr-tool > span { color: #52647e; background: #e8edf3; }
.cr-tool-primary strong,.cr-tool-primary small,.cr-tool strong,.cr-tool small { display: block; }
.cr-tool-primary strong,.cr-tool strong { font-size: 10px; }
.cr-tool-primary small,.cr-tool small { margin-top: 3px; color: #8390a3; font-size: 8px; line-height: 1.4; }
.cr-tool-primary i,.cr-tool i { color: #8995a7; font-style: normal; }
.cr-tool-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cr-tool-row button { display: flex; min-height: 56px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid #e0e4ea; border-radius: 11px; color: #59667b; background: #fff; }
.cr-tool-row button span { color: var(--wb-blue); font-size: 14px; }
.cr-tool-row button strong { font-size: 9px; }
.cr-question { padding: 13px; border-radius: 11px; background: #f4f6f9; }
.cr-question small { color: #8994a5; font-size: 8px; font-weight: 720; }
.cr-question p { margin: 6px 0 0; color: #4b586d; font-size: 10px; line-height: 1.55; }
.cr-picked { padding: 16px; border: 1px solid #b9decf; border-radius: 13px; background: #eff9f5; text-align: center; }
.cr-picked small,.cr-picked strong { display: block; }
.cr-picked small { color: #568371; font-size: 8px; }
.cr-picked strong { margin-top: 4px; color: #206a51; font-size: 24px; }
.cr-picked p { margin: 9px 0; color: #4d675e; font-size: 9px; line-height: 1.5; }
.cr-picked button { padding: 5px 9px; border: 1px solid #b4d8ca; border-radius: 8px; color: #34725d; background: #fff; font-size: 8px; font-weight: 720; }
.ws-module-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 18px; }
.ws-module { position: relative; display: flex; min-height: 310px; flex-direction: column; padding: 27px; border: 1px solid #dfe3e9; border-radius: 19px; background: #fff; box-shadow: 0 12px 34px rgba(31,42,68,.055); overflow: hidden; }
.ws-module::after { content: ""; position: absolute; right: -72px; top: -78px; width: 210px; height: 210px; border-radius: 50%; background: #eef4ff; }
.ws-module-wrongbook::after { background: #ebf7f1; }
.ws-module-copy { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; }
.ws-module-icon { display: grid; place-items: center; width: 50px; height: 50px; flex: 0 0 auto; border-radius: 14px; color: #fff; background: var(--wb-blue); font-size: 21px; font-weight: 850; box-shadow: 0 8px 20px rgba(47,111,237,.2); }
.ws-module-wrongbook .ws-module-icon { background: #27896a; box-shadow: 0 8px 20px rgba(39,137,106,.18); }
.ws-module-copy p { margin-bottom: 2px; }
.ws-module-wrongbook .ws-module-copy p { color: #27896a; }
.ws-module-copy h2 { margin: 0; font-size: 24px; letter-spacing: -.025em; }
.ws-module-desc { position: relative; z-index: 1; max-width: 500px; margin: 22px 0; color: #626e81; font-size: 13px; line-height: 1.7; }
.ws-module-metrics { position: relative; z-index: 1; display: flex; gap: 32px; margin: 0 0 24px; }
.ws-module-metrics div { min-width: 58px; }
.ws-module-metrics dt { color: #8a94a4; font-size: 10px; font-weight: 650; }
.ws-module-metrics dd { margin: 4px 0 0; color: #243249; font-size: 23px; font-weight: 800; line-height: 1.1; }
.ws-module-metrics dd.ws-status-text { padding-top: 4px; color: #526177; font-size: 13px; }
.ws-module-action { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 45px; margin-top: auto; padding: 0 15px; border: 1px solid #d9e1ed; border-radius: 11px; color: #294c83; background: #f7f9fc; font-size: 12px; font-weight: 780; text-align: left; transition: transform .16s ease,background .16s ease,border-color .16s ease; }
.ws-module-action:hover { transform: translateY(-1px); border-color: #b9cae6; background: #f0f5fd; }
.ws-module-wrongbook .ws-module-action { color: #286d58; background: #f4faf7; }
.ws-lower-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(270px,.65fr); gap: 18px; margin-top: 18px; }
.ws-recent,.ws-guide { border: 1px solid #e1e4ea; border-radius: 18px; background: #fff; box-shadow: 0 9px 28px rgba(31,42,68,.045); }
.ws-recent { overflow: hidden; }
.ws-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; border-bottom: 1px solid #edf0f3; }
.ws-section-head p { margin-bottom: 2px; color: #7a8596; }
.ws-section-head h2,.ws-guide h2 { margin: 0; font-size: 16px; }
.ws-section-head button { padding: 4px 0; border: 0; color: var(--wb-blue); background: transparent; font-size: 11px; font-weight: 750; }
.ws-paper-list { display: flex; flex-direction: column; }
.ws-paper-list > button { display: grid; grid-template-columns: 39px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 67px; padding: 10px 21px; border: 0; border-bottom: 1px solid #f0f2f4; color: inherit; background: transparent; text-align: left; }
.ws-paper-list > button:last-child { border-bottom: 0; }
.ws-paper-list > button:hover { background: #fafbfd; }
.ws-paper-icon { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 10px; color: var(--wb-blue); background: var(--wb-blue-soft); }
.ws-paper-list strong,.ws-paper-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-paper-list strong { font-size: 12px; }
.ws-paper-list small { margin-top: 3px; color: #8a94a3; font-size: 9px; }
.ws-paper-list i { color: #9aa3b0; font-style: normal; }
.ws-empty { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 13px; min-height: 114px; padding: 19px 22px; }
.ws-empty > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--wb-blue); background: var(--wb-blue-soft); font-size: 18px; }
.ws-empty strong { font-size: 12px; }
.ws-empty p { margin: 4px 0 0; color: #8590a1; font-size: 10px; line-height: 1.5; }
.ws-empty button { min-height: 35px; padding: 0 12px; border: 1px solid #d8e0eb; border-radius: 9px; color: #315d9f; background: #f7f9fd; font-size: 10px; font-weight: 750; }
.ws-guide { padding: 21px 22px; }
.ws-guide > p { color: #27896a; }
.ws-guide ol { display: flex; flex-direction: column; gap: 15px; margin: 20px 0 0; padding: 0; list-style: none; }
.ws-guide li { display: flex; align-items: center; gap: 11px; }
.ws-guide li > span { display: grid; place-items: center; width: 29px; height: 29px; flex: 0 0 auto; border-radius: 9px; color: #516078; background: #f0f3f7; font-size: 10px; font-weight: 800; }
.ws-guide li strong,.ws-guide li small { display: block; }
.ws-guide li strong { color: #364157; font-size: 11px; }
.ws-guide li small { margin-top: 2px; color: #8c95a4; font-size: 9px; }
body.ws-home { overflow: auto; background: var(--wb-canvas); }
body.ws-quiz #root > div { height: 100dvh !important; }
body.ws-wrongbook #wrongbook-root,body.ws-wrongbook .wb-app { min-height: 100vh; }
body.ws-wrongbook .wb-sidebar { height: 100vh; }
#wrongbook-root { min-height: 100vh; color: var(--wb-ink); background: var(--wb-canvas); font-family: Outfit,Nunito,"PingFang SC","Microsoft YaHei",system-ui,sans-serif; font-weight: 500; }
#wrongbook-root[hidden] { display: none !important; }
#wrongbook-root *,#wrongbook-root *::before,#wrongbook-root *::after { box-sizing: border-box; }
#wrongbook-root button,#wrongbook-root input,#wrongbook-root textarea,#wrongbook-root select { font: inherit; }
#wrongbook-root button { cursor: pointer; }
.wb-app { min-height: 100vh; display: grid; grid-template-columns: 220px minmax(0,1fr); }
.wb-sidebar { position: sticky; top: 0; height: 100vh; padding: 32px 18px 22px; color: var(--wb-ink); background: #fafbfc; border-right: 1px solid #e2e6ec; overflow-y: auto; }
.wb-brand { display: flex; align-items: center; gap: 12px; width: calc(100% - 18px); margin: 18px 9px 35px; color: var(--wb-ink); }
.wb-brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; color: #fff; background: var(--wb-blue); font-size: 22px; box-shadow: 0 8px 18px rgba(47,111,237,.18); }
.wb-brand strong { display: block; font-size: 18px; letter-spacing: .02em; }
.wb-brand small { display: block; margin-top: 2px; color: #8791a2; font-size: 11px; font-weight: 600; }
.wb-class-switch { display: flex; align-items: center; gap: 9px; width: 100%; margin: -19px 0 24px; padding: 10px 11px; border: 1px solid #dfe5ed; border-radius: 11px; color: #556278; background: #fff; text-align: left; }
.wb-class-switch > span:first-child { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 auto; border-radius: 8px; color: #3267b8; background: #eaf2ff; font-size: 10px; font-weight: 800; }
.wb-class-switch strong,.wb-class-switch small { display: block; }
.wb-class-switch strong { max-width: 125px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.wb-class-switch small { margin-top: 2px; color: #929baa; font-size: 8px; }
.wb-nav { display: flex; flex-direction: column; gap: 8px; }
.wb-nav button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 13px; border: 0; border-radius: 12px; color: #6f7a8d; background: transparent; text-align: left; font-weight: 700; }
.wb-nav button:hover { color: #2e3a4e; background: #f0f3f7; }
.wb-nav button.is-active { color: #245fc8; background: #eaf1ff; box-shadow: inset 3px 0 0 var(--wb-blue); }
.wb-nav-icon { width: 22px; text-align: center; font-size: 18px; }
.wb-side-card { margin-top: 34px; padding: 16px; border: 1px solid #e4e8ee; border-radius: 16px; color: #788397; background: #fff; font-size: 12px; line-height: 1.65; }
.wb-side-card strong { display: block; margin-bottom: 3px; color: #39465a; font-size: 13px; }
.wb-main { min-width: 0; padding: 44px clamp(24px,4vw,62px) 64px; }
.wb-page { width: min(1180px,100%); margin: 0 auto; }
.wb-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 20px 0 28px; }
.wb-eyebrow { margin-bottom: 7px; color: var(--wb-blue); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.wb-page-head h1 { margin: 0; color: var(--wb-ink); font-size: clamp(28px,4vw,42px); line-height: 1.1; letter-spacing: -.035em; }
.wb-page-head p { margin: 9px 0 0; color: var(--wb-muted); font-size: 14px; font-weight: 500; }
.wb-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 16px; border: 1px solid var(--wb-line); border-radius: 11px; color: #425069; background: #fff; font-weight: 750; box-shadow: 0 2px 8px rgba(31,42,68,.04); }
.wb-btn:hover { border-color: #cbd2de; transform: translateY(-1px); }
.wb-btn-primary { border-color: var(--wb-blue); color: #fff; background: var(--wb-blue); box-shadow: 0 8px 18px rgba(47,111,237,.2); }
.wb-btn-primary:hover { border-color: #1d5dde; }
.wb-btn-danger { color: #c84838; background: #fff8f6; }
.wb-btn-sm { min-height: 34px; padding: 0 11px; border-radius: 9px; font-size: 12px; }
.wb-btn-icon { width: 36px; min-height: 36px; padding: 0; }
.wb-link { padding: 0; border: 0; color: var(--wb-blue); background: transparent; font-weight: 750; }
.wb-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.wb-stat { position: relative; min-height: 138px; padding: 22px; border: 1px solid var(--wb-line); border-radius: 18px; background: var(--wb-paper); box-shadow: 0 8px 28px rgba(31,42,68,.05); overflow: hidden; }
.wb-stat::after { content: ""; position: absolute; right: -25px; bottom: -35px; width: 100px; height: 100px; border-radius: 50%; background: var(--stat-color,#edf3ff); }
.wb-stat-label { color: var(--wb-muted); font-size: 12px; font-weight: 700; }
.wb-stat-value { position: relative; z-index: 1; margin-top: 12px; color: var(--wb-ink); font-size: 34px; font-weight: 800; line-height: 1; }
.wb-stat-note { position: relative; z-index: 1; margin-top: 11px; color: #8992a3; font-size: 11px; }
.wb-grid-2 { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.75fr); gap: 18px; }
.wb-panel { border: 1px solid var(--wb-line); border-radius: 18px; background: var(--wb-paper); box-shadow: 0 8px 28px rgba(31,42,68,.05); overflow: hidden; }
.wb-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 21px; border-bottom: 1px solid #eff0f3; }
.wb-panel-head h2 { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.wb-panel-body { padding: 20px; }
.wb-list { display: flex; flex-direction: column; }
.wb-list-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 15px 20px; border-bottom: 1px solid #f0f1f4; }
.wb-list-row:last-child { border-bottom: 0; }
.wb-list-row:hover { background: #fafbfc; }
.wb-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; background: var(--avatar,#5f7db2); font-size: 13px; font-weight: 800; }
.wb-row-main { min-width: 0; }
.wb-row-title { color: var(--wb-ink); font-size: 14px; font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wb-row-meta { margin-top: 4px; color: #8a93a3; font-size: 11px; font-weight: 550; }
.wb-badge { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 999px; color: #4d6386; background: #eef2f8; font-size: 11px; font-weight: 750; white-space: nowrap; }
.wb-badge-blue { color: #245fc8; background: #eaf1ff; }
.wb-badge-green { color: #237b5e; background: #e8f7f1; }
.wb-badge-coral { color: #bf5844; background: #fff0ed; }
.wb-empty { display: grid; place-items: center; min-height: 260px; padding: 35px; text-align: center; }
.wb-empty-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 17px; border-radius: 20px; color: var(--wb-blue); background: var(--wb-blue-soft); font-size: 27px; }
.wb-empty h3 { margin: 0 0 7px; font-size: 17px; }
.wb-empty p { max-width: 390px; margin: 0 auto 20px; color: var(--wb-muted); font-size: 13px; line-height: 1.7; }
.wb-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.wb-search { position: relative; flex: 1; }
.wb-search span { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: #96a0b1; }
.wb-input,.wb-select,.wb-textarea { width: 100%; border: 1px solid #dfe3ea; border-radius: 10px; color: var(--wb-ink); background: #fff; outline: none; font-weight: 550; }
.wb-input,.wb-select { min-height: 42px; padding: 0 13px; }
.wb-search .wb-input { padding-left: 40px; }
.wb-textarea { min-height: 110px; padding: 12px 13px; resize: vertical; line-height: 1.65; }
.wb-input:focus,.wb-select:focus,.wb-textarea:focus { border-color: #7ca3ef; box-shadow: 0 0 0 3px rgba(47,111,237,.1); }
.wb-field { display: flex; flex-direction: column; gap: 7px; }
.wb-field label { color: #566176; font-size: 12px; font-weight: 750; }
.wb-field label small { margin-left: 5px; color: #929ba9; font-size: 9px; font-weight: 550; }
.wb-field small { color: #8d96a5; font-size: 10px; line-height: 1.5; }
.wb-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.wb-span-2 { grid-column: span 2; }
.wb-paper-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.wb-paper-card { display: flex; min-height: 205px; flex-direction: column; padding: 19px; border: 1px solid var(--wb-line); border-radius: 16px; color: inherit; background: #fff; text-align: left; box-shadow: 0 8px 24px rgba(31,42,68,.045); transition: .18s ease; }
.wb-paper-card:hover { transform: translateY(-3px); border-color: #cdd6e5; box-shadow: var(--wb-shadow); }
.wb-paper-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.wb-file-icon { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; color: var(--wb-blue); background: var(--wb-blue-soft); font-size: 20px; }
.wb-paper-card h3 { margin: 20px 0 7px; font-size: 16px; line-height: 1.45; }
.wb-paper-card p { margin: 0; color: var(--wb-muted); font-size: 11px; }
.wb-paper-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 18px; border-top: 1px solid #eff1f4; color: #788397; font-size: 11px; }
.wb-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 20px; padding: 23px; border: 1px solid var(--wb-line); border-radius: 18px; background: #fff; }
.wb-detail-head h2 { margin: 0 0 8px; font-size: 23px; }
.wb-detail-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.wb-section { margin-bottom: 22px; }
.wb-section-title { display: flex; align-items: center; gap: 9px; margin: 0 0 11px; font-size: 15px; }
.wb-section-count { color: #7f899a; font-size: 11px; font-weight: 650; }
.wb-question-list { display: flex; flex-direction: column; gap: 10px; }
.wb-question { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: start; gap: 13px; padding: 16px; border: 1px solid var(--wb-line); border-radius: 14px; background: #fff; }
.wb-qnum { display: grid; place-items: center; min-height: 34px; border-radius: 10px; color: var(--wb-blue); background: var(--wb-blue-soft); font-size: 12px; font-weight: 800; }
.wb-qtext { color: #2b3548; font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.wb-rich-content { display: flex; min-width: 0; flex-direction: column; gap: 10px; color: #2b3548; font-size: 13px; line-height: 1.7; }
.wb-rich-content.is-compact { gap: 6px; font-size: 11px; }
.wb-rich-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.wb-rich-image { margin: 2px 0; padding: 10px; border: 1px solid #e5e9f0; border-radius: 10px; background: #fff; text-align: center; }
.wb-rich-image img { display: block; max-width: min(100%,720px); max-height: 440px; margin: auto; object-fit: contain; }
.wb-rich-image.is-compact img { max-height: 240px; }
.wb-rich-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #d9dee7; border-radius: 9px; background: #fff; }
.wb-rich-table { width: 100%; border-collapse: collapse; font-size: 11px; line-height: 1.55; }
.wb-rich-table td { min-width: 88px; padding: 7px 9px; border-right: 1px solid #d9dee7; border-bottom: 1px solid #d9dee7; vertical-align: top; }
.wb-rich-table tr:last-child td { border-bottom: 0; }
.wb-rich-table td:last-child { border-right: 0; }
.wb-rich-table td .wb-rich-content { gap: 4px; font-size: inherit; }
.wb-qmeta { display: flex; align-items: center; gap: 7px; margin-top: 8px; }
.wb-student-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.wb-student-card { padding: 17px; border: 1px solid var(--wb-line); border-radius: 14px; background: #fff; }
.wb-student-card-top { display: flex; align-items: center; gap: 11px; }
.wb-student-card h3 { margin: 0; font-size: 14px; }
.wb-student-card p { margin: 4px 0 0; color: var(--wb-muted); font-size: 10px; }
.wb-student-card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; padding-top: 12px; border-top: 1px solid #f0f1f4; }
.wb-mistake-num { color: var(--wb-coral); font-size: 19px; font-weight: 800; }
.wb-mistake-num small { margin-left: 3px; color: #8992a0; font-size: 10px; }
body.wb-modal-open { overflow: hidden !important; }
.wb-modal-backdrop,.wb-modal-backdrop * { box-sizing: border-box; }
.wb-modal-backdrop { --wb-modal-viewport-height: 100vh; position: fixed; z-index: 10000; inset: var(--wb-modal-viewport-top,0px) 0 auto; height: var(--wb-modal-viewport-height); display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(15,24,40,.55); backdrop-filter: blur(5px); }
@supports (height: 100dvh) {
  .wb-modal-backdrop { --wb-modal-viewport-height: 100dvh; }
}
.wb-modal { width: min(650px,100%); min-width: 0; min-height: 0; max-height: min(86vh,850px,100%); display: flex; flex-direction: column; border-radius: 20px; background: #fff; box-shadow: 0 30px 90px rgba(10,20,40,.3); overflow: hidden; }
.wb-modal-lg { width: min(980px,100%); }
.wb-modal > form { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; min-height: 0; margin: 0; overflow: hidden; }
.wb-modal-head { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 21px 24px; border-bottom: 1px solid var(--wb-line); }
.wb-modal-head h2 { margin: 0; font-size: 19px; }
.wb-modal-head p { margin: 5px 0 0; color: var(--wb-muted); font-size: 11px; font-weight: 550; }
.wb-modal-body { flex: 1 1 auto; min-width: 0; min-height: 0; padding: 22px 24px; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
.wb-modal-foot { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; gap: 10px; padding: 15px 24px; border-top: 1px solid var(--wb-line); background: #fafbfc; }
@media (max-width:680px), (max-height:500px) {
  .wb-modal-backdrop { padding: 12px; padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); }
  .wb-modal { max-height: 100%; border-radius: 16px; }
  .wb-modal-head { gap: 12px; padding: 14px 16px; }
  .wb-modal-body { padding: 16px; }
  .wb-modal-foot { flex-wrap: wrap; gap: 8px; padding: 12px 16px; }
  .wb-modal-foot > span:not(:empty) { flex-basis: 100%; }
  .wb-modal-foot .wb-btn { flex: 1 0 auto; min-height: 44px; }
}
.vip-modal-head .vip-eyebrow { display: block; margin-bottom: 5px; color: #315f9f; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.vip-modal-body { display: flex; flex-direction: column; gap: 18px; }
.vip-message { padding: 11px 13px; border: 1px solid #b8d8c9; border-radius: 9px; color: #28634f; background: #f0f8f4; font-size: 13px; font-weight: 680; }
.vip-current { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 20px; padding: 18px; border: 1px solid #dce3ec; border-radius: 13px; background: #f8fafc; }
.vip-current > div:first-child { display: flex; flex-direction: column; justify-content: center; }
.vip-current > div:first-child span { color: #778399; font-size: 12px; }
.vip-current > div:first-child strong { margin-top: 5px; color: #26364d; font-size: 20px; }
.vip-usage { display: grid; gap: 9px; }
.vip-usage-row > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #647084; font-size: 12px; }
.vip-usage-row strong { color: #3a4b63; font-size: 12px; font-variant-numeric: tabular-nums; }
.vip-usage-row > i { display: block; height: 5px; margin-top: 5px; overflow: hidden; border-radius: 5px; background: #e5eaf1; }
.vip-usage-row > i > b { display: block; height: 100%; border-radius: inherit; background: #668bbf; }
.vip-benefits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.vip-benefits > span { grid-column: 1 / -1; margin-bottom: 1px; color: #778399; font-size: 12px; font-weight: 750; }
.vip-benefits > div { padding: 11px 12px; border-left: 3px solid #8eabd4; background: #f7f9fc; }
.vip-benefits strong,.vip-benefits small { display: block; }
.vip-benefits strong { color: #34445b; font-size: 13px; }
.vip-benefits small { margin-top: 3px; color: #7e899a; font-size: 11px; line-height: 1.45; }
.vip-plans { display: grid; gap: 9px; }
.vip-plan { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 70px; padding: 13px 15px; border: 1px solid #d9e0e9; border-radius: 11px; color: #344054; background: #fff; text-align: left; }
.vip-plan:hover { border-color: #a8bddc; background: #fafcff; }
.vip-plan.is-selected { border-color: #4776b5; box-shadow: 0 0 0 3px rgba(71,118,181,.11); }
.vip-plan > span:first-child strong,.vip-plan > span:first-child small { display: block; }
.vip-plan > span:first-child strong { font-size: 14px; }
.vip-plan > span:first-child small { margin-top: 4px; color: #7a8698; font-size: 11px; }
.vip-price { flex: 0 0 auto; color: #315f9f; text-align: right; }
.vip-price b { font-size: 23px; font-variant-numeric: tabular-nums; }
.vip-price small { margin-left: 3px; color: #7e899a; font-size: 11px; }
.vip-pay-status { min-height: 22px; color: #738096; font-size: 12px; text-align: center; }
.vip-pay-status.is-error { color: #b5473c; }
.vip-pay-status button { margin-left: 6px; padding: 2px 5px; border: 0; color: #315f9f; background: transparent; font: inherit; font-weight: 750; text-decoration: underline; }
.vip-modal-foot .wb-btn-primary:disabled { cursor: not-allowed; opacity: .5; }
.wb-close { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--wb-line); border-radius: 10px; color: #687286; background: #fff; font-size: 18px; }
.wb-tabs { display: flex; gap: 6px; margin-bottom: 18px; padding: 4px; border-radius: 11px; background: #f1f3f6; }
.wb-tabs button { flex: 1; min-height: 38px; border: 0; border-radius: 8px; color: #707a8b; background: transparent; font-size: 12px; font-weight: 750; }
.wb-tabs button.is-active { color: var(--wb-ink); background: #fff; box-shadow: 0 2px 8px rgba(31,42,68,.08); }
.wb-dropzone { display: grid; place-items: center; min-height: 190px; padding: 25px; border: 1.5px dashed #b8c2d2; border-radius: 15px; color: #6d7789; background: #fafbfd; text-align: center; }
.wb-dropzone.is-dragging { border-color: var(--wb-blue); background: var(--wb-blue-soft); }
.wb-dropzone-icon { font-size: 32px; }
.wb-dropzone strong { display: block; margin: 9px 0 5px; color: #39465c; font-size: 14px; }
.wb-dropzone p { margin: 0; font-size: 11px; font-weight: 550; }
.wb-selected-files { display: flex; max-height: 82px; flex-wrap: wrap; justify-content: center; gap: 5px; margin-top: 11px; overflow-y: auto; }
.wb-dropzone .wb-selected-files > strong { width: 100%; margin: 0 0 2px; color: #2f6fed; font-size: 10px; }
.wb-selected-files span { max-width: 210px; padding: 4px 7px; overflow: hidden; border-radius: 6px; color: #53627a; background: #eef2f7; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.wb-class-picker { background: #f7f8fa; }
.wb-class-picker-current { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; color: #6d788b; font-size: 10px; }
.wb-class-picker-current span { padding: 4px 7px; border-radius: 6px; color: #2b66c6; background: #e8f1ff; font-size: 8px; font-weight: 750; }
.wb-class-picker-current strong { color: #344158; font-size: 11px; }
.wb-class-picker-list { display: flex; flex-direction: column; gap: 8px; }
.wb-class-picker-empty { display: grid; min-height: 190px; place-items: center; align-content: center; padding: 24px; border: 1px dashed #ccd4df; border-radius: 12px; color: #8792a3; background: #fff; text-align: center; }
.wb-class-picker-empty > span { display: grid; width: 42px; height: 42px; place-items: center; margin-bottom: 10px; border-radius: 12px; color: #5278ad; background: #edf3fb; font-size: 14px; font-weight: 800; }
.wb-class-picker-empty strong,.wb-class-picker-empty small { display: block; }
.wb-class-picker-empty strong { color: #3d4b61; font-size: 12px; }
.wb-class-picker-empty small { margin-top: 5px; font-size: 9px; }
.wb-class-picker-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; overflow: hidden; border: 1px solid #e0e4ea; border-radius: 12px; background: #fff; }
.wb-class-picker-item.is-current { border-color: #adc5ec; box-shadow: 0 5px 16px rgba(47,111,237,.07); }
.wb-class-picker-main { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 11px; min-width: 0; min-height: 66px; padding: 10px 13px; border: 0; color: #36445a; background: transparent; text-align: left; }
.wb-class-picker-main:not(:disabled):hover { background: #f5f8fd; }
.wb-class-picker-main:disabled { cursor: default; }
.wb-class-picker-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: #fff; background: var(--class-color,#5f7db2); font-size: 14px; font-weight: 800; }
.wb-class-picker-copy { min-width: 0; }
.wb-class-picker-copy strong,.wb-class-picker-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-class-picker-copy strong { font-size: 12px; }
.wb-class-picker-copy small { margin-top: 4px; color: #8a94a4; font-size: 9px; }
.wb-class-picker-main em,.wb-class-picker-main i { font-size: 9px; font-style: normal; font-weight: 750; white-space: nowrap; }
.wb-class-picker-main em { padding: 5px 7px; border-radius: 6px; color: #2a65c3; background: #eaf2ff; }
.wb-class-picker-main i { color: #5174a8; }
.wb-class-picker-edit { min-width: 54px; border: 0; border-left: 1px solid #edf0f4; color: #728096; background: #fbfcfd; font-size: 9px; font-weight: 720; }
.wb-class-picker-edit:hover { color: #2d5eaa; background: #f2f6fc; }
.wb-progress { height: 7px; margin-top: 16px; border-radius: 99px; background: #e9edf3; overflow: hidden; }
.wb-progress > i { display: block; width: var(--progress,0%); height: 100%; border-radius: inherit; background: var(--wb-blue); transition: width .2s; }
.wb-editor-list { display: flex; flex-direction: column; gap: 10px; }
.wb-editor-row { display: grid; grid-template-columns: 52px 125px minmax(0,1fr) 36px; align-items: start; gap: 9px; padding: 11px; border: 1px solid var(--wb-line); border-radius: 13px; background: #fbfcfd; }
.wb-editor-row .wb-textarea { min-height: 78px; font-size: 12px; }
.wb-editor-row .wb-select { min-height: 38px; padding: 0 9px; font-size: 11px; }
.wb-editor-content { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.wb-editor-resource { padding: 8px; border: 1px solid #dbe2ec; border-radius: 10px; background: #f4f7fb; }
.wb-editor-resource > span { display: block; margin-bottom: 5px; color: #788497; font-size: 9px; font-weight: 750; }
.wb-student-checks { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.wb-check { display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 9px 11px; border: 1px solid var(--wb-line); border-radius: 11px; color: #4b566a; background: #fff; font-size: 12px; cursor: pointer; }
.wb-check:has(input:checked) { border-color: #8fb0f3; color: #245fc8; background: #f2f6ff; }
.wb-check input { width: 16px; height: 16px; accent-color: var(--wb-blue); }
.wb-check strong,.wb-check small { display: block; }
.wb-check strong { color: #435168; font-size: 12px; }
.wb-check small { margin-top: 2px; color: #8993a3; font-size: 9px; }
.wb-mistake-question { margin-bottom: 15px; padding: 15px; border-radius: 12px; background: #f5f7fa; }
.wb-mistake-controls { display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center; gap: 10px; margin-bottom: 8px; }
.wb-mistake-sort { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; color: #6c788b; font-size: 10px; font-weight: 700; }
.wb-mistake-sort .wb-select { min-width: 0; }
.wb-mistake-result-meta { min-height: 24px; color: #7b8698; font-size: 10px; line-height: 24px; }
.wb-mistake-no-results { grid-column: 1 / -1; min-height: 150px; display: grid; place-items: center; align-content: center; padding: 24px; border: 1px dashed #d8dee7; border-radius: 11px; color: #8993a3; text-align: center; }
.wb-mistake-no-results strong,.wb-mistake-no-results small { display: block; }
.wb-mistake-no-results strong { color: #48566c; font-size: 12px; }
.wb-mistake-no-results small { margin-top: 5px; font-size: 10px; }
.wb-import-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 12px 14px; border-radius: 11px; color: #40506a; background: #f3f6fb; font-size: 11px; }
.wb-preview-wrap { max-height: 330px; border: 1px solid var(--wb-line); border-radius: 12px; overflow: auto; }
.wb-preview-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 11px; }
.wb-preview-table th { position: sticky; z-index: 1; top: 0; padding: 10px 12px; color: #5f6a7e; background: #f4f6f9; text-align: left; }
.wb-preview-table td { padding: 10px 12px; border-top: 1px solid #edf0f4; color: #344056; }
.wb-preview-table tr.is-muted td { color: #9aa2af; background: #fafafa; text-decoration: line-through; }
.wb-profile { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 18px; }
.wb-profile-side { align-self: start; padding: 22px; border: 1px solid var(--wb-line); border-radius: 17px; background: #fff; text-align: center; }
.wb-profile-avatar { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 14px; border-radius: 22px; color: #fff; background: #5f7db2; font-size: 24px; font-weight: 800; }
.wb-profile-side h2 { margin: 0; font-size: 20px; }
.wb-profile-side p { margin: 5px 0 20px; color: var(--wb-muted); font-size: 11px; }
.wb-profile-kpi { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 17px 0; }
.wb-profile-kpi div { padding: 12px 5px; border-radius: 11px; background: #f4f6f9; }
.wb-profile-kpi strong { display: block; font-size: 20px; }
.wb-profile-kpi span { color: #80899a; font-size: 9px; }
.wb-filter-pills { display: flex; gap: 7px; margin-bottom: 14px; flex-wrap: wrap; }
.wb-filter-pills button { min-height: 32px; padding: 0 11px; border: 1px solid var(--wb-line); border-radius: 999px; color: #6e7889; background: #fff; font-size: 10px; font-weight: 700; }
.wb-filter-pills button.is-active { border-color: #8eb0f3; color: #245fc8; background: #eff4ff; }
.wb-toast { position: fixed; z-index: 10001; right: 26px; bottom: 26px; max-width: 360px; padding: 13px 17px; border-radius: 12px; color: #fff; background: #26354c; box-shadow: 0 12px 35px rgba(20,30,50,.24); font-size: 12px; font-weight: 650; animation: wb-toast-in .2s ease; }
.wb-toast.is-error { background: #a84034; }
@keyframes wb-toast-in { from { opacity: 0; transform: translateY(8px); } }
@media (max-width:1000px) {
  .ws-main { padding-inline: 30px; }
  .cr-workspace { grid-template-columns: 1fr; }
  .cr-class-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cr-tools { position: static; }
  .wb-app { grid-template-columns: 84px 1fr; }
  .wb-sidebar { padding-inline: 12px; }
  .wb-brand { justify-content: center; margin-inline: 0; }
  .wb-brand > span:last-child,.wb-class-switch,.wb-nav-label,.wb-side-card { display: none; }
  .wb-nav button { justify-content: center; padding-inline: 8px; }
  .wb-stats { grid-template-columns: repeat(2,1fr); }
  .wb-paper-grid,.wb-student-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  #workspace-root,#root,#wrongbook-root { width: 100%; margin-left: 0; }
  #workspace-global-nav { inset: auto 0 0; width: 100%; height: 64px; flex-direction: row; padding: 6px 12px; border-top: 1px solid rgba(255,255,255,.1); box-shadow: 0 -5px 20px rgba(18,30,47,.14); }
  .ws-global-brand,.ws-global-local { display: none; }
  #workspace-global-nav nav { height: 100%; flex-direction: row; gap: 8px; }
  #workspace-global-nav nav button { min-height: 50px; flex: 1; flex-direction: row; gap: 7px; border-radius: 10px; }
  #workspace-global-nav nav button::before { left: 24%; right: 24%; top: -6px; bottom: auto; width: auto; height: 3px; border-radius: 0 0 3px 3px; }
  #workspace-global-nav nav button span { font-size: 17px; }
  #workspace-global-nav nav button small { font-size: 10px; }
  .ws-shell { padding-bottom: 64px; }
  .ws-main { padding: 28px 15px 44px; }
  .ws-heading { margin-bottom: 22px; }
  .cr-main { padding: 22px 13px 82px; }
  .cr-header { align-items: flex-start; flex-direction: column; }
  .cr-header-actions { width: 100%; }
  .cr-header-actions button { flex: 1; }
  .cr-class-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cr-section-tabs { align-items: flex-start; flex-direction: column; }
  .cr-view-controls { width: 100%; }
  .cr-view-controls button { flex: 1; }
  .cr-content { min-height: 540px; padding: 16px; }
  .cr-content-head { align-items: flex-start; }
  .cr-front { margin-bottom: 32px; }
  .cr-seat-grid { grid-template-columns: repeat(var(--seat-columns),minmax(74px,92px)); gap: 9px; }
  .cr-student-list { grid-template-columns: 1fr; }
  .ws-heading h1 { font-size: 31px; }
  .ws-module-grid,.ws-lower-grid { grid-template-columns: 1fr; }
  .ws-module { min-height: 290px; padding: 22px; }
  .ws-module-metrics { gap: 23px; }
  .ws-empty { grid-template-columns: 42px minmax(0,1fr); }
  .ws-empty button { grid-column: 2; justify-self: start; }
  body.ws-quiz #root > div { height: calc(100dvh - 64px) !important; }
  body.ws-wrongbook #wrongbook-root,body.ws-wrongbook .wb-app { min-height: 100vh; }
  body.ws-wrongbook .wb-sidebar { height: auto; }
  .wb-app { display: block; padding-bottom: 64px; }
  .wb-sidebar { position: sticky; z-index: 20; top: 0; width: 100%; height: auto; padding: 9px 12px; }
  .wb-brand,.wb-side-card { display: none; }
  .wb-nav { flex-direction: row; overflow-x: auto; }
  .wb-nav button { min-width: 64px; flex-direction: column; gap: 2px; padding: 7px; font-size: 9px; }
  .wb-nav-label { display: block; }
  .wb-main { padding: 22px 14px 40px; }
  .wb-page-head { align-items: flex-start; flex-direction: column; margin-top: 8px; }
  .wb-stats,.wb-grid-2,.wb-paper-grid,.wb-student-grid,.wb-profile { grid-template-columns: 1fr; }
  .wb-form-grid { grid-template-columns: 1fr; }
  .wb-span-2 { grid-column: span 1; }
  .wb-question { grid-template-columns: 34px minmax(0,1fr); }
  .wb-question > .wb-actions { grid-column: 2; }
  .wb-student-checks { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wb-editor-row { grid-template-columns: 42px minmax(0,1fr) 34px; }
  .wb-editor-row .wb-select { grid-column: 2; }
  .wb-editor-row .wb-editor-content { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .ws-module-action,.wb-paper-card,.wb-btn { transition: none !important; } }
@media print { #workspace-global-nav,.wb-sidebar,.wb-page-head .wb-actions { display: none !important; } #workspace-root,#root,#wrongbook-root { width: 100%; margin-left: 0; } .wb-app { display: block; } .wb-main { padding: 0; } }
/* 登录页 */
body.ws-login{margin:0;background:#f4f6f9}
body.ws-login #workspace-root{width:100%;margin-left:0;background:#f4f6f9}
.ws-login-page{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);background:#f4f6f9}
.ws-auth-intro{position:relative;display:flex;min-height:100vh;min-height:100dvh;flex-direction:column;padding:clamp(42px,7vw,92px);color:#eaf0f7;background:#202c3c;overflow:hidden}
.ws-auth-intro::after{content:"";position:absolute;right:-170px;bottom:-210px;width:460px;height:460px;border:92px solid rgba(129,166,219,.08);border-radius:50%;pointer-events:none}
.ws-login-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px}.ws-login-brand>span{display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;border-radius:13px;color:#202c3c;background:#f5f7fa;font-size:20px;font-weight:850}.ws-login-brand div{display:flex;flex-direction:column}.ws-login-brand strong{color:#f7f9fc;font-size:19px;line-height:1.15}.ws-login-brand small{margin-top:4px;color:#a8b5c6}
.ws-auth-promise{position:relative;z-index:1;width:min(520px,100%);margin:auto 0}.ws-auth-promise h1{max-width:520px;margin:0;color:#f7f9fc;font-size:clamp(36px,3.3vw,48px);font-weight:780;line-height:1.16;letter-spacing:-.04em}.ws-auth-promise>p{max-width:440px;margin:24px 0 0;color:#b5c1d0;font-size:16px;line-height:1.8}
.ws-auth-capabilities{position:relative;z-index:1;display:grid;width:min(560px,100%);margin:48px 0 0;border-top:1px solid rgba(255,255,255,.13)}.ws-auth-capability{display:grid;grid-template-columns:42px minmax(0,1fr);gap:15px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.13)}.ws-auth-capability>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:#dfe9f6;background:rgba(255,255,255,.09);font-size:13px;font-weight:800}.ws-auth-capability strong,.ws-auth-capability small{display:block}.ws-auth-capability strong{color:#eef3f8;font-size:14px}.ws-auth-capability small{margin-top:4px;color:#9fadbf;font-size:12px;line-height:1.55}
.ws-auth-assurance{position:relative;z-index:1;margin:34px 0 0;color:#8f9eb1;font-size:12px}
.ws-auth-main{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;padding:clamp(28px,5vw,72px);overflow-y:auto}
.ws-auth-mobile-brand{display:none;width:min(480px,100%)}
.ws-login-card{width:min(480px,100%);padding:40px;border:1px solid #dce2ea;border-radius:18px;background:#fff;box-shadow:0 18px 48px rgba(28,41,60,.08)}
.ws-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 30px;padding:5px;border-radius:13px;background:#eef1f5}.ws-auth-tabs button{height:42px;border:0;border-radius:9px;color:#5f6c7f;background:transparent;font-weight:720;transition:color .16s ease,background .16s ease,box-shadow .16s ease}.ws-auth-tabs button:hover{color:#263b59}.ws-auth-tabs button:focus-visible{outline:3px solid rgba(49,95,159,.25);outline-offset:1px}.ws-auth-tabs button.is-active{color:#264f88;background:#fff;box-shadow:0 2px 8px rgba(32,44,60,.1)}
.ws-login-copy h2{margin:0;color:#1f2d40;font-size:30px;font-weight:780;line-height:1.2;letter-spacing:-.025em}.ws-login-copy p{margin:10px 0 0;color:#6b7686;font-size:14px;line-height:1.7}
.ws-login-card form{display:grid;gap:16px;margin-top:28px}.ws-login-card label{display:grid;gap:8px;color:#344257;font-weight:680}.ws-login-card label>span{display:flex;align-items:center;justify-content:space-between}.ws-login-card label small{color:#687487;font-size:12px;font-weight:520;line-height:1.45}.ws-login-card input{width:100%;height:50px;padding:0 15px;border:1px solid #8794a7;border-radius:12px;background:#fff;color:#1f2d40;font:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.ws-login-card input::placeholder{color:#687487}.ws-login-card input:hover{border-color:#6f7d91}.ws-login-card input:focus{border-color:#315f9f;background:#fff;box-shadow:0 0 0 3px rgba(49,95,159,.14)}.ws-login-card input:invalid:not(:placeholder-shown){border-color:#b85d50}.ws-login-card form .ws-auth-submit{height:50px;margin-top:2px;border:0;border-radius:12px;color:#fff;background:#315f9f;font:inherit;font-weight:760;cursor:pointer;box-shadow:0 8px 18px rgba(49,95,159,.18);transition:background .16s ease,transform .12s ease,box-shadow .16s ease}.ws-login-card form .ws-auth-submit:hover:not(:disabled){background:#294f84;box-shadow:0 10px 22px rgba(49,95,159,.23)}.ws-login-card form .ws-auth-submit:active:not(:disabled){transform:translateY(1px);box-shadow:0 5px 12px rgba(49,95,159,.18)}.ws-login-card form .ws-auth-submit:focus-visible{outline:3px solid rgba(49,95,159,.25);outline-offset:3px}.ws-login-card form button:disabled{cursor:wait}.ws-login-card form .ws-auth-submit:disabled{background:#8192aa;box-shadow:none}
.ws-auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) 126px;gap:10px}.ws-login-card form .ws-auth-code-row button{height:50px;padding:0 12px;border:1px solid #8794a7;border-radius:12px;color:#2e5b98;background:#f2f6fb;font-weight:730;box-shadow:none;white-space:nowrap;transition:border-color .16s ease,background .16s ease,transform .12s ease}.ws-login-card form .ws-auth-code-row button:hover:not(:disabled){border-color:#6f7d91;background:#eaf1f9}.ws-login-card form .ws-auth-code-row button:active:not(:disabled){transform:translateY(1px)}.ws-login-card form .ws-auth-code-row button:focus-visible{outline:3px solid rgba(49,95,159,.2);outline-offset:2px}.ws-login-card form .ws-auth-code-row button:disabled{color:#75849a;background:#eef1f5;cursor:not-allowed}
.ws-auth-status{display:grid;gap:8px}.ws-login-note,.ws-login-error{padding:10px 12px;border:1px solid;border-radius:10px}.ws-login-note:empty,.ws-login-error:empty{display:none}.ws-login-note{border-color:#bfddcf;color:#27654f;background:#f1f8f5}.ws-login-error{border-color:#ecc8c2;color:#943c32;background:#fff5f3}
@media(max-width:1020px){.ws-login-page{display:block}.ws-auth-intro{display:none}.ws-auth-main{min-height:100vh;min-height:100dvh;padding:32px 22px}.ws-auth-mobile-brand{display:flex;margin-bottom:28px}.ws-auth-mobile-brand>span{color:#fff;background:#315f9f}.ws-auth-mobile-brand strong{color:#24344b}.ws-auth-mobile-brand small{color:#637083}}
@media(max-width:540px){.ws-auth-main{align-items:start;padding:20px 14px}.ws-login-card{padding:26px 20px;border-radius:16px}.ws-auth-mobile-brand{margin:0 2px 22px}.ws-login-copy h2{font-size:27px}.ws-auth-tabs{margin-bottom:24px}.ws-auth-code-row{grid-template-columns:minmax(0,1fr) 118px}.ws-login-card form{gap:15px;margin-top:24px}}

/* 工作台信息架构：全站只保留一套导航，内容区围绕当前班级展开。 */
:root {
  --wb-ink: #1f2937;
  --wb-muted: #667085;
  --wb-line: #dfe3e8;
  --wb-canvas: #f6f7f9;
  --wb-blue: #315f9f;
  --wb-blue-soft: #edf3fb;
  --wb-coral: #b65345;
  --wb-green: #28775e;
  --wb-shadow: 0 10px 28px rgba(31, 41, 55, .07);
}

#workspace-root,#root,#wrongbook-root { width: calc(100% - 232px); margin-left: 232px; }
#workspace-global-nav {
  width: 232px;
  align-items: stretch;
  padding: 22px 16px 18px;
  color: #e8edf4;
  background: #202c3c;
  box-shadow: none;
}
.ws-global-brand {
  flex-direction: row;
  align-items: center;
  gap: 11px;
  margin: 0 4px 22px;
}
.ws-global-brand span {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  border-radius: 10px;
  color: #202c3c;
  background: #f5f7fa;
  box-shadow: none;
}
.ws-global-brand div,.ws-global-brand strong,.ws-global-brand small { display: block; }
.ws-global-brand strong { color: #f5f7fa; font-size: 16px; letter-spacing: 0; }
.ws-global-brand small { margin-top: 2px; color: #94a3b6; font-size: 10px; }
.ws-global-class {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 2px 8px;
  width: 100%;
  min-height: 58px;
  margin-bottom: 22px;
  padding: 10px 11px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  color: #eef2f7;
  background: rgba(255,255,255,.045);
  text-align: left;
}
.ws-global-class:hover { background: rgba(255,255,255,.08); }
.ws-global-class small { grid-column: 1 / -1; color: #91a0b4; font-size: 9px; }
.ws-global-class strong { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ws-global-class i { color: #a8b6c8; font-size: 9px; font-style: normal; }
#workspace-global-nav nav { gap: 4px; }
#workspace-global-nav nav button {
  min-height: 44px;
  flex-direction: row;
  justify-content: flex-start;
  gap: 11px;
  padding: 6px 10px;
  border-radius: 8px;
  color: #aeb9c8;
}
#workspace-global-nav nav button::before { display: none; }
#workspace-global-nav nav button span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  border-radius: 7px;
  color: #c6d0dc;
  background: rgba(255,255,255,.055);
  font-size: 10px;
  font-weight: 800;
}
#workspace-global-nav nav button small { font-size: 12px; font-weight: 680; }
#workspace-global-nav nav button:hover { background: rgba(255,255,255,.055); }
#workspace-global-nav nav button[aria-current="page"] { color: #fff; background: #315f9f; }
#workspace-global-nav nav button[aria-current="page"] span { color: #fff; background: rgba(255,255,255,.14); }
.ws-global-account {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding: 12px 6px 0;
  border-top: 1px solid rgba(255,255,255,.09);
}
.ws-global-account > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  color: #dce7f6;
  background: #334256;
  font-size: 10px;
  font-weight: 800;
}
.ws-global-account strong { display: block; overflow: hidden; color: #e8edf4; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.ws-global-account button { margin-top: 2px; padding: 0; border: 0; color: #91a0b4; background: transparent; font-size: 9px; }
.ws-global-account button:hover { color: #fff; }
.ws-global-account-actions { display: flex; align-items: center; gap: 8px; }
.ws-global-account-actions button:first-child { color: #b8cff3; }

.ws-main,.cr-main,.wb-main {
  width: min(1280px,100%);
  margin: 0 auto;
  padding: 38px clamp(24px,4vw,56px) 64px;
}
.ws-page-header,.wb-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 28px;
}
.ws-page-account-actions { display: flex; align-items: stretch; gap: 9px; }
.ws-membership-button { display: grid; align-content: center; min-width: 112px; padding: 8px 12px; border: 1px solid #c7d6ed; border-radius: 10px; color: #315f9f; background: #f3f7fc; text-align: left; }
.ws-membership-button span { color: #7b8ca5; font-size: 11px; }
.ws-membership-button strong { margin-top: 2px; font-size: 13px; }
.ws-page-header h1,.wb-page-head h1 { margin: 0; color: var(--wb-ink); font-size: clamp(27px,3vw,36px); line-height: 1.15; letter-spacing: -.025em; }
.ws-page-header p,.wb-page-head p { margin: 7px 0 0; color: var(--wb-muted); font-size: 13px; }
.ws-current-class {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 2px 14px;
  min-width: 180px;
  min-height: 52px;
  padding: 8px 12px;
  border: 1px solid var(--wb-line);
  border-radius: 10px;
  color: #344054;
  background: #fff;
  text-align: left;
}
.ws-current-class span { grid-column: 1 / -1; color: #8a94a4; font-size: 9px; }
.ws-current-class strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ws-current-class i { color: var(--wb-blue); font-size: 10px; font-style: normal; }
.ws-action-bar {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  margin-bottom: 24px;
}
.ws-action-bar > button {
  display: grid;
  grid-template-columns: 36px minmax(0,1fr);
  align-items: center;
  gap: 11px;
  min-height: 66px;
  padding: 10px 13px;
  border: 1px solid var(--wb-line);
  border-radius: 10px;
  color: #344054;
  background: #fff;
  text-align: left;
}
.ws-action-bar > button:hover { border-color: #bdc8d7; background: #fbfcfe; }
.ws-action-bar > button:active,.wb-btn:active,.cr-edit-button:active { transform: translateY(1px); }
.ws-action-bar > button > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  color: #315f9f;
  background: #edf3fb;
  font-size: 11px;
  font-weight: 800;
}
.ws-action-bar > button.is-primary { border-color: #315f9f; color: #fff; background: #315f9f; }
.ws-action-bar > button.is-primary > span { color: #fff; background: rgba(255,255,255,.14); }
.ws-action-bar strong,.ws-action-bar small { display: block; }
.ws-action-bar strong { font-size: 12px; }
.ws-action-bar small { margin-top: 3px; color: #667085; font-size: 9px; }
.ws-action-bar .is-primary small { color: #cbd8e9; }
.ws-summary {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  margin: 0 0 28px;
  border-top: 1px solid var(--wb-line);
  border-bottom: 1px solid var(--wb-line);
  background: transparent;
}
.ws-summary div { padding: 16px 18px; border-right: 1px solid var(--wb-line); }
.ws-summary div:first-child { padding-left: 0; }
.ws-summary div:last-child { border-right: 0; }
.ws-summary dt { color: #7a8493; font-size: 10px; }
.ws-summary dd { margin: 5px 0 0; color: #273445; font-size: 22px; font-weight: 780; }
.ws-summary dd small { color: #7c8797; font-size: 11px; font-weight: 600; }
.ws-recent { border: 1px solid var(--wb-line); border-radius: 12px; background: #fff; box-shadow: none; }
.ws-section-head { padding: 17px 19px; }
.ws-section-head h2 { font-size: 15px; }
.ws-section-head p { margin: 4px 0 0; color: #667085; font-size: 10px; letter-spacing: 0; }
.ws-section-head button { font-size: 10px; }
.ws-paper-list > button { min-height: 64px; padding: 9px 18px; }
.ws-paper-icon { border-radius: 8px; font-size: 10px; font-weight: 800; }
.ws-paper-list i { color: #69788c; font-size: 9px; }

.cr-shell { background: var(--wb-canvas); }
.cr-main { width: min(1460px,100%); }
.cr-header { align-items: flex-end; margin-bottom: 22px; }
.cr-header-actions button { min-height: 36px; border-radius: 8px; font-size: 10px; }
.cr-section-tabs { justify-content: flex-start; margin: 0 0 10px; }
.cr-view-controls { padding: 3px; border-radius: 9px; background: #e8ebef; }
.cr-view-controls button { min-height: 32px; border-radius: 7px; font-size: 10px; }
.cr-workspace { grid-template-columns: minmax(0,1fr) 250px; gap: 14px; }
.cr-content { min-height: 620px; padding: 19px; border-radius: 12px; box-shadow: none; }
.cr-content-head { align-items: center; margin-bottom: 18px; }
.cr-content-head h2 { font-size: 15px; }
.cr-content-head p { font-size: 9px; }
.cr-content-actions { display: flex; align-items: center; gap: 7px; }
.cr-edit-button { min-height: 34px; border-radius: 8px; }
.cr-edit-button.is-primary { border-color: #315f9f; color: #fff; background: #315f9f; }
.cr-front { margin-bottom: 36px; }
.cr-tools { top: 18px; gap: 8px; padding: 16px; border-radius: 12px; box-shadow: none; }
.cr-tools > header { margin: 0 0 4px; }
.cr-tools > header h2 { font-size: 14px; }
.cr-tool-primary,.cr-tool { min-height: 58px; border-radius: 9px; }
.cr-tool-primary > span,.cr-tool > span { width: 32px; height: 32px; border-radius: 8px; font-size: 9px; }
.cr-picked { border-radius: 10px; }

.wb-app { display: block; min-height: 100vh; }
.wb-sidebar { display: none !important; }
.wb-main { min-width: 0; }
.wb-page { width: 100%; max-width: 1180px; }
.wb-page-head { align-items: flex-end; margin: 0 0 24px; }
.wb-page-head p { max-width: 720px; }
.wb-page-header-tools { display: flex; align-items: center; gap: 10px; }
.wb-page-class { display: none; }
.wb-btn { min-height: 38px; padding: 0 13px; border-radius: 8px; box-shadow: none; font-size: 11px; }
.wb-btn:hover { transform: none; }
.wb-btn-primary { border-color: #315f9f; background: #315f9f; box-shadow: none; }
.wb-btn-sm { min-height: 34px; }
.wb-toolbar { margin-bottom: 12px; }
.wb-input,.wb-select,.wb-textarea { border-radius: 8px; }
.wb-paper-grid,.wb-student-grid { display: block; }
.wb-paper-table,.wb-student-table {
  overflow: hidden;
  border: 1px solid var(--wb-line);
  border-radius: 12px;
  background: #fff;
}
.wb-paper-row-open,.wb-student-row {
  display: grid;
  width: 100%;
  min-height: 70px;
  align-items: center;
  gap: 13px;
  padding: 11px 16px;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
}
.wb-paper-row {
  display: grid;
  min-height: 70px;
  grid-template-columns: minmax(0,1fr) 62px;
  align-items: stretch;
  border-bottom: 1px solid #eceef1;
  background: #fff;
}
.wb-paper-row-open { grid-template-columns: 38px minmax(0,1fr) 120px 34px; }
.wb-student-row { grid-template-columns: 38px minmax(0,1fr) 70px 70px 34px; border-bottom: 1px solid #eceef1; background: #fff; }
.wb-paper-row:last-child,.wb-student-row:last-child { border-bottom: 0; }
.wb-paper-row:hover .wb-paper-row-open,.wb-student-row:hover { background: #fafbfd; }
.wb-paper-row.is-queued { background: #fbfdff; }
.wb-paper-row-delete {
  border: 0;
  border-left: 1px solid #eceef1;
  color: #a84034;
  background: transparent;
  font-size: 10px;
  font-weight: 700;
}
.wb-paper-row-delete:hover { color: #8d3027; background: #fff2f0; }
.wb-paper-row .wb-file-icon { width: 36px; height: 36px; border-radius: 8px; font-size: 10px; font-weight: 800; }
.wb-paper-row-count,.wb-student-row-count { text-align: right; }
.wb-paper-row-count strong,.wb-paper-row-count small,.wb-student-row-count strong,.wb-student-row-count small { display: block; }
.wb-paper-row-count strong { color: #344054; font-size: 10px; }
.wb-paper-row-count small,.wb-student-row-count small { margin-top: 3px; color: #8993a2; font-size: 9px; }
.wb-paper-status { display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 8px; justify-self: end; min-width: 118px; text-align: left; }
.wb-paper-status strong,.wb-paper-status small { white-space: nowrap; }
.wb-paper-spinner,.wb-paper-queue-number,.wb-paper-status-mark { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; }
.wb-paper-spinner { border: 2px solid #dbe6f7; border-top-color: #315f9f; }
.wb-paper-queue-number { color: #637188; background: #edf1f6; font-size: 9px; font-weight: 800; }
.wb-paper-status-mark { color: #a84034; background: #fff0ed; font-size: 11px; font-weight: 850; }
.wb-paper-status.is-processing strong { color: #315f9f; }
.wb-paper-status.is-pending strong { color: #56657a; }
.wb-paper-status.is-failed strong { color: #a84034; }
@media (prefers-reduced-motion: no-preference) { .wb-paper-spinner { animation: wb-paper-spin .85s linear infinite; } }
@keyframes wb-paper-spin { to { transform: rotate(360deg); } }
.wb-student-row-count strong { color: #344054; font-size: 15px; }
.wb-paper-row-open i,.wb-student-row i { color: #6b7a8e; font-size: 9px; font-style: normal; text-align: right; }
.wb-panel { border-radius: 12px; box-shadow: none; }
.wb-notice { margin-bottom: 18px; padding: 13px 15px; border: 1px solid #d9aa5b; border-radius: 10px; color: #6c4d20; background: #fff8e9; }
.wb-notice strong { display: block; font-size: 12px; }
.wb-notice p { margin: 4px 0 0; font-size: 10px; line-height: 1.6; }
.wb-question { border-radius: 10px; }
.wb-detail-head { display: none; }
.wb-filter-pills { margin-bottom: 16px; }
.wb-profile { display: block; }
#workspace-root button:focus-visible,#wrongbook-root button:focus-visible,#workspace-global-nav button:focus-visible,#workspace-root input:focus-visible,#wrongbook-root input:focus-visible { outline: 3px solid rgba(70,111,181,.3); outline-offset: 2px; }

@media (max-width:1180px) {
  .cr-workspace { grid-template-columns: 1fr; }
  .cr-tools { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cr-tools > header,.cr-picked { grid-column: 1 / -1; }
}

@media (max-width:900px) {
  #workspace-root,#root,#wrongbook-root { width: 100%; margin-left: 0; }
  #workspace-global-nav {
    inset: auto 0 0;
    width: 100%;
    height: 64px;
    padding: 6px 8px;
    border-top: 1px solid #344154;
  }
  .ws-global-brand,.ws-global-class,.ws-global-account { display: none; }
  #workspace-global-nav nav { height: 100%; flex-direction: row; gap: 3px; }
  #workspace-global-nav nav button { min-width: 0; min-height: 50px; flex: 1; flex-direction: column; justify-content: center; gap: 2px; padding: 3px; border-radius: 7px; }
  #workspace-global-nav nav button span { width: 22px; height: 22px; border-radius: 6px; font-size: 8px; }
  #workspace-global-nav nav button small { font-size: 9px; white-space: nowrap; }
  .ws-shell,.wb-app { padding-bottom: 64px; }
  .ws-main,.cr-main,.wb-main { padding: 28px 18px 48px; }
  .ws-page-header,.wb-page-head { align-items: flex-start; flex-direction: column; gap: 16px; }
  .ws-page-account-actions { width: 100%; }
  .ws-page-account-actions > button { flex: 1; }
  .ws-current-class { width: 100%; }
  .ws-action-bar { grid-template-columns: 1fr; }
  .ws-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ws-summary div,.ws-summary div:first-child { padding: 13px 12px; border-right: 0; border-bottom: 1px solid var(--wb-line); }
  .ws-summary div:nth-child(odd) { border-right: 1px solid var(--wb-line); }
  .ws-summary div:last-child { border-right: 0; border-bottom: 0; }
  .cr-header { align-items: flex-start; }
  .cr-header-actions { width: 100%; }
  .cr-header-actions button { flex: 1; }
  .wb-page-header-tools { width: 100%; flex-direction: column; align-items: stretch; }
  .wb-page-class { display: flex; align-items: center; justify-content: space-between; min-height: 38px; padding: 0 11px; border: 1px solid var(--wb-line); border-radius: 8px; color: #344054; background: #fff; }
  .wb-page-class span { color: #7b8798; font-size: 9px; }
  .wb-page-class strong { font-size: 10px; }
  .wb-page-head .wb-actions { width: 100%; }
}

@media (max-width:620px) {
  .ws-main,.cr-main,.wb-main { padding: 22px 13px 40px; }
  .ws-section-head { align-items: flex-start; }
  .ws-paper-list > button { grid-template-columns: 36px minmax(0,1fr); }
  .ws-paper-list i { display: none; }
  .cr-content { padding: 14px; }
  .cr-content-head { align-items: flex-start; flex-direction: column; }
  .cr-content-actions { width: 100%; }
  .cr-content-actions button { flex: 1; }
  .cr-tools { grid-template-columns: 1fr; }
  .cr-tools > header,.cr-picked { grid-column: 1; }
  .wb-paper-row { grid-template-columns: minmax(0,1fr) 54px; }
  .wb-paper-row-open { grid-template-columns: 34px minmax(0,1fr); }
  .wb-student-row { grid-template-columns: 34px minmax(0,1fr) 48px; }
  .wb-paper-row-count { display: none; }
  .wb-paper-row.is-queued .wb-paper-status { display: grid; grid-column: 2; justify-self: start; margin-top: -3px; }
  .wb-student-row-count + .wb-student-row-count,.wb-paper-row-open i,.wb-student-row i { display: none; }
  .wb-page-head .wb-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wb-page-head .wb-actions .wb-btn { width: 100%; }
  .wb-mistake-controls { grid-template-columns: 1fr; }
  .wb-mistake-sort { grid-template-columns: 46px minmax(0,1fr); }
  .wb-student-checks { grid-template-columns: 1fr; }
  .vip-current { grid-template-columns: 1fr; gap: 14px; }
  .vip-benefits { grid-template-columns: 1fr; }
  .vip-benefits > span { grid-column: 1; }
  .vip-plan { align-items: flex-start; }
  .vip-plan > span:first-child small { max-width: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  .ws-action-bar > button,.wb-paper-row-open,.wb-paper-row-delete,.wb-student-row,.cr-edit-button { transition: none !important; }
}

@media print {
  #workspace-root,#root,#wrongbook-root { width: 100%; margin-left: 0; }
  .wb-main { width: 100%; max-width: none; padding: 0; }
}

/* 统一字体系统：正文以 14px 为基准，常规辅助信息不低于 12px；课桌内状态信息最低 10px。 */
:root {
  --wb-font-ui: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --wb-type-page: clamp(28px,3vw,36px);
  --wb-type-section: 18px;
  --wb-type-title: 15px;
  --wb-type-body: 14px;
  --wb-type-control: 13px;
  --wb-type-meta: 12px;
  --wb-type-desk-meta: 10px;
}

html,body,#workspace-root,#workspace-global-nav,#wrongbook-root,#root {
  font-family: var(--wb-font-ui);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#workspace-root,#wrongbook-root { font-size: var(--wb-type-body); line-height: 1.5; }
#workspace-root button,#workspace-global-nav button,#wrongbook-root button,
#workspace-root input,#workspace-root select,#workspace-root textarea,
#wrongbook-root input,#wrongbook-root select,#wrongbook-root textarea { font-family: inherit; }
.ws-summary dd,.cr-class-overview strong,.wb-stat-value,.wb-mistake-num,.wb-profile-kpi strong { font-variant-numeric: tabular-nums; }

/* 全局导航 */
.ws-global-brand small { font-size: var(--wb-type-meta); line-height: 1.4; }
.ws-global-class small { font-size: var(--wb-type-meta); }
.ws-global-class strong { font-size: 13px; }
.ws-global-class i { font-size: 12px; }
#workspace-global-nav nav button span { font-size: 11px; }
#workspace-global-nav nav button small { font-size: 13px; font-weight: 650; }
.ws-global-account > span { font-size: 11px; }
.ws-global-account strong { font-size: 12px; }
.ws-global-account button { font-size: 12px; }

/* 页面标题、概览和首页操作 */
.ws-page-header h1,.wb-page-head h1,.cr-title h1 { font-size: var(--wb-type-page); }
.ws-page-header p,.wb-page-head p,.cr-header > div:first-child > span { font-size: var(--wb-type-body); line-height: 1.65; }
.cr-header > div:first-child > p,.ws-heading > p,.ws-module-copy p,.ws-guide > p { font-size: var(--wb-type-meta); letter-spacing: .08em; }
.cr-title button,.cr-header-actions button,.cr-view-controls button,.cr-edit-button { font-size: var(--wb-type-control); }
.ws-current-class span { font-size: var(--wb-type-meta); }
.ws-current-class strong { font-size: var(--wb-type-body); }
.ws-current-class i { font-size: var(--wb-type-meta); }
.ws-action-bar > button > span { font-size: var(--wb-type-meta); }
.ws-action-bar strong { font-size: var(--wb-type-body); }
.ws-action-bar small { font-size: var(--wb-type-meta); line-height: 1.45; }
.ws-summary dt { font-size: var(--wb-type-meta); }
.ws-summary dd { font-size: 24px; }
.ws-summary dd small { font-size: var(--wb-type-meta); }
.ws-section-head h2,.ws-guide h2 { font-size: var(--wb-type-section); }
.ws-section-head p { font-size: var(--wb-type-meta); line-height: 1.5; }
.ws-section-head button { font-size: var(--wb-type-control); }
.ws-paper-list strong,.ws-empty strong { font-size: var(--wb-type-body); }
.ws-paper-list small,.ws-paper-list i,.ws-empty p { font-size: var(--wb-type-meta); }
.ws-empty button { font-size: var(--wb-type-control); }
.ws-module-metrics dt { font-size: var(--wb-type-meta); }
.ws-module-action { font-size: var(--wb-type-control); }
.ws-guide li strong { font-size: var(--wb-type-control); }
.ws-guide li small { font-size: var(--wb-type-meta); }

/* 班级与课堂：保持课桌紧凑，但让姓名、控件和提示可读。 */
.cr-class-overview span { font-size: var(--wb-type-meta); }
.cr-class-overview strong { font-size: 24px; }
.cr-class-overview strong em { font-size: var(--wb-type-meta); }
.cr-class-overview small { font-size: var(--wb-type-meta); line-height: 1.45; }
.cr-section-tabs > div:first-child strong { font-size: 16px; }
.cr-section-tabs > div:first-child span { font-size: var(--wb-type-meta); }
.cr-content-head h2 { font-size: var(--wb-type-section); }
.cr-content-head p { font-size: var(--wb-type-meta); line-height: 1.5; }
.cr-front { font-size: var(--wb-type-meta); }
.cr-group header strong { font-size: var(--wb-type-control); }
.cr-group header small { font-size: var(--wb-type-meta); }
.cr-dimension-controls button,.cr-seat-placeholder button { min-height: 26px; font-size: var(--wb-type-meta); }
.cr-seat-avatar { font-size: var(--wb-type-desk-meta); }
.cr-seat strong { font-size: var(--wb-type-meta); line-height: 1.25; }
.cr-seat-input { min-height: 23px; font-size: var(--wb-type-meta); line-height: 1.25; }
.cr-suggestions .wb-avatar { font-size: var(--wb-type-desk-meta); }
.cr-suggestions strong { font-size: var(--wb-type-control); }
.cr-suggestions small { font-size: var(--wb-type-meta); line-height: 1.4; }
.cr-suggestion-empty { font-size: var(--wb-type-meta); }
.cr-student-list strong { font-size: var(--wb-type-body); }
.cr-student-list small,.cr-student-list em { font-size: var(--wb-type-meta); }
.cr-empty p { font-size: var(--wb-type-control); }
.cr-tools > header p { font-size: var(--wb-type-meta); }
.cr-tools > header h2 { font-size: 16px; }
.cr-tool-primary > span,.cr-tool > span { font-size: 11px; }
.cr-tool-primary strong,.cr-tool strong { font-size: var(--wb-type-control); }
.cr-tool-primary small,.cr-tool small { font-size: var(--wb-type-meta); line-height: 1.45; }
.cr-tool-row button strong { font-size: var(--wb-type-meta); }
.cr-question small,.cr-picked small { font-size: var(--wb-type-meta); }
.cr-question p { font-size: var(--wb-type-control); line-height: 1.65; }
.cr-picked p,.cr-picked button { font-size: var(--wb-type-meta); }

/* 试卷、学生错题、错题集和弹窗 */
.wb-btn { font-size: var(--wb-type-control); }
.wb-btn-sm { font-size: var(--wb-type-meta); }
.wb-row-title { font-size: var(--wb-type-title); }
.wb-row-meta,.wb-badge,.wb-stat-note { font-size: var(--wb-type-meta); line-height: 1.45; }
.wb-stat-label { font-size: var(--wb-type-control); }
.wb-panel-head h2,.wb-section-title { font-size: var(--wb-type-section); }
.wb-paper-row-count strong { font-size: var(--wb-type-meta); }
.wb-paper-row-count small,.wb-student-row-count small { font-size: var(--wb-type-meta); }
.wb-paper-row-open i,.wb-student-row i { font-size: var(--wb-type-meta); }
.wb-paper-row-delete { font-size: var(--wb-type-meta); }
.wb-notice strong { font-size: var(--wb-type-control); }
.wb-notice p { font-size: var(--wb-type-meta); line-height: 1.65; }
.wb-input,.wb-select,.wb-textarea { font-size: var(--wb-type-body); line-height: 1.5; }
.wb-field label { font-size: var(--wb-type-control); }
.wb-field label small,.wb-field > small { font-size: var(--wb-type-meta); }
.wb-paper-card h3,.wb-student-card h3 { font-size: var(--wb-type-title); }
.wb-paper-card p,.wb-paper-foot,.wb-student-card p,.wb-mistake-num small { font-size: var(--wb-type-meta); }
.wb-section-count,.wb-qnum { font-size: var(--wb-type-meta); }
.wb-qtext,.wb-rich-content { font-size: var(--wb-type-body); line-height: 1.75; }
.wb-rich-content.is-compact,.wb-rich-table { font-size: var(--wb-type-meta); }
.wb-modal-head h2 { font-size: 20px; }
.wb-modal-head p,.wb-dropzone p { font-size: var(--wb-type-meta); line-height: 1.55; }
.wb-tabs button { font-size: var(--wb-type-control); }
.wb-dropzone strong { font-size: var(--wb-type-title); }
.wb-dropzone .wb-selected-files > strong { font-size: var(--wb-type-meta); }
.wb-selected-files span { font-size: var(--wb-type-meta); line-height: 1.4; }
.wb-class-picker-current { font-size: var(--wb-type-meta); }
.wb-class-picker-current span { font-size: var(--wb-type-meta); }
.wb-class-picker-current strong,.wb-class-picker-copy strong { font-size: var(--wb-type-control); }
.wb-class-picker-copy small,.wb-class-picker-main em,.wb-class-picker-main i,.wb-class-picker-edit { font-size: var(--wb-type-meta); }
.wb-editor-row .wb-textarea,.wb-editor-row .wb-select { font-size: var(--wb-type-control); }
.wb-editor-resource > span { font-size: var(--wb-type-meta); }
.wb-check,.wb-import-summary,.wb-preview-table { font-size: var(--wb-type-meta); }
.wb-check strong,.wb-mistake-sort,.wb-mistake-result-meta,.wb-mistake-no-results strong,.wb-mistake-no-results small { font-size: var(--wb-type-meta); }
.wb-profile-side p,.wb-profile-kpi span,.wb-filter-pills button { font-size: var(--wb-type-meta); }
.wb-toast { font-size: var(--wb-type-control); line-height: 1.5; }

/* 登录注册 */
.ws-login-brand small { font-size: var(--wb-type-meta); }
.ws-auth-tabs button { font-size: var(--wb-type-body); }
.ws-login-copy p,.ws-login-card label { font-size: var(--wb-type-body); }
.ws-login-card input { font-size: var(--wb-type-body); }
.ws-login-card form .ws-auth-submit { font-size: var(--wb-type-body); }
.ws-login-card form .ws-auth-code-row button,.ws-login-note,.ws-login-error { font-size: var(--wb-type-control); line-height: 1.45; }

/* 问答与计分直接使用当前班级座次，并复用班级页的课桌视觉。 */
body.ws-quiz { background: #f2f4f7; }
body.ws-quiz #root { font-family: var(--wb-font-ui); }
body.ws-quiz #root > [class^="_container_p5wly_"] { padding: 24px clamp(18px,3vw,42px) 20px; gap: 12px; background: #f2f4f7; }
body.ws-quiz [class^="_topElement_p5wly_"] { max-width: 1200px; }
body.ws-quiz [class^="_gameBoard_p5wly_"] { max-width: 1480px; border: 1px solid #e0e4ea; border-radius: 18px; background: #fff; box-shadow: 0 9px 30px rgba(31,42,68,.045); }
body.ws-quiz [class^="_main_p5wly_"] { padding: 16px 22px 20px; }
body.ws-quiz [class^="_board_1ovbk_"] { max-width: 1200px; padding: 13px 18px; border: 1px solid #e0e4ea; border-radius: 12px; box-shadow: none; }
body.ws-quiz [class^="_label_1ovbk_"] { margin-bottom: 3px; color: #7c8798; font-size: 12px; text-transform: none; letter-spacing: 0; }
body.ws-quiz [class^="_text_1ovbk_"] { color: #27374f; font-size: clamp(18px,2vw,24px); }
body.ws-quiz [class^="_container_1xhkk_"] { align-items: stretch; gap: 28px; padding: 16px; overflow: auto; }
body.ws-quiz [class^="_groupWrapper_1xhkk_"] { min-width: 0; }
body.ws-quiz [class^="_groupWrapper_1xhkk_"]::after { display: none; }
body.ws-quiz [class^="_grid_1xhkk_"] { gap: 16px 12px; }
body.ws-quiz [class^="_card_14jv1_"] { isolation: isolate; min-height: 52px; max-height: 70px; align-self: center; flex-direction: row; margin-bottom: 10px; border: 1px solid #b8a27e; border-radius: 9px 9px 6px 6px; background: linear-gradient(180deg,#f0dfbd 0%,#dfc18f 100%); box-shadow: 0 3px 0 #b3976b,0 6px 9px rgba(70,58,40,.1),inset 0 1px 0 rgba(255,255,255,.55); }
body.ws-quiz [class^="_card_14jv1_"]::before { content: ""; position: absolute; z-index: -1; left: 50%; bottom: -11px; width: 48%; height: 18px; transform: translateX(-50%); border: 1px solid #aab4c1; border-radius: 9px 9px 6px 6px; background: #cbd3dc; box-shadow: inset 0 3px 0 rgba(255,255,255,.35); }
body.ws-quiz [class^="_card_14jv1_"]::after { content: ""; position: absolute; right: 8px; bottom: 4px; left: 8px; height: 1px; background: rgba(127,98,57,.18); }
body.ws-quiz [class^="_card_14jv1_"]:hover { transform: translateY(1px); box-shadow: 0 2px 0 #b3976b,0 5px 8px rgba(70,58,40,.1),inset 0 1px 0 rgba(255,255,255,.55); }
body.ws-quiz [class^="_content_14jv1_"] { width: 100%; min-width: 0; flex-direction: row; justify-content: center; gap: 8px; padding: 0 10px; }
body.ws-quiz [class^="_name_14jv1_"] { min-width: 0; flex: 1; padding: 0; color: #4e5b70; font-size: 14px; text-align: left; text-shadow: none; }
body.ws-quiz [class^="_scoreBadge_14jv1_"] { min-width: 26px; padding: 2px 7px; border: 0; border-radius: 7px; color: #fff; background: #315f9f; box-shadow: none; font-size: 13px; text-align: center; text-shadow: none; }
body.ws-quiz [class^="_subtractBtn_14jv1_"] { z-index: 3; top: -7px; right: -7px; width: 22px; height: 22px; border: 1px solid #dfb9b1; color: #af6456; background: #fff; box-shadow: 0 2px 6px rgba(87,49,42,.12); }
body.ws-quiz [class^="_editingCard_14jv1_"] { border: 1px dashed #c7b999; background: linear-gradient(180deg,#f7eedb,#ead8b7); box-shadow: 0 3px 0 #c8b38d; }
body.ws-quiz [class^="_input_14jv1_"] { width: calc(100% - 14px); color: #493d2c; font-size: 13px; }
body.ws-quiz [class^="_hiddenCard_14jv1_"] { min-height: 52px; max-height: 70px; aspect-ratio: auto; }
body.ws-quiz [class*="_slotHint_"] { font-size: 12px; }
body.ws-quiz [class*="_emptyText_"] { font-size: 13px; }
body.ws-quiz [class*="_footer_"] { font-size: 14px; }

@media (max-width:680px) {
  body.ws-quiz #root > [class^="_container_p5wly_"] { padding: 12px 10px 72px; }
  body.ws-quiz [class^="_main_p5wly_"] { padding: 10px; }
  body.ws-quiz [class^="_container_1xhkk_"] { justify-content: flex-start; padding: 10px; }
  body.ws-quiz [class^="_groupWrapper_1xhkk_"] { min-width: 680px; }
}

@media (max-width:900px) {
  #workspace-global-nav nav button span { font-size: 10px; }
  #workspace-global-nav nav button small { font-size: 12px; }
  .wb-page-class span,.wb-page-class strong { font-size: var(--wb-type-meta); }
}

@media (max-width:620px) {
  .ws-page-header h1,.wb-page-head h1,.cr-title h1 { font-size: 28px; }
  .wb-input,.wb-select,.wb-textarea,.ws-login-card input,.cr-seat-input { font-size: 16px; }
  .cr-seat-input { min-height: 26px; }
}

/* 教师题单与课堂问答：题目全局复用，课堂进度和分数按班级保存。 */
.qw-main { width: min(1480px,100%); }
.qw-header { margin-bottom: 18px; }
.qw-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 16px; padding: 16px 18px; border: 1px solid #dfe4eb; border-radius: 13px; background: #fff; }
.qw-toolbar > div:first-child { min-width: 0; }
.qw-toolbar > div:last-child { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.qw-toolbar span,.qw-toolbar strong,.qw-toolbar small { display: block; }
.qw-toolbar span { margin-bottom: 4px; color: #7a8595; font-size: 12px; font-weight: 700; }
.qw-toolbar strong { overflow: hidden; color: #28364b; font-size: 18px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.qw-toolbar small { margin-top: 4px; color: #7b8798; font-size: 13px; line-height: 1.45; }

.qw-question-card { position: relative; min-height: 310px; margin-bottom: 20px; padding: clamp(22px,3vw,40px); border: 1px solid #dce2ea; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(31,42,68,.045); overflow: hidden; }
.qw-question-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #315f9f; }
.qw-question-card.is-empty { display: grid; min-height: 340px; place-items: center; }
.qw-question-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #64748a; font-size: 13px; font-weight: 720; }
.qw-question-meta strong { font-variant-numeric: tabular-nums; }
.qw-question-jump { display: inline-flex; align-items: center; gap: 9px; padding: 0; border: 0; color: #315f9f; background: transparent; font: inherit; }
.qw-question-jump span { padding: 5px 9px; border-radius: 7px; color: #2e5d9d; background: #edf3fb; }
.qw-question-jump i { color: #66758a; font-size: 12px; font-style: normal; font-weight: 680; }
.qw-question-jump:hover i { color: #315f9f; text-decoration: underline; text-underline-offset: 3px; }
.qw-question-jump:focus-visible { outline: 3px solid rgba(49,95,159,.2); outline-offset: 4px; border-radius: 6px; }
.qw-prompt { max-width: 1100px; min-height: 84px; margin: 26px auto 24px; color: #243248; font-size: clamp(21px,2.2vw,30px); font-weight: 720; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.qw-answer-slot { display: grid; max-width: 1100px; min-height: 92px; margin: 0 auto; place-items: stretch; }
.qw-answer-placeholder { display: grid; min-height: 88px; place-items: center; border: 1px dashed #d6dce5; border-radius: 12px; color: #8a94a4; background: #fafbfc; font-size: 13px; }
.qw-answer { position: relative; min-height: 88px; padding: 18px 20px 18px 90px; border: 1px solid #bfd2ed; border-radius: 12px; color: #293b55; background: #f2f7fd; box-shadow: 0 12px 28px rgba(49,95,159,.1); transform-origin: right center; }
.qw-answer::before { content: "答"; position: absolute; top: 18px; left: 20px; display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; color: #fff; background: #315f9f; font-size: 18px; font-weight: 820; }
.qw-answer.is-entering { animation: qw-answer-fly-in .52s cubic-bezier(.2,.82,.24,1) both; }
.qw-answer span { display: block; color: #55749e; font-size: 12px; font-weight: 750; }
.qw-answer p { margin: 7px 0 0; font-size: 17px; font-weight: 650; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.qw-question-controls { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 24px; }
.qw-question-controls .wb-btn { min-width: 108px; }
.qw-question-controls .qw-answer-button { min-width: 126px; border-color: #8aa9d2; color: #294f84; background: #f6f9fd; }
.qw-question-controls .qw-answer-button:hover { border-color: #6087bb; background: #edf3fb; }
.qw-question-controls .wb-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
@keyframes qw-answer-fly-in {
  0% { opacity: 0; transform: translate3d(56px,20px,0) scale(.94); }
  68% { opacity: 1; transform: translate3d(-5px,0,0) scale(1.01); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

.qw-score-section { padding: 20px; border: 1px solid #dfe4eb; border-radius: 16px; background: #fff; }
.qw-score-section .cr-content-head { margin-bottom: 16px; }
.qw-room { padding-bottom: 8px; }
.qw-room .cr-front { margin-bottom: 30px; }
.qw-room .cr-group header small { color: #7a8595; font-size: 12px; }
.qw-desk { padding: 0 !important; overflow: visible; }
.qw-score-main { position: relative; z-index: 2; display: grid; width: 100%; min-width: 0; min-height: 48px; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 6px; padding: 5px 8px 7px; border: 0; border-radius: inherit; color: #4e4a42; background: transparent; text-align: left; }
.qw-score-main strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.qw-score-main em { padding: 3px 6px; border-radius: 6px; color: #fff; background: #315f9f; font-size: 12px; font-style: normal; font-weight: 780; font-variant-numeric: tabular-nums; white-space: nowrap; }
.qw-score-main:focus-visible { outline: 3px solid rgba(49,95,159,.28); outline-offset: 3px; }
.qw-score-main:active { transform: translateY(1px); }
.qw-score-minus { position: absolute; z-index: 4; top: -9px; right: -9px; display: grid; width: 26px; height: 26px; place-items: center; padding: 0; border: 1px solid #d8a9a1; border-radius: 50%; color: #a85045; background: #fff; box-shadow: 0 3px 8px rgba(86,48,41,.14); font-size: 17px; font-weight: 800; line-height: 1; }
.qw-score-minus:hover { border-color: #bd756a; color: #913c32; background: #fff6f4; }
.qw-score-minus:focus-visible { outline: 3px solid rgba(182,83,69,.2); outline-offset: 2px; }

.qw-set-picker { display: grid; gap: 14px; background: #f7f8fa; }
.qw-set-search { display: grid; gap: 7px; color: #536176; font-size: 13px; font-weight: 720; }
.qw-set-list { display: flex; min-height: 220px; max-height: 52vh; flex-direction: column; gap: 8px; overflow-y: auto; }
.qw-question-list { display: flex; min-height: 220px; max-height: 52vh; flex-direction: column; gap: 8px; overflow-y: auto; }
.qw-question-option { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 68px; padding: 10px 14px; border: 1px solid #dfe4eb; border-radius: 11px; color: #354359; background: #fff; text-align: left; }
.qw-question-option:hover { border-color: #bdcce0; background: #f7f9fc; }
.qw-question-option.is-current { border-color: #9ab8df; background: #f1f6fc; }
.qw-question-option > b { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; color: #315f9f; background: #eaf1fa; font-size: 13px; }
.qw-question-option > span { min-width: 0; }
.qw-question-option strong,.qw-question-option small { display: block; }
.qw-question-option strong { overflow: hidden; font-size: 14px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.qw-question-option small { margin-top: 4px; color: #7e8999; font-size: 11px; }
.qw-question-option i { color: #315f9f; font-size: 12px; font-style: normal; font-weight: 740; white-space: nowrap; }
.qw-set-row { display: grid; grid-template-columns: minmax(0,1fr) 62px 62px; overflow: hidden; border: 1px solid #dfe4eb; border-radius: 12px; background: #fff; }
.qw-set-select { display: flex; min-width: 0; min-height: 70px; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 15px; border: 0; color: #344258; background: transparent; text-align: left; }
.qw-set-select:hover { background: #f4f7fb; }
.qw-set-select span { min-width: 0; }
.qw-set-select strong,.qw-set-select small { display: block; }
.qw-set-select strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.qw-set-select small { margin-top: 5px; color: #7c8797; font-size: 12px; }
.qw-set-select i { color: #315f9f; font-size: 12px; font-style: normal; font-weight: 760; white-space: nowrap; }
.qw-set-edit,.qw-set-delete { border: 0; border-left: 1px solid #ebeff4; color: #627086; background: #fbfcfd; font-size: 12px; font-weight: 720; }
.qw-set-edit:hover { color: #2e5d9d; background: #f1f5fa; }
.qw-set-delete:hover { color: #ac4e42; background: #fff6f4; }
.qw-set-empty { display: grid; min-height: 220px; place-items: center; align-content: center; color: #8390a2; text-align: center; }
.qw-set-empty > span { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 12px; border-radius: 13px; color: #315f9f; background: #eaf1fa; font-size: 16px; font-weight: 800; }
.qw-set-empty strong,.qw-set-empty small { display: block; }
.qw-set-empty strong { color: #40506a; font-size: 15px; }
.qw-set-empty small { margin-top: 6px; font-size: 12px; }

.qw-editor { display: grid; gap: 18px; background: #f7f8fa; }
.qw-editor > .wb-field { gap: 7px; color: #536176; font-size: 13px; font-weight: 720; }
.qw-editor-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.qw-editor-head strong,.qw-editor-head small { display: block; }
.qw-editor-head strong { color: #344258; font-size: 15px; }
.qw-editor-head small { margin-top: 4px; color: #7c8797; font-size: 12px; }
.qw-editor-list { display: flex; flex-direction: column; gap: 12px; }
.qw-editor-item { padding: 16px; border: 1px solid #dfe4eb; border-radius: 13px; background: #fff; }
.qw-editor-item header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.qw-editor-item header strong { color: #3a485d; font-size: 14px; }
.qw-editor-item header button { border: 0; color: #a24b40; background: transparent; font-size: 12px; font-weight: 720; }
.qw-editor-item label { display: grid; gap: 6px; margin-top: 11px; color: #637086; font-size: 12px; font-weight: 700; }
.qw-editor-item .wb-textarea { min-height: 88px; }

@media (max-width:800px) {
  .qw-toolbar { align-items: flex-start; flex-direction: column; }
  .qw-toolbar > div:last-child { width: 100%; justify-content: flex-start; }
  .qw-question-card { padding: 22px 18px; }
  .qw-prompt { font-size: 21px; }
  .qw-answer { padding: 76px 16px 16px; }
  .qw-answer::before { top: 14px; left: 16px; width: 44px; height: 44px; }
  .qw-question-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .qw-question-controls .wb-btn { min-width: 0; }
  .qw-question-controls .qw-answer-button { grid-column: 1 / -1; grid-row: 1; }
  .qw-score-section { padding: 15px; }
  .qw-set-row { grid-template-columns: minmax(0,1fr) 54px 54px; }
}

@media (prefers-reduced-motion: reduce) {
  .qw-answer.is-entering { animation: none; }
  .qw-score-main:active { transform: none; }
}

/* 课堂投屏：左侧保持完整教室座次，右侧集中显示题目、答案与课堂操作。 */
body.ws-quiz {
  --qp-edge: clamp(12px,1.25vw,24px);
  --qp-gap: clamp(12px,1.1vw,20px);
  --qp-panel-width: clamp(420px,36vw,690px);
  --qp-footer-height: 72px;
  overflow: hidden;
  background: linear-gradient(180deg,#dcecff 0%,#c8efdd 100%);
}
body.ws-quiz #workspace-global-nav { display: none; }
body.ws-quiz #root {
  width: 100%;
  height: 100dvh;
  margin: 0;
  font-family: var(--wb-font-ui);
}
body.ws-quiz #workspace-root {
  position: fixed;
  z-index: 500;
  inset: 0;
  width: 100%;
  min-height: 0;
  margin: 0;
  pointer-events: none;
  color: #17233a;
  background: transparent;
}
body.ws-quiz #root > [class^="_container_p5wly_"] {
  display: grid;
  grid-template-columns: minmax(0,1fr) var(--qp-panel-width);
  grid-template-rows: minmax(0,1fr) auto;
  height: 100dvh !important;
  gap: var(--qp-gap);
  align-items: stretch;
  padding: var(--qp-edge);
  background: linear-gradient(180deg,#dcecff 0%,#c8efdd 100%);
}
body.ws-quiz [class^="_topElement_p5wly_"] {
  z-index: 10;
  display: flex;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 0;
  grid-column: 2;
  grid-row: 1;
  padding-bottom: 58px;
}
body.ws-quiz [class^="_gameBoard_p5wly_"] {
  display: contents;
}
body.ws-quiz [class^="_main_p5wly_"] {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  grid-column: 1;
  grid-row: 1 / 3;
  padding: clamp(12px,1.3vw,22px);
  border: 3px solid rgba(255,255,255,.72);
  border-radius: 24px;
  background: rgba(255,255,255,.56);
  box-shadow: 0 18px 48px rgba(34,55,78,.13),inset 0 0 0 1px rgba(255,255,255,.55);
}
body.ws-quiz [class^="_main_p5wly_"]:has([class^="_container_1xhkk_"])::before {
  content: "讲台";
  display: grid;
  width: min(44%,420px);
  min-height: 38px;
  flex: 0 0 auto;
  place-items: center;
  margin: 0 auto 10px;
  border: 1px solid #bdcddd;
  border-radius: 11px;
  color: #52647a;
  background: rgba(239,244,250,.94);
  box-shadow: 0 4px 0 #b9c5d2;
  font-size: 14px;
  font-weight: 780;
  letter-spacing: .12em;
}
body.ws-quiz [class^="_footer_p5wly_"] {
  width: 100%;
  min-width: 0;
  grid-column: 2;
  grid-row: 2;
  border-radius: 16px;
  background: transparent;
}
body.ws-quiz [class^="_board_1ovbk_"] {
  flex: 1;
  align-items: flex-start;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 0;
  height: auto;
  padding: clamp(20px,2vw,34px);
  border: 1px solid rgba(199,210,223,.9);
  border-radius: 20px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 10px 28px rgba(33,51,75,.12);
  overflow: auto;
}
body.ws-quiz [class^="_questionText_1ovbk_"] {
  width: 100%;
  min-width: 0;
  margin: 0;
  align-items: flex-start;
  text-align: left;
}
body.ws-quiz [class^="_label_1ovbk_"] {
  margin-bottom: 12px;
  color: #6b7789;
  font-size: 13px;
  letter-spacing: .08em;
}
body.ws-quiz [class^="_text_1ovbk_"] {
  color: #17233a;
  font-size: clamp(23px,1.95vw,36px);
  font-weight: 760;
  line-height: 1.55;
  text-align: left;
  overflow-wrap: anywhere;
}
body.ws-quiz [class^="_container_1xhkk_"] {
  align-items: stretch;
  gap: clamp(18px,2.4vw,42px);
  padding: 8px 6px 14px;
  overflow: auto hidden;
}
body.ws-quiz [class^="_groupWrapper_1xhkk_"] { min-width: 0; }
body.ws-quiz [class^="_groupWrapper_1xhkk_"]::after { display: none; }
body.ws-quiz [class^="_groupHeader_1xhkk_"] { margin-bottom: 8px; }
body.ws-quiz [class^="_groupTitle_1xhkk_"] { color: #53647a; font-size: 15px; }
body.ws-quiz [class^="_grid_1xhkk_"] { gap: clamp(10px,1.4vh,18px) clamp(8px,1vw,14px); }
body.ws-quiz [class^="_card_14jv1_"] {
  isolation: isolate;
  min-height: 54px;
  max-height: none;
  height: 100%;
  margin-bottom: 8px;
  border: 1px solid #b89c6e;
  border-radius: 12px 12px 8px 8px;
  background: linear-gradient(180deg,#f3e1bb 0%,#dfbd82 100%);
  box-shadow: 0 4px 0 #ac8d5f,0 8px 13px rgba(71,57,37,.14),inset 0 1px 0 rgba(255,255,255,.68);
}
body.ws-quiz [class^="_card_14jv1_"]::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: -12px;
  width: 48%;
  height: 19px;
  transform: translateX(-50%);
  border: 1px solid #aab4c1;
  border-radius: 9px 9px 6px 6px;
  background: #cbd3dc;
  box-shadow: inset 0 3px 0 rgba(255,255,255,.38);
}
body.ws-quiz [class^="_card_14jv1_"]::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 6px;
  left: 10px;
  height: 1px;
  background: rgba(113,84,44,.18);
}
body.ws-quiz [class^="_card_14jv1_"]:hover {
  transform: translateY(1px);
  box-shadow: 0 3px 0 #ac8d5f,0 7px 12px rgba(71,57,37,.14),inset 0 1px 0 rgba(255,255,255,.68);
}
body.ws-quiz [class^="_content_14jv1_"] {
  width: 100%;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 7px 10px 10px;
}
body.ws-quiz [class^="_name_14jv1_"] {
  width: 100%;
  min-width: 0;
  padding: 0 5px;
  color: #443722;
  font-size: clamp(16px,1.45vw,23px);
  font-weight: 800;
  text-align: center;
  text-shadow: 0 1px 0 rgba(255,255,255,.58);
}
body.ws-quiz [class^="_scoreBadge_14jv1_"] {
  min-width: 40px;
  padding: 3px 10px;
  border: 1px solid #f8d275;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(180deg,#eaa52c,#c77611);
  box-shadow: 0 2px 0 #9c5c0d;
  font-size: clamp(14px,1.25vw,19px);
  text-align: center;
  text-shadow: 0 1px 2px rgba(73,40,7,.38);
}
body.ws-quiz [class^="_subtractBtn_14jv1_"] {
  z-index: 3;
  top: -8px;
  right: -8px;
  width: 27px;
  height: 27px;
  border: 1px solid #dba99f;
  color: #ad4d43;
  background: #fff;
  box-shadow: 0 3px 8px rgba(87,49,42,.15);
}
body.ws-quiz [class^="_hiddenCard_14jv1_"] { min-height: 54px; max-height: none; }
body.ws-quiz [class^="_footerContainer_5qk62_"] {
  display: grid;
  min-height: var(--qp-footer-height);
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid rgba(190,204,221,.9);
  border-radius: 16px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 10px 28px rgba(33,51,75,.12);
}
body.ws-quiz [class^="_leftControls_5qk62_"] { display: none; }
body.ws-quiz [class^="_navGroup_5qk62_"] {
  width: 100%;
  min-width: 0;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 7px;
  box-shadow: none;
}
body.ws-quiz [class^="_navButton_5qk62_"] {
  min-height: 42px;
  padding: 7px 11px;
  font-size: 14px;
}
body.ws-quiz [class^="_progress_5qk62_"] { font-size: 15px; white-space: nowrap; }
body.ws-quiz [class^="_finishButton_5qk62_"] {
  position: static;
  min-height: 44px;
  padding: 7px 16px;
  white-space: nowrap;
}

.qp-dock {
  position: fixed;
  z-index: 520;
  right: var(--qp-edge);
  bottom: calc(var(--qp-edge) + var(--qp-footer-height) + var(--qp-gap));
  left: auto;
  display: flex;
  width: var(--qp-panel-width);
  align-items: center;
  gap: 7px;
  padding: 6px;
  pointer-events: auto;
  border: 1px solid rgba(184,198,216,.92);
  border-radius: 13px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 8px 24px rgba(28,44,66,.16);
  backdrop-filter: blur(12px);
}
.qp-dock button {
  flex: 1;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #d4dde8;
  border-radius: 9px;
  color: #495b73;
  background: #fff;
  font-size: 13px;
  font-weight: 750;
  white-space: nowrap;
}
.qp-dock button:hover:not(:disabled) { border-color: #aabed8; color: #27568f; background: #f1f6fc; }
.qp-dock button.is-primary { border-color: #315f9f; color: #fff; background: #315f9f; box-shadow: 0 4px 11px rgba(49,95,159,.2); }
.qp-dock button.is-primary:hover:not(:disabled) { color: #fff; background: #274e84; }
.qp-dock button.is-active { border-color: #aa6b24; background: #b87626; }
.qp-dock button:disabled { opacity: .45; cursor: not-allowed; }

.qp-answer-stage {
  position: fixed;
  z-index: 510;
  top: var(--qp-edge);
  right: var(--qp-edge);
  bottom: calc(var(--qp-edge) + var(--qp-footer-height) + var(--qp-gap) + 58px);
  left: auto;
  display: grid;
  width: var(--qp-panel-width);
  place-items: center;
  pointer-events: none;
}
.qp-answer-stage > div {
  position: relative;
  width: 100%;
  max-height: 100%;
  padding: clamp(72px,8vh,96px) clamp(24px,2.2vw,38px) clamp(28px,3vw,48px);
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 20px;
  color: #17304d;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(232,244,255,.98));
  box-shadow: 0 30px 90px rgba(24,44,70,.34),inset 0 0 0 1px #b9cee8;
  overflow: auto;
}
.qp-answer-stage > div::before {
  content: "答";
  position: absolute;
  top: 28px;
  left: 28px;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: #315f9f;
  box-shadow: 0 8px 20px rgba(49,95,159,.24);
  font-size: 22px;
  font-weight: 850;
}
.qp-answer-close {
  position: absolute;
  z-index: 2;
  top: 20px;
  right: 20px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  pointer-events: auto;
  border: 1px solid #b8c9dc;
  border-radius: 50%;
  color: #49627f;
  background: rgba(255,255,255,.94);
  box-shadow: 0 5px 14px rgba(35,57,84,.13);
  font-size: 27px;
  font-weight: 520;
  line-height: 1;
}
.qp-answer-close:hover { border-color: #8da8c8; color: #254f80; background: #fff; }
.qp-answer-close:focus-visible { outline: 3px solid rgba(49,95,159,.25); outline-offset: 3px; }
.qp-answer-stage span { display: block; margin-left: 62px; color: #57769d; font-size: 15px; font-weight: 760; letter-spacing: .08em; }
.qp-answer-stage p { margin: 24px 0 0; font-size: clamp(25px,2.35vw,43px); font-weight: 760; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.qp-answer-stage.is-entering > div { animation: qp-answer-fly-in .62s cubic-bezier(.18,.84,.24,1) both; }
@keyframes qp-answer-fly-in {
  0% { opacity: 0; transform: translate3d(22vw,8vh,0) scale(.88) rotate(1.5deg); }
  72% { opacity: 1; transform: translate3d(-12px,0,0) scale(1.012) rotate(-.2deg); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1) rotate(0); }
}

@media (max-width:1100px) {
  body.ws-quiz #root > [class^="_container_p5wly_"] {
    display: flex;
    gap: 10px;
    padding: 12px 10px 72px;
  }
  body.ws-quiz [class^="_topElement_p5wly_"] {
    display: block;
    width: min(1180px,100%);
    min-height: auto;
    padding-bottom: 0;
  }
  body.ws-quiz [class^="_gameBoard_p5wly_"] {
    display: flex;
    width: min(1540px,100%);
    max-width: none;
    border: 3px solid rgba(255,255,255,.72);
    border-radius: 24px;
    background: rgba(255,255,255,.56);
    box-shadow: 0 18px 48px rgba(34,55,78,.13),inset 0 0 0 1px rgba(255,255,255,.55);
  }
  body.ws-quiz [class^="_main_p5wly_"] {
    width: auto;
    height: 100%;
    padding: 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  body.ws-quiz [class^="_footer_p5wly_"] { width: 100%; border-radius: 0; }
  body.ws-quiz [class^="_board_1ovbk_"] { min-height: 86px; height: auto; padding: 14px clamp(22px,3vw,42px); }
  body.ws-quiz [class^="_questionText_1ovbk_"] { align-items: center; text-align: center; }
  body.ws-quiz [class^="_text_1ovbk_"] { font-size: clamp(23px,3vw,38px); text-align: center; }
  body.ws-quiz [class^="_footerContainer_5qk62_"] { border: 0; border-radius: 0; box-shadow: none; }
  .qp-dock { right: auto; bottom: 82px; left: 12px; width: auto; }
  .qp-dock button { min-height: 36px; padding: 0 10px; }
  .qp-answer-stage { inset: 20% 4% 13%; width: auto; }
  .qp-answer-stage > div { width: min(1220px,100%); }
}

@media (prefers-reduced-motion: reduce) {
  .qp-answer-stage.is-entering > div { animation: none; }
}

/* 课前准备：题目来源清晰，投屏前完成选择与校对。 */
.ql-body { display: grid; gap: 18px; background: #f6f8fb; }
.ql-current { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.9fr); gap: 20px; padding: 18px 20px; border: 1px solid #dfe5ed; border-radius: 13px; background: #fff; }
.ql-current:not(.is-ready) { grid-template-columns: 1fr; }
.ql-current span,.ql-current strong,.ql-current small { display: block; }
.ql-current span { color: #738096; font-size: 12px; font-weight: 720; }
.ql-current strong { margin-top: 5px; color: #26364d; font-size: 18px; }
.ql-current small { margin-top: 6px; color: #778499; font-size: 12px; line-height: 1.5; }
.ql-current ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ql-current li { display: grid; grid-template-columns: 25px minmax(0,1fr); align-items: center; gap: 8px; min-width: 0; color: #526177; font-size: 12px; }
.ql-current li b { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; color: #315f9f; background: #edf3fb; font-size: 11px; }
.ql-current li span { overflow: hidden; color: #526177; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.ql-current li.is-more { display: block; padding-left: 33px; color: #8290a2; }
.ql-sources { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.ql-sources > button { position: relative; display: grid; min-height: 138px; align-content: start; padding: 16px 17px; border: 1px solid #dce3ec; border-radius: 13px; color: #34445a; background: #fff; text-align: left; }
.ql-sources > button:hover { border-color: #abc0dd; background: #f8fbff; box-shadow: 0 8px 22px rgba(44,70,103,.07); }
.ql-sources > button > span { display: grid; width: 38px; height: 38px; place-items: center; margin-bottom: 13px; border-radius: 10px; color: #315f9f; background: #eaf1fa; font-size: 12px; font-weight: 820; }
.ql-sources strong,.ql-sources small { display: block; }
.ql-sources strong { font-size: 15px; }
.ql-sources small { margin-top: 6px; color: #7a8799; font-size: 12px; line-height: 1.45; }
.ql-sources i { position: absolute; right: 16px; bottom: 14px; color: #315f9f; font-size: 12px; font-style: normal; font-weight: 750; }
.wb-modal-foot .ql-selected-count { margin-right: auto; color: #53637a; font-size: 12px; font-weight: 720; }
.ql-paper-picker { display: grid; gap: 14px; background: #f6f8fb; }
.ql-paper-status { display: grid; min-height: 220px; place-items: center; color: #758297; font-size: 13px; }
.ql-paper-status[hidden] { display: none; }
.ql-paper-questions { display: flex; max-height: 52vh; flex-direction: column; gap: 8px; overflow-y: auto; }
.ql-paper-question { display: grid; grid-template-columns: 22px 34px minmax(0,1fr); align-items: start; gap: 10px; padding: 13px 14px; border: 1px solid #dfe5ed; border-radius: 11px; background: #fff; cursor: pointer; }
.ql-paper-question:has(input:checked) { border-color: #8eadd6; background: #f1f6fc; box-shadow: inset 3px 0 #315f9f; }
.ql-paper-question input { width: 18px; height: 18px; margin-top: 3px; accent-color: #315f9f; }
.ql-paper-question > b { display: grid; min-height: 25px; place-items: center; border-radius: 7px; color: #315f9f; background: #eaf1fa; font-size: 11px; }
.ql-paper-question > span { min-width: 0; color: #334258; font-size: 13px; line-height: 1.6; }
.ql-paper-question .wb-rich-content { gap: 6px; }
.ql-paper-question .wb-rich-image img { max-height: 180px; }
.ql-paper-question small { display: block; margin-top: 7px; color: #7f8a9b; font-size: 11px; }

@media (max-width:760px) {
  .ql-current { grid-template-columns: 1fr; }
  .ql-sources { grid-template-columns: 1fr; }
  .ql-sources > button { min-height: 112px; }
}
