*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#F0F2F5;color:#333;font-size:14px}

/* 登录 */
.login-page{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(135deg,#1A1A2E,#4A90D9)}
.login-box{background:#FFF;border-radius:16px;padding:48px 40px 32px;width:380px;max-width:90%;box-shadow:0 20px 60px rgba(0,0,0,.2);text-align:center}
.login-box h2{font-size:22px;color:#1A1A2E;margin-bottom:6px}
.login-sub{font-size:13px;color:#999;margin-bottom:28px}
.login-field{margin-bottom:18px;text-align:left}
.login-field label{display:block;font-size:13px;color:#666;margin-bottom:6px;font-weight:500}
.login-field input{width:100%;padding:12px 14px;border:1px solid #D9D9D9;border-radius:8px;font-size:15px;outline:0;transition:border .2s}
.login-field input:focus{border-color:#4A90D9;box-shadow:0 0 0 3px rgba(74,144,217,.1)}
.login-error{color:#FF4D4F;font-size:13px;min-height:20px;margin-bottom:8px}
.login-box button{width:100%;padding:12px;background:#4A90D9;color:#FFF;border:none;border-radius:8px;font-size:16px;cursor:pointer;font-weight:600}
.login-box button:hover{background:#357ABD}
.login-hint{font-size:12px;color:#CCC;margin-top:16px}

/* 修改密码 */
.change-pwd-page{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(135deg,#1A1A2E,#4A90D9)}
.cpwd-box{background:#FFF;border-radius:16px;padding:48px 40px 32px;width:400px;max-width:90%;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.cpwd-box{text-align:center}
.cpwd-box h2{font-size:20px;color:#1A1A2E;margin-bottom:4px;text-align:center}
.cpwd-sub{font-size:13px;color:#999;margin-bottom:24px;text-align:center}
.cpwd-box button{width:100%;padding:12px;background:#4A90D9;color:#FFF;border:none;border-radius:8px;font-size:16px;cursor:pointer;font-weight:600;margin-top:8px;transition:background .2s}
.cpwd-box button:hover{background:#357ABD}

/* 主界面布局 */
.app-layout{display:flex;min-height:100vh}
.sidebar{width:220px;background:#1A1A2E;color:#FFF;position:fixed;top:0;left:0;height:100vh;z-index:100;display:flex;flex-direction:column}
.sidebar-header{padding:24px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-header h1{font-size:20px;color:#4A90D9}
.sidebar-header p{font-size:12px;color:rgba(255,255,255,.5);margin-top:4px}
.sidebar-nav{padding:12px 0;flex:1}
.nav-item{display:flex;align-items:center;gap:10px;padding:12px 20px;color:rgba(255,255,255,.65);cursor:pointer;transition:all .2s;border-left:3px solid transparent;font-size:14px}
.nav-item:hover{background:rgba(255,255,255,.05);color:#FFF}
.nav-item.active{background:rgba(74,144,217,.15);color:#4A90D9;border-left-color:#4A90D9}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:8px 0}
.main-content{margin-left:220px;flex:1;padding:28px;min-height:100vh}
.page{display:none}
.page.active{display:block}
.page-title{font-size:22px;font-weight:600;margin-bottom:20px;color:#1A1A2E}

/* 统计卡片 */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:#FFF;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.stat-card .val{font-size:32px;font-weight:700;color:#1A1A2E}
.stat-card .lbl{font-size:13px;color:#999;margin-top:4px}
.stat-total{border-left:4px solid #4A90D9}
.stat-students{border-left:4px solid #52C41A}
.stat-mastered{border-left:4px solid #FF9800}
.stat-teachers{border-left:4px solid #9C27B0}
.stat-word{border-left:4px solid #4A90D9}
.stat-synonym{border-left:4px solid #FF9800}
.stat-translation{border-left:4px solid #9C27B0}
.dash-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

/* Dashboard 卡片头部 */
.dash-card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.dash-card-header h3{font-size:15px;color:#1A1A2E;margin:0}
.dash-sort-group{display:flex;gap:6px;flex-wrap:wrap}

/* 排序按钮 */
.dash-sort-btn{padding:5px 12px;border:1.5px solid #E2E7F0;border-radius:8px;background:#FFF;font-size:12px;color:#666;cursor:pointer;transition:all .2s;white-space:nowrap}
.dash-sort-btn:hover{border-color:#4A90D9;color:#4A90D9;background:#F0F6FF}
.dash-sort-btn.active{background:#4A90D9;color:#FFF;border-color:#4A90D9}
.dash-order-btn{font-size:12px;font-family:inherit}

/* 排名序号 */
.dash-rank{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;font-size:12px;font-weight:600;background:#F0F2F5;color:#8892A6}
.dash-rank-top{background:linear-gradient(135deg,#FF9800,#FFB74D);color:#FFF;font-weight:700}

/* 图表 */
.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.chart-card{background:#FFF;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.chart-card h3{font-size:15px;margin-bottom:12px;color:#1A1A2E}
.chart-area{min-height:180px}
.hint{color:#CCC;text-align:center;padding-top:80px;font-size:14px}
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.bar-label{width:60px;font-size:12px;color:#666;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-bg{flex:1;height:20px;background:#F0F2F5;border-radius:4px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;transition:width .4s;display:flex;align-items:center;padding-left:8px;font-size:11px;color:#FFF;font-weight:500}
.bar-val{font-size:12px;color:#999;width:36px;text-align:right}

/* 工具栏 */
.toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.toolbar input,.toolbar select{padding:9px 12px;border:1px solid #D9D9D9;border-radius:8px;font-size:14px;background:#FFF;outline:0}
.toolbar input:focus,.toolbar select:focus{border-color:#4A90D9;box-shadow:0 0 0 2px rgba(74,144,217,.1)}
.toolbar input{flex:1;max-width:280px}

/* 题库 Tab 栏 */
.qb-tab-bar{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid #E8E8E8}
.qb-tab-btn{padding:10px 24px;border:none;background:transparent;font-size:14px;color:#666;cursor:pointer;position:relative;transition:all .2s;border-bottom:2px solid transparent;margin-bottom:-2px}
.qb-tab-btn:hover{color:#4A90D9}
.qb-tab-btn.active{color:#4A90D9;border-bottom-color:#4A90D9;font-weight:600}
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}

/* 表格 */
.table-wrap{background:#FFF;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
table{width:100%;border-collapse:collapse}
thead{background:#FAFAFA}
th{padding:12px 14px;text-align:left;font-weight:600;color:#666;font-size:13px;border-bottom:1px solid #F0F0F0}
td{padding:12px 14px;border-bottom:1px solid #F0F0F0;font-size:13px}
tr:hover td{background:#F5F7FA}
.loading-row{text-align:center;color:#999;padding:40px 14px!important}

/* 按钮 */
.btn{padding:7px 18px;border:none;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500;display:inline-flex;align-items:center;gap:5px}
.btn-small{padding:4px 10px;font-size:12px;border-radius:6px}
.btn-primary{background:#4A90D9;color:#FFF}
.btn-primary:hover{background:#357ABD}
.btn-danger{background:#FF4D4F;color:#FFF}
.btn-danger:hover{background:#E04345}
.btn-warning{background:#FF9800;color:#FFF}
.btn-warning:hover{background:#F57C00}
.btn-sm{padding:4px 10px;font-size:12px;border-radius:6px}
.btn-cancel{background:#F0F0F0;color:#666}
.btn-cancel:hover{background:#D9D9D9}
.btn-success{background:#52C41A;color:#FFF}
.btn-success:hover{background:#45B015}

/* 弹窗 */
.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:center;justify-content:center}
.modal-content{background:#FFF;border-radius:14px;padding:0;width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.modal-lg{width:660px}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 0;margin-bottom:8px}
.modal-header h3{font-size:17px;color:#1A1A2E}
.modal-close{background:none;border:none;font-size:26px;color:#999;cursor:pointer;line-height:1;padding:4px}
.modal-close:hover{color:#333}
#wordForm{padding:0 28px 24px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:13px;font-weight:500;color:#666;margin-bottom:5px}
.form-row{display:flex;gap:12px}
.form-row .form-group{flex:1}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1.5px solid #E0E4EB;border-radius:10px;font-size:14px;outline:0;font-family:inherit;background:#FAFBFC;transition:all .2s ease;color:#1A1A2E;box-sizing:border-box}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{background:#FFF;border-color:#C5CDD8}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4A90D9;background:#FFF;box-shadow:0 0 0 3px rgba(74,144,217,.10);outline:none}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* 二维码弹窗 */
.qr-modal{text-align:center;width:400px;max-width:90vw}
.qr-body{padding:24px 28px}
.qr-image{width:200px;height:200px;border:1px solid #F0F0F0;border-radius:8px}
.qr-info{margin-top:16px}
.qr-info p{margin:4px 0}

/* 学生详情 */
.student-summary{display:flex;gap:12px;padding:16px 28px;flex-wrap:wrap}
.summary-item{flex:1;min-width:80px;text-align:center;background:#F5F7FA;border-radius:10px;padding:16px 12px}
.summary-item .val{font-size:26px;font-weight:700;color:#4A90D9}
.summary-item .val.summary-names{font-size:14px;font-weight:500;line-height:1.5}
.summary-item .lbl{font-size:12px;color:#999;margin-top:3px}
.student-word-list{padding:0 28px 20px}
.student-word-list h4{font-size:14px;margin-bottom:10px;color:#1A1A2E}
.student-word-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #F0F0F0;font-size:13px}
.student-word-item:last-child{border-bottom:none}

/* 学生详情增强 */
.sdetail-body{padding:0 0 8px}
.sdetail-info-row{display:flex;gap:16px;flex-wrap:wrap;padding:12px 28px;font-size:13px;color:#666;background:#FAFBFC;border-bottom:1px solid #F0F0F0}
.sdetail-info-row span{white-space:nowrap}
.progress-bar-full{height:6px;background:#F0F2F5;border-radius:3px;margin:0 28px 12px;overflow:hidden}
.progress-bar-full-fill{height:100%;border-radius:3px;transition:width .3s}
.sdetail-tabs{display:flex;gap:0;padding:0 28px;border-bottom:2px solid #F0F0F0;margin-bottom:16px}
.sdetail-tab{padding:8px 16px;border:none;background:none;font-size:13px;color:#999;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.sdetail-tab:hover{color:#4A90D9}
.sdetail-tab.active{color:#4A90D9;border-bottom-color:#4A90D9;font-weight:600}
.sdetail-tab-content{padding:0 28px}
.sdetail-module{background:#F5F7FA;border-radius:8px;padding:12px 16px;margin-bottom:12px}
.sdetail-module-title{font-size:13px;font-weight:600;color:#1A1A2E;margin-bottom:6px}
.sdetail-module-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#666}
.sdetail-module-stats span{background:#FFF;padding:3px 10px;border-radius:12px;white-space:nowrap}
.sdetail-module-empty{font-size:12px;color:#CCC;text-align:center;padding:4px 0}
.sdetail-module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.modal-content.sdetail-modal{width:540px;max-width:92vw;max-height:85vh;overflow-y:auto;border-radius:16px}
.modal-content.sdetail-modal::-webkit-scrollbar{width:4px}
.modal-content.sdetail-modal::-webkit-scrollbar-thumb{background:#D9D9D9;border-radius:2px}

/* 学生详情 - 分区标题 */
.sdetail-section-title{font-size:14px;font-weight:600;color:#1A1A2E;padding:8px 28px 4px;margin-top:4px}

/* 日历视图 */
.sdetail-calendar-wrap{padding:8px 28px 16px;max-width:340px;margin:0 auto}
/* 月份导航 */
.cal-nav-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}
.cal-nav-btn{width:26px;height:26px;border:1px solid #D9D9D9;border-radius:50%;background:#FFF;cursor:pointer;font-size:14px;color:#666;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1;padding:0}
.cal-nav-btn:hover:not(:disabled){border-color:#4A90D9;color:#4A90D9;background:rgba(74,144,217,.06)}
.cal-nav-btn:disabled{opacity:.3;cursor:not-allowed}
.cal-nav-title{font-size:13px;font-weight:600;color:#1A1A2E;min-width:90px;text-align:center}
.cal-grid{background:#FAFBFC;border-radius:8px;overflow:hidden}
.cal-headers{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:10px;color:#999;padding:4px 0;background:#F0F0F0}
.cal-header-cell{padding:3px 0}
.cal-cells{display:grid;grid-template-columns:repeat(7,1fr);padding:3px;gap:2px}
.cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:5px;cursor:default;transition:all .15s;position:relative;min-height:40px;padding:3px 1px}
.cal-cell:hover{transform:scale(1.08);z-index:2;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.cal-empty{background:transparent;min-height:unset}
.cal-day-num{font-weight:600;font-size:12px;line-height:1.2}
.cal-today{box-shadow:inset 0 0 0 2px #4A90D9}
.cal-green{background:#E6FFED;color:#237804}
.cal-green:hover{background:#D0F5DC}
.cal-yellow{background:#FFF7E6;color:#AD6800}
.cal-yellow:hover{background:#FFEDC2}
.cal-red{background:#FFF1F0;color:#A8071A}
.cal-red:hover{background:#FFD8D5}
/* 日历进度百分比 */
.cal-mini-pct{font-size:9px;font-weight:600;line-height:1.1;color:inherit;opacity:.85;margin-top:1px}
.cal-mini-pct-dim{font-size:9px;color:#BCBCBC;opacity:.5}
.cal-legend{display:flex;gap:14px;font-size:11px;color:#999;margin-top:6px;justify-content:center;flex-wrap:wrap}
.cal-legend-item{display:flex;align-items:center;gap:4px}
.cal-dot{display:inline-block;width:10px;height:10px;border-radius:3px}

/* 学生详情 - 本周概况 */
.sdetail-week-overview{display:flex;gap:10px;padding:12px 28px;flex-wrap:wrap}
.sdetail-week-item{flex:1;min-width:80px;text-align:center;background:linear-gradient(135deg,#F0F4FF,#E8F0FE);border-radius:10px;padding:12px 8px}
.sdetail-week-val{font-size:22px;font-weight:700;color:#4A90D9}
.sdetail-week-unit{font-size:12px;font-weight:400;color:#999;margin-left:2px}
.sdetail-week-lbl{font-size:11px;color:#999;margin-top:4px}

/* 学生详情 - 模块进度条 */
.sdetail-module-progress{padding:8px 28px 0}
.sdetail-mp-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.sdetail-mp-label{font-size:12px;color:#1A1A2E;width:56px;flex-shrink:0;text-align:right}
.sdetail-mp-num{font-size:12px;color:#1A1A2E;font-weight:600;width:38px;text-align:right}
.sdetail-mp-detail{font-size:11px;color:#999}
.sdetail-progress-bar{height:6px;background:#F0F2F5;border-radius:3px;overflow:hidden}
.sdetail-progress-fill{height:100%;border-radius:3px;transition:width .3s}

/* 学生详情 - 错题分析 */
.sdetail-err-overview{display:flex;gap:10px;padding:4px 28px 8px;flex-wrap:wrap}
.sdetail-err-item{flex:1;min-width:70px;text-align:center;background:#F5F7FA;border-radius:10px;padding:12px 8px}
.sdetail-err-val{font-size:20px;font-weight:700;color:#1A1A2E}
.sdetail-err-lbl{font-size:11px;color:#999;margin-top:3px}
.sdetail-week-change{padding:0 28px 8px;font-size:12px;color:#999}
.sdetail-src-dist{padding:4px 28px 8px}
.sdetail-src-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.sdetail-src-label{font-size:12px;color:#666;width:56px;flex-shrink:0;text-align:right}
.sdetail-src-bar-wrap{flex:1}
.sdetail-src-num{font-size:12px;color:#666;width:80px;text-align:left;white-space:nowrap}

/* 学生详情 - 周测记录表格 */
.sdetail-quiz-table{width:100%;border-collapse:collapse;margin:4px 28px 8px;font-size:12px;max-width:calc(100% - 56px)}
.sdetail-quiz-table th{background:#F5F7FA;color:#666;font-weight:600;padding:6px 10px;text-align:left;border-bottom:1px solid #E8E8E8}
.sdetail-quiz-table td{padding:6px 10px;border-bottom:1px solid #F0F0F0;color:#1A1A2E}
.sdetail-quiz-table tr:hover td{background:#FAFBFC}
.sdetail-empty-tab{text-align:center;padding:24px 0;color:#CCC;font-size:13px}

/* 标签 */
.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.tag-green{background:#F6FFED;color:#52C41A;border:1px solid #B7EB8F}
.tag-red{background:#FFF2F0;color:#FF4D4F;border:1px solid #FFCCC7}

/* Toast */
.toast{position:fixed;top:20px;right:20px;background:#FFF;border-radius:8px;padding:12px 18px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:2000;font-size:13px;animation:slideIn .3s;display:flex;align-items:center;gap:8px}
.toast-success{border-left:4px solid #52C41A}
.toast-error{border-left:4px solid #FF4D4F}
@keyframes slideIn{from{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}

/* 进度条 */
.progress-mini{display:flex;align-items:center;gap:8px}
.progress-mini .bar{flex:1;height:8px;background:#F0F2F5;border-radius:4px;overflow:hidden;max-width:100px}
.progress-mini .bar .fill{height:100%;border-radius:4px}
.progress-mini .pct{font-size:12px;color:#999;white-space:nowrap}

/* 班级卡片 */
.class-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.class-card{background:#FFF;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.06);cursor:pointer;transition:all .2s;border:2px solid transparent}
.class-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.1);border-color:#4A90D9}
.class-card-icon{font-size:40px;margin-bottom:10px}
.class-card-name{font-size:17px;font-weight:600;color:#1A1A2E;margin-bottom:8px}
.class-card-info{display:flex;gap:12px;font-size:12px;color:#999;margin-bottom:12px}
.class-card-stats{display:flex;gap:20px;margin-bottom:10px}
.class-stat{display:flex;flex-direction:column;align-items:center;min-width:0}
.class-stat .val{font-size:20px;font-weight:700;color:#4A90D9;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.class-stat .lbl{font-size:11px;color:#999}
.class-card-time{font-size:11px;color:#CCC;text-align:right}
.class-card-export-btn{position:absolute;top:12px;right:12px;padding:4px 10px;font-size:11px;background:#EEF2FF;color:#4A6CF7;border:1px solid #D6E0FB;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap}
.class-card-export-btn:hover{background:#4A6CF7;color:#FFF;border-color:#4A6CF7}
.class-card{position:relative}
.class-empty{grid-column:1/-1;text-align:center;padding:80px 0;color:#CCC;font-size:15px}

/* ═══════════════ 学校管理 (Premium) ═══════════════ */

/* ── 页面头部 ── */
.sc-page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}
.sc-page-title-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.sc-page-title {
  font-size: 22px;
  font-weight: 700;
  color: #1A1A2E;
  margin: 0;
  letter-spacing: .3px;
}
.sc-context-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px 5px 8px;
  background: linear-gradient(135deg, #E8F5E9, #C8E6C9);
  color: #2E7D32;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.sc-context-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #4CAF50;
  box-shadow: 0 0 0 3px rgba(76,175,80,.2);
  animation: scPulse 2s infinite;
}
@keyframes scPulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(76,175,80,.2); }
  50%     { box-shadow: 0 0 0 6px rgba(76,175,80,.08); }
}
.sc-context-clear {
  background: none; border: none;
  color: #2E7D32; font-size: 16px;
  cursor: pointer; padding: 0 2px;
  line-height: 1; opacity: .6; transition: opacity .2s;
}
.sc-context-clear:hover { opacity: 1; }
.sc-context-all {
  font-size: 13px; color: #AAA;
  padding: 4px 0;
}

/* ── 卡片网格 ── */
.sc-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(288px, 1fr));
  gap: 20px;
}

/* ── 学校卡片 ── */
.sc-card {
  position: relative;
  background: #FFF;
  border-radius: 16px;
  overflow: hidden;
  cursor: pointer;
  transition: all .25s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.sc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 28px rgba(0,0,0,.1);
}
.sc-card--active {
  box-shadow: 0 2px 20px rgba(34,197,94,.18);
}
.sc-card--active .sc-card-accent {
  background: linear-gradient(90deg, #22C55E, #10B981, #34D399);
}
.sc-card-accent {
  height: 4px;
  background: linear-gradient(90deg, #E5E7EB, #D1D5DB);
  transition: background .3s;
}
.sc-card:hover .sc-card-accent {
  background: linear-gradient(90deg, #4A90D9, #2563EB, #7C3AED);
}
.sc-card-body {
  padding: 20px 22px 18px;
}

/* 卡片顶部 */
.sc-card-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.sc-card-avatar {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #EEF2FF, #DBE4FF);
  color: #4A6CF7;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 700;
  flex-shrink: 0;
}
.sc-card--active .sc-card-avatar {
  background: linear-gradient(135deg, #DCFCE7, #BBF7D0);
  color: #16A34A;
}
.sc-card-title-row {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sc-card-title {
  font-size: 16px; font-weight: 600;
  color: #1A1A2E;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sc-card-badge {
  flex-shrink: 0;
  padding: 2px 8px;
  font-size: 11px; font-weight: 600;
  color: #16A34A;
  background: #F0FDF4;
  border-radius: 10px;
  border: 1px solid #BBF7D0;
}
.sc-card-date {
  margin: 0 0 0 auto;
  font-size: 11px;
  color: #BBB;
  white-space: nowrap;
}

/* 统计 */
.sc-card-stats {
  display: flex;
  gap: 0;
  margin-bottom: 18px;
  background: #F8FAFC;
  border-radius: 10px;
  padding: 12px 4px;
}
.sc-stats-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.sc-stats-item:not(:last-child) {
  border-right: 1px solid #E8ECF0;
}
.sc-stats-icon {
  font-size: 18px;
  margin-bottom: 2px;
}
.sc-stats-val {
  font-size: 22px;
  font-weight: 700;
  color: #1E293B;
  display: flex;
  align-items: baseline;
  gap: 3px;
}
.sc-stats-unit {
  font-size: 12px;
  font-weight: 400;
  color: #94A3B8;
}

/* 卡片操作按钮 */
.sc-card-actions {
  display: flex;
  gap: 8px;
}
.sc-btn {
  border: none; border-radius: 8px;
  padding: 8px 16px;
  font-size: 13px; font-weight: 600;
  cursor: pointer;
  transition: all .2s;
  outline: none;
}
.sc-btn--enter {
  flex: 1;
  background: #EEF2FF;
  color: #4A6CF7;
}
.sc-btn--enter:hover { background: #4A6CF7; color: #FFF; }
.sc-card--active .sc-btn--enter {
  background: #F0FDF4;
  color: #16A34A;
}
.sc-card--active .sc-btn--enter:hover {
  background: #16A34A; color: #FFF;
}
.sc-btn--delete {
  background: #FFF;
  color: #D1D5DB;
  border: 1px solid #F1F5F9;
  padding: 8px 10px;
  display: flex; align-items: center; justify-content: center;
}
.sc-btn--delete:hover {
  color: #EF4444;
  border-color: #FECACA;
  background: #FFF5F5;
}

/* ── 新建卡片 ── */
.sc-card--add {
  border: 2px dashed #E2E8F0;
  box-shadow: none;
  min-height: 100%;
  display: flex;
  align-items: center; justify-content: center;
}
.sc-card--add:hover {
  border-color: #4A90D9;
  background: #FAFBFF;
  box-shadow: 0 4px 16px rgba(74,144,217,.08);
}
.sc-card-add-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 32px 0;
}
.sc-card-add-icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: #F1F5F9;
  color: #94A3B8;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; font-weight: 300;
  transition: all .25s;
}
.sc-card--add:hover .sc-card-add-icon {
  background: #4A6CF7;
  color: #FFF;
  transform: scale(1.05);
}
.sc-card-add-label {
  font-size: 15px; color: #64748B; font-weight: 500;
}

/* ── 空状态 ── */
.sc-empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 80px 20px;
}
.sc-empty-icon { font-size: 56px; margin-bottom: 16px; }
.sc-empty-title { font-size: 18px; font-weight: 600; color: #475569; margin: 0 0 6px; }
.sc-empty-hint { font-size: 14px; color: #94A3B8; margin: 0 0 24px; }

/* ═══════════════ 新建学校弹窗 (Premium) ═══════════════ */

.sc-premium-modal {
  width: 500px;
  max-width: 92vw;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: scModFadeIn .3s ease;
}
@keyframes scModFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Modal 头部 */
.sc-modal-header {
  position: relative;
  padding: 28px 30px 24px;
  background: linear-gradient(135deg, #065F46 0%, #059669 40%, #10B981 100%);
  color: #FFF;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.sc-modal-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #F59E0B, #10B981, #3B82F6, #8B5CF6, #EC4899);
  opacity: .7;
}
.sc-modal-header-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
  flex-shrink: 0;
}
.sc-modal-header-text { flex: 1; }
.sc-modal-header-text h3 {
  font-size: 20px; font-weight: 700;
  letter-spacing: .5px;
  margin: 0 0 6px;
}
.sc-modal-header-text p {
  font-size: 13px; opacity: .8; margin: 0;
  font-weight: 400; line-height: 1.5;
}
.sc-modal-header-close {
  position: absolute;
  top: 16px; right: 18px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: none;
  color: #FFF;
  font-size: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  line-height: 1;
}
.sc-modal-header-close:hover {
  background: rgba(255,255,255,.3);
  transform: rotate(90deg);
}

/* Modal 主体 */
.sc-modal-body {
  padding: 24px 30px 12px;
  background: #FFF;
}

/* Modal 表单 */
.sc-form-section {
  margin-bottom: 6px;
}
.sc-form-label {
  display: block;
  font-size: 13px; font-weight: 600;
  color: #374151;
  margin-bottom: 8px;
}
.sc-form-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.sc-form-input-icon {
  position: absolute;
  left: 14px;
  font-size: 18px;
  z-index: 2;
  pointer-events: none;
}
.sc-form-input {
  width: 100%;
  padding: 12px 14px 12px 42px;
  border: 2px solid #E5E7EB;
  border-radius: 10px;
  font-size: 15px;
  color: #1F2937;
  background: #FFF;
  transition: all .2s;
  outline: none;
  box-sizing: border-box;
}
.sc-form-input:focus {
  border-color: #10B981;
  box-shadow: 0 0 0 3px rgba(16,185,129,.12);
}
.sc-form-input::placeholder {
  color: #C4C9D1;
}
.sc-form-hint {
  margin: 6px 0 0;
  font-size: 12px; color: #9CA3AF;
}

/* Modal 底部 */
.sc-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 30px 24px;
  background: #FFF;
}
.sc-btn-cancel {
  background: #F3F4F6;
  color: #6B7280;
  border-radius: 10px;
  padding: 10px 24px;
  font-size: 14px; font-weight: 500;
  border: none; cursor: pointer;
  transition: all .2s;
}
.sc-btn-cancel:hover { background: #E5E7EB; }
.sc-btn-confirm {
  background: linear-gradient(135deg, #059669, #10B981);
  color: #FFF;
  border-radius: 10px;
  padding: 10px 28px;
  font-size: 14px; font-weight: 600;
  border: none; cursor: pointer;
  transition: all .2s;
  box-shadow: 0 2px 8px rgba(5,150,105,.3);
}
.sc-btn-confirm:hover {
  background: linear-gradient(135deg, #047857, #059669);
  box-shadow: 0 4px 16px rgba(5,150,105,.4);
  transform: translateY(-1px);
}

/* ── 侧边栏学校标记 ── */
.sidebar-school{cursor:pointer;transition:background .2s}
.sidebar-school:hover{background:#2A2A3E}

/* 班级详情 */
.class-detail-body{padding:0 0 16px}
.detail-list{padding:0 28px}
.detail-list-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #F0F0F0;font-size:13px}
.detail-list-item:last-child{border-bottom:none}
.detail-qrcode-section{margin:0 28px 16px;padding:16px;background:#F5F7FA;border-radius:10px}
.detail-qrcode-section h4{font-size:14px;margin-bottom:12px;color:#1A1A2E}
.detail-qrcode-body{display:flex;align-items:center;gap:20px}
.detail-qrcode-img{width:140px;height:140px;border:1px solid #E8E8E8;border-radius:8px;background:#FFF}
.detail-qrcode-info p{margin:4px 0}

/* 复选组 */
.checkbox-group{display:flex;flex-wrap:wrap;gap:8px;max-height:200px;overflow-y:auto;padding:4px 0}
.checkbox-item{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid #D9D9D9;border-radius:6px;font-size:13px;cursor:pointer;transition:all .15s;user-select:none;background:#FAFAFA}
.checkbox-item:hover{border-color:#4A90D9}
.checkbox-item:has(input:checked){border-color:#4A90D9;background:rgba(74,144,217,.08)}
.checkbox-item input[type="checkbox"]{accent-color:#4A90D9;width:15px;height:15px}

/* 题库筛选 */
.qb-check{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid #D9D9D9;border-radius:8px;font-size:13px;cursor:pointer;background:#FFF;color:#666;user-select:none;white-space:nowrap}
.qb-check:hover{border-color:#4A90D9}
.qb-check input[type="checkbox"]{accent-color:#4A90D9;width:15px;height:15px}

/* 表格单元格增强 */
.ellipsis-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.action-cell{white-space:nowrap}

/* 分页 */
.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 0;flex-wrap:wrap;gap:8px}
.pg-info{font-size:13px;color:#999}
.pg-btns{display:flex;gap:4px;flex-wrap:wrap}
.pg-btn{padding:6px 12px;border:1px solid #D9D9D9;border-radius:6px;background:#FFF;cursor:pointer;font-size:13px;color:#666;transition:all .15s}
.pg-btn:hover:not(:disabled){border-color:#4A90D9;color:#4A90D9}
.pg-btn:disabled{opacity:.4;cursor:not-allowed}
.pg-btn.pg-num{min-width:34px;text-align:center}
.pg-btn.pg-num.active{background:#4A90D9;color:#FFF;border-color:#4A90D9}

/* ========== 高频词汇弹窗 - Premium 样式 ========== */
.word-modal {
  width: 820px;
  border-radius: 18px;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 88vh;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: wmFadeIn .3s ease;
}
@keyframes wmFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ---- Header ---- */
.wm-header {
  position: relative;
  padding: 28px 32px 22px;
  background: linear-gradient(135deg, #2B3A67 0%, #4A6FA5 40%, #5B8CBF 100%);
  color: #FFF;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.wm-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #FF9800, #E91E63, #9C27B0, #4A90D9, #52C41A);
  opacity: .7;
}
.wm-header-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.wm-header-text { flex: 1; }
.wm-header-text h3 {
  font-size: 20px; font-weight: 700;
  letter-spacing: .5px;
  margin: 0 0 4px;
}
.wm-header-text p {
  font-size: 13px; opacity: .8; margin: 0;
  font-weight: 400;
}
.wm-header-close {
  position: absolute;
  top: 16px; right: 20px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: none;
  color: #FFF;
  font-size: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  line-height: 1;
}
.wm-header-close:hover {
  background: rgba(255,255,255,.3);
  transform: rotate(90deg);
}

/* ---- Body ---- */
.wm-body {
  padding: 24px 32px 20px;
  background: #FFF;
}

/* ---- Section ---- */
.wm-section {
  margin-bottom: 24px;
  background: #F8F9FC;
  border-radius: 12px;
  padding: 20px 24px;
  border: 1px solid #EEF0F5;
}
.wm-section-header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #E8EAF0;
}
.wm-section-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.wm-section-icon.icon-info   { background: #E8F0FE; color: #4A90D9; }
.wm-section-icon.icon-level  { background: #FFF3E0; color: #FF9800; }
.wm-section-icon.icon-answer { background: #E8F5E9; color: #52C41A; }
.wm-section-icon.icon-example{ background: #F3E5F5; color: #9C27B0; }
.wm-section-title {
  font-size: 14px; font-weight: 700;
  color: #1A1A2E;
}
.wm-form-row {
  display: flex; gap: 16px;
}
.wm-form-row .form-group { flex: 1; margin-bottom: 16px; }

/* Labels 增强 */
.wm-section .form-group label {
  font-size: 12px; font-weight: 600;
  color: #8892A6;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 6px;
}
.wm-section .form-group input,
.wm-section .form-group select,
.wm-section .form-group textarea {
  padding: 10px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  font-size: 14px;
  background: #FAFBFC;
  color: #1A1A2E;
  transition: all .2s ease;
  box-sizing: border-box;
}
.wm-section .form-group input:hover,
.wm-section .form-group select:hover,
.wm-section .form-group textarea:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-section .form-group input:focus,
.wm-section .form-group select:focus,
.wm-section .form-group textarea:focus {
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
  background: #FFF;
}

/* Word input - larger */
.wm-word-input {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1A1A2E !important;
  padding: 12px 16px !important;
  letter-spacing: .5px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  background: #FAFBFC;
  transition: all .2s ease;
}
.wm-word-input:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-word-input:focus {
  border-color: #4A90D9;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
  outline: none;
}
.wm-word-input::placeholder {
  font-weight: 400;
  font-size: 14px;
  color: #BFC7D4;
}

/* ---- Difficulty Pills ---- */
.wm-diff-pills {
  display: flex; gap: 8px;
}
.wm-diff-pill {
  flex: 1;
  padding: 10px 6px;
  border-radius: 10px;
  text-align: center;
  font-size: 12px; font-weight: 600;
  cursor: pointer;
  transition: all .25s;
  border: 2px solid transparent;
  user-select: none;
  color: #8892A6;
  background: #FFF;
}
.wm-diff-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.wm-diff-pill.active {
  color: #FFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,.15);
}
.wm-diff-pill.d1 { border-color: #E8F0FE; }
.wm-diff-pill.d2 { border-color: #E8F5E9; }
.wm-diff-pill.d3 { border-color: #FFF3E0; }
.wm-diff-pill.d4 { border-color: #FFEBEE; }
.wm-diff-pill.d5 { border-color: #F3E5F5; }
.wm-diff-pill.d1:hover, .wm-diff-pill.d1.active { background: #4A90D9; border-color: #4A90D9; }
.wm-diff-pill.d2:hover, .wm-diff-pill.d2.active { background: #52C41A; border-color: #52C41A; }
.wm-diff-pill.d3:hover, .wm-diff-pill.d3.active { background: #FF9800; border-color: #FF9800; }
.wm-diff-pill.d4:hover, .wm-diff-pill.d4.active { background: #FF4D4F; border-color: #FF4D4F; }
.wm-diff-pill.d5:hover, .wm-diff-pill.d5.active { background: #9C27B0; border-color: #9C27B0; }

/* ---- Frequency Stars ---- */
.wm-freq-stars {
  display: flex; align-items: center; gap: 6px;
}
.wm-freq-label {
  font-size: 12px; font-weight: 600;
  color: #8892A6;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 6px;
}
.wm-freq-btn {
  width: 40px; height: 40px;
  border-radius: 10px;
  border: 2px solid #E0E4EB;
  background: #FFF;
  cursor: pointer;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  color: #D0D5E0;
  user-select: none;
}
.wm-freq-btn:hover {
  border-color: #FFB74D;
  color: #FFB74D;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255,152,0,.15);
}
.wm-freq-btn.active {
  background: linear-gradient(135deg, #FF9800, #FFB74D);
  border-color: #FF9800;
  color: #FFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(255,152,0,.25);
}
.wm-freq-btn.freq-zero {
  width: auto; padding: 0 14px;
  font-size: 12px; font-weight: 600;
}

/* ---- POS Multi-Select Dropdown ---- */
.wm-pos-dropdown {
  position: relative;
  user-select: none;
}
.wm-pos-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 42px;
  padding: 7px 12px;
  border: 2px solid #E2E7F0;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: all .2s ease;
}
.wm-pos-trigger:hover {
  border-color: #4A90D9;
  background: #F8FAFE;
}
.wm-pos-dropdown.open .wm-pos-trigger {
  border-color: #4A90D9;
  box-shadow: 0 0 0 4px rgba(74,144,217,.1);
  border-radius: 10px 10px 0 0;
}
.wm-pos-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
}
.wm-pos-placeholder {
  font-size: 14px;
  color: #B0BEC5;
  padding: 2px 0;
}
.wm-pos-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: #EBF3FF;
  color: #4A90D9;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
}
.wm-pos-tag-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px; height: 16px;
  border-radius: 50%;
  font-size: 12px;
  cursor: pointer;
  color: #4A90D9;
  transition: all .15s;
}
.wm-pos-tag-x:hover {
  background: #4A90D9;
  color: #FFF;
}
.wm-pos-arrow {
  flex-shrink: 0;
  font-size: 12px;
  color: #8892A6;
  transition: transform .25s ease;
}
.wm-pos-dropdown.open .wm-pos-arrow {
  transform: rotate(180deg);
}
.wm-pos-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: #FFF;
  border: 2px solid #4A90D9;
  border-top: none;
  border-radius: 0 0 10px 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  padding: 8px;
  max-height: 240px;
  overflow-y: auto;
}
.wm-pos-dropdown.open .wm-pos-panel {
  display: block;
}
.wm-pos-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 8px;
  cursor: pointer;
  transition: all .15s;
  font-size: 14px;
  font-weight: 500;
  color: #334155;
}
.wm-pos-option:hover {
  background: #F0F6FF;
}
.wm-pos-option input[type="checkbox"] {
  accent-color: #4A90D9;
  width: 16px; height: 16px;
  cursor: pointer;
  margin: 0;
}
.wm-pos-opt-label {
  flex: 1;
}
.wm-pos-option small {
  font-size: 12px;
  color: #8892A6;
  font-weight: 400;
}
.wm-pos-option:has(input:checked) {
  background: #EBF3FF;
}
.wm-pos-option:has(input:checked) small {
  color: #4A90D9;
}

/* ---- Option Card ---- */
.wm-option-card {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px;
  background: #FFF;
  border: 1.5px solid #E8EAF0;
  border-radius: 12px;
  margin-bottom: 10px;
  transition: all .2s;
}
.wm-option-card:hover {
  border-color: #B8C4D8;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.wm-option-card:focus-within {
  border-color: #4A90D9;
  box-shadow: 0 0 0 4px rgba(74,144,217,.06);
}
.wm-option-num {
  width: 32px; height: 32px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
  flex-shrink: 0;
}
.wm-option-card.correct .wm-option-num {
  background: #E8F5E9; color: #2E7D32;
}
.wm-option-card.correct {
  border-color: #A5D6A7;
  background: #FAFFFB;
}
.wm-option-card.wrong .wm-option-num {
  background: #F5F5F5; color: #8892A6;
}
.wm-option-card .form-group {
  flex: 1; margin-bottom: 0 !important;
}
.wm-option-card .form-group label {
  font-size: 11px; margin-bottom: 2px;
}
.wm-option-card .form-group input {
  margin-bottom: 0; padding: 8px 12px;
  font-size: 13px;
}
.wm-option-badge {
  position: absolute;
  top: -8px; right: 12px;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 10px; font-weight: 700;
  letter-spacing: .5px;
}
.wm-option-badge.correct-badge {
  background: #52C41A; color: #FFF;
}
.wm-option-badge.distractor-badge {
  background: #F5F5F5; color: #8892A6;
}

/* ---- Example Textarea ---- */
.wm-example-input {
  width: 100%;
  resize: vertical;
  min-height: 72px;
  padding: 12px 16px;
  border: 1.5px solid #D4C5E2;
  border-radius: 10px;
  font-family: 'Georgia', 'Times New Roman', serif;
  font-size: 15px;
  line-height: 1.8;
  color: #2C3E50;
  background: #FBFAFF;
  transition: all .2s ease;
  outline: none;
  box-sizing: border-box;
}
.wm-example-input::placeholder {
  color: #B0BEC5;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 13px;
  font-style: normal;
}
.wm-example-input:hover {
  border-color: #B39DDB;
  background: #FFF;
}
.wm-example-input:focus {
  border-color: #7C3AED;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10);
}
.wm-example-input:focus::placeholder {
  color: #CFD8DC;
}

/* ---- Footer ---- */
.wm-footer {
  display: flex; justify-content: flex-end; align-items: center; gap: 12px;
  padding: 18px 32px;
  background: #FAFBFC;
  border-top: 1px solid #EEF0F5;
  border-radius: 0 0 18px 18px;
}
.wm-btn {
  padding: 11px 28px;
  border-radius: 10px;
  border: none;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
}
.wm-btn-cancel {
  background: #FFF;
  color: #666;
  border: 1.5px solid #E0E4EB;
}
.wm-btn-cancel:hover {
  background: #F5F6FA;
  border-color: #C0C6D0;
}
.wm-btn-save {
  background: linear-gradient(135deg, #4A90D9 0%, #5B9FE8 100%);
  color: #FFF;
  box-shadow: 0 4px 14px rgba(74,144,217,.35);
}
.wm-btn-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(74,144,217,.45);
  background: linear-gradient(135deg, #3D7EC5 0%, #4A90D9 100%);
}
.wm-btn-save:active { transform: translateY(0); }

/* ---- Audio & Add-row buttons ---- */
.wm-btn-audio {
  padding: 8px 18px; font-size: 13px; font-weight: 600;
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #FFF; border: none; border-radius: 8px;
  box-shadow: 0 3px 10px rgba(102,126,234,.25);
  cursor: pointer; transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
}
.wm-btn-audio:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 16px rgba(102,126,234,.4);
}
.wm-btn-audio:active { transform: translateY(0); }
.wm-btn-audio:disabled {
  opacity: .6; cursor: not-allowed; transform: none;
}

/* AI 自动填充按钮 */
.wm-btn-ai-fill {
  padding: 12px 20px; font-size: 14px; font-weight: 600;
  background: linear-gradient(135deg, #11998e, #38ef7d);
  color: #FFF; border: none; border-radius: 8px;
  cursor: pointer; transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap; height: 50px;
}
.wm-btn-ai-fill:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 16px rgba(17,153,142,.4);
}
.wm-btn-ai-fill:active { transform: translateY(0); }
.wm-btn-ai-fill:disabled {
  opacity: .6; cursor: not-allowed; transform: none;
}

/* AI button - redesigned full-width */
.wm-ai-area { margin-bottom: 24px; }
.wm-btn-ai-fill {
  width: 100%; padding: 16px 24px; font-size: 14px; font-weight: 600;
  background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
  color: #FFF; border: none; border-radius: 14px; cursor: pointer;
  display: flex; align-items: center; gap: 16px;
  transition: all .3s ease;
  box-shadow: 0 4px 20px rgba(17,153,142,.25);
  position: relative; overflow: hidden;
}
.wm-btn-ai-fill::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.12) 50%, rgba(255,255,255,0) 100%);
  opacity: 0; transition: all .4s;
}
.wm-btn-ai-fill:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(17,153,142,.35);
}
.wm-btn-ai-fill:hover::before { opacity: 1; }
.wm-btn-ai-fill:active { transform: translateY(0); }
.wm-btn-ai-fill:disabled {
  opacity: .6; cursor: not-allowed; transform: none;
}

.wm-ai-icon {
  font-size: 26px; flex-shrink: 0; line-height: 1;
  animation: wmAiPulse 2s ease-in-out infinite;
}
@keyframes wmAiPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}
.wm-ai-text { flex: 1; text-align: left; line-height: 1.4; }
.wm-ai-title { display: block; font-size: 15px; font-weight: 700; }
.wm-ai-desc { display: block; font-size: 11px; font-weight: 400; opacity: .85; }
.wm-ai-arrow {
  font-size: 18px; flex-shrink: 0;
  transition: transform .3s;
}
.wm-btn-ai-fill:hover .wm-ai-arrow { transform: translateX(4px); }

.wm-ai-status {
  font-size: 12px; margin-top: 10px;
  display: none; color: #4A90D9; text-align: center;
}

/* Step indicator */
.wm-step {
  width: 24px; height: 24px; border-radius: 50%;
  background: linear-gradient(135deg, #4A90D9, #5B9FE8);
  color: #FFF; font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(74,144,217,.3);
}

/* Section badge (required/optional) */
.wm-section-badge {
  font-size: 10px; font-weight: 600;
  padding: 2px 8px; border-radius: 10px;
  letter-spacing: .5px; margin-left: auto;
}
.wm-section-badge.required {
  background: #FFF2F0; color: #FF4D4F;
  border: 1px solid #FFCCC7;
}
.wm-section-badge.optional {
  background: #F5F5F5; color: #999;
  border: 1px solid #E8E8E8;
}

/* Section description */
.wm-section-desc {
  font-size: 12px; color: #8892A6;
  margin-bottom: 12px; line-height: 1.6;
}
.wm-section-desc code {
  background: #F0F4FF; color: #4A90D9;
  padding: 2px 6px; border-radius: 4px;
  font-size: 11px; font-family: 'SF Mono', 'Fira Code', monospace;
}

/* Audio area */
.wm-audio-area {
  margin-top: 16px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #F5F3FF, #EDE9FE);
  border-radius: 12px;
  border: 1px solid #E2DCF7;
  display: flex; align-items: center; gap: 12px;
  flex-wrap: wrap;
}
.wm-audio-area audio { flex: 1; min-width: 200px; }
.wm-audio-area .wm-btn-audio { flex-shrink: 0; }

/* Option list */
.wm-options-list { display: flex; flex-direction: column; gap: 8px; }

/* Enhanced option card */
.wm-options-list .wm-option-card {
  cursor: pointer;
  padding: 10px 14px;
  background: #FFF;
  border: 1.5px solid #E8ECF2;
  border-radius: 11px;
  display: flex; align-items: center; gap: 10px;
  transition: all .25s cubic-bezier(.4,0,.2,1);
  margin-bottom: 0;
}
.wm-options-list .wm-option-card:hover {
  border-color: #C5CDD8;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transform: translateX(2px);
}
.wm-options-list .wm-option-card.correct {
  border-color: #A5D6A7;
  background: linear-gradient(135deg, #F6FFED, #F0FFF4);
  box-shadow: 0 2px 12px rgba(82,196,26,.1);
}
.wm-options-list .wm-option-card.wrong {
  border-color: #EEF1F6;
}
.wm-options-list .wm-option-num {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: #F0F1F5;
  color: #666;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
  flex-shrink: 0;
  transition: all .2s;
}
.wm-options-list .wm-option-card.correct .wm-option-num {
  background: #52C41A;
  color: #FFF;
  box-shadow: 0 2px 8px rgba(82,196,26,.3);
}
.wm-options-list .lh-input {
  flex: 1; min-width: 0;
  padding: 9px 12px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 14px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
}
.wm-options-list .lh-input:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-options-list .lh-input:focus {
  background: #FFF;
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.08);
}
.wm-options-list .lh-input::placeholder { color: #BFC7D4; }

.wm-option-check {
  display: flex; align-items: center; gap: 4px;
  cursor: pointer; flex-shrink: 0;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 11px; font-weight: 600;
  color: #8892A6;
  background: #F5F5F5;
  transition: all .2s;
  user-select: none;
}
.wm-option-check:hover { background: #E8F0FE; color: #4A90D9; }
.wm-option-check input[type="radio"] { display: none; }
.wm-option-check-label { line-height: 1; }
.wm-options-list .wm-option-card.correct .wm-option-check {
  background: #D9F7BE;
  color: #389E0D;
}
.wm-options-list .wm-option-card.correct .wm-option-check:hover {
  background: #B7EB8F;
}

/* Tabs */
.wm-tabs {
  display: flex; gap: 4px;
  margin-bottom: 14px;
  background: #EEF0F5;
  border-radius: 10px;
  padding: 4px;
}
.wm-tab {
  flex: 1; padding: 9px 16px;
  border: none; border-radius: 8px;
  background: transparent; color: #666;
  font-size: 13px; font-weight: 600;
  cursor: pointer;
  transition: all .25s cubic-bezier(.4,0,.2,1);
}
.wm-tab:hover { color: #333; background: rgba(255,255,255,.5); }
.wm-tab.active {
  background: #FFF; color: #1A1A2E;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
.wm-tab-panel { display: none; }
.wm-tab-panel.active { display: block; animation: wmTabFadeIn .25s ease; }
@keyframes wmTabFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ══════════ Extension Content Rows ══════════ */
/* Row card */
.wm-ext-row {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 14px 16px;
  background: #FFF;
  border: 1.5px solid #E8ECF2;
  border-radius: 12px;
  margin-bottom: 8px;
  transition: all .2s ease;
}
.wm-ext-row:hover {
  border-color: #CFD5E2;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.wm-ext-row:focus-within {
  border-color: #9C27B0;
  box-shadow: 0 0 0 4px rgba(156,39,176,.06), 0 2px 12px rgba(156,39,176,.06);
}
/* Fields layout */
.wm-ext-fields {
  flex: 1; display: flex; align-items: flex-start; gap: 10px;
  min-width: 0;
}
.wm-ext-field {
  flex: 1; min-width: 0;
}
/* EN / ZH label */
.wm-ext-field-label {
  display: block;
  font-size: 10px; font-weight: 700;
  color: #8892A6;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 5px;
  user-select: none;
}
/* Extension input */
.wm-ext-input {
  width: 100%;
  padding: 9px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 14px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
  font-family: inherit;
  box-sizing: border-box;
}
.wm-ext-input:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-ext-input:focus {
  background: #FFF;
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
}
.wm-ext-input::placeholder {
  color: #BFC7D4; font-size: 13px;
}
/* EN input - slight font variation */
.wm-ext-field:first-child .wm-ext-input {
  font-family: 'Georgia', 'Times New Roman', serif;
}
.wm-ext-field:first-child .wm-ext-input::placeholder {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Visual separator circle */
.wm-ext-sep {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F3E5F5, #EDE7F6);
  color: #9C27B0;
  font-size: 13px; font-weight: 700;
  flex-shrink: 0;
  margin-top: 19px;
  user-select: none;
  box-shadow: 0 1px 3px rgba(156,39,176,.08);
}

/* Delete button */
.wm-ext-del {
  width: 30px; height: 30px;
  border-radius: 8px;
  border: none;
  background: #F5F5F5;
  color: #8892A6;
  font-size: 18px; font-weight: 700;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  flex-shrink: 0;
  margin-top: 19px;
  line-height: 1;
}
.wm-ext-del:hover {
  background: #FFE5E5;
  color: #FF4D4F;
  transform: scale(1.1);
}
.wm-ext-del:active { transform: scale(.95); }

/* Empty state */
.wm-ext-empty {
  text-align: center;
  padding: 40px 24px;
  color: #BFC7D4;
  font-size: 13px;
  background: #FFF;
  border: 2px dashed #E8ECF2;
  border-radius: 12px;
  transition: all .2s;
}
.wm-ext-empty:hover { border-color: #CFD5E2; }
.wm-ext-empty-icon {
  display: block;
  font-size: 36px;
  margin-bottom: 10px;
  opacity: .5;
}

/* Add row button - enhanced */
.wm-btn-add-row {
  width: 100%;
  padding: 10px 20px; font-size: 13px; font-weight: 600;
  border: 1.5px dashed #C0C6D0; border-radius: 10px;
  background: #FAFBFC; color: #666; cursor: pointer;
  transition: all .2s; margin-top: 8px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  font-family: inherit; outline: none;
}
.wm-btn-add-row:hover {
  border-color: #9C27B0; background: #FDF5FE; color: #9C27B0;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(156,39,176,.08);
}
.wm-btn-add-row:active { transform: translateY(0); }
.wm-btn-add-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #9C27B0; color: #FFF;
  font-size: 14px; font-weight: 700;
  transition: transform .2s;
}
.wm-btn-add-row:hover .wm-btn-add-icon {
  transform: rotate(90deg);
}

/* ---- Hidden select ---- */
.wm-hidden-select {
  position: absolute; opacity: 0; pointer-events: none;
  width: 1px; height: 1px;
}

/* scrollbar */
.word-modal::-webkit-scrollbar { width: 5px; }
.word-modal::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 3px; }
.word-modal::-webkit-scrollbar-track { background: transparent; }

/* modal-content override for word-modal */
.word-modal .modal-header { display: none; }

/* ========== 班级创建 / 编辑 弹窗 - Premium 样式 ========== */
.cls-premium-modal {
  width: 600px;
  border-radius: 18px;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 88vh;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: clsFadeIn .3s ease;
}
@keyframes clsFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ---- Class Header ---- */
.cls-header {
  position: relative;
  padding: 28px 32px 22px;
  background: linear-gradient(135deg, #0F4C5C 0%, #2D7D8A 40%, #39A9B4 100%);
  color: #FFF;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.cls-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #F59E0B, #10B981, #3B82F6, #8B5CF6, #EC4899);
  opacity: .7;
}
.cls-header-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.cls-header-text { flex: 1; }
.cls-header-text h3 {
  font-size: 20px; font-weight: 700;
  letter-spacing: .5px;
  margin: 0 0 4px;
}
.cls-header-text p {
  font-size: 13px; opacity: .8; margin: 0;
  font-weight: 400;
}
.cls-header-close {
  position: absolute;
  top: 16px; right: 20px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: none;
  color: #FFF;
  font-size: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  line-height: 1;
}
.cls-header-close:hover {
  background: rgba(255,255,255,.3);
  transform: rotate(90deg);
}

/* ---- Class Body ---- */
.cls-body {
  padding: 24px 32px 20px;
  background: #FFF;
}

/* ---- Class Sections ---- */
.cls-section {
  margin-bottom: 24px;
  background: #F8F9FC;
  border-radius: 12px;
  padding: 20px 24px;
  border: 1px solid #EEF0F5;
}
.cls-section-header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #E8EAF0;
}
.cls-section-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.cls-section-icon.icon-info   { background: #E0F2F1; color: #0D9488; }
.cls-section-icon.icon-people { background: #EDE9FE; color: #7C3AED; }
.cls-section-icon.icon-grade  { background: #FEF3C7; color: #D97706; }
.cls-section-title {
  font-size: 14px; font-weight: 700;
  color: #1A1A2E;
}
.cls-form-row {
  display: flex; gap: 16px;
}
.cls-form-row .form-group { flex: 1; margin-bottom: 16px; }

/* Labels 增强 */
.cls-section .form-group label {
  font-size: 12px; font-weight: 600;
  color: #8892A6;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 6px;
}
.cls-section .form-group input,
.cls-section .form-group select,
.cls-section .form-group textarea {
  padding: 10px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  font-size: 14px;
  background: #FAFBFC;
  color: #1A1A2E;
  transition: all .2s ease;
  box-sizing: border-box;
}
.cls-section .form-group input:hover,
.cls-section .form-group select:hover,
.cls-section .form-group textarea:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.cls-section .form-group input:focus,
.cls-section .form-group select:focus,
.cls-section .form-group textarea:focus {
  border-color: #0D9488;
  box-shadow: 0 0 0 3px rgba(13,148,136,.10);
  background: #FFF;
}

/* Class name input */
.cls-name-input {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1A1A2E !important;
  padding: 13px 16px !important;
  letter-spacing: .5px;
}
.cls-name-input::placeholder {
  font-weight: 400;
  font-size: 14px;
  color: #C0C6D0;
}
.cls-name-input:disabled {
  background: #F5F6FA !important;
  color: #666 !important;
  cursor: not-allowed;
}

/* ---- Teacher Checkbox Grid ---- */
.cls-teacher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
  max-height: 180px;
  overflow-y: auto;
  padding: 4px 0;
}
.cls-teacher-card {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border: 1.5px solid #E2E7F0;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: all .2s;
  user-select: none;
}
.cls-teacher-card:hover {
  border-color: #0D9488;
  background: #F0FDFA;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(13,148,136,.1);
}
.cls-teacher-card:has(input:checked) {
  border-color: #0D9488;
  background: #F0FDFA;
  box-shadow: 0 0 0 2px rgba(13,148,136,.15);
}
.cls-teacher-card input[type="checkbox"] {
  accent-color: #0D9488;
  width: 16px; height: 16px;
  cursor: pointer;
  flex-shrink: 0;
}
.cls-teacher-avatar {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, #0D9488, #14B8A6);
  color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.cls-teacher-info {
  flex: 1; min-width: 0;
}
.cls-teacher-name {
  font-size: 13px; font-weight: 600;
  color: #1A1A2E;
  line-height: 1.2;
}
.cls-teacher-id {
  font-size: 11px; color: #8892A6;
  line-height: 1.2;
}
.cls-teacher-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 20px;
  color: #B0BEC5;
  font-size: 13px;
}

/* ---- Class Footer ---- */
.cls-footer {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 32px;
  background: #FAFBFC;
  border-top: 1px solid #EEF0F5;
  border-radius: 0 0 18px 18px;
}
.cls-footer-right {
  display: flex; gap: 12px;
}
.cls-btn {
  padding: 11px 28px;
  border-radius: 10px;
  border: none;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
}
.cls-btn-cancel {
  background: #FFF;
  color: #666;
  border: 1.5px solid #E0E4EB;
}
.cls-btn-cancel:hover {
  background: #F5F6FA;
  border-color: #C0C6D0;
}
.cls-btn-danger {
  background: #FFF;
  color: #EF4444;
  border: 1.5px solid #FECACA;
}
.cls-btn-danger:hover {
  background: #FEF2F2;
  border-color: #EF4444;
  color: #DC2626;
}
.cls-btn-save {
  background: linear-gradient(135deg, #0D9488 0%, #14B8A6 100%);
  color: #FFF;
  box-shadow: 0 4px 14px rgba(13,148,136,.35);
}
.cls-btn-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(13,148,136,.45);
  background: linear-gradient(135deg, #0F766E 0%, #0D9488 100%);
}
.cls-btn-save:active { transform: translateY(0); }

/* scrollbar */
.cls-premium-modal::-webkit-scrollbar { width: 5px; }
.cls-premium-modal::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 3px; }
.cls-premium-modal::-webkit-scrollbar-track { background: transparent; }

/* Hide default modal header in premium modal */
.cls-premium-modal .modal-header { display: none; }

/* ========== 教师添加 / 编辑弹窗 - Premium 样式 ========== */
.tc-premium-modal {
  width: 560px;
  border-radius: 18px;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 88vh;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: tcFadeIn .3s ease;
}
@keyframes tcFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ---- Teacher Header ---- */
.tc-header {
  position: relative;
  padding: 28px 32px 22px;
  background: linear-gradient(135deg, #3B1F6E 0%, #6C3CC0 40%, #8B5CF6 100%);
  color: #FFF;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.tc-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #F59E0B, #10B981, #3B82F6, #8B5CF6, #EC4899);
  opacity: .7;
}
.tc-header-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.tc-header-text { flex: 1; }
.tc-header-text h3 {
  font-size: 20px; font-weight: 700;
  letter-spacing: .5px;
  margin: 0 0 4px;
}
.tc-header-text p {
  font-size: 13px; opacity: .8; margin: 0;
  font-weight: 400;
}
.tc-header-close {
  position: absolute;
  top: 16px; right: 20px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: none;
  color: #FFF;
  font-size: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  line-height: 1;
}
.tc-header-close:hover {
  background: rgba(255,255,255,.3);
  transform: rotate(90deg);
}

/* ---- Teacher Body ---- */
.tc-body {
  padding: 24px 32px 20px;
  background: #FFF;
}

/* ---- Teacher Section ---- */
.tc-section {
  margin-bottom: 20px;
  background: #F8F9FC;
  border-radius: 12px;
  padding: 20px 24px;
  border: 1px solid #EEF0F5;
}
.tc-section-header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #E8EAF0;
}
.tc-section-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.tc-section-icon.icon-id     { background: #EDE9FE; color: #7C3AED; }
.tc-section-icon.icon-user   { background: #E0F2F1; color: #0D9488; }
.tc-section-icon.icon-class  { background: #FEF3C7; color: #D97706; }
.tc-section-title {
  font-size: 14px; font-weight: 700;
  color: #1A1A2E;
}

/* Labels 增强 */
.tc-section .form-group label {
  font-size: 12px; font-weight: 600;
  color: #8892A6;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 6px;
}
.tc-section .form-group input,
.tc-section .form-group select,
.tc-section .form-group textarea {
  padding: 10px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  font-size: 14px;
  background: #FAFBFC;
  color: #1A1A2E;
  transition: all .2s ease;
  box-sizing: border-box;
}
.tc-section .form-group input:hover,
.tc-section .form-group select:hover,
.tc-section .form-group textarea:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.tc-section .form-group input:focus,
.tc-section .form-group select:focus,
.tc-section .form-group textarea:focus {
  border-color: #7C3AED;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10);
  background: #FFF;
}

/* ---- Teacher ID Input ---- */
.tc-id-input {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #1A1A2E !important;
  padding: 13px 16px !important;
  letter-spacing: 1px;
  font-family: 'SF Mono', 'Cascadia Code', 'Consolas', monospace !important;
}
.tc-id-input::placeholder {
  font-weight: 400;
  font-size: 14px;
  color: #C0C6D0;
  letter-spacing: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}
.tc-id-input:disabled {
  background: #F5F6FA !important;
  color: #8892A6 !important;
  cursor: not-allowed;
}

/* ---- Teacher Name Input ---- */
.tc-name-input {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: #1A1A2E !important;
  padding: 13px 16px !important;
}
.tc-name-input::placeholder {
  font-weight: 400;
  font-size: 14px;
  color: #C0C6D0;
}

/* ---- Password Hint Banner ---- */
.tc-pwd-banner {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #FFFBEB 0%, #FEF3C7 100%);
  border: 1px solid #FCD34D;
  border-radius: 10px;
  margin-top: 16px;
}
.tc-pwd-banner-icon {
  font-size: 18px; flex-shrink: 0; margin-top: 1px;
}
.tc-pwd-banner-text {
  flex: 1;
}
.tc-pwd-banner-title {
  font-size: 13px; font-weight: 600;
  color: #92400E;
  margin-bottom: 2px;
}
.tc-pwd-banner-desc {
  font-size: 12px; color: #A16207;
  line-height: 1.5;
}

/* ---- Teacher Footer ---- */
.tc-footer {
  display: flex; justify-content: flex-end; align-items: center; gap: 12px;
  padding: 18px 32px;
  background: #FAFBFC;
  border-top: 1px solid #EEF0F5;
  border-radius: 0 0 18px 18px;
}
.tc-btn {
  padding: 11px 28px;
  border-radius: 10px;
  border: none;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
}
.tc-btn-cancel {
  background: #FFF;
  color: #666;
  border: 1.5px solid #E0E4EB;
}
.tc-btn-cancel:hover {
  background: #F5F6FA;
  border-color: #C0C6D0;
}
.tc-btn-save {
  background: linear-gradient(135deg, #7C3AED 0%, #8B5CF6 100%);
  color: #FFF;
  box-shadow: 0 4px 14px rgba(124,58,237,.35);
}
.tc-btn-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(124,58,237,.45);
  background: linear-gradient(135deg, #6D28D9 0%, #7C3AED 100%);
}
.tc-btn-save:active { transform: translateY(0); }

/* ---- Teacher Checkbox Grid (复用并增强) ---- */
.tc-teacher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
  max-height: 180px;
  overflow-y: auto;
  padding: 4px 0;
}
.tc-teacher-grid::-webkit-scrollbar { width: 4px; }
.tc-teacher-grid::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 2px; }
.tc-teacher-card {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border: 1.5px solid #E2E7F0;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: all .2s;
  user-select: none;
}
.tc-teacher-card:hover {
  border-color: #7C3AED;
  background: #F5F3FF;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(124,58,237,.1);
}
.tc-teacher-card:has(input:checked) {
  border-color: #7C3AED;
  background: #F5F3FF;
  box-shadow: 0 0 0 2px rgba(124,58,237,.15);
}
.tc-teacher-card input[type="checkbox"] {
  accent-color: #7C3AED;
  width: 16px; height: 16px;
  cursor: pointer;
  flex-shrink: 0;
}
.tc-teacher-avatar {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, #7C3AED, #A78BFA);
  color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.tc-teacher-info {
  flex: 1; min-width: 0;
}
.tc-teacher-name {
  font-size: 13px; font-weight: 600;
  color: #1A1A2E;
  line-height: 1.2;
}
.tc-teacher-id {
  font-size: 11px; color: #8892A6;
  line-height: 1.2;
}
.tc-teacher-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 20px;
  color: #B0BEC5;
  font-size: 13px;
}

/* scrollbar */
.tc-premium-modal::-webkit-scrollbar { width: 5px; }
.tc-premium-modal::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 3px; }
.tc-premium-modal::-webkit-scrollbar-track { background: transparent; }

/* Hide default modal header in premium modal */
.tc-premium-modal .modal-header { display: none; }

/* ========== 教师分配弹窗 - Premium 样式 ========== */
.ta-premium-modal {
  width: 580px;
  border-radius: 18px;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 88vh;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: taFadeIn .3s ease;
}
@keyframes taFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ---- Header ---- */
.ta-header {
  position: relative;
  padding: 28px 32px 22px;
  background: linear-gradient(135deg, #1E3A5F 0%, #2D6A9F 40%, #3B82F6 100%);
  color: #FFF;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.ta-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #F59E0B, #10B981, #3B82F6, #8B5CF6, #EC4899);
  opacity: .7;
}
.ta-header-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.ta-header-text { flex: 1; }
.ta-header-text h3 {
  font-size: 20px; font-weight: 700;
  letter-spacing: .5px;
  margin: 0 0 4px;
}
.ta-header-text p {
  font-size: 13px; opacity: .8; margin: 0;
  font-weight: 400;
}
.ta-header-close {
  position: absolute;
  top: 16px; right: 20px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: none;
  color: #FFF;
  font-size: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  line-height: 1;
}
.ta-header-close:hover {
  background: rgba(255,255,255,.3);
  transform: rotate(90deg);
}

/* ---- Body ---- */
.ta-body {
  padding: 24px 32px 20px;
  background: #FFF;
}

/* ---- Section ---- */
.ta-section {
  margin-bottom: 20px;
  background: #F8F9FC;
  border-radius: 12px;
  padding: 20px 24px;
  border: 1px solid #EEF0F5;
}
.ta-section-header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #E8EAF0;
}
.ta-section-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.ta-section-icon.icon-class  { background: #E0F2F1; color: #0D9488; }
.ta-section-icon.icon-teacher{ background: #EDE9FE; color: #7C3AED; }
.ta-section-title {
  font-size: 14px; font-weight: 700;
  color: #1A1A2E;
}

/* ---- Info Row ---- */
.ta-info-row {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #EFF6FF 0%, #F0F9FF 100%);
  border-radius: 10px;
  border: 1px solid #BFDBFE;
  margin-bottom: 8px;
  font-size: 13px; color: #1E40AF;
}
.ta-info-emoji { font-size: 18px; flex-shrink: 0; }
.ta-info-text { flex: 1; }

/* ---- Multi-Select Dropdown ---- */
.ta-dropdown {
  position: relative;
  user-select: none;
}
.ta-dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 48px;
  padding: 8px 14px;
  border: 2px solid #E2E7F0;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: all .2s ease;
}
.ta-dropdown-trigger:hover {
  border-color: #3B82F6;
  background: #FAFBFF;
}
.ta-dropdown.open .ta-dropdown-trigger {
  border-color: #3B82F6;
  box-shadow: 0 0 0 4px rgba(59,130,246,.1);
  border-radius: 10px 10px 0 0;
}
.ta-dropdown-tags {
  display: flex; flex-wrap: wrap; gap: 6px;
  flex: 1;
}
.ta-dropdown-placeholder {
  font-size: 14px; color: #B0BEC5;
  padding: 2px 0;
}
.ta-dropdown-tag {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px;
  background: #EFF6FF;
  color: #1D4ED8;
  border-radius: 20px;
  font-size: 13px; font-weight: 600;
  animation: tagPopIn .2s ease;
}
@keyframes tagPopIn {
  from { transform: scale(.8); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}
.ta-dropdown-tag-x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border-radius: 50%;
  font-size: 11px; color: #1D4ED8;
  cursor: pointer;
  transition: all .15s;
  line-height: 1;
}
.ta-dropdown-tag-x:hover {
  background: #1D4ED8;
  color: #FFF;
}
.ta-dropdown-arrow {
  flex-shrink: 0;
  font-size: 12px; color: #8892A6;
  transition: transform .25s ease;
  width: 20px; text-align: center;
}
.ta-dropdown.open .ta-dropdown-arrow {
  transform: rotate(180deg);
}
.ta-dropdown-panel {
  display: none;
  position: absolute;
  top: 100%; left: 0; right: 0;
  z-index: 50;
  background: #FFF;
  border: 2px solid #3B82F6;
  border-top: none;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  overflow: hidden;
}
.ta-dropdown.open .ta-dropdown-panel {
  display: block;
}
.ta-dropdown-search {
  padding: 10px 12px;
  border-bottom: 1px solid #E8EAF0;
  background: #FAFBFC;
}
.ta-dropdown-search input {
  width: 100%;
  padding: 8px 12px 8px 32px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 13px;
  outline: none;
  background: #FFF;
  transition: all .2s;
}
.ta-dropdown-search input:focus {
  border-color: #3B82F6;
  box-shadow: 0 0 0 3px rgba(59,130,246,.08);
}
.ta-dropdown-list {
  max-height: 210px;
  overflow-y: auto;
  padding: 4px 0;
}
.ta-dropdown-list::-webkit-scrollbar { width: 4px; }
.ta-dropdown-list::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 2px; }
.ta-dropdown-option {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px;
  cursor: pointer;
  transition: all .15s;
  border-bottom: 1px solid #F5F5F5;
}
.ta-dropdown-option:last-child { border-bottom: none; }
.ta-dropdown-option:hover { background: #F0F6FF; }
.ta-dropdown-option.selected { background: #EFF6FF; }
.ta-dropdown-option-avatar {
  width: 34px; height: 34px;
  border-radius: 10px;
  background: linear-gradient(135deg, #3B82F6, #60A5FA);
  color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700;
  flex-shrink: 0;
}
.ta-dropdown-option.selected .ta-dropdown-option-avatar {
  background: linear-gradient(135deg, #1D4ED8, #2563EB);
  box-shadow: 0 2px 8px rgba(29,78,216,.3);
}
.ta-dropdown-option-info { flex: 1; min-width: 0; }
.ta-dropdown-option-name {
  font-size: 13px; font-weight: 600;
  color: #1A1A2E;
}
.ta-dropdown-option-id {
  font-size: 11px; color: #8892A6;
}
.ta-dropdown-option-check {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 2px solid #D0D5E0;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: all .2s;
  color: transparent;
  font-size: 12px;
  font-weight: 700;
}
.ta-dropdown-option.selected .ta-dropdown-option-check {
  background: #3B82F6;
  border-color: #3B82F6;
  color: #FFF;
}
.ta-dropdown-empty {
  text-align: center; padding: 24px;
  color: #B0BEC5; font-size: 13px;
}

/* ---- Footer ---- */
.ta-footer {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 32px;
  background: #FAFBFC;
  border-top: 1px solid #EEF0F5;
  border-radius: 0 0 18px 18px;
}
.ta-footer-right {
  display: flex; gap: 12px;
}
.ta-btn {
  padding: 11px 28px;
  border-radius: 10px;
  border: none;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: all .25s;
  display: inline-flex; align-items: center; gap: 6px;
}
.ta-btn-cancel {
  background: #FFF;
  color: #666;
  border: 1.5px solid #E0E4EB;
}
.ta-btn-cancel:hover {
  background: #F5F6FA;
  border-color: #C0C6D0;
}
.ta-btn-save {
  background: linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%);
  color: #FFF;
  box-shadow: 0 4px 14px rgba(59,130,246,.35);
}
.ta-btn-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(59,130,246,.45);
  background: linear-gradient(135deg, #2563EB 0%, #3B82F6 100%);
}
.ta-btn-save:active { transform: translateY(0); }

/* ---- Selected Count Badge ---- */
.ta-count-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px;
  border-radius: 11px;
  background: #3B82F6;
  color: #FFF;
  font-size: 11px; font-weight: 700;
  padding: 0 6px;
}

/* scrollbar */
.ta-premium-modal::-webkit-scrollbar { width: 5px; }
.ta-premium-modal::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 3px; }
.ta-premium-modal::-webkit-scrollbar-track { background: transparent; }

/* Hide default modal header in premium modal */
.ta-premium-modal .modal-header { display: none; }

/* ========== 任务发布管理 - Premium ========== */

/* ── 列表页 ── */
.as-page-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px; flex-wrap: wrap; gap: 12px;
}
.as-page-header h2 { font-size: 22px; font-weight: 700; color: #1A1A2E; margin: 0; }
.as-page-sub { font-size: 13px; color: #8892A6; margin-top: 4px; }
.as-btn-primary {
  padding: 11px 24px; border: none; border-radius: 12px;
  font-size: 14px; font-weight: 600; cursor: pointer;
  background: linear-gradient(135deg, #4A90D9 0%, #5B9FE8 100%);
  color: #FFF; box-shadow: 0 4px 14px rgba(74,144,217,.3);
  transition: all .25s;
}
.as-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(74,144,217,.4);
}
.as-filter-bar { margin-bottom: 16px; }
.as-filter-bar select {
  padding: 9px 16px; border: 1.5px solid #E2E7F0; border-radius: 10px;
  font-size: 14px; outline: none; background: #FFF; color: #333; cursor: pointer;
  transition: all .2s;
}
.as-filter-bar select:focus { border-color: #4A90D9; box-shadow: 0 0 0 3px rgba(74,144,217,.08); }

/* ── 表格卡片 ── */
.as-table-card {
  background: #FFF; border-radius: 16px; overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
  border: 1px solid #F0F0F0;
}
.as-table { width: 100%; border-collapse: collapse; }
.as-table th {
  padding: 14px 16px; text-align: left; font-weight: 600;
  color: #8892A6; font-size: 12px; text-transform: uppercase;
  letter-spacing: .5px; background: #FAFBFC; border-bottom: 1px solid #F0F0F0;
}
.as-table td {
  padding: 14px 16px; border-bottom: 1px solid #F5F5F5; font-size: 13px; color: #333;
}
.as-table tr:hover td { background: #FAFBFF; }
.as-empty-row { text-align: center; color: #B0BEC5; padding: 48px 14px !important; font-size: 14px; }
.as-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* ── 标签 ── */
.as-tag {
  display: inline-block; padding: 3px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 600; letter-spacing: .3px;
}
.as-tag-green { background: #E8F5E9; color: #2E7D32; }
.as-tag-gray  { background: #F5F5F5; color: #757575; }
.as-tag-red   { background: #FFEBEE; color: #C62828; }
.as-tag-blue  { background: #E3F2FD; color: #1565C0; }
.as-tag-purple{ background: #F3E5F5; color: #6A1B9A; }
.as-tag-orange{ background: #FFF3E0; color: #E65100; }
.as-tag-cyan  { background: #E0F7FA; color: #00838F; }
.as-tag-pink  { background: #FCE4EC; color: #AD1457; }

/* ── 表单页 - Header ── */
.as-form-page {
  max-width: 800px; margin: 0 auto;
}
.as-form-header {
  position: relative;
  padding: 24px 28px 20px;
  background: linear-gradient(135deg, #1E3A5F 0%, #2D6A9F 40%, #3B82F6 100%);
  border-radius: 18px 18px 0 0;
  color: #FFF; display: flex; align-items: flex-start; gap: 14px;
}
.as-form-header::after {
  content: ''; position: absolute; bottom: -1px; left: 0; right: 0;
  height: 5px;
  background: linear-gradient(90deg, #F59E0B, #10B981, #3B82F6, #8B5CF6, #EC4899);
  opacity: .7;
}
.as-form-header-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: rgba(255,255,255,.15); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
}
.as-form-header-text { flex: 1; }
.as-form-header-text h2 { font-size: 20px; font-weight: 700; margin: 0 0 4px; letter-spacing: .5px; }
.as-form-header-text p { font-size: 13px; opacity: .8; margin: 0; }
.as-form-header-back {
  padding: 8px 16px; border: 1.5px solid rgba(255,255,255,.3); border-radius: 10px;
  background: rgba(255,255,255,.1); color: #FFF; font-size: 13px; cursor: pointer;
  transition: all .2s; white-space: nowrap;
}
.as-form-header-back:hover { background: rgba(255,255,255,.2); }

/* ── 表单区 ── */
.as-form-body { background: #FFF; padding: 24px 28px; }
.as-form-row { display: flex; gap: 20px; }
.flex-1 { flex: 1; }
.required { color: #EF4444; }

/* ── Section 卡片 ── */
.as-section-card {
  background: #F8F9FC; border-radius: 14px; padding: 24px 28px;
  margin-bottom: 20px; border: 1px solid #EEF0F5;
}
.as-section-title {
  font-size: 15px; font-weight: 700; color: #1A1A2E;
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 20px; padding-bottom: 14px;
  border-bottom: 1px solid #E8EAF0;
}
.as-section-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4A90D9; flex-shrink: 0;
}

/* ── 表单控件 ── */
.as-form-group { margin-bottom: 18px; }
.as-form-group label {
  display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 6px;
}
.as-input, .as-select {
  width: 100%; padding: 11px 14px; border: 1.5px solid #E0E4EB; border-radius: 10px;
  font-size: 14px; outline: none; background: #FFF; transition: all .2s;
  box-sizing: border-box; color: #333; font-family: inherit;
}
.as-input:focus, .as-select:focus {
  border-color: #4A90D9; box-shadow: 0 0 0 4px rgba(74,144,217,.06);
}
.as-select { cursor: pointer; }

/* ── 时间选择卡片 ── */
.as-time-options {
  display: flex; gap: 12px; flex-wrap: wrap;
}
.as-time-card {
  flex: 1; min-width: 140px;
  padding: 16px 20px;
  border: 2px solid #E2E7F0; border-radius: 14px;
  background: #FFF; cursor: pointer;
  text-align: center; transition: all .25s;
  user-select: none; position: relative;
}
.as-time-card:hover {
  border-color: #4A90D9; transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(74,144,217,.1);
}
.as-time-card.active {
  border-color: #4A90D9;
  background: linear-gradient(135deg, #EFF6FF 0%, #F0F9FF 100%);
  box-shadow: 0 4px 20px rgba(74,144,217,.18);
  transform: translateY(-2px);
}
.as-time-icon { font-size: 28px; display: block; margin-bottom: 8px; }
.as-time-label { font-size: 15px; font-weight: 700; color: #1A1A2E; display: block; margin-bottom: 4px; }
.as-time-desc { font-size: 12px; color: #8892A6; }

/* ── 题库状态栏 ── */
.as-qb-status {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; background: #FFF; border-radius: 12px;
  border: 1.5px solid #E8EAF0; margin-bottom: 16px; font-size: 14px; color: #555;
}
.as-qb-status-icon { font-size: 18px; }

/* ── 打开题库按钮 ── */
.as-qb-open-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 14px 24px;
  border: 2px dashed #C0C8D8; border-radius: 14px;
  background: #FAFBFC; color: #666; font-size: 15px; cursor: pointer;
  transition: all .25s; font-weight: 500;
}
.as-qb-open-btn:hover {
  border-color: #4A90D9; background: #F0F6FF; color: #4A90D9;
  box-shadow: 0 4px 16px rgba(74,144,217,.08);
}

/* ── 已选标签 ── */
.as-qb-tags {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px;
}
.as-qb-tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 12px; background: #EFF6FF; color: #3B82F6;
  border-radius: 20px; font-size: 12px; font-weight: 600;
  cursor: pointer; transition: all .15s;
}
.as-qb-tag:hover {
  background: #DBEAFE; transform: translateY(-1px);
}

/* ── 表单底部 ── */
.as-form-footer {
  display: flex; justify-content: flex-end; align-items: center; gap: 12px;
  padding: 18px 28px; background: #FAFBFC;
  border-radius: 0 0 18px 18px; border-top: 1px solid #EEF0F5;
}
.as-btn-cancel {
  padding: 11px 28px; border: 1.5px solid #E0E4EB; border-radius: 12px;
  background: #FFF; color: #666; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all .2s;
}
.as-btn-cancel:hover { background: #F5F6FA; border-color: #C0C6D0; }
.as-btn-submit {
  padding: 11px 32px; border: none; border-radius: 12px;
  font-size: 15px; font-weight: 700; cursor: pointer;
  background: linear-gradient(135deg, #4A90D9 0%, #5B9FE8 100%);
  color: #FFF; box-shadow: 0 4px 16px rgba(74,144,217,.35);
  transition: all .25s;
}
.as-btn-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(74,144,217,.5);
}
.as-btn-sm {
  padding: 6px 14px; border-radius: 8px; border: none; font-size: 12px;
  font-weight: 600; cursor: pointer; transition: all .15s;
}
.as-btn-blue { background: #EFF6FF; color: #3B82F6; }
.as-btn-blue:hover { background: #DBEAFE; }

/* ── 题库弹窗 ── */
.as-qb-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(0,0,0,.45); z-index: 2000;
  display: flex; align-items: center; justify-content: center;
  animation: asFadeIn .2s ease;
}
@keyframes asFadeIn { from { opacity: 0; } to { opacity: 1; } }
.as-qb-modal {
  background: #FFF; border-radius: 18px; width: 680px; max-width: 92vw;
  max-height: 85vh; display: flex; flex-direction: column;
  box-shadow: 0 24px 72px rgba(0,0,0,.18);
  animation: asSlideUp .3s ease;
  overflow: hidden;
}
@keyframes asSlideUp {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ── 弹窗 Header ── */
.as-qb-modal-hd {
  position: relative;
  padding: 22px 28px 18px;
  background: linear-gradient(135deg, #2B3A67 0%, #4A6FA5 40%, #5B8CBF 100%);
  color: #FFF; display: flex; align-items: flex-start; justify-content: space-between;
}
.as-qb-modal-hd::after {
  content: ''; position: absolute; bottom: -1px; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #FF9800, #52C41A, #4A90D9);
  opacity: .6;
}
.as-qb-modal-hd h3 { font-size: 18px; font-weight: 700; margin: 0 0 4px; }
.as-qb-modal-hd p { font-size: 12px; opacity: .8; margin: 0; }
.as-qb-modal-hd p b { color: #FFD54F; }
.as-qb-modal-close {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,.15); border: none;
  color: #FFF; font-size: 20px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s; flex-shrink: 0;
}
.as-qb-modal-close:hover {
  background: rgba(255,255,255,.3); transform: rotate(90deg);
}

/* ── 弹窗 Body ── */
.as-qb-modal-toolbar {
  display: flex; gap: 10px; padding: 16px 28px; align-items: center;
  border-bottom: 1px solid #F0F0F0; flex-wrap: wrap;
}
.as-qb-modal-toolbar .as-input {
  flex: 1; min-width: 180px; padding: 9px 14px;
}
.as-qb-selected-count {
  font-size: 13px; color: #666; white-space: nowrap; margin-left: auto;
}
.as-qb-selected-count b { color: #4A90D9; }
.as-qb-modal-list {
  flex: 1; overflow-y: auto; max-height: 320px;
  padding: 8px 0; background: #FAFBFC;
}
.as-qb-modal-list::-webkit-scrollbar { width: 4px; }
.as-qb-modal-list::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 2px; }

.as-qb-modal-item {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 28px; cursor: pointer;
  transition: all .15s; border-bottom: 1px solid #F0F0F0;
}
.as-qb-modal-item:hover { background: #F0F6FF; }
.as-qb-modal-item.selected { background: #EFF6FF; }
.as-qb-modal-item.disabled {
  opacity: .45; cursor: not-allowed; background: #F5F5F5;
}
.as-qb-item-check {
  font-size: 18px; width: 24px; text-align: center; flex-shrink: 0;
  transition: all .2s;
}
.as-qb-modal-item.selected .as-qb-item-check { color: #3B82F6; font-weight: 700; }
.as-qb-item-text {
  flex: 1; font-size: 13px; color: #333;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.as-qb-item-badge {
  padding: 2px 10px; border-radius: 20px;
  background: #3B82F6; color: #FFF; font-size: 11px; font-weight: 600; flex-shrink: 0;
}

/* ── 弹窗分页 ── */
.as-qb-modal-pag {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 12px 28px; border-top: 1px solid #F0F0F0; font-size: 13px; color: #888;
}
.as-pag-info { font-size: 12px; color: #999; }
.as-pag-btn {
  width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid #E0E4EB;
  background: #FFF; cursor: pointer; font-size: 16px; color: #666;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.as-pag-btn:hover:not(:disabled) { border-color: #4A90D9; color: #4A90D9; }
.as-pag-btn:disabled { opacity: .3; cursor: not-allowed; }

/* ── 弹窗 Footer ── */
.as-qb-modal-ft {
  display: flex; justify-content: flex-end; gap: 12px;
  padding: 16px 28px; border-top: 1px solid #EEF0F5; background: #FAFBFC;
}

/* ── 通用小按钮样式 ── */
.btn-sm {
  padding: 5px 12px; border-radius: 6px; border: none; font-size: 13px;
  cursor: pointer; font-weight: 500; transition: all .2s;
}
.btn-edit { background: #EFF6FF; color: #3B82F6; }
.btn-edit:hover { background: #DBEAFE; }
.btn-del { background: #FEF2F2; color: #EF4444; }
.btn-del:hover { background: #FEE2E2; }
.btn-go { background: #F0FDF4; color: #22C55E; }
.btn-go:hover { background: #DCFCE7; }
.btn-warn { background: #FFFBEB; color: #F59E0B; }
.btn-warn:hover { background: #FEF3C7; }
.btn-info { background: #EFF6FF; color: #6366F1; }
.btn-info:hover { background: #E0E7FF; }

/* ── 任务状态统计 ── */
.as-stat-completion { font-weight: 600; color: #6366F1; }
.as-stat-accuracy { font-weight: 600; color: #10B981; }

/* ── 详情弹窗进度条 ── */
.as-progress-bar { display: inline-block; width: 60px; height: 6px; background: #E5E7EB; border-radius: 3px; vertical-align: middle; margin-right: 6px; overflow: hidden; }
.as-progress-fill { height: 100%; background: #6366F1; border-radius: 3px; transition: width 0.3s ease; }

@media(max-width:768px){
  .word-modal { width: 92vw; }
  .wm-header { padding: 22px 20px 18px; }
  .wm-body   { padding: 20px 16px 16px; }
  .wm-footer { padding: 14px 16px; }
  .wm-section { padding: 16px; }
  .wm-diff-pills { gap: 4px; }
  .wm-diff-pill { padding: 8px 4px; font-size: 11px; }
  .wm-form-row { flex-direction: column; gap: 0; }
  .wm-ext-fields { flex-direction: column; gap: 6px; }
  .wm-ext-sep { display: none; }
  .wm-ext-del { margin-top: 0; align-self: flex-end; }
  .cls-premium-modal { width: 92vw; }
  .cls-header { padding: 22px 20px 18px; }
  .cls-body   { padding: 20px 16px 16px; }
  .cls-footer { padding: 14px 16px; }
  .cls-section { padding: 16px; }
  .cls-form-row { flex-direction: column; gap: 0; }
  .cls-teacher-grid { grid-template-columns: repeat(2, 1fr); }
  .tc-premium-modal { width: 92vw; }
  .tc-header { padding: 22px 20px 18px; }
  .tc-body   { padding: 20px 16px 16px; }
  .tc-footer { padding: 14px 16px; }
  .tc-section { padding: 16px; }
  .tc-teacher-grid { grid-template-columns: repeat(2, 1fr); }
  .ta-premium-modal { width: 92vw; }
  .ta-header { padding: 22px 20px 18px; }
  .ta-body   { padding: 20px 16px 16px; }
  .ta-footer { padding: 14px 16px; }
  .ta-section { padding: 16px; }
  .sidebar{width:180px}
  .main-content{margin-left:180px;padding:16px}
  .charts-row{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .class-cards{grid-template-columns:repeat(2,1fr)}
  .ellipsis-cell{max-width:120px}
  .form-row { flex-direction: column; gap: 0; }
  .as-form-row { flex-direction: column; gap: 0; }
  .as-form-page { max-width: 100%; }
  .as-form-header { padding: 18px 16px 14px; border-radius: 14px 14px 0 0; }
  .as-form-body { padding: 16px; }
  .as-form-footer { padding: 12px 16px; border-radius: 0 0 14px 14px; }
  .as-section-card { padding: 16px; }
  .as-time-options { flex-direction: column; gap: 8px; }
  .as-time-card { min-width: auto; }
  .as-qb-modal { width: 96vw; max-height: 90vh; }
  .as-qb-modal-hd { padding: 16px 18px 14px; }
  .as-qb-modal-toolbar { padding: 10px 18px; flex-direction: column; }
  .as-qb-modal-toolbar .as-input { min-width: auto; }
  .as-qb-selected-count { margin-left: 0; }
  .as-qb-modal-item { padding: 10px 18px; }
  .as-qb-modal-ft { padding: 12px 18px; }
  .as-qb-modal-pag { padding: 10px 18px; }
  .as-page-header { flex-direction: column; align-items: flex-start; }
}

/* ---- 翻译题 textarea ---- */
.trans-source-input {
  resize: vertical;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.trans-source-input:focus {
  border-color: #9C27B0;
  box-shadow: 0 0 0 3px rgba(156,39,176,.10);
  background: #FFF;
}
.trans-ref-input {
  resize: vertical;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.trans-ref-input:focus {
  border-color: #52C41A;
  box-shadow: 0 0 0 3px rgba(82,196,26,.10);
  background: #FFF;
}
.trans-char-count {
  text-align: right;
  font-size: 11px;
  color: #B0B8C4;
  margin-top: 4px;
  user-select: none;
}

/* 翻译内容增强区域 */
.trans-content-area {
  position: relative;
}
.trans-source-enhanced {
  width: 100%;
  padding: 14px 16px;
  background: #FAFBFC;
  border: 1.5px solid #D4C5E2;
  border-radius: 10px;
  font-family: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', sans-serif;
  color: #2D2D3F;
  letter-spacing: 0.5px;
  box-sizing: border-box;
  transition: all .2s ease;
}
.trans-source-enhanced:hover {
  background: #FFF;
  border-color: #B39DDB;
}
.trans-source-enhanced:focus {
  border-color: #7C4DFF;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(124,77,255,.10);
}
.trans-source-enhanced::placeholder {
  color: #BFC7D4;
  font-style: italic;
}

.trans-ref-enhanced {
  width: 100%;
  padding: 14px 16px;
  background: #FAFBFC;
  border: 1.5px solid #C8E6C9;
  border-radius: 10px;
  box-sizing: border-box;
  transition: all .2s ease;
}
.trans-ref-enhanced:hover {
  background: #FFF;
  border-color: #A5D6A7;
}
.trans-ref-enhanced:focus {
  border-color: #4CAF50;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(76,175,80,.10);
}
.trans-ref-enhanced::placeholder {
  color: #BFC7D4;
  font-style: italic;
}

/* 字数统计 + AI 生成按钮栏 */
.trans-char-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  gap: 12px;
}
.trans-count-icon {
  font-size: 13px;
}
.trans-char-bar .trans-char-count {
  font-size: 12px;
  color: #9E9EB8;
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* AI 生成参考答案按钮 */
.trans-ai-gen-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  background: linear-gradient(135deg, #7C4DFF 0%, #536DFE 100%);
  color: #FFF;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all .25s;
  box-shadow: 0 2px 10px rgba(124,77,255,.2);
  white-space: nowrap;
  flex-shrink: 0;
}
.trans-ai-gen-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(124,77,255,.35);
}
.trans-ai-gen-btn:active {
  transform: translateY(0);
}
.trans-ai-gen-btn:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}

/* AI 难度提示 */
.wm-ai-diff-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 14px;
  background: linear-gradient(135deg, #F3E5F5 0%, #EDE7F6 100%);
  border: 1px solid #D1C4E9;
  border-radius: 10px;
  font-size: 12px;
  color: #6A5ACD;
  line-height: 1.5;
}
.wm-ai-diff-icon {
  font-size: 18px;
  flex-shrink: 0;
}
.wm-diff-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  margin-left: auto;
  flex-shrink: 0;
}
.wm-diff-1 { background: #E8F5E9; color: #2E7D32; }
.wm-diff-2 { background: #E3F2FD; color: #1565C0; }
.wm-diff-3 { background: #FFF3E0; color: #E65100; }
.wm-diff-4 { background: #FCE4EC; color: #C62828; }
.wm-diff-5 { background: #EDE7F6; color: #4527A0; }

/* ── 同义替换语境句 textarea ── */
.wm-synonym-context-input {
  border-color: #D4C5E2;
}
.wm-synonym-context-input:hover {
  border-color: #B39DDB;
  background: #FBFAFF;
}
.wm-synonym-context-input:focus {
  border-color: #7C3AED;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10);
}

/* 语境句字符计数 */
.syn-char-count {
  text-align: right;
  font-size: 11px;
  color: #B0B8C4;
  margin-top: 6px;
  user-select: none;
  transition: color .2s;
}

/* ═══════ 同义替换选项卡片 — 轻量优雅设计 ═══════ */
.wm-syn-opt-card {
  background: #FFF;
  border: 1.5px solid #E8EAF0;
  border-radius: 12px;
  margin-bottom: 8px;
  transition: all .2s;
}
.wm-syn-opt-card:hover { border-color: #C5CDD8; }
.wm-syn-opt-card:focus-within {
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.08);
}
.wm-syn-opt-card.correct {
  border-color: #A5D6A7;
  background: #FAFFFB;
}

/* 主选项行 */
.wm-syn-opt-main {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px;
  cursor: pointer;
}

/* 字母徽标 */
.wm-syn-opt-letter {
  width: 28px; height: 28px;
  border-radius: 7px;
  background: #F0F1F5;
  color: #8892A6;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
  flex-shrink: 0;
  transition: all .2s;
}
.wm-syn-opt-card.correct .wm-syn-opt-letter {
  background: #E8F5E9;
  color: #2E7D32;
}

/* 选项文本输入 */
.wm-syn-opt-text {
  flex: 1; min-width: 0;
  padding: 8px 12px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 14px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
}
.wm-syn-opt-text:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-syn-opt-text:focus {
  background: #FFF;
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
}
.wm-syn-opt-text::placeholder { color: #BFC7D4; }

/* 选项词性下拉 */
.wm-syn-opt-pos {
  flex-shrink: 0; width: 72px;
  padding: 6px 4px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 12px; color: #667080;
  background: #FAFBFC;
  cursor: pointer;
  outline: none;
  text-align: center;
}
.wm-syn-opt-pos:hover { border-color: #C5CDD8; }
.wm-syn-opt-pos:focus { border-color: #4A90D9; box-shadow: 0 0 0 2px rgba(74,144,217,.08); }

/* 目标词词性下拉 */
.wm-pos-select {
  width: 100%;
  padding: 10px 10px;
  border: 1.5px solid #DDE2E8;
  border-radius: 10px;
  font-size: 14px; font-weight: 500;
  color: #444;
  background: #FAFBFC;
  cursor: pointer;
  outline: none;
  height: 44px;
  box-sizing: border-box;
}
.wm-pos-select:hover { background: #FFF; border-color: #C5CDD8; }
.wm-pos-select:focus { border-color: #4A90D9; box-shadow: 0 0 0 3px rgba(74,144,217,.10); }

/* 题库列表词性徽章 */
.qb-pos-badge {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  font-size: 10px; font-weight: 500;
  color: #888;
  background: #F5F5F5;
  border-radius: 4px;
  vertical-align: middle;
}

/* 答案切换 */
.wm-syn-opt-mark {
  display: inline-flex; align-items: center; gap: 4px;
  flex-shrink: 0;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px; font-weight: 600;
  color: #8892A6;
  background: #F5F5F5;
  cursor: pointer;
  transition: all .15s;
  user-select: none;
}
.wm-syn-opt-mark:hover { background: #E8F0FE; color: #4A90D9; }
.wm-syn-opt-mark input[type="radio"] { display: none; }
.wm-syn-opt-card.correct .wm-syn-opt-mark {
  background: #D9F7BE;
  color: #389E0D;
}

/* 解析字段行（缩进对齐选项文本） */
.wm-syn-opt-analysis {
  padding: 0 16px 10px 54px;
  display: flex; align-items: flex-start; gap: 6px;
}
.wm-syn-opt-analysis-label {
  font-size: 10px; font-weight: 600;
  color: #B0B8C4;
  flex-shrink: 0;
  padding-top: 7px;
  line-height: 1;
  min-width: 14px;
}
.wm-syn-opt-trans {
  width: 160px; flex-shrink: 0;
  padding: 7px 10px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 13px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
}
.wm-syn-opt-trans:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-syn-opt-trans:focus {
  border-color: #4A90D9;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
}
.wm-syn-opt-trans::placeholder { color: #BFC7D4; font-size: 11px; }
.wm-syn-opt-reason {
  flex: 1; min-width: 0;
  padding: 7px 10px;
  border: 1.5px solid #E0E4EB;
  border-radius: 8px;
  font-size: 13px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
  resize: none;
  height: 32px;
  line-height: 1.5;
  font-family: inherit;
  overflow: hidden;
}
.wm-syn-opt-reason:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-syn-opt-reason:focus {
  border-color: #4A90D9;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
  height: auto; min-height: 56px; resize: vertical; overflow: auto;
}
.wm-syn-opt-reason::placeholder { color: #BFC7D4; font-size: 11px; }

/* ── 语境句解析行 ── */
.wm-syn-context-analysis {
  display: flex; gap: 8px;
  margin-top: 10px;
}
.wm-syn-analysis-input {
  flex: 1; min-width: 0;
  padding: 9px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  font-size: 14px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
  font-family: inherit;
}
.wm-syn-analysis-input:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-syn-analysis-input:focus {
  border-color: #4A90D9;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
}
.wm-syn-analysis-input::placeholder { color: #BFC7D4; font-size: 13px; }
.wm-syn-analysis-textarea {
  flex: 2; min-width: 0;
  padding: 9px 14px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  font-size: 14px; color: #1A1A2E;
  background: #FAFBFC;
  outline: none;
  transition: all .2s ease;
  resize: none;
  height: 40px;
  line-height: 1.6;
  font-family: inherit;
  overflow: hidden;
}
.wm-syn-analysis-textarea:hover {
  background: #FFF;
  border-color: #C5CDD8;
}
.wm-syn-analysis-textarea:focus {
  border-color: #4A90D9;
  background: #FFF;
  box-shadow: 0 0 0 3px rgba(74,144,217,.10);
  height: auto; min-height: 64px; resize: vertical; overflow: auto;
}
.wm-syn-analysis-textarea::placeholder { color: #BFC7D4; font-size: 13px; }

/* ========== 设置弹窗 - Premium 样式 ========== */
.ue-settings-overlay {
  position: fixed; inset: 0;
  background: rgba(15,23,42,0.55);
  backdrop-filter: blur(4px);
  z-index: 3000;
  display: flex; align-items: center; justify-content: center;
  animation: ueStFadeIn .2s ease;
}
@keyframes ueStFadeIn { from { opacity: 0; } to { opacity: 1; } }

.ue-settings-card {
  background: #FFF;
  border-radius: 20px;
  width: 480px;
  max-width: 94vw;
  max-height: 88vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.06);
  animation: ueStSlideUp .28s cubic-bezier(.16,1,.3,1);
}
@keyframes ueStSlideUp { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
.ue-settings-card::-webkit-scrollbar { width: 4px; }
.ue-settings-card::-webkit-scrollbar-thumb { background: #E0E4EB; border-radius: 2px; }

/* ── 头部 ── */
.ue-st-header {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 28px 28px 20px;
  border-bottom: 1px solid #F0F2F5;
  position: relative;
}
.ue-sth-icon {
  width: 46px; height: 46px; border-radius: 14px;
  background: linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
}
.ue-sth-title-area { flex: 1; min-width: 0; }
.ue-sth-title-area h3 {
  font-size: 18px; font-weight: 700; color: #1A1A2E; margin: 0 0 4px;
}
.ue-sth-title-area p {
  font-size: 13px; color: #8892A6; margin: 0; line-height: 1.5;
}
.ue-sth-close {
  width: 32px; height: 32px; border-radius: 10px;
  border: none; background: #F5F7FA;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #8892A6;
  transition: all .15s; flex-shrink: 0;
}
.ue-sth-close:hover { background: #FFE5E5; color: #FF4D4F; }

/* ── 当前题库徽章 ── */
.ue-st-current {
  margin: 20px 28px 0;
  display: flex; align-items: center; gap: 12px;
}
.ue-stc-label {
  font-size: 13px; font-weight: 500; color: #8892A6;
}
.ue-stc-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 16px; border-radius: 20px;
  font-size: 13px; font-weight: 600; color: #FFF;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

/* ── 等级切换区 ── */
.ue-st-body {
  padding: 20px 28px 8px;
}
.ue-st-section-label {
  font-size: 14px; font-weight: 600; color: #1A1A2E;
  margin-bottom: 4px;
}
.ue-st-section-desc {
  font-size: 12px; color: #8892A6; margin: 0 0 16px; line-height: 1.6;
}

.ue-st-grid {
  display: flex; flex-direction: column; gap: 10px;
}

/* ── 等级卡片 ── */
.ue-st-card {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 2px solid #EEF1F6;
  background: #FAFBFD;
  cursor: pointer;
  transition: all .2s;
  position: relative;
}
.ue-st-card:hover {
  border-color: #B8D4F0;
  background: #F5F9FF;
  transform: translateX(4px);
  box-shadow: 0 2px 8px rgba(74,144,217,.08);
}
.ue-st-card.active {
  border-color: #4A90D9;
  background: linear-gradient(135deg, #F0F7FF 0%, #EAF2FD 100%);
  box-shadow: 0 0 0 4px rgba(74,144,217,.08);
}
.ue-stc-icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
  transition: transform .2s;
}
.ue-st-card.active .ue-stc-icon {
  transform: scale(1.1);
}
.ue-stc-info {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.ue-stc-name {
  font-size: 15px; font-weight: 600; color: #1A1A2E;
}
.ue-stc-code {
  font-size: 12px; color: #8892A6; font-family: 'SF Mono', 'Cascadia Code', monospace;
}
.ue-stc-radio {
  width: 20px; height: 20px; flex-shrink: 0;
  color: #4A90D9;
  transition: transform .15s;
}
.ue-st-card.active .ue-stc-radio {
  transform: scale(1.15);
}

/* ── 底部 ── */
.ue-st-footer {
  display: flex; gap: 10px; justify-content: space-between;
  padding: 20px 28px 24px;
  border-top: 1px solid #F0F2F5;
  margin-top: 8px;
}
.ue-st-btn-logout {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 18px;
  border: 1.5px solid #FFE5E5;
  border-radius: 10px;
  background: #FFF;
  color: #FF4D4F;
  font-size: 13px; font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.ue-st-btn-logout:hover {
  background: #FFF1F0;
  border-color: #FFCCC7;
}
.ue-st-btn-close {
  padding: 10px 24px;
  border: 1.5px solid #E0E4EB;
  border-radius: 10px;
  background: #FFF;
  color: #555;
  font-size: 13px; font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.ue-st-btn-close:hover {
  background: #F5F7FA;
  border-color: #C0C7D4;
}

/* ========== 题库等级管理弹窗 - Premium 样式 ========== */
.lv-modal-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex; align-items: center; justify-content: center;
  animation: lvFadeIn .2s ease;
}
@keyframes lvFadeIn { from { opacity: 0; } to { opacity: 1; } }

.lv-modal-card {
  background: #FFF;
  border-radius: 20px;
  width: 520px;
  max-width: 92vw;
  max-height: 88vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.06);
  animation: lvSlideUp .25s cubic-bezier(.16,1,.3,1);
}
@keyframes lvSlideUp { from { opacity: 0; transform: translateY(20px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.lv-modal-card::-webkit-scrollbar { width: 4px; }
.lv-modal-card::-webkit-scrollbar-thumb { background: #E0E4EB; border-radius: 2px; }

/* ── 头部 ── */
.lv-modal-header {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 28px 28px 20px;
  border-bottom: 1px solid #F0F2F5;
  position: relative;
}
.lv-modal-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, #EEF2FF 0%, #E8F0FE 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; flex-shrink: 0;
}
.lv-modal-title-area { flex: 1; min-width: 0; }
.lv-modal-title-area h3 {
  font-size: 18px; font-weight: 700; color: #1A1A2E; margin: 0 0 4px;
}
.lv-modal-title-area p {
  font-size: 13px; color: #8892A6; margin: 0; line-height: 1.5;
}
.lv-modal-close {
  width: 32px; height: 32px; border-radius: 10px;
  border: none; background: #F5F7FA;
  font-size: 16px; color: #8892A6; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s; flex-shrink: 0;
}
.lv-modal-close:hover { background: #FFE5E5; color: #FF4D4F; }

/* ── 表单体 ── */
.lv-modal-body {
  padding: 24px 28px;
  display: flex; flex-direction: column; gap: 20px;
}

/* 字段卡片 */
.lv-field {
  background: #FAFBFD;
  border: 1.5px solid #EEF1F6;
  border-radius: 14px;
  padding: 18px 20px;
  transition: border-color .2s, box-shadow .2s;
}
.lv-field:focus-within {
  border-color: #4A90D9;
  box-shadow: 0 0 0 4px rgba(74,144,217,.06);
  background: #FFF;
}
.lv-field-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: #1A1A2E;
  margin-bottom: 4px;
}
.lv-field-icon { font-size: 16px; }
.lv-field-required {
  font-size: 11px; font-weight: 500;
  background: #FFF1F0; color: #FF4D4F;
  padding: 2px 8px; border-radius: 6px;
}
.lv-field-desc {
  font-size: 12px; color: #8892A6; margin: 0 0 12px; line-height: 1.5;
}
.lv-field-hint {
  font-size: 12px; color: #8892A6; margin: 8px 0 0; line-height: 1.4;
}

/* 输入框 */
.lv-input {
  width: 100%; padding: 11px 14px;
  border: 1.5px solid #D9DEE8;
  border-radius: 10px;
  font-size: 14px; color: #1A1A2E;
  background: #FFF;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
  font-family: inherit;
}
.lv-input:focus {
  border-color: #4A90D9;
  box-shadow: 0 0 0 3px rgba(74,144,217,.1);
}
.lv-input-readonly {
  background: #F5F7FA; color: #8892A6; cursor: not-allowed;
}
.lv-input::placeholder { color: #BFC7D4; }

/* ── 实时预览区 ── */
.lv-preview-box {
  background: linear-gradient(135deg, #F8FAFB 0%, #F0F4FF 100%);
  border: 1.5px solid #E6ECF5;
  border-radius: 14px;
  padding: 18px 20px;
}
.lv-preview-label {
  font-size: 13px; font-weight: 600; color: #1A1A2E; margin-bottom: 4px;
}
.lv-preview-desc {
  font-size: 12px; color: #8892A6; margin: 0 0 12px;
}
.lv-preview-tabs {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.lv-preview-tab {
  padding: 10px 22px;
  border-radius: 10px;
  font-size: 14px; font-weight: 600;
  background: #FFF;
  color: #8892A6;
  border: 1.5px solid #E0E4EB;
  transition: all .2s;
}
.lv-preview-tab-active {
  background: #E8F0FE;
  color: #4A90D9;
  border-color: #4A90D9;
  box-shadow: 0 2px 8px rgba(74,144,217,.15);
}

/* ── 底部操作按钮 ── */
.lv-modal-footer {
  display: flex; gap: 10px; justify-content: flex-end;
  padding: 20px 28px 24px;
  border-top: 1px solid #F0F2F5;
}
.lv-btn-submit {
  padding: 10px 24px;
  font-size: 14px; font-weight: 600;
  border-radius: 10px;
  transition: all .15s;
}
.lv-btn-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(74,144,217,.25);
}

/* ========== 听力表单 - Premium 样式 ========== */
.lh-modal-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(15,23,42,0.55);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 40px 16px 80px;
  overflow-y: auto;
  animation: lhFadeIn .2s ease;
}
@keyframes lhFadeIn { from { opacity: 0; } to { opacity: 1; } }

.lh-modal-card {
  background: #FFF;
  border-radius: 20px;
  width: 680px;
  max-width: 96vw;
  box-shadow: 0 24px 64px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.06);
  animation: lhSlideUp .28s cubic-bezier(.16,1,.3,1);
  flex-shrink: 0;
}
@keyframes lhSlideUp { from { opacity: 0; transform: translateY(20px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* ── 头部 ── */
.lh-modal-header {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 28px 28px 20px; border-bottom: 1px solid #F0F2F5;
}
.lh-modal-icon {
  width: 48px; height: 48px; border-radius: 14px;
  background: linear-gradient(135deg, #F3E8FF 0%, #EDE9FE 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; flex-shrink: 0;
}
.lh-modal-title-area { flex: 1; min-width: 0; }
.lh-modal-title-area h3 {
  font-size: 18px; font-weight: 700; color: #1A1A2E; margin: 0 0 4px;
}
.lh-modal-title-area p {
  font-size: 13px; color: #8892A6; margin: 0; line-height: 1.5;
}
.lh-modal-close {
  width: 32px; height: 32px; border-radius: 10px;
  border: none; background: #F5F7FA;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #8892A6; transition: all .15s; flex-shrink: 0;
}
.lh-modal-close:hover { background: #FFE5E5; color: #FF4D4F; }

/* ── 表单体 ── */
.lh-modal-body {
  padding: 24px 28px; display: flex; flex-direction: column; gap: 20px;
}

.lh-field {
  background: #FAFBFD; border: 1.5px solid #EEF1F6;
  border-radius: 14px; padding: 18px 20px;
  transition: border-color .2s, box-shadow .2s;
}
.lh-field:focus-within {
  border-color: #7C3AED; box-shadow: 0 0 0 4px rgba(124,58,237,.06); background: #FFF;
}
.lh-field-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: #1A1A2E; margin-bottom: 4px;
}
.lh-field-icon { font-size: 16px; }
.lh-field-required {
  font-size: 11px; font-weight: 500; background: #FFF1F0; color: #FF4D4F;
  padding: 2px 8px; border-radius: 6px;
}
.lh-field-desc {
  font-size: 12px; color: #8892A6; margin: 0 0 12px; line-height: 1.5;
}

.lh-input {
  width: 100%; padding: 10px 14px;
  border: 1.5px solid #E0E4EB; border-radius: 10px;
  font-size: 14px; color: #1A1A2E; background: #FAFBFC;
  outline: none; transition: all .2s ease;
  box-sizing: border-box; font-family: inherit;
}
.lh-input:hover { background: #FFF; border-color: #C5CDD8; }
.lh-input:focus { border-color: #7C3AED; background: #FFF; box-shadow: 0 0 0 3px rgba(124,58,237,.10); }
.lh-input::placeholder { color: #BFC7D4; }

.lh-textarea {
  width: 100%; padding: 12px 14px;
  border: 1.5px solid #E0E4EB; border-radius: 10px;
  font-size: 14px; color: #1A1A2E; background: #FAFBFC;
  outline: none; resize: vertical;
  transition: all .2s ease;
  box-sizing: border-box; font-family: inherit; line-height: 1.6;
}
.lh-textarea:hover { background: #FFF; border-color: #C5CDD8; }
.lh-textarea:focus { border-color: #7C3AED; background: #FFF; box-shadow: 0 0 0 3px rgba(124,58,237,.10); }
.lh-textarea::placeholder { color: #BFC7D4; }

.lh-word-count {
  font-size: 12px; color: #8892A6; margin-top: 8px; text-align: right;
}

.lh-diff-pills { display: flex; gap: 8px; }

/* ── CET-4 模式选择 ── */
.lh-mode-switch-field { border-bottom: 1px solid #F0F2F5; padding-bottom: 16px; margin-bottom: 8px; }
.lh-mode-radio-group { display: flex; gap: 12px; flex-wrap: wrap; }
.lh-mode-radio {
  flex: 1; min-width: 200px; padding: 12px 16px;
  border: 2px solid #E0E4EB; border-radius: 10px;
  cursor: pointer; display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 500; color: #555;
  transition: all .2s; background: #FFF;
}
.lh-mode-radio:hover { border-color: #B4A5E8; background: #F9F7FF; }
.lh-mode-radio.active {
  border-color: #7C3AED; background: #F5F3FF; color: #7C3AED;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}
.lh-mode-radio input[type="radio"] { display: none; }

/* ── CET-4 题目音频按钮 ── */
.lh-btn-cet4-audio {
  background: #FFF7E6; color: #FA8C16; border-color: #FFD591;
}
.lh-btn-cet4-audio:hover { background: #FFF1CC; border-color: #FA8C16; }
.lh-btn-cet4-batch { background: #E6F7FF; color: #1890FF; border-color: #91D5FF; }
.lh-btn-cet4-batch:hover { background: #D6EFFF; border-color: #1890FF; }

/* ── 题目音频已生成标记 ── */
.lh-q-audio-dot {
  font-size: 14px; cursor: default;
}

/* ── 迷你按钮 ── */
.lh-mini-btn {
  padding: 5px 14px; border: 1.5px solid #E0E4EB; border-radius: 8px;
  background: #FFF; font-size: 12px; font-weight: 600; color: #555;
  cursor: pointer; transition: all .15s;
  display: inline-flex; align-items: center; gap: 4px;
}
.lh-mini-btn:hover { border-color: #7C3AED; color: #7C3AED; background: #F5F3FF; }
.lh-mini-btn-ai {
  border-color: #D4C5F9; color: #7C3AED; background: #F8F6FF;
}
.lh-mini-btn-ai:hover { border-color: #7C3AED; color: #FFF; background: #7C3AED; }

/* ── 原文句子预览 ── */
.lh-sentence-preview {
  display: none; margin-top: 10px; padding: 10px 12px;
  background: #F8FAFB; border: 1px solid #E8ECF1; border-radius: 10px;
}
.lh-sentence-title {
  font-size: 12px; font-weight: 600; color: #8892A6; margin-bottom: 8px;
}
.lh-sentence-chip {
  display: inline-block; padding: 3px 10px; margin: 2px 4px 2px 0;
  font-size: 12px; font-weight: 500; color: #667080;
  background: #F0F2F5; border-radius: 6px;
  cursor: default; transition: all .15s;
}
.lh-sentence-chip.lh-sentence-active {
  background: #EDE9FE; color: #7C3AED; font-weight: 700;
  box-shadow: 0 0 0 2px rgba(124,58,237,.15);
}

/* ── 题目原文定位下拉 ── */
.lh-sentence-select {
  width: 100%; padding: 8px 10px;
  border: 1.5px solid #E8ECF1; border-radius: 8px;
  font-size: 13px; color: #444;
  background: #FAFBFC;
  cursor: pointer; outline: none;
  transition: border-color .15s;
}
.lh-sentence-select:hover { border-color: #C5CDD8; }
.lh-sentence-select:focus { border-color: #7C3AED; box-shadow: 0 0 0 2px rgba(124,58,237,.08); }

/* ── 已生成音频 ── */
.lh-audio-preview {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; margin-top: 10px;
  background: #F0FFF4; border: 1.5px solid #B7EB8F; border-radius: 10px;
  font-size: 13px; color: #52C41A; font-weight: 500;
}
.lh-audio-icon { font-size: 18px; }
.lh-audio-link { color: #4A90D9; text-decoration: underline; }

/* ── 题目卡片 ── */
.lh-empty-questions {
  text-align: center; color: #BFC7D4; font-size: 13px;
  padding: 28px 0;
}
.lh-question-card {
  background: #FFF; border: 1.5px solid #EEF1F6; border-radius: 12px;
  margin-bottom: 12px; overflow: hidden;
  transition: border-color .2s;
}
.lh-question-card:hover { border-color: #D0D5E0; }
.lh-q-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; background: #F8FAFB; border-bottom: 1px solid #EEF1F6;
}
.lh-q-num { font-size: 13px; font-weight: 700; color: #7C3AED; }
.lh-q-remove {
  width: 26px; height: 26px; border-radius: 8px;
  border: none; background: transparent; color: #8892A6;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.lh-q-remove:hover { background: #FFE5E5; color: #FF4D4F; }
.lh-q-body { padding: 14px 16px; }
.lh-field-slim { margin-bottom: 12px; }
.lh-field-slim label {
  display: block; font-size: 12px; font-weight: 600; color: #8892A6; margin-bottom: 6px;
}

.lh-options-grid { display: flex; flex-direction: column; gap: 8px; }
.lh-option {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border: 1.5px solid #EEF1F6; border-radius: 10px;
  transition: all .15s;
}
.lh-option:hover { border-color: #D0D5E0; }
.lh-option-correct { border-color: #52C41A; background: #F6FFED; }
.lh-opt-label {
  width: 24px; height: 24px; border-radius: 8px;
  background: #F0F1F5; font-size: 12px; font-weight: 700; color: #666;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.lh-option-correct .lh-opt-label { background: #52C41A; color: #FFF; }
.lh-option .lh-input { flex: 1; min-width: 0; }
.lh-opt-radio {
  display: flex; align-items: center; gap: 4px;
  font-size: 12px; color: #8892A6; cursor: pointer; white-space: nowrap;
}
.lh-opt-radio input[type="radio"] { accent-color: #52C41A; }

.lh-add-question-btn {
  width: 100%; padding: 12px; margin-top: 12px;
  border: 2px dashed #D0D5E0; border-radius: 12px;
  background: #FAFBFD; font-size: 14px; font-weight: 600; color: #7C3AED;
  cursor: pointer; transition: all .15s;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.lh-add-question-btn:hover { border-color: #7C3AED; background: #F5F3FF; }

/* ── 底部 ── */
.lh-modal-footer {
  display: flex; gap: 10px; justify-content: flex-end;
  padding: 20px 28px 24px; border-top: 1px solid #F0F2F5;
}
.lh-btn-cancel {
  padding: 10px 24px; border: 1.5px solid #E0E4EB; border-radius: 10px;
  background: #FFF; color: #555; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all .15s;
}
.lh-btn-cancel:hover { background: #F5F7FA; border-color: #C0C7D4; }
.lh-btn-submit {
  padding: 10px 28px; border: none; border-radius: 10px;
  background: linear-gradient(135deg, #7C3AED, #6D28D9);
  color: #FFF; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all .15s;
}
.lh-btn-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(124,58,237,.3);
}

/* ── API 管理 ── */
.api-table { width: 100%; border-collapse: collapse; }
.api-table th, .api-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #F0F2F5; font-size: 13px; }
.api-table th { background: #FAFBFC; color: #888; font-weight: 600; font-size: 12px; }
.api-provider-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: #EDF2FF; border-radius: 6px; color: #4A90D9; font-weight: 600; font-size: 12px; }
.api-cfg-cell { max-width: 320px; line-height: 1.7; }
.api-cfg-key { color: #888; font-size: 11px; }
.api-cfg-val { background: #F5F7FA; padding: 1px 6px; border-radius: 3px; font-size: 12px; color: #555; word-break: break-all; }
.api-status { font-size: 12px; font-weight: 600; }
.api-status-active { color: #52C41A; }
.api-status-inactive { color: #CCC; }

.api-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999; display: flex; align-items: center; justify-content: center; }
.api-modal-card { background: #FFF; border-radius: 16px; width: 520px; max-width: 92%; max-height: 85vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.15); }
.api-modal-header { display: flex; align-items: center; gap: 16px; padding: 24px 28px 0; }
.api-modal-icon { font-size: 28px; flex-shrink: 0; }
.api-modal-title-area { flex: 1; }
.api-modal-title-area h3 { font-size: 18px; color: #1A1A2E; margin-bottom: 4px; }
.api-modal-title-area p { font-size: 12px; color: #999; }
.api-modal-close { width: 32px; height: 32px; border: none; border-radius: 8px; background: #F5F7FA; color: #999; font-size: 16px; cursor: pointer; flex-shrink: 0; }
.api-modal-close:hover { background: #E8ECF2; }
.api-modal-body { padding: 20px 28px; }
.api-modal-footer { display: flex; gap: 10px; justify-content: flex-end; padding: 16px 28px 24px; border-top: 1px solid #F0F2F5; }

.api-field { margin-bottom: 16px; }
.api-field label { display: block; font-size: 13px; color: #555; font-weight: 600; margin-bottom: 6px; }
.api-field-hint { font-size: 11px; color: #999; margin-bottom: 6px; }
.api-input { width: 100%; padding: 10px 14px; border: 1.5px solid #E0E4EB; border-radius: 8px; font-size: 14px; outline: none; transition: border .2s; }
.api-input:focus { border-color: #4A90D9; box-shadow: 0 0 0 3px rgba(74,144,217,.1); }
.api-pwd-wrap { position: relative; }
.api-pwd-wrap .api-input { padding-right: 44px; }
.api-pwd-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: none; background: #F5F7FA; border-radius: 6px; width: 30px; height: 30px; cursor: pointer; font-size: 14px; line-height: 30px; text-align: center; }
.api-pwd-toggle:hover { background: #E8ECF2; }

.api-field select.api-input { cursor: pointer; appearance: none; background: #FFF url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M6 8L1 3h10z' fill='%23999'/></svg>") no-repeat right 14px center; padding-right: 36px; }

/* ═══════ 周测管理 ═══════ */

.qz-page-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 24px 28px 20px;
  background: linear-gradient(135deg, #1A1A2E 0%, #2D6A9F 40%, #3B82F6 100%);
  border-radius: 18px 18px 0 0; color: #FFF; margin-bottom: 0;
}
.qz-page-header h2 { font-size: 20px; font-weight: 700; margin: 0 0 4px; letter-spacing: .5px; }
.qz-page-sub { font-size: 13px; opacity: .8; margin: 0; }

.qz-table-card {
  background: #FFF; border-radius: 0 0 18px 18px;
  border: 1px solid #EEF0F5; border-top: none; overflow: hidden;
}
.qz-table-card .as-table { margin: 0; }
.qz-week-badge {
  display: inline-block; padding: 3px 12px;
  background: #EFF6FF; color: #3B82F6; border-radius: 20px;
  font-size: 12px; font-weight: 700;
}
.qz-empty { text-align: center; color: #BFC7D4; padding: 48px 0 !important; font-size: 14px; }

/* ── 自动出题表单 ── */
.qz-modules-section {
  background: #F8F9FC; border: 1.5px solid #EEF0F5; border-radius: 14px;
  padding: 20px 24px; margin: 16px 0;
}
.qz-modules-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #E8EAF0;
}
.qz-modules-header h4 { font-size: 14px; font-weight: 700; color: #1A1A2E; margin: 0; }
.qz-exclude-label { font-size: 13px; color: #666; cursor: pointer; display: flex; align-items: center; gap: 6px; }
.qz-exclude-label input[type="checkbox"] { accent-color: #4A90D9; width: 16px; height: 16px; }

.qz-module-row {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; margin-bottom: 8px;
  background: #FFF; border: 1.5px solid #EEF0F5; border-radius: 10px;
}
.qz-module-label { font-size: 14px; font-weight: 600; color: #1A1A2E; min-width: 120px; }
.qz-module-row .as-input { margin: 0 !important; }
.qz-mod-desc { font-size: 13px; color: #8892A6; flex-shrink: 0; }
.qz-mod-subtotal { font-size: 13px; font-weight: 600; color: #6366F1; min-width: 60px; text-align: right; }

.qz-score-row { display: flex; gap: 20px; }

/* ── 生成结果页 ── */
.qz-result-header {
  display: flex; align-items: center; gap: 16px;
  padding: 24px 28px 20px;
  background: linear-gradient(135deg, #F0FDF4 0%, #DCFCE7 100%);
  border-radius: 18px 18px 0 0; border: 1.5px solid #BBF7D0;
}
.qz-result-icon { font-size: 40px; }
.qz-result-title h2 { font-size: 20px; font-weight: 700; color: #166534; margin: 0 0 4px; }
.qz-result-title p { font-size: 13px; color: #4ADE80; margin: 0; }

.qz-result-stats {
  display: flex; gap: 12px; padding: 20px 28px;
  background: #FFF; border: 1px solid #F0F0F0; flex-wrap: wrap;
}
.qz-stat-card {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 18px; background: #F8F9FC; border-radius: 10px;
  border: 1.5px solid #EEF0F5;
}
.qz-stat-icon { font-size: 18px; }
.qz-stat-num { font-size: 15px; font-weight: 700; color: #1A1A2E; }

.qz-result-table-wrap {
  background: #FFF; border: 1px solid #F0F0F0; border-top: none;
  padding: 0; max-height: 50vh; overflow-y: auto;
}
.qz-type-tag {
  display: inline-block; padding: 2px 10px; border-radius: 6px;
  font-size: 11px; font-weight: 600;
}
.qz-type-word_choice { background: #EFF6FF; color: #3B82F6; }
.qz-type-synonym_choice { background: #F3E8FF; color: #7C3AED; }
.qz-type-translation { background: #FFF7ED; color: #EA580C; }
.qz-type-listening { background: #ECFDF5; color: #059669; }
.qz-q-text { font-size: 13px; color: #555; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qz-weakness { font-size: 12px; font-weight: 600; color: #22C55E; }
.qz-weakness.qz-hot { color: #EF4444; }

/* 状态徽章 */
.qz-status-badge { display: inline-block; padding: 3px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; }
.qz-status-review { background: #FFF7ED; color: #EA580C; }
.qz-status-published { background: #ECFDF5; color: #059669; }

/* 状态标签（审核页标题内） */
.qz-status-tag { display: inline-block; padding: 2px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; margin-left: 6px; }
.qz-status-tag-review { background: #FFF7ED; color: #EA580C; }
.qz-status-tag-published { background: #ECFDF5; color: #059669; }

/* 换题按钮 */
.qz-replace-btn { padding: 4px 12px !important; font-size: 12px !important; border: 1.5px solid #818CF8 !important; background: #EEF2FF !important; color: #4F46E5 !important; border-radius: 6px !important; }
.qz-replace-btn:hover { background: #E0E7FF !important; border-color: #6366F1 !important; }

/* 换题后高亮 */
.qz-just-replaced { background: linear-gradient(90deg, rgba(129,140,248,.15), transparent); border-radius: 4px; padding: 2px 6px; }

/* 换题弹窗 */
.qz-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999; display: flex; align-items: center; justify-content: center; animation: qzFadeIn .15s ease; }
@keyframes qzFadeIn { from { opacity: 0; } to { opacity: 1; } }
.qz-modal { background: #fff; border-radius: 16px; width: 560px; max-width: 92vw; max-height: 75vh; display: flex; flex-direction: column; box-shadow: 0 20px 50px rgba(0,0,0,.2); }
.qz-modal-header { padding: 18px 24px 12px; border-bottom: 1px solid #F0F0F0; position: relative; }
.qz-modal-header h3 { margin: 0; font-size: 17px; color: #1E293B; }
.qz-modal-header p { margin: 4px 0 0; font-size: 13px; color: #94A3B8; }
.qz-modal-close { position: absolute; top: 14px; right: 18px; background: none; border: none; font-size: 20px; color: #94A3B8; cursor: pointer; line-height: 1; }
.qz-modal-close:hover { color: #EF4444; }
.qz-modal-body { overflow-y: auto; padding: 8px 0; max-height: 55vh; }
.qz-modal-empty { text-align: center; color: #94A3B8; padding: 32px 0; }
.qz-candidate-item { display: flex; align-items: center; gap: 10px; padding: 10px 24px; cursor: pointer; transition: background .12s; border-bottom: 1px solid #F8F8F8; }
.qz-candidate-item:hover { background: #F5F7FF; }
.qz-candidate-item:last-child { border-bottom: none; }
.qz-cand-idx { width: 28px; height: 28px; border-radius: 8px; background: #EEF2FF; color: #4F46E5; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.qz-cand-text { flex: 1; font-size: 13px; color: #334155; line-height: 1.5; }
.qz-cand-pct { flex-shrink: 0; font-size: 11px; color: #EF4444; font-weight: 600; }

.qz-result-footer {
  display: flex; gap: 12px; justify-content: flex-end;
  padding: 18px 28px; background: #FAFBFC;
  border-radius: 0 0 18px 18px; border: 1px solid #F0F0F0; border-top: none;
}

/* ── 学情详情页 ── */
.qz-detail-page { max-width: 1100px; margin: 0 auto; }
.qz-detail-header { display: flex; justify-content: space-between; align-items: flex-start; padding: 16px 0; }
.qz-detail-header h2 { margin: 0; font-size: 22px; color: #1E293B; }
.qz-detail-header p { margin: 4px 0 0; font-size: 13px; color: #94A3B8; }

.qz-overview-cards { display: flex; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.qz-oc-card {
  flex: 1; min-width: 110px; text-align: center; background: #fff;
  border-radius: 12px; padding: 16px 12px; border: 1px solid #F0F0F0;
}
.qz-oc-num { display: block; font-size: 28px; font-weight: 700; color: #1E293B; line-height: 1.3; }
.qz-oc-label { display: block; font-size: 12px; color: #94A3B8; margin-top: 4px; }

.qz-section { margin-bottom: 24px; }
.qz-section h3 { font-size: 16px; color: #334155; margin: 0 0 12px; }
.qz-section-sub { font-weight: 400; font-size: 12px; color: #94A3B8; }

.qz-dist-chart { background: #fff; border-radius: 12px; padding: 20px; border: 1px solid #F0F0F0; }
.qz-dist-bars { display: flex; align-items: flex-end; justify-content: space-around; height: 160px; gap: 12px; }
.qz-dist-col { display: flex; flex-direction: column; align-items: center; flex: 1; height: 100%; justify-content: flex-end; }
.qz-dist-bar-fill { width: 100%; max-width: 48px; border-radius: 6px 6px 0 0; min-height: 4px; transition: height .3s; }
.qz-dist-num { font-size: 13px; font-weight: 600; color: #334155; margin-top: 6px; }
.qz-dist-range { font-size: 11px; color: #94A3B8; }

.qz-table-wrap { overflow-x: auto; background: #fff; border-radius: 12px; border: 1px solid #F0F0F0; }

.qz-ans-correct { color: #059669; font-weight: 600; }
.qz-ans-wrong { color: #EF4444; }

.qz-answer-detail-card { background: #fff; border-radius: 12px; border: 1px solid #E2E8F0; overflow: hidden; }
.qz-adc-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #F8FAFC; border-bottom: 1px solid #F0F0F0; font-weight: 600; color: #334155; }
.qz-adc-table { border-radius: 0; }
.qz-row-correct td { background: #f6ffed; }
.qz-row-wrong td { background: #fff2f0; }

.qz-rank-medal { font-size: 18px; }
.qz-rank-1 { color: #F59E0B; }
.qz-rank-2 { color: #94A3B8; }
.qz-rank-3 { color: #D97706; }

.qz-stat-card { cursor: pointer; transition: box-shadow .2s; }
.qz-stat-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }

.qz-section-sub { font-weight: 400; font-size: 12px; color: #94A3B8; }

.qz-loading, .qz-error { font-size: 15px; color: #94A3B8; }
.qz-error { color: #ff4d4f; }

.as-loading-row { text-align: center; color: #BFC7D4; padding: 48px 0 !important; }

@media(max-width:768px){
  .qz-page-header { flex-direction: column; gap: 16px; padding: 18px 16px 16px; }
  .qz-modules-section { padding: 14px 16px; }
  .qz-module-row { flex-wrap: wrap; }
  .qz-module-label { min-width: auto; }
  .qz-score-row { flex-direction: column; gap: 0; }
  .qz-result-header { padding: 18px 16px 14px; }
}

/* ── 操作日志页面（17-audit-logs.js） ── */

/* 页面头部 */
.al-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
.al-header-left { flex: 1; }
.al-title { font-size: 22px; font-weight: 700; color: #1A1A2E; margin: 0 0 4px; }
.al-sub { font-size: 13px; color: #8892A6; margin: 0; }
.al-header-right { display: flex; gap: 8px; flex-shrink: 0; }

/* 统计概览条 */
.al-stats-bar {
  display: flex; align-items: center; gap: 0;
  background: linear-gradient(135deg, #F0F4FF, #F8FAFE);
  border: 1px solid #E2E8F5; border-radius: 12px;
  padding: 14px 24px; margin-bottom: 16px;
}
.al-stat-mini { flex: 1; text-align: center; font-size: 12px; color: #8892A6; }
.al-stat-mini-num { display: block; font-size: 22px; font-weight: 700; color: #1A1A2E; margin-bottom: 2px; }
.al-stat-fail { color: #FF4D4F !important; }
.al-stat-divider { width: 1px; height: 32px; background: #DCE3F0; flex-shrink: 0; }

/* 筛选工具栏 */
.al-toolbar {
  background: #FFF; border: 1px solid #EEF0F5; border-radius: 12px;
  padding: 16px; margin-bottom: 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,.02);
}
.al-toolbar-main { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.al-toolbar-extra { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px solid #F0F2F5; }
.al-toolbar-bottom { margin-top: 8px; }

/* 快捷日期按钮 */
.al-quick-dates { display: flex; gap: 4px; background: #F5F7FA; border-radius: 8px; padding: 3px; }
.al-qd-btn {
  padding: 5px 12px; border: none; background: transparent; border-radius: 6px;
  font-size: 12px; font-weight: 500; color: #666; cursor: pointer; transition: all .15s;
  white-space: nowrap;
}
.al-qd-btn:hover { color: #4A90D9; }
.al-qd-btn.active { background: #FFF; color: #4A90D9; font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.al-filter-divider { width: 1px; height: 24px; background: #E0E4EB; flex-shrink: 0; }

/* 输入框 */
.al-input-wrap { position: relative; display: flex; align-items: center; }
.al-input-icon { position: absolute; left: 10px; font-size: 13px; line-height: 1; pointer-events: none; z-index: 1; }
.al-input-has-icon .al-input { padding-left: 32px; }
.al-input {
  padding: 7px 12px; border: 1.5px solid #E0E4EB; border-radius: 8px;
  font-size: 13px; outline: none; color: #262626; background: #FAFBFC;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.al-input:focus { border-color: #4A90D9; background: #FFF; box-shadow: 0 0 0 3px rgba(74,144,217,.08); }
.al-input-search { width: 170px; }
.al-input-date { width: 130px; }

/* 下拉选择器 */
.al-select {
  padding: 7px 12px; border: 1.5px solid #E0E4EB; border-radius: 8px;
  font-size: 13px; color: #262626; background: #FAFBFC; outline: none;
  cursor: pointer; transition: border-color .2s;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px;
}
.al-select:focus { border-color: #4A90D9; background: #FFF; }
.al-select-sm { min-width: 110px; }

/* 按钮 */
.al-btn {
  padding: 7px 16px; border: none; border-radius: 8px; font-size: 13px;
  font-weight: 500; cursor: pointer; transition: all .15s;
  display: inline-flex; align-items: center; gap: 4px;
}
.al-btn-primary { background: #4A90D9; color: #FFF; }
.al-btn-primary:hover { background: #357ABD; }
.al-btn-ghost { background: transparent; color: #666; border: 1.5px solid #E0E4EB; }
.al-btn-ghost:hover { background: #F5F7FA; border-color: #C0C7D4; color: #333; }
.al-btn-link {
  background: none; border: none; color: #4A90D9; font-size: 12px;
  cursor: pointer; padding: 2px 0; transition: opacity .15s;
}
.al-btn-link:hover { opacity: .8; }

/* 表格 */
.al-table-wrap {
  background: #FFF; border-radius: 14px;
  border: 1px solid #EEF0F5; overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.02);
}
.al-table { width: 100%; border-collapse: collapse; }
.al-table thead { background: #FAFBFC; }
.al-table th {
  padding: 12px 16px; font-size: 12px; font-weight: 600;
  color: #8892A6; text-align: left; border-bottom: 1px solid #EEF0F5;
  white-space: nowrap;
}
.al-table td {
  padding: 11px 16px; font-size: 13px; color: #262626;
  border-bottom: 1px solid #F5F7FA; vertical-align: middle;
}
.al-row { transition: background .12s; }
.al-row:hover { background: #F8FAFE; }

/* 单元格 */
.al-cell-time { display: table-cell; }
.al-time-rel { display: block; font-size: 13px; color: #262626; font-weight: 500; }
.al-time-full { display: block; font-size: 11px; color: #999; margin-top: 2px; }
.al-operator { font-weight: 600; color: #1A1A2E; }
.al-cell-target { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.al-cell-status { text-align: center; }
.al-cell-action { text-align: center; }
.al-detail-btn {
  padding: 3px 10px; border: none; border-radius: 5px; background: #F5F7FA;
  font-size: 12px; color: #666; cursor: pointer; transition: all .15s;
  font-weight: 500;
}
.al-detail-btn:hover { background: #E8EEF8; color: #4A90D9; }

/* 操作标签 */
.al-tag {
  display: inline-block; padding: 3px 10px; border-radius: 5px;
  font-size: 12px; font-weight: 600; white-space: nowrap;
}
.al-tag-create { background: #E6F7EE; color: #1E8E4E; }
.al-tag-update { background: #EBF5FF; color: #2D7DD2; }
.al-tag-delete { background: #FFF0F0; color: #D9363E; }
.al-tag-publish { background: #F0F0FF; color: #5B3DCE; }
.al-tag-login { background: #FFF7E6; color: #D4880C; }
.al-tag-generate { background: #EBFAF5; color: #0D8C69; }
.al-tag-export { background: #F5F0FF; color: #7A3BDC; }
.al-tag-reset { background: #FFF2F0; color: #CF3955; }
.al-tag-activate { background: #E6FFFB; color: #0D8C69; }
.al-tag-other { background: #F5F5F5; color: #666; }

/* 状态圆点 */
.al-status-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  margin-right: 6px; vertical-align: middle; position: relative; top: -1px;
}
.al-status-ok { background: #52C41A; }
.al-status-fail { background: #FF4D4F; }

/* 空状态 */
.al-empty { text-align: center; padding: 80px 0; }
.al-empty-icon { font-size: 48px; margin-bottom: 12px; }
.al-empty-title { font-size: 15px; color: #8C8C8C; font-weight: 600; margin-bottom: 4px; }
.al-empty-desc { font-size: 13px; color: #BBB; }

/* 分页 */
.al-pager { margin-top: 16px; }
.al-pager-inner { display: flex; align-items: center; justify-content: space-between; }
.al-pager-total { font-size: 13px; color: #8892A6; }
.al-pager-total strong { color: #1A1A2E; font-weight: 700; }
.al-pager-btns { display: flex; gap: 4px; }
.al-page-btn {
  min-width: 32px; height: 32px; padding: 0 8px;
  border: 1px solid #E0E4EB; border-radius: 6px;
  background: #FFF; color: #666; font-size: 13px; font-weight: 500;
  cursor: pointer; transition: all .15s;
}
.al-page-btn:hover:not(:disabled):not(.active) { border-color: #4A90D9; color: #4A90D9; }
.al-page-btn.active { background: #4A90D9; border-color: #4A90D9; color: #FFF; }
.al-page-btn:disabled { opacity: .4; cursor: not-allowed; }

/* 弹窗遮罩 */
.al-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999;
  display: flex; align-items: center; justify-content: center; display: none;
}

/* 弹窗卡片 */
.al-modal {
  background: #FFF; border-radius: 16px; width: 600px; max-width: 94vw;
  max-height: 85vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.15);
  animation: alFadeIn .2s ease;
}
@keyframes alFadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

.al-modal-head {
  display: flex; align-items: center; gap: 14px;
  padding: 20px 24px 16px; border-bottom: 1px solid #F0F2F5;
}
.al-modal-head-icon { font-size: 24px; flex-shrink: 0; }
.al-modal-head-text { flex: 1; }
.al-modal-head-text h3 { font-size: 16px; color: #1A1A2E; margin: 0 0 2px; font-weight: 700; }
.al-modal-head-text p { font-size: 12px; color: #999; margin: 0; }
.al-modal-close {
  width: 32px; height: 32px; border: none; border-radius: 8px;
  background: #F5F7FA; color: #999; font-size: 18px; cursor: pointer;
  flex-shrink: 0; line-height: 32px; transition: all .15s;
}
.al-modal-close:hover { background: #E8ECF2; color: #333; }

.al-modal-body { padding: 20px 24px; }
.al-modal-foot { display: flex; gap: 10px; justify-content: flex-end; padding: 14px 24px 20px; border-top: 1px solid #F5F7FA; }

/* 操作摘要 */
.al-detail-summary {
  background: linear-gradient(135deg, #E6F7FF, #F0F5FF);
  border: 1px solid #91D5FF;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
  font-size: 14px;
  color: #0050B3;
  font-weight: 600;
  line-height: 1.5;
}

/* 批量删除资源名称列表 */
.al-deleted-names {
  background: #FFF7E6;
  border: 1px solid #FFD591;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
.al-deleted-names-title {
  font-size: 12px; color: #D46B08; font-weight: 600; margin-bottom: 8px;
}
.al-deleted-names-list {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.al-deleted-name-tag {
  display: inline-block;
  background: #FFF; border: 1px solid #FFD591; border-radius: 4px;
  padding: 2px 10px; font-size: 12px; color: #AD4E00; font-weight: 500;
}

/* 详情两列布局 */
.al-detail-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.al-detail-col { display: flex; flex-direction: column; gap: 12px; }
.al-detail-item { display: flex; flex-direction: column; gap: 2px; }
.al-detail-item label { font-size: 11px; color: #999; font-weight: 500; text-transform: uppercase; }
.al-detail-item span { font-size: 13px; color: #262626; }
.al-detail-item em { font-style: normal; color: #8892A6; font-size: 12px; }

.al-ua { font-size: 11px !important; color: #A0A0A0 !important; word-break: break-all; }

/* 错误块 */
.al-detail-error { margin-top: 16px; }
.al-detail-error-title { font-size: 13px; color: #FF4D4F; font-weight: 600; margin-bottom: 6px; }
.al-detail-error pre {
  background: #FFF2F0; border: 1px solid #FFCCC7; border-radius: 8px;
  padding: 10px 14px; font-size: 12px; color: #D9363E; line-height: 1.6;
  white-space: pre-wrap; word-break: break-all; margin: 0;
}

/* JSON 详情块 */
.al-detail-extra { margin-top: 16px; }
.al-detail-extra-title { font-size: 13px; color: #555; font-weight: 600; margin-bottom: 6px; }
.al-json-block {
  background: #F9FAFC; border: 1px solid #E8ECF2; border-radius: 8px;
  padding: 12px 16px; font-size: 12px; line-height: 1.7;
  font-family: 'SF Mono','Fira Code',monospace;
  color: #333; overflow-x: auto; max-height: 280px; white-space: pre; margin: 0;
}

/* 响应式 */
@media(max-width:768px){
  .al-header { flex-direction: column; gap: 12px; }
  .al-stats-bar { flex-wrap: wrap; gap: 8px; padding: 12px 16px; }
  .al-stat-divider { display: none; }
  .al-stat-mini { flex: 1 1 40%; }
  .al-toolbar-main { gap: 8px; }
  .al-quick-dates { width: 100%; justify-content: center; }
  .al-filter-divider { display: none; }
  .al-input-search { width: 120px; }
  .al-detail-cols { grid-template-columns: 1fr; }
  .al-modal { width: 98vw; border-radius: 12px; }
  .al-table th, .al-table td { padding: 10px 12px; font-size: 12px; }
  .al-cell-target { max-width: 120px; }
}
