/* 多巴胺配色：彩色导航与反馈，安静清楚的阅读、答题区域。 */
:root{--ink:#272439;--muted:#696575;--green:#5145a3;--deep:#31285d;--mint:#eeeaff;--paper:#fffcf3;--line:#e6e0d7;--radius:20px;--yellow:#ffd64f;--orange:#ff8664;--blue:#70c6ec;--purple:#ad94f2;--pink:#ffbbd4;--outline:#393248}
body{background:var(--paper);font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:15px}h1{font-size:30px;letter-spacing:-.5px}h2{font-size:22px}h3{font-size:17px}p{line-height:1.9}button{border:2px solid var(--outline);background:var(--yellow);color:var(--ink);border-radius:12px;box-shadow:0 3px 0 var(--outline);font-weight:700;padding:10px 18px;transition:transform .15s,box-shadow .15s}button:hover{background:#ffe37f;transform:translateY(-1px)}button:active{transform:translateY(2px);box-shadow:none}button.secondary{background:white;color:var(--ink);border:2px solid var(--outline)}button.quiet{box-shadow:none;border:1px solid var(--line);background:transparent;color:var(--ink)}button:disabled{opacity:.55;cursor:wait;transform:none}input,textarea,select{border:1.5px solid #aca6b7;border-radius:10px;color:var(--ink);font-size:15px}input:focus,textarea:focus,select:focus{outline:3px solid #70c6ec80;border-color:var(--green)}:focus-visible{outline:3px solid #498ab2;outline-offset:4px}label{line-height:1.7}.sidebar{width:244px;border-right:2px solid var(--outline);padding:30px 22px;background:#fffef9}.workspace{margin-left:244px}.brand{font-size:21px;gap:12px}.brand-icon{position:relative;background:var(--yellow);color:var(--ink);border:2px solid var(--outline);box-shadow:3px 3px 0 var(--outline);border-radius:17px;transform:rotate(-6deg);width:54px;height:58px;line-height:54px}.brand-dot{position:absolute;width:14px;height:14px;background:var(--orange);border:2px solid var(--outline);border-radius:50%;right:-6px;top:-6px}.brand small{letter-spacing:2px;font-size:10px;color:var(--muted);margin-top:5px}.role-badge{margin:32px 0 20px;font-size:12px;color:var(--muted);letter-spacing:1px}nav a{padding:14px;margin:7px 0;border:2px solid transparent;border-radius:12px;color:#595364;font-weight:600;font-size:14px}nav a span{font-size:21px;width:30px}nav a.active{background:var(--yellow);border-color:var(--outline);color:var(--ink);box-shadow:3px 3px 0 var(--outline)}nav a:hover{background:#fff3c2;color:var(--ink)}.side-bottom{background:#efe9ff;border:1.5px solid var(--outline);border-radius:18px;padding:20px;position:relative;overflow:hidden}.side-bottom p{font-size:23px;font-weight:700;line-height:1.55}.side-bottom small{font-size:11px;position:relative;z-index:1}.side-star{position:absolute;font-size:90px;right:-10px;bottom:-28px;color:var(--purple)}.topbar{height:84px;border-bottom:1px solid var(--line);background:#fffcf3;padding:0 36px}.identity{font-size:13px;font-weight:700;background:#e5f4fc;border-radius:25px;padding:8px 14px}.top-actions{gap:10px}.top-actions button{font-size:12px;padding:7px 12px}.top-actions select{max-width:180px}.top-actions [hidden]{display:none!important}main{padding:30px 36px 48px;max-width:1500px}.eyebrow{color:#6e617a;font-weight:700;letter-spacing:2px}.page-head{margin-bottom:28px}.page-head p{font-size:14px}.panel{border:1.5px solid var(--line);padding:26px;border-radius:20px}.tag{border-radius:7px;font-size:12px;background:#ede7ff;color:#4d357d}.tag.orange{color:#873d27;background:#ffe7dc}.hero{border:2px solid var(--outline);border-radius:24px;background:#ffe99a;box-shadow:5px 5px 0 var(--outline);grid-template-columns:1.25fr 1fr;min-height:240px;margin-bottom:30px}.hero-content{padding:30px}.hero h2{font-size:29px;color:var(--ink);line-height:1.45}.hero p{color:#544b3b;font-size:14px}.hero-art{background:none}.hero-art svg{max-height:260px}.hero button{background:#fffdf5}.stats{gap:16px}.stat{border:1.5px solid var(--outline);border-radius:16px;padding:18px;background:#fff}.stat:nth-child(1){background:#e1f4fd}.stat:nth-child(2){background:#ffe4d8}.stat:nth-child(3){background:#eee6ff}.stat:nth-child(4){background:#e8f3d2}.stat strong{color:var(--ink);font-size:32px}.stat small{color:#51495c}.section-head a{color:#5145a3;font-weight:700}.quote{background:#ffe3ed;border:1.5px solid var(--outline)}.quote p{font-weight:700;color:var(--ink);font-size:19px}.course-grid{gap:22px}.course{border:1.5px solid var(--outline);box-shadow:3px 3px 0 #3932481a}.course-top{background:#e5f4fc;color:var(--ink);font-size:13px}.course:nth-child(4n+2) .course-top{background:#ffe3d7}.course:nth-child(4n+3) .course-top{background:#eee4ff}.course:nth-child(4n) .course-top{background:#fff0ad}.course-body h2{line-height:1.5}.course-body button{margin-top:5px}.tabs{gap:12px}.tabs button{color:var(--ink);border:1.5px solid var(--outline);box-shadow:none}.tabs button.active{color:var(--ink);background:var(--yellow);box-shadow:0 3px 0 var(--outline)}.lesson-stage{background:#f0eaff}.lesson-stage .formula{color:#4d357d}.notice{background:#fff3c4;border-left-color:#d59408;border-radius:0 12px 12px 0;color:#614814}.answer{background:#e6f4df;color:#2d5c26}.answer.wrong{background:#fff0d9;color:#78501d}.game-board{background:#edf7fc}.game-item.on{background:var(--yellow);border-color:var(--outline)}.timer{color:#593c89}.numbers a.done{background:var(--yellow);color:var(--ink);border-color:var(--outline)}.progress i{background:var(--purple)}.lesson-num{background:var(--yellow);color:var(--ink);border:1px solid var(--outline)}.process span{background:#ede7ff}.report-bar{background:var(--purple)}.report-bar:nth-child(2){background:var(--orange)}.empty{background:#fffcf3;border-radius:14px}.empty strong{margin-bottom:8px}.table-wrap{margin-top:16px}th{color:#4b435b;background:#f6f2fe;white-space:nowrap}td{vertical-align:middle}td button{font-size:12px;padding:6px 10px}.table-wrap small{display:block}.student-link{color:#4b378f;font-weight:700}.save-error{color:#9f3526!important}#sync-status{font-size:12px;color:#4e6b45}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:580px;border:2px solid var(--outline);border-radius:28px;overflow:hidden;box-shadow:6px 6px 0 var(--outline);margin:15px auto;max-width:1100px;background:white}.login-art{background:var(--yellow);padding:40px;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:40px;line-height:1.4;max-width:380px}.login-art svg{width:100%;height:220px}.login-form{padding:48px 40px;align-self:center}.login-form h2{font-size:26px;margin-bottom:8px}.login-form .field{margin-top:20px}.login-form button[type=submit]{width:100%;margin:10px 0}.form-error{color:#a22d25;min-height:24px;font-size:14px}.auth-page .sidebar{display:none}.auth-page .workspace{margin-left:0}.auth-page .topbar{justify-content:center}.auth-page #breadcrumb{font-weight:800;font-size:21px;color:var(--ink)}.auth-page main{padding-top:15px}.auth-page footer{justify-content:center}.auth-page footer span{display:none}.teacher-banner{background:#e6ddfc}.teacher-banner .hero-content{padding:28px}.teacher-banner h2{font-size:27px}.teacher-banner .hero-art{align-items:flex-end}.mini-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-form label{display:block;font-size:13px;margin-bottom:6px}.mini-form input,.mini-form select{width:100%}.mini-form .wide{grid-column:1/-1}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.toolbar input{min-width:150px;flex:1}.map-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;position:relative}.map-stop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 6px;color:var(--ink);border:1.5px solid var(--line);border-radius:16px;background:#fffdf5}.map-stop:hover{background:#fff3bd}.map-stop .island{display:grid;place-items:center;width:56px;height:56px;font-size:21px;font-weight:800;border:2px solid var(--outline);border-radius:18px;background:var(--yellow);box-shadow:3px 3px 0 var(--outline);transform:rotate(-4deg)}.map-stop:nth-child(4n+2) .island{background:var(--blue);transform:rotate(5deg)}.map-stop:nth-child(4n+3) .island{background:var(--orange)}.map-stop:nth-child(4n) .island{background:var(--purple);transform:rotate(5deg)}.map-stop small{font-size:11px}.map-stop strong{font-size:12px}.map-stop.done{background:#f0f7e5}.badges{display:flex;gap:12px;flex-wrap:wrap}.badge-item{padding:12px 16px;border:1.5px solid var(--line);border-radius:14px;background:#fff3bf;font-size:13px}.badge-item.locked{background:#f4f2ef;color:var(--muted)}.info-line{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.account-panel{max-width:560px;margin:20px auto}.danger-text{color:#a22d25}.skip-link{position:absolute;left:10px;top:-60px;z-index:100;background:white;padding:12px}.skip-link:focus{top:10px}.question input{margin-right:12px}.loading{text-align:center;padding:80px 20px;color:var(--muted)}dialog{border:2px solid var(--outline)}.review-filter{display:flex;gap:10px;margin:18px 0}.tiny{font-size:12px;color:var(--muted)}
@media(max-width:1100px){.sidebar{width:210px;padding:24px 14px}.workspace{margin-left:210px}main{padding:24px}.topbar{padding:0 24px}.map-grid{grid-template-columns:repeat(4,1fr)}.identity{display:none}.login-art{padding:28px}.login-form{padding:32px}.login-art h1{font-size:32px}}
@media(max-width:760px){.sidebar{position:static;width:100%;border-right:0;border-bottom:2px solid var(--outline);padding:16px}.brand{font-size:20px}.role-badge{position:absolute;right:16px;top:22px;font-size:11px;max-width:115px;text-align:right;margin:0}.workspace{margin-left:0}.topbar{padding:12px 16px;min-height:65px;height:auto}.top-actions{flex-wrap:wrap;justify-content:flex-start}.top-actions select{max-width:150px}.top-actions .identity{display:inline-block}main{padding:22px 16px}h1{font-size:25px}.hero{grid-template-columns:1fr;min-height:0}.hero-content{padding:24px}.hero h2{font-size:25px}.hero-art{display:none}.panel{padding:20px}.map-grid{grid-template-columns:repeat(3,1fr);gap:8px}.map-stop{padding:14px 4px}.map-stop .island{width:45px;height:45px;border-radius:14px}.login-layout{grid-template-columns:1fr;min-height:0;margin:10px auto}.login-art{padding:24px}.login-art h1{font-size:26px;max-width:none}.login-art svg,.login-art>p{display:none}.login-form{padding:26px 22px}.login-form h2{font-size:23px}.mini-form{grid-template-columns:1fr}.mini-form .wide{grid-column:auto}.stats{gap:10px}.stat{padding:14px}.stat strong{font-size:26px}.question input{margin-right:0}.question button{margin-top:12px}.identity{padding:6px 10px}.auth-page .topbar{min-height:60px}.auth-page #breadcrumb{display:block}.auth-page main{padding:10px 14px}.badge-item{padding:10px}.page-head{gap:12px}.role-badge.teacher-role{color:#4d357d}}
.topbar{position:sticky;top:0;z-index:8}.exam-side{top:100px}.lesson-row .grow{min-width:0}.lesson-row h3{overflow-wrap:anywhere}.account-panel input{max-width:100%}.grid-two>*{min-width:0}.panel{min-width:0}
@media(max-width:760px){.exam-side{position:static}.topbar{top:0}.lesson-row{gap:10px}.lesson-row button{flex-shrink:0}.brand{max-width:190px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.skip-link,.role-badge,.badges,.review-filter{display:none!important}.hero,.panel,.stat{box-shadow:none;border:0}.workspace{margin:0}.question{break-inside:avoid}.answer{background:white;color:black}.page-head{margin-bottom:15px}body{background:white}}

/* 课堂支架与可操作的 SVG 实验。 */
.lesson-path{line-height:1.9;margin-bottom:22px;background:#fff2bc}
.lesson-intro .lead{font-size:20px;line-height:1.9}
.lesson-lab{border:2px solid #393248;background:#fffdf5;box-shadow:5px 5px 0 #e7defa;overflow:hidden}
.lesson-lab h2{margin-top:14px}.lab-symbol{font-size:50px;color:#9472e2}
.lab-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;background:#f3edf9;border-radius:16px;padding:18px;margin:20px 0}
.lab-controls label{font-size:15px;margin:0}.lab-controls output{font-weight:800;color:#6344a7}
.lab-controls input[type=range],.lab-timeline input[type=range]{display:block;width:100%;min-height:36px;padding:0;accent-color:#8258d0;margin-top:7px}
.lab-picture{background:#fff;border:1px solid #ded6e8;border-radius:18px;padding:12px;overflow:hidden}
.lab-picture svg{display:block;width:100%;height:auto;max-height:420px;font-family:inherit}
.lab-caption{min-height:2.8em;font-size:16px;line-height:1.7;padding:10px 14px;border-radius:12px;background:#e9f6ff}
.lab-timeline{font-size:14px;margin:18px 0;display:block}.lab-reason{margin-top:14px}.lab-solutions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#lesson-body details>summary{cursor:pointer;font-weight:700;padding:14px 0;color:#6344a7;line-height:1.65}
#lesson-body details>summary:focus-visible{outline:3px solid #8258d0;outline-offset:4px}
#lesson-body details:not(.panel){border-bottom:1px dashed #d3c6e7;margin-bottom:12px}
#lesson-body blockquote{margin:16px 0;padding:20px 24px;border-left:5px solid #a184e6;background:#f1ebff;border-radius:0 16px 16px 0;font-size:20px;line-height:1.9}
.talk-start{background:#fff7d9}.talk-prep{background:#fffdf7;padding:16px 22px;border-radius:16px}.talk-frames{padding-left:28px}.talk-frames li{padding:12px 4px}.talk-frames li p{padding:12px;background:#f1ebff;border-radius:10px;line-height:1.9}
.talk-lab>.lesson-lab{margin-top:15px}.board-note{background:#e9f6ff;border:1px dashed #5993b4;border-radius:14px;padding:20px;line-height:2}
.guide-page h3{margin-top:34px;padding-top:18px;border-top:2px solid #eee7f5}.guide-page td{vertical-align:top;min-width:150px;line-height:1.8}.guide-step{padding:18px 22px;margin:16px 0;background:#fbf8ff;border-radius:16px;border:1px solid #e7dff2}.guide-step h4{font-size:19px;margin:12px 0}.guide-page .formula{font-size:18px;overflow-wrap:anywhere}.game-challenge input{min-width:0}.game-challenge label{margin:0}
@media(max-width:600px){.lab-controls{grid-template-columns:1fr;padding:12px}.lab-picture{padding:0;margin:0 -8px}.lesson-lab{padding:18px 14px}.lesson-lab .controls{gap:7px}.lesson-lab .controls button{font-size:13px;padding:10px}.talk-lab{padding:18px 14px}.talk-lab>.lesson-lab{margin:12px -8px}.lesson-intro .lead,#lesson-body blockquote{font-size:17px}.guide-step{padding:12px}.lab-symbol{display:none}}
@media print{.guide-page{box-shadow:none;border:0}.guide-page td{min-width:0;font-size:10px}.guide-step{break-inside:avoid}.guide-page .table-wrap{overflow:visible}.guide-page .controls,.guide-page textarea,.guide-page label{display:none}.guide-page h3{break-after:avoid}}

/* 完整题目与分析分区，投屏时先读题，打印练习时不包含参考答案。 */
.mother-problem{background:#fff9df;border:2px solid #393248;box-shadow:4px 4px 0 #f2d775}.mother-problem h2{margin:18px 0}.problem-stem{font-size:19px;line-height:2.05;overflow-wrap:anywhere}.problem-asks{padding-left:26px;font-size:18px;line-height:1.9}.problem-asks li{margin-bottom:8px}.variant-problem{margin-top:22px;border:1px solid #d7caef;border-radius:16px;padding:20px;background:#faf7ff}.variant-problem h3{margin:0 0 12px;padding:0;border:0}.lesson-variants .problem-stem{font-size:17px}.guide-page .lesson-variants{box-shadow:none;margin-top:22px}.guide-title p{margin-bottom:0}
@media(max-width:600px){.problem-stem{font-size:17px}.problem-asks{font-size:16px}.variant-problem{padding:14px}.guide-page .lesson-variants{padding:14px}}
@media print{.mother-problem,.variant-problem{box-shadow:none;break-inside:avoid;background:white}.mother-problem .tiny{display:none}.problem-stem,.problem-asks{font-size:12pt}.guide-title button{display:none}}
/* 课程视频使用完整内容宽度，便于投屏；章节按钮同时适合触屏与键盘。 */
.course-video{border:2px solid #393248;background:#fffdf5}
.course-video h2{margin-top:14px}
.course-video video{display:block;width:100%;max-height:none;aspect-ratio:16/9;background:#243047;border:3px solid #393248;border-radius:20px}
.video-length{flex-shrink:0;padding:9px 14px;background:#ffd43b;border:2px solid #393248;border-radius:15px;font-weight:700}
.video-help{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.video-help a{white-space:nowrap}
.video-chapters{margin-top:10px}
.chapter-buttons{display:flex;flex-wrap:wrap;gap:10px;padding:16px 0 4px}
.chapter-buttons button{font-size:14px;line-height:1.5;text-align:left;padding:10px 14px;background:#eae1ff}
.chapter-buttons button:nth-child(3n+2){background:#d4f3ff}
.chapter-buttons button:nth-child(3n){background:#d6f6e8}
.chapter-buttons button span{font-variant-numeric:tabular-nums;font-weight:800;margin-right:6px}
.video-teacher-guide{margin-top:20px;padding:16px;border-radius:16px;background:#fff0c1}
@media(max-width:600px){.course-video .section-head{align-items:flex-start;flex-direction:column}.course-video video{border-radius:12px}.chapter-buttons{gap:8px}.chapter-buttons button{width:100%}}
@media print{.course-video video,.video-help,.video-chapters{display:none}.course-video{break-inside:avoid}}
/* 新教师引导与授课视图：投屏时减少干扰，教师记录始终留在教师视图。 */
.teacher-starter{background:#eee7ff;border:2px solid #393248}
.starter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.starter-grid>div{background:#fffdf5;border:1px solid #d5cce3;border-radius:18px;padding:20px}
.starter-grid p{font-size:15px;line-height:1.7}
.start-teaching{display:inline-block;padding:12px 18px;background:#ffd64f;border:2px solid #393248;border-radius:13px;color:#302a3b;font-weight:800;text-decoration:none;box-shadow:3px 3px 0 #393248}
.teacher-entry{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.teacher-entry p{margin:0}.record-identity{background:#e4f4fc;border-radius:12px;padding:12px 16px;font-size:15px}
.teaching-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff9e6;border:2px solid #393248;border-radius:18px;padding:16px;margin-bottom:14px}
.teaching-toolbar b,.teaching-toolbar small{display:block;margin-top:7px}
.teaching-steps{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 24px}
.teaching-steps a{border:1px solid #c6bad6;background:#fff;border-radius:12px;padding:10px 13px;text-decoration:none;color:#393248}
.teaching-steps [aria-current=step]{background:#bba4ff;border:2px solid #393248;font-weight:bold}
.teaching-next{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 35px}
.teaching-room textarea{display:block;width:100%;min-height:150px;margin:12px 0}
.teaching-room select{display:block;margin:10px 0 20px}
.completion-check{display:flex;align-items:center;gap:10px}.completion-check input{width:20px;height:20px}
.saved-prep{white-space:pre-wrap}.lab-parameter-disclosure{background:#f1ebff;padding:15px;border-radius:12px;margin:14px 0}
.projection-only{display:none}.classroom-projection .projection-only{display:inline}
.classroom-projection .sidebar,.classroom-projection .topbar,.classroom-projection footer,.classroom-projection .teacher-private,.classroom-projection .video-teacher-guide{display:none!important}
.classroom-projection .workspace{margin-left:0!important;width:100%!important}
.classroom-projection main{max-width:1200px;margin:auto;padding:24px!important}
.classroom-projection .problem-stem{font-size:26px;line-height:1.9}
.classroom-projection .teaching-toolbar{position:sticky;top:8px;z-index:20}
.classroom-projection .teaching-steps{font-size:15px}
@media(max-width:700px){.starter-grid{grid-template-columns:1fr}.teaching-toolbar{align-items:flex-start;flex-direction:column}.teaching-steps a{font-size:14px}.classroom-projection .problem-stem{font-size:21px}.classroom-projection main{padding:14px!important}}
@media print{.teacher-starter,.teacher-entry,.teaching-toolbar,.teaching-steps,.teaching-next{display:none!important}}
