#learning-sync{position:fixed;bottom:10px;left:18px;z-index:9990;font:12px -apple-system,BlinkMacSystemFont,sans-serif;color:#467469;padding:7px 12px;border:1px solid #d9e7e2;background:rgba(255,255,255,.94);border-radius:20px;pointer-events:none}#learning-sync.is-pending{color:#a56b14;background:#fff9e9}#classroom-notice{position:fixed;left:50%;top:20px;transform:translateX(-50%);z-index:11000;background:#183e49;color:white;padding:14px 22px;border-radius:14px;box-shadow:0 10px 30px #183e4930}.classroom-locked{opacity:.5!important;filter:grayscale(.7);cursor:not-allowed}.classroom-locked:hover{transform:none!important;box-shadow:none!important}.classroom-locked .module__cta{font-size:0}.classroom-locked .module__cta:before{content:'等待老师开放';font-size:14px}.classroom-locked .module__cta svg{display:none}.apt-card.classroom-locked::before{content:'🔒 等待老师开放';position:absolute;top:12px;left:14px;z-index:2;font-size:12px;font-weight:700;color:#5a6b77;background:rgba(255,255,255,.88);border-radius:8px;padding:3px 9px;pointer-events:none}.cr-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.cr-head h2{margin:0 0 6px;font-size:24px}.cr-muted{color:#788692;font-size:13px}.cr-controls{background:#f7fafb;border:1px solid #e2ebee;border-radius:18px;padding:20px;margin:22px 0}.cr-controls summary{font-weight:700;cursor:pointer}.cr-options{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.cr-options label{padding:10px 12px;background:white;border:1px solid #e1e9ed;border-radius:10px;font-size:13px;cursor:pointer}.cr-options input{accent-color:#0c93a6;margin-right:7px}.cr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.cr-actions button,.cr-head select,.cr-filter{font:inherit;min-height:40px;border:1px solid #d9e4e8;background:white;color:#244450;border-radius:10px;padding:8px 14px}.cr-actions button{cursor:pointer}.cr-actions button.primary{background:#087f90;color:white;border-color:#087f90}.cr-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.cr-metric{border:1px solid #e2ebee;border-radius:16px;padding:18px;background:linear-gradient(140deg,#fff,#f6fafb)}.cr-metric strong{display:block;font-size:30px;font-weight:650;color:#173d49}.cr-metric span{font-size:12px;color:#788692}.cr-table-wrap{overflow:auto;border:1px solid #e2ebee;border-radius:14px;margin-top:14px}.cr-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}.cr-table th{background:#f5f8fa;color:#72818e;text-align:left;font-size:12px;font-weight:500}.cr-table td,.cr-table th{padding:14px;border-bottom:1px solid #edf1f3}.cr-table tbody tr:hover{background:#f8fbfc}.cr-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b8c2c8;margin-right:6px}.cr-dot.online{background:#15a67d}.cr-progress{height:4px;width:90px;background:#e9eff2;border-radius:4px;margin-top:6px;overflow:hidden}.cr-progress i{display:block;background:#0c93a6;height:100%}.cr-student{border:0;background:none;color:#087f90;font:inherit;cursor:pointer;text-align:left}.cr-detail{padding:20px;border:1px solid #e2ebee;border-radius:16px;margin-top:18px}.cr-question{display:inline-block;margin:4px;padding:6px 10px;border-radius:7px;background:#f0f3f5}.cr-question.right{background:#e3f5ed;color:#14734e}.cr-question.wrong{background:#fff0ec;color:#b45b3b}.cr-error{color:#b45b3b}.cr-sync{color:#188a72;font-size:12px}@media(max-width:700px){.cr-metrics{grid-template-columns:repeat(2,1fr)}.cr-controls{padding:14px}.cr-head h2{font-size:21px}}
/* 安卓版升级公告条（js/app-notice.js 按 download/android.json 的 notice 渲染；notice 为空时不会出现）。
   和 #classroom-notice 同族但常驻可关，所以放右上角、层级更高一点，并给它一个下载按钮。 */
/* top 留到 68px：登录页右上角有全屏键（top:18 高 40），左上角有安卓安装包入口，
   公告条压在最上面会挡住它们，所以往下让出一行。 */
#app-notice{position:fixed;right:18px;top:68px;z-index:11050;display:flex;align-items:center;gap:12px;max-width:min(560px,calc(100vw - 36px));padding:11px 12px 11px 14px;border-radius:14px;background:linear-gradient(135deg,#0C93A6,#12717F);color:#fff;box-shadow:0 14px 34px rgba(9,80,96,.28);font:600 13.5px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
#app-notice .app-notice__ic{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;border-radius:8px;background:rgba(255,255,255,.18)}
#app-notice .app-notice__ic svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#app-notice .app-notice__tx{flex:1 1 auto;min-width:0}
#app-notice .app-notice__go{flex:0 0 auto;padding:7px 13px;border-radius:9px;background:#fff;color:#0B6C7C;text-decoration:none;font-weight:800;font-size:12.5px;white-space:nowrap}
#app-notice .app-notice__go:hover{background:#eaf7fa}
#app-notice .app-notice__x{flex:0 0 auto;width:24px;height:24px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:12px;line-height:1;cursor:pointer}
#app-notice .app-notice__x:hover{background:rgba(255,255,255,.3)}
@media(max-width:700px){#app-notice{left:14px;right:14px;top:74px;max-width:none}}

.teacher-dashboard{background:linear-gradient(135deg,#f5f7fa,#eef7f7)!important}.teacher-dashboard .panel{background:#fff;border:1px solid #e3ebef;box-shadow:0 12px 35px #25485609}.teacher-dashboard .chip{box-shadow:none;background:#fff;border-color:#e0e8eb}.teacher-dashboard .hero__title{font-size:18px}.teacher-dashboard .hero__sub{margin-bottom:22px}.teacher-dashboard .hero__eyebrow{font-size:11px;color:#7a9199}.teacher-dashboard .tabs{flex-wrap:wrap}.teacher-dashboard .cr-controls{margin:14px 0}.teacher-dashboard .cr-table th{position:sticky;top:0}
