/* OpenBoneTCM · 教学编辑器样式（studio.css）
 * ------------------------------------------------------------
 * 本文件由 scripts/extract-studio-css.js 从 app.js 抽取而来：
 * 内容建设器 / VSP 复盘与教师配置 / 题库编辑器 / 记忆卡编辑器 的样式。
 * 原先由 app.js 在运行时 setTimeout 注入 <style>，现改为静态样式表，
 * 便于浏览器缓存与开发者工具定位。修改后请同步刷新 sw.js 的 CACHE_VERSION。
 */

/* ── 内容建设器（Content Builder）── */
.view-content-builder{max-width:1240px;margin:auto;padding:28px 32px 48px}.cb-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:12px 0 26px}.cb-head h1{margin:5px 0;font-size:30px;color:var(--ink)}.cb-head p{margin:0;color:var(--ink-soft)}.cb-head small{color:var(--brand);font-weight:800;letter-spacing:.12em}.cb-head>div:last-child{display:flex;gap:9px}.cb-layout{display:grid;grid-template-columns:290px 1fr;gap:20px;align-items:start}.cb-settings,.cb-editor{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 32px rgba(86,72,160,.08)}.cb-settings{padding:20px;position:sticky;top:22px}.cb-settings h3{margin:0 0 18px;color:var(--ink)}.cb-settings label,.cb-entry label{display:grid;gap:6px;margin:0 0 14px;font-size:13px;font-weight:700;color:var(--ink)}.cb-settings em,.cb-entry em{font-size:11px;color:var(--ink-soft);font-style:normal;font-weight:500}.cb-settings input,.cb-settings textarea,.cb-entry input:not([type=radio]),.cb-entry textarea{box-sizing:border-box;width:100%;border:1px solid #dfdbea;border-radius:10px;padding:10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;outline:none}.cb-settings input:focus,.cb-settings textarea:focus,.cb-entry input:focus,.cb-entry textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(109,76,240,.1)}.cb-public{display:flex;justify-content:space-between;gap:12px;padding:12px;background:var(--bg-soft);border-radius:12px}.cb-public b,.cb-public span{display:block}.cb-public b{font-size:13px}.cb-public span{margin-top:3px;color:var(--ink-soft);font-size:11px}.cb-switch{position:relative;width:38px;height:22px;display:block!important;margin:0!important}.cb-switch input{opacity:0}.cb-switch i{position:absolute;inset:0;background:#c9c5d9;border-radius:99px}.cb-switch i:after{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.cb-switch input:checked+i{background:var(--brand)}.cb-switch input:checked+i:after{transform:translateX(16px)}.cb-tip{margin:16px 0 0;padding:12px;border-left:3px solid #45b9a2;background:#effbf8;border-radius:0 9px 9px 0;font-size:12px;color:#42796b;line-height:1.5}.cb-tip b{color:#18745e}.cb-editor{padding:21px}.cb-editor-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:17px;border-bottom:1px solid var(--line)}.cb-editor-head h2{margin:0;color:var(--ink);font-size:18px}.cb-editor-head p{margin:5px 0 0;color:var(--ink-soft);font-size:13px}.cb-editor-head button{border:1px solid rgba(109,76,240,.25);border-radius:10px;background:#f6f3ff;color:var(--brand);padding:9px 12px;font-weight:700;cursor:pointer}.cb-list{display:grid;gap:13px;padding-top:17px}.cb-entry{padding:17px;border:1px solid #e4e1ee;border-radius:14px;background:#fff}.cb-row{display:flex;justify-content:space-between;margin-bottom:14px;color:var(--brand);font-size:13px}.cb-row button{border:0;background:transparent;color:#9c94af;font-size:20px;cursor:pointer}.cb-row button:hover{color:#d74c64}.cb-option{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px}.cb-option span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#f1eff8;color:var(--brand);font-size:11px}.cb-option input:not([type=radio]){flex:1}.cb-option input[type=radio]{accent-color:var(--brand)}@media(max-width:800px){.view-content-builder{padding:20px 16px}.cb-layout{grid-template-columns:1fr}.cb-settings{position:static}.cb-head{align-items:start;flex-direction:column}}

/* ── VSP 复盘与教师配置 ── */
.vsp-disclosure-note{margin-top:12px;padding:9px 10px;border-radius:9px;background:#eff7ff;color:#35638a;font-size:12px;line-height:1.45}.vsp-debrief{margin-bottom:18px;padding:18px;border:1px solid #d9e5ff;border-radius:14px;background:linear-gradient(120deg,#f7fbff,#fbf8ff)}.vsp-debrief-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.vsp-debrief-head span{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--brand)}.vsp-debrief-head h3{margin:4px 0 0;color:var(--ink);font-size:18px}.vsp-debrief-head>b{padding:7px 10px;border-radius:99px;background:#e9f5ee;color:#217c50;font-size:12px}.vsp-debrief-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.vsp-debrief-grid>div{padding:12px;border-radius:10px;background:rgba(255,255,255,.82)}.vsp-debrief h4{margin:0 0 8px;font-size:13px;color:var(--ink)}.vsp-debrief ul{margin:0;padding-left:18px;font-size:12px;color:var(--ink-soft);line-height:1.8}.vsp-debrief-grid li{display:flex;justify-content:space-between;gap:8px}.vsp-debrief-summary{margin:13px 0 0;padding-top:12px;border-top:1px solid #dbe4f2;color:var(--ink-soft);font-size:12px;line-height:1.6}.vsp-teacher-config{margin:18px 0;padding:18px;border:1px solid #dce4f6;border-radius:14px;background:#f8fbff}.vsp-teacher-config h3{margin:0;color:var(--ink);font-size:16px}.vsp-teacher-config>p,.vsp-teacher-config>small{display:block;margin:6px 0 14px;color:var(--ink-soft);font-size:12px;line-height:1.5}.vsp-config-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.vsp-teacher-config label{display:grid;gap:6px;margin:0 0 12px;font-size:13px;font-weight:700;color:var(--ink)}.vsp-teacher-config select,.vsp-teacher-config textarea{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;font:inherit;color:var(--ink)}@media(max-width:760px){.vsp-debrief-grid,.vsp-config-grid{grid-template-columns:1fr}.vsp-debrief-head{align-items:flex-start;flex-direction:column}}

/* ── 题库编辑器（Question Bank Editor）── */
.qba-crumb{margin-bottom:10px}.qba-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 22px}.qba-eyebrow{display:block;color:var(--brand);font-weight:800;letter-spacing:.13em;font-size:10px}.qba-title{display:block;width:min(540px,100%);margin:5px 0;border:0;background:transparent;padding:0;color:var(--ink);font-size:29px;line-height:1.2;font-weight:800;outline:none}.qba-title:focus{box-shadow:0 2px 0 var(--brand)}.qba-top p{margin:0;color:var(--ink-soft);font-size:13px}.qba-top-actions{display:flex;gap:9px}.qba-save{border:0;border-radius:10px;padding:10px 16px;background:var(--brand);color:#fff;font:inherit;font-weight:800;cursor:pointer}.qba-shell{display:grid;grid-template-columns:210px minmax(0,1fr) 250px;gap:16px;align-items:start}.qba-nav,.qba-editor,.qba-settings{background:rgba(255,255,255,.9);border:1px solid #e5e1ee;border-radius:16px;box-shadow:0 10px 30px rgba(86,72,160,.06)}.qba-nav{padding:12px;position:sticky;top:20px}.qba-nav-head{display:flex;justify-content:space-between;align-items:center;padding:5px 5px 12px;color:var(--ink)}.qba-nav-head span{font-size:11px;color:var(--ink-soft)}.qba-nav-list{display:grid;gap:5px;max-height:55vh;overflow:auto}.qba-nav-item{display:grid;grid-template-columns:24px 1fr;gap:0 8px;text-align:left;padding:10px 8px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);cursor:pointer}.qba-nav-item:hover{background:#f6f4fb}.qba-nav-item.active{background:#eeeaff;color:var(--brand)}.qba-nav-item span{grid-row:span 2;display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#f0edf7;font-size:11px;font-weight:800}.qba-nav-item.active span{background:var(--brand);color:#fff}.qba-nav-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.qba-nav-item small{font-size:10px;margin-top:3px}.qba-add{width:100%;margin-top:10px;padding:9px;border:1px dashed #c8bef1;border-radius:10px;background:#faf8ff;color:var(--brand);font-weight:800;cursor:pointer}.qba-editor{padding:22px}.qba-editor-head,.qba-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.qba-editor-head>div{display:grid;gap:3px}.qba-editor-head span{font-weight:800;color:var(--ink)}.qba-editor-head small{font-size:11px;color:var(--ink-soft)}.qba-delete{border:0;background:transparent;color:#a499b4;font:inherit;font-size:12px;cursor:pointer}.qba-delete:hover{color:#d74c64}.qba-meta{display:grid;grid-template-columns:1fr 1fr 88px;gap:10px;margin:20px 0}.qba-meta label,.qba-settings>label,.qba-question-label,.qba-explanation{display:grid;gap:6px;color:var(--ink);font-size:12px;font-weight:800}.qba-meta select,.qba-meta input,.qba-settings input,.qba-settings select,.qba-settings textarea,.qba-question-label textarea,.qba-explanation textarea{width:100%;box-sizing:border-box;border:1px solid #dfdbea;border-radius:9px;padding:9px 10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;outline:none}.qba-meta select:focus,.qba-meta input:focus,.qba-settings input:focus,.qba-settings select:focus,.qba-settings textarea:focus,.qba-question-label textarea:focus,.qba-explanation textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(109,76,240,.1)}.qba-answer{margin:20px 0;padding:18px;border-radius:13px;background:#faf9fe;border:1px solid #ece9f4}.qba-section-head h2{margin:0;color:var(--ink);font-size:15px}.qba-section-head p{margin:4px 0 0;color:var(--ink-soft);font-size:11px}.qba-type-badge{padding:4px 8px;border-radius:99px;background:#e8f5ef;color:#237854;font-size:11px;font-weight:800}.qba-options{display:grid;gap:8px;margin-top:14px}.qba-option{display:flex;align-items:center;gap:8px}.qba-option>input{accent-color:var(--brand)}.qba-option span{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#eae6f7;color:var(--brand);font-size:11px;font-weight:800}.qba-option input:not([type=radio]):not([type=checkbox]){flex:1;border:1px solid #dedbea;border-radius:8px;padding:9px;background:#fff;font:inherit;font-size:13px;outline:none}.qba-explanation small{font-weight:500;color:var(--ink-soft)}.qba-settings{padding:18px;position:sticky;top:20px}.qba-settings h3{margin:0 0 16px;color:var(--ink);font-size:15px}.qba-settings>label{margin:0 0 13px}.qba-switch-row,.qba-public{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:12px 0;padding:10px 0;border-top:1px solid #efedf4}.qba-switch-row b,.qba-switch-row span,.qba-public b,.qba-public span{display:block}.qba-switch-row b,.qba-public b{font-size:12px;color:var(--ink)}.qba-switch-row span,.qba-public span{margin-top:3px;font-size:10px;line-height:1.35;color:var(--ink-soft)}.qba-public{margin-top:14px;padding:12px;border:0;border-radius:10px;background:#f4f1ff}@media(max-width:1050px){.qba-shell{grid-template-columns:190px minmax(0,1fr)}.qba-settings{grid-column:2;position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.qba-settings h3{grid-column:1/-1}.qba-settings>label,.qba-switch-row,.qba-public{margin:0}}@media(max-width:720px){.qba-shell{grid-template-columns:1fr}.qba-nav,.qba-settings{position:static}.qba-nav-list{display:flex;max-height:none;overflow:auto}.qba-nav-item{min-width:150px}.qba-settings{grid-column:auto;grid-template-columns:1fr}.qba-top{align-items:flex-start;flex-direction:column}.qba-editor{padding:16px}.qba-meta{grid-template-columns:1fr}.qba-top-actions{width:100%}.qba-top-actions button{flex:1}}

/* ── 记忆卡编辑器（Flashcard Editor）── */
.fcba-crumb{margin-bottom:10px}.fcba-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 22px}.fcba-eyebrow{display:block;color:#28795e;font-weight:800;letter-spacing:.13em;font-size:10px}.fcba-title{display:block;width:min(540px,100%);margin:5px 0;border:0;background:transparent;padding:0;color:var(--ink);font-size:29px;line-height:1.2;font-weight:800;outline:none}.fcba-title:focus{box-shadow:0 2px 0 #31916e}.fcba-top p{margin:0;color:var(--ink-soft);font-size:13px}.fcba-top-actions{display:flex;gap:9px}.fcba-save{border:0;border-radius:10px;padding:10px 16px;background:#28795e;color:#fff;font:inherit;font-weight:800;cursor:pointer}.fcba-shell{display:grid;grid-template-columns:210px minmax(0,1fr) 250px;gap:16px;align-items:start}.fcba-nav,.fcba-editor,.fcba-settings{background:rgba(255,255,255,.9);border:1px solid #e5e1ee;border-radius:16px;box-shadow:0 10px 30px rgba(86,72,160,.06)}.fcba-nav{padding:12px;position:sticky;top:20px}.fcba-nav-head{display:flex;justify-content:space-between;align-items:center;padding:5px 5px 12px;color:var(--ink)}.fcba-nav-head span{font-size:11px;color:var(--ink-soft)}.fcba-nav-list{display:grid;gap:5px;max-height:55vh;overflow:auto}.fcba-nav-item{display:grid;grid-template-columns:24px 1fr;gap:0 8px;text-align:left;padding:10px 8px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);cursor:pointer}.fcba-nav-item:hover{background:#f4faf7}.fcba-nav-item.active{background:#e7f4ed;color:#237854}.fcba-nav-item span{grid-row:span 2;display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#e8eee9;font-size:11px;font-weight:800}.fcba-nav-item.active span{background:#28795e;color:#fff}.fcba-nav-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.fcba-nav-item small{font-size:10px;margin-top:3px}.fcba-add{width:100%;margin-top:10px;padding:9px;border:1px dashed #9bcdb7;border-radius:10px;background:#f4faf7;color:#237854;font-weight:800;cursor:pointer}.fcba-editor{padding:22px}.fcba-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.fcba-editor-head>div{display:grid;gap:3px}.fcba-editor-head span{font-weight:800;color:var(--ink)}.fcba-editor-head small{font-size:11px;color:var(--ink-soft)}.fcba-delete{border:0;background:transparent;color:#a499b4;font:inherit;font-size:12px;cursor:pointer}.fcba-delete:hover{color:#d74c64}.fcba-card{margin-top:20px;padding:18px;border:1px solid #e8e5f0;border-radius:15px;background:#fcfbfe}.fcba-face{display:grid;gap:8px}.fcba-face>span{font-weight:800;font-size:13px;color:var(--ink)}.fcba-face textarea,.fcba-notes textarea,.fcba-settings input,.fcba-settings textarea{width:100%;box-sizing:border-box;border:1px solid #dfdbea;border-radius:10px;padding:11px;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1.55;outline:none;resize:vertical}.fcba-face textarea:focus,.fcba-notes textarea:focus,.fcba-settings input:focus,.fcba-settings textarea:focus{border-color:#31916e;box-shadow:0 0 0 3px rgba(49,145,110,.1)}.fcba-face small,.fcba-notes small{font-weight:500;color:var(--ink-soft);font-size:11px}.fcba-front textarea{background:#f7fcf9}.fcba-back textarea{background:#fbf9ff}.fcba-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:#86a394;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.fcba-divider i{height:1px;flex:1;background:#e3e9e5}.fcba-divider b{font-size:10px}.fcba-notes{display:grid;gap:7px;margin-top:18px;color:var(--ink);font-size:12px;font-weight:800}.fcba-settings{padding:18px;position:sticky;top:20px}.fcba-settings h3{margin:0 0 16px;color:var(--ink);font-size:15px}.fcba-settings>label{display:grid;gap:6px;margin:0 0 13px;color:var(--ink);font-size:12px;font-weight:800}.fcba-tip{margin:16px 0;padding:12px;border-radius:11px;background:#f0f8f3;color:#37715d}.fcba-tip b,.fcba-tip span{display:block}.fcba-tip b{font-size:12px}.fcba-tip span{margin-top:4px;font-size:11px;line-height:1.45}.fcba-public{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:14px;padding:12px;border-radius:10px;background:#f3f0ff}.fcba-public b,.fcba-public span{display:block}.fcba-public b{font-size:12px;color:var(--ink)}.fcba-public span{margin-top:3px;font-size:10px;line-height:1.35;color:var(--ink-soft)}@media(max-width:1050px){.fcba-shell{grid-template-columns:190px minmax(0,1fr)}.fcba-settings{grid-column:2;position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.fcba-settings h3,.fcba-tip,.fcba-public{grid-column:1/-1}.fcba-settings>label{margin:0}}@media(max-width:720px){.fcba-shell{grid-template-columns:1fr}.fcba-nav,.fcba-settings{position:static}.fcba-nav-list{display:flex;max-height:none;overflow:auto}.fcba-nav-item{min-width:150px}.fcba-settings{grid-column:auto;grid-template-columns:1fr}.fcba-top{align-items:flex-start;flex-direction:column}.fcba-editor{padding:16px}.fcba-top-actions{width:100%}.fcba-top-actions button{flex:1}}
