/* 成人学习空间。统一校园配色；名单、作业、批改和状态仍由现有业务提供。 */
.school-app.role-teacher,.school-app.role-parent,.teacher-analytics {
  --campus-bg:#f3f5ed;--campus-surface:#fffef9;--campus-ink:#203a36;
  --campus-muted:#51675e;--campus-green:#17755b;--campus-line:#d6e1d8;
  --campus-accent:#eeb856;--campus-radius:16px;
  --teacher-ink:var(--campus-ink);--teacher-muted:var(--campus-muted);--teacher-muted-2:var(--campus-muted);
  --teacher-canvas:var(--campus-bg);--teacher-surface:var(--campus-surface);--teacher-surface-2:#eef3e9;
  --teacher-line:var(--campus-line);--teacher-line-strong:#82988b;
  --teacher-accent:var(--campus-green);--teacher-accent-2:#115b47;
  --teacher-warm:#775623;--teacher-warm-2:#775623;--teacher-warm-soft:#fbf0d5;
  --accent:var(--campus-green);--accent-dark:#115b47;--muted:var(--campus-muted);--ink:var(--campus-ink);
  --shadow-1:0 3px 10px rgb(32 58 54 / 4%);--shadow-2:0 8px 24px rgb(32 58 54 / 5%);--shadow-3:0 12px 32px rgb(32 58 54 / 7%);
  color-scheme:light;color:var(--campus-ink);background:var(--campus-bg);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
.school-app.role-teacher .sidebar,.school-app.role-parent .sidebar{width:248px;padding:28px 18px 22px;background:var(--campus-surface);border-right:1px solid var(--campus-line);box-shadow:none;color:var(--campus-ink)}
.school-app.role-teacher .workspace,.school-app.role-parent .workspace{margin-left:248px;min-width:0}
.school-app .brand{color:var(--campus-ink);gap:12px}
.school-app .brand-mark{width:44px;height:44px;border-radius:14px;background:var(--campus-green);color:#fffef9;box-shadow:none}
.school-app .brand-sub{color:var(--campus-muted);font-size:12px;letter-spacing:.04em}
.school-app .nav-items{gap:7px}
.school-app .nav-button{min-height:50px;border:1px solid transparent;border-radius:12px;padding:10px 12px;color:var(--campus-muted);background:transparent;font-size:14px;line-height:1.45;gap:12px;transition:background .16s,border-color .16s}
.school-app .nav-button:hover{background:#eef3e9;color:var(--campus-ink)}
.school-app .nav-button[aria-current="page"]{background:#e4f1e8;border-color:#b9d6c3;color:#115b47;box-shadow:none;font-weight:700}
.school-app .school-nav-symbol{width:29px;height:29px;flex-shrink:0;border-radius:9px;background:#eef3e9;border-color:transparent;color:var(--campus-green);font-size:12px}
.school-app .nav-button[aria-current="page"] .school-nav-symbol{background:var(--campus-green);border-color:var(--campus-green);color:#fffef9}
.school-app.role-teacher .teacher-live-nav{margin-top:10px;border-color:var(--campus-line);background:transparent}
.school-app .teacher-nav-arrow{margin-left:auto;color:var(--campus-green);font-size:16px}
.school-app .sidebar-foot{border-color:var(--campus-line);color:var(--campus-muted);font-size:12px;line-height:1.8}
.school-app .sidebar-foot .badge{color:var(--campus-green);background:#e4f1e8}
.school-app.role-teacher .topbar,.school-app.role-parent .topbar{min-height:76px;padding:16px clamp(20px,3vw,44px);background:var(--campus-surface);border-bottom:1px solid var(--campus-line);backdrop-filter:none}
.school-app .breadcrumb{color:var(--campus-muted);font-size:13px}.school-app .breadcrumb strong{color:var(--campus-ink)}
.school-app .topbar .avatar{min-width:44px;min-height:44px;background:#e4f1e8;color:var(--campus-green);border:1px solid #b9d6c3}
.school-app .school-identity{background:#eef3e9;color:var(--campus-muted)}
.school-app .teacher-top-live{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;color:var(--campus-green);background:#e4f1e8;border:1px solid #b9d6c3;border-radius:12px;font-size:13px;text-decoration:none}
.school-app.role-teacher .school-page,.school-app.role-parent .school-page{max-width:1320px;padding:34px clamp(20px,3vw,44px) 60px;margin:0 auto}
.school-app .page-heading{align-items:flex-start;gap:18px;margin-bottom:24px}
.school-app.role-teacher .school-page .page-heading h1,.school-app.role-parent .school-page .page-heading h1{color:var(--campus-ink);font-size:clamp(25px,2.2vw,34px);line-height:1.4;letter-spacing:-.04em}
.school-app .page-heading p{max-width:660px;color:var(--campus-muted);font-size:14px;line-height:1.8}
.school-app .eyebrow{color:var(--campus-green);font-size:12px;font-weight:700;letter-spacing:.08em}
.school-app .panel,.school-app .teacher-assignment-panel,.school-app .teacher-class-overview{background:var(--campus-surface);border:1px solid var(--campus-line);border-radius:var(--campus-radius);padding:24px;box-shadow:var(--shadow-1)}
.school-app .panel h2{color:var(--campus-ink);font-size:20px;line-height:1.5}
.school-app .panel p,.school-app .muted,.school-app .school-notes{color:var(--campus-muted)}
.school-app .section-heading{gap:12px;flex-wrap:wrap}.school-app .section-heading p{font-size:14px;line-height:1.7;margin:6px 0 0}
.school-app.role-teacher .school-page .btn.primary,.school-app.role-parent .school-page .btn.primary,.school-app .btn.primary{background:var(--campus-green);border:1px solid var(--campus-green);color:#fffef9;box-shadow:none}
.school-app.role-teacher .school-page .btn.primary:hover,.school-app.role-parent .school-page .btn.primary:hover{background:#115b47;box-shadow:none}
.school-app .btn{min-height:44px;border-radius:11px;font-size:14px;line-height:1.5;padding:10px 16px}
.school-app.role-teacher .school-page .btn.secondary,.school-app.role-parent .school-page .btn.secondary{border-color:#82988b;color:var(--campus-green);background:var(--campus-surface)}
.school-app.role-teacher .school-page .btn.ghost,.school-app.role-parent .school-page .btn.ghost{color:var(--campus-muted)}
.school-app .btn:hover:not(:disabled){transform:none}.school-app .btn:active:not(:disabled){transform:translateY(1px)}
.school-app :focus-visible{outline:3px solid var(--campus-green);outline-offset:3px}
.school-app .badge{border:1px solid var(--campus-line);color:#775623;background:#fbf0d5}
.school-app .badge.blue{background:#e9f1f8;color:#355977}.school-app .badge.green{background:#e4f1e8;color:#115b47}
.school-app .badge.red{background:#fae9e3;color:#953d2b}.school-app .badge.orange{background:#fbf0d5;color:#775623}
.school-app .subject-icon{background:#eef3e9;color:var(--campus-green)}
.teacher-flow{display:flex;align-items:center;gap:14px;margin:0 0 22px}
.teacher-flow-step{display:flex;align-items:center;gap:10px;color:var(--campus-muted);font-size:14px}
.teacher-flow-step span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e4eade;font-size:12px}
.teacher-flow-step b{font-weight:600}.teacher-flow-step small{display:block;font-size:12px;margin-top:3px}
.teacher-flow-step.active span{background:var(--campus-green);color:#fffef9}.teacher-flow-line{width:36px;height:1px;background:#b4c4b9}
.school-app .teacher-hero,.school-app .school-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;min-height:240px;padding:30px;overflow:hidden;border:1px solid #c5d8c6;border-radius:20px;background:#e9f0df;box-shadow:none}
.teacher-hero-copy{padding:0;align-self:center}
.school-app .teacher-hero-copy h2,.school-app .school-hero h2{margin:12px 0;font-size:clamp(24px,2.2vw,31px);color:var(--campus-ink);line-height:1.5;letter-spacing:-.02em}
.school-app .teacher-hero-copy p,.school-app .school-hero p{margin:0 0 20px;max-width:620px;font-size:15px;line-height:1.85;color:var(--campus-muted)}
.teacher-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.school-app .teacher-hero-board{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;margin:0;min-height:175px;border:1px solid #466d56;border-radius:16px;background:#315944;color:#fffef9;box-shadow:5px 5px 0 #cedac7;overflow:hidden}
.teacher-hero-board strong{position:relative;font-size:24px;font-weight:600;letter-spacing:.12em}.school-app .teacher-hero-board span{position:relative;color:#fffef9;font-size:13px}
.board-grid{position:absolute;inset:18px;border:1px solid #ffffff38;border-radius:6px}.board-grid i{display:none}
.school-app .school-hero-mark{width:180px;height:180px;place-self:center;transform:none;border-radius:50% 50% 20px 20px;background:#c9dbc0;color:#315944;border:1px solid #b0c9a9;font-size:60px;box-shadow:none}
.school-app .school-hero-mark span{color:#315944;font-size:13px;letter-spacing:.16em}
.school-app .school-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}
.school-app .school-stats>div{background:var(--campus-surface);border:1px solid var(--campus-line);border-radius:16px;padding:22px;box-shadow:none;gap:7px;transform:none}
.school-app .school-stats span{font-size:14px;color:var(--campus-muted)}.school-app .school-stats strong{color:var(--campus-ink);font-size:32px;font-variant-numeric:tabular-nums}
.school-app .school-stats small{font-size:12px;color:var(--campus-muted);line-height:1.7}
.teacher-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}
.teacher-quick-card{display:flex;align-items:center;gap:14px;min-width:0;padding:20px;background:var(--campus-surface);color:var(--campus-ink);border:1px solid var(--campus-line);border-radius:16px;font-family:inherit;text-decoration:none;text-align:left;cursor:pointer}
.teacher-quick-card:hover{border-color:#82988b;background:#f8fbf2}
.teacher-quick-icon,.teacher-class-mark{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:12px;background:#e4f1e8;color:var(--campus-green);font-size:16px;font-weight:700}
.teacher-quick-card:nth-child(2) .teacher-quick-icon{background:#fbf0d5;color:#775623}.teacher-quick-card:nth-child(3) .teacher-quick-icon{background:#e9f1f8;color:#355977}
.teacher-quick-card>span:nth-child(2){display:flex;flex-direction:column;gap:5px;min-width:0}.teacher-quick-card b{font-size:15px}.teacher-quick-card small{color:var(--campus-muted);font-size:12px;line-height:1.7;white-space:normal}
.teacher-quick-card em{margin-left:auto;font-style:normal;color:var(--campus-green)}
.teacher-class-row{display:flex;align-items:center;gap:12px;padding:18px 0;border-top:1px solid var(--campus-line)}
.teacher-class-row>span:nth-child(2){display:flex;flex-direction:column;flex:1;min-width:0;gap:5px}.teacher-class-row b{font-size:15px;color:var(--campus-ink)}
.teacher-class-row small,.teacher-class-meta{color:var(--campus-muted);font-size:12px;line-height:1.6}
.school-app .school-task-row{padding:20px 0;border-color:var(--campus-line)}.school-app .school-task-row:hover{background:#f3f6ee}
.school-app .school-task-row h3{color:var(--campus-ink);font-size:16px}.school-app .school-task-row small,.school-app .school-task-count span{color:var(--campus-muted);font-size:12px;line-height:1.7}
.school-app .school-task-count strong{color:var(--campus-green);font-variant-numeric:tabular-nums}
.school-app .school-invite{border:1px dashed #82988b;background:#eef3e9;border-radius:12px}.school-app .school-invite strong{color:var(--campus-green)}
.school-app .school-invite span,.school-app .school-person small,.school-app .school-child-picker{color:var(--campus-muted);font-size:13px}
.school-app .school-empty{background:var(--campus-surface);border:1px dashed #82988b;border-radius:16px;padding:44px 24px}.school-app .school-empty p{color:var(--campus-muted);font-size:14px}
.school-app .school-feedback{background:#e4f1e8;color:#315944;border-left:3px solid var(--campus-green)}
.school-app .school-family-task{border-bottom:1px solid var(--campus-line)}.school-app .school-family-task>p{color:var(--campus-muted);font-size:14px;line-height:1.8}
.school-app .school-form-status{color:var(--campus-green)}.school-app .report-table th{color:var(--campus-muted);background:#eef3e9}.school-app .report-table td{color:var(--campus-ink);border-color:var(--campus-line)}
.school-app .weekly-summary,.school-app .peer-item,.school-app .peer-target,.school-app .recitation-teacher-row,.school-app .rec-queue-row{background:var(--campus-surface);border-color:var(--campus-line)}
.school-app .peer-item p,.school-app .recitation-material pre{color:var(--campus-ink)}.school-app .peer-quality{color:var(--campus-green);background:#e4f1e8}
.school-app .feed-item.unread,.school-app .recitation-code-card,.school-app .school-demo-note{color:#775623;background:#fbf0d5}.school-app .school-notes{font-size:15px}

/* 独立学情看板共享色值和间距，teacher.js 的表格、诊断、名单保留。 */
.teacher-analytics{min-height:100vh;font-size:16px}
.teacher-analytics .header{position:sticky;top:0;z-index:20;min-height:78px;padding:18px clamp(20px,4vw,56px);background:var(--campus-surface);border-bottom:1px solid var(--campus-line);box-shadow:none;gap:18px}
.teacher-analytics .header h1{display:flex;align-items:center;gap:12px;color:var(--campus-ink);font-size:21px}
.teacher-analytics .header h1:before{content:"慧";display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--campus-green);color:#fffef9;font-size:20px}
.teacher-analytics .header .user{background:#eef3e9;color:var(--campus-muted);padding:9px 14px;border-radius:12px;font-size:13px}
.teacher-analytics .container{max-width:1320px;margin:0 auto;padding:28px clamp(20px,4vw,56px) 60px}
.teacher-analytics .nav-links{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}
.teacher-analytics .nav-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid var(--campus-line);border-radius:11px;color:var(--campus-green);background:var(--campus-surface);text-decoration:none;font-size:14px}
.teacher-analytics .analytics-intro{margin:0 0 26px;max-width:740px}
.teacher-analytics .analytics-intro>p:first-child{color:var(--campus-green);font-size:12px;font-weight:700;letter-spacing:.1em;margin:0 0 10px}
.teacher-analytics .analytics-intro h2{margin:0 0 12px;color:var(--campus-ink);font-size:clamp(26px,3vw,34px);line-height:1.4}
.teacher-analytics .analytics-intro>p:last-child{color:var(--campus-muted);font-size:15px;line-height:1.8}
.teacher-analytics .card{background:var(--campus-surface);border:1px solid var(--campus-line);border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow-1)}.teacher-analytics .card h2{color:var(--campus-ink);font-size:21px}
.teacher-analytics .class-selector{display:flex;flex-wrap:wrap;gap:9px;padding:12px;border:1px solid var(--campus-line);border-radius:14px;background:var(--campus-surface);margin-bottom:22px}
.teacher-analytics .class-btn{min-height:44px;padding:10px 15px;border:1px solid #82988b;color:var(--campus-green);background:var(--campus-surface);border-radius:11px;font-size:14px}
.teacher-analytics .class-btn.active,.teacher-analytics .class-btn.active#btn-diagnose{color:#fffef9;background:var(--campus-green);border-color:var(--campus-green)}
.teacher-analytics .board-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 20px}
.teacher-analytics .board-toolbar input{flex:1;width:100%;min-width:min(100%,220px);padding:12px 14px;border:1px solid #82988b;border-radius:11px;color:var(--campus-ink);background:var(--campus-surface);font-size:16px}
.teacher-analytics .refresh-board{min-height:44px;padding:10px 15px;color:var(--campus-green);background:#e4f1e8;border:1px solid #82988b;border-radius:11px;font:inherit;cursor:pointer}
.teacher-analytics .loading,.teacher-analytics .empty{padding:42px 24px;border:1px dashed #82988b;border-radius:16px;background:var(--campus-surface);color:var(--campus-muted);line-height:1.8}
.teacher-analytics .student-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--campus-line);background:#eef3e9;color:var(--campus-ink);border-radius:11px;font-size:14px}
.teacher-analytics .student-chip:hover{background:#e4f1e8;border-color:#82988b}.teacher-analytics .heat-bar{background:#e4eade}.teacher-analytics .trend-bar{background:var(--campus-green)}
.teacher-analytics .digest-box{border-color:var(--campus-line);background:#eef3e9;max-width:100%;overflow-x:auto}.teacher-analytics .stat{background:#eef3e9;border:1px solid var(--campus-line)}.teacher-analytics .stat .num{color:var(--campus-green)}
.teacher-analytics table{font-size:14px}.teacher-analytics th{color:var(--campus-muted);background:#eef3e9}.teacher-analytics th,.teacher-analytics td{padding:13px 12px;border-color:var(--campus-line)}
.teacher-analytics .tag{border-radius:6px}.teacher-analytics .modal-mask{background:rgb(32 58 54 / 50%)}
.teacher-analytics .modal-card{background:var(--campus-surface);border:1px solid var(--campus-line);border-radius:18px;overflow:hidden}.teacher-analytics .modal-head{background:#eef3e9;border-color:var(--campus-line)}
.teacher-analytics .modal-head button{width:44px;height:44px}.teacher-analytics .modal-body{padding:24px}.teacher-analytics :focus-visible{outline:3px solid var(--campus-green);outline-offset:3px}

@media(max-width:1050px){
  .school-app .teacher-hero,.school-app .school-hero{grid-template-columns:minmax(0,1fr) 170px;gap:20px;padding:26px}
  .school-app .school-hero-mark{width:145px;height:160px;font-size:48px}.teacher-quick-grid{grid-template-columns:1fr}
  .school-app .dashboard-grid,.school-app .school-class-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .school-app.role-teacher{padding-bottom:calc(142px + env(safe-area-inset-bottom))}.school-app.role-parent{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .school-app.role-teacher .workspace,.school-app.role-parent .workspace{margin-left:0}
  .school-app.role-teacher .sidebar,.school-app.role-parent .sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;z-index:40;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--campus-surface);border:0;border-top:1px solid var(--campus-line);box-shadow:0 -4px 16px rgb(32 58 54 / 6%)}
  .school-app .sidebar>.brand,.school-app .sidebar>.sidebar-foot{display:none}
  .school-app.role-teacher .nav-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;overflow:visible}
  .school-app.role-parent .nav-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;overflow:visible}
  .school-app .sidebar .nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:54px;padding:5px 2px;gap:4px;font-size:11px;line-height:1.2}
  .school-app .sidebar .school-nav-symbol{width:22px;height:22px;font-size:11px;border-radius:6px}
  .school-app.role-teacher .sidebar .teacher-live-nav{margin-top:0;border-color:transparent}.school-app .sidebar .teacher-nav-arrow{display:none}
  .school-app.role-teacher .topbar,.school-app.role-parent .topbar{padding:12px 16px;min-height:70px;gap:8px}
  .school-app .teacher-top-live,.school-app .school-identity{display:none}.school-app .school-demo-control select{min-height:44px;font-size:12px}
  .school-app.role-teacher .school-page,.school-app.role-parent .school-page{padding:26px 16px 32px}
  .school-app .page-heading{flex-wrap:wrap;margin-bottom:22px}.school-app .page-heading p{font-size:14px}.school-app .page-heading>.btn{width:100%}
  .school-app .teacher-hero,.school-app .school-hero{grid-template-columns:1fr;padding:24px;gap:22px}.school-app .teacher-hero-board{min-height:112px}.school-app .school-hero-mark{display:none}
  .school-app .teacher-hero-copy h2,.school-app .school-hero h2{font-size:25px}.teacher-hero-actions .btn{flex:1;min-width:120px}
  .teacher-flow{gap:9px;justify-content:space-between}.teacher-flow-step{gap:6px;font-size:12px}.teacher-flow-step span{width:25px;height:25px;border-radius:7px}.teacher-flow-step small{display:none}.teacher-flow-line{width:14px}
  .school-app .school-stats{grid-template-columns:1fr;gap:10px}.school-app .school-stats>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:18px;gap:5px 12px}
  .school-app .school-stats strong{grid-column:2;grid-row:1 / 3;font-size:30px}.school-app .school-stats small{grid-column:1}
  .school-app .panel{padding:20px}.teacher-quick-card{padding:18px}.teacher-class-row{flex-wrap:wrap}.teacher-class-meta{margin-left:54px}.teacher-class-row .btn{margin-left:auto}
  .school-app .school-task-row{gap:10px}.school-app .school-child-picker{width:100%}.school-app .school-child-picker select{flex:1;min-width:0}
  .teacher-analytics .header{padding:14px 18px;align-items:center;flex-wrap:wrap}.teacher-analytics .header h1{font-size:19px}.teacher-analytics .header .user{font-size:12px}
  .teacher-analytics .container{padding:24px 16px 40px}.teacher-analytics .card{padding:20px;min-width:0;overflow-x:auto}.teacher-analytics .grid-2,.teacher-analytics .grid-3{grid-template-columns:1fr}
  .teacher-analytics .modal-card{width:calc(100% - 24px)}.teacher-analytics .modal-body{padding:18px}
}
@media(prefers-reduced-motion:reduce){.school-app *,.teacher-analytics *{transition:none;scroll-behavior:auto}.school-app .btn:active:not(:disabled){transform:none}}
@media print{.school-app{background:#fff;color:#000}.school-app .sidebar,.school-app .topbar,.teacher-analytics .nav-links{display:none}.school-app .workspace{margin-left:0}.school-app .school-page{max-width:none;padding:0}.school-app .panel,.school-app .school-stats>div,.teacher-analytics .card{background:#fff;border-color:#aaa;box-shadow:none}}
