* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif; background:#f0f4f8; color:#333; line-height:1.6; }

/* 导航 */
.navbar { background:#2c3e50; color:#fff; padding:12px 24px; display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; z-index:100; }
.nav-brand { font-size:1.3em; font-weight:700; }
.nav-menu a { color:#ccc; text-decoration:none; margin-left:20px; font-size:0.9em; }
.nav-menu a:hover { color:#fff; }
.nav-user { color:#3498db; font-weight:600; margin-right:10px; }
.nav-btn { background:#e74c3c; color:#fff!important; padding:6px 14px; border-radius:6px; }

.container { max-width:1200px; margin:0 auto; padding:20px; }

/* 卡片 */
.card { background:#fff; border-radius:12px; padding:24px; margin-bottom:20px; box-shadow:0 2px 8px rgba(0,0,0,0.08); }
.card h3 { margin-bottom:16px; color:#2c3e50; }

/* 登录 */
.login-card { max-width:400px; margin:80px auto; background:#fff; border-radius:16px; padding:40px; box-shadow:0 4px 24px rgba(0,0,0,0.1); text-align:center; }
.login-card h1 { font-size:2em; color:#2c3e50; margin-bottom:4px; }
.subtitle { color:#7f8c8d; margin-bottom:24px; }
.tabs { display:flex; margin-bottom:20px; background:#ecf0f1; border-radius:8px; overflow:hidden; }
.tab { flex:1; padding:10px; border:none; background:transparent; cursor:pointer; font-size:1em; }
.tab.active { background:#3498db; color:#fff; font-weight:600; }
form { display:flex; flex-direction:column; gap:12px; }
input, select, textarea { padding:12px; border:2px solid #dfe6e9; border-radius:8px; font-size:1em; outline:none; transition:border-color 0.2s; }
input:focus, select:focus, textarea:focus { border-color:#3498db; }
textarea { resize:vertical; min-height:80px; font-family:inherit; }
select { background:#fff; cursor:pointer; }
.btn-primary { background:#3498db; color:#fff; border:none; padding:12px 24px; border-radius:8px; font-size:1em; cursor:pointer; transition:background 0.2s; }
.btn-primary:hover { background:#2980b9; }
.btn-secondary { background:#95a5a6; color:#fff; border:none; padding:8px 16px; border-radius:6px; font-size:0.9em; cursor:pointer; }
.btn-small { background:#ecf0f1; border:1px solid #bdc3c7; padding:6px 12px; border-radius:6px; cursor:pointer; font-size:0.85em; }
.error { color:#e74c3c; font-size:0.9em; margin-top:4px; }
.text-muted { color:#95a5a6; text-align:center; padding:40px; }

/* 统计卡片 */
.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:24px; text-align:center; box-shadow:0 2px 8px rgba(0,0,0,0.08); }
.stat-num { font-size:2.5em; font-weight:700; color:#3498db; }

/* 页面头部 */
.page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.page-header h2 { margin:0; }

/* 作业列表 */
.assign-item { background:#fff; border-radius:12px; padding:18px 22px; margin-bottom:12px; box-shadow:0 2px 8px rgba(0,0,0,0.06); display:flex; justify-content:space-between; align-items:center; border-left:4px solid #3498db; transition:transform 0.15s, box-shadow 0.15s; }
.assign-item:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.1); }
.assign-item .assign-subject-badge { display:inline-block; padding:3px 10px; border-radius:6px; font-size:0.78em; font-weight:600; margin-right:8px; background:#e8f4fd; color:#3498db; }
.assign-info { flex:1; }
.assign-info h4 { margin-bottom:6px; color:#2c3e50; font-size:1.05em; }
.assign-meta { font-size:0.85em; color:#7f8c8d; display:flex; gap:12px; flex-wrap:wrap; }
.assign-meta span { display:inline-flex; align-items:center; gap:3px; }
.assign-actions { display:flex; gap:8px; }

/* 作业表单 - 新设计 */
.assign-modal { max-width:850px!important; }
.assign-section { background:#f8f9fa; border-radius:10px; padding:20px; margin-bottom:16px; border:1px solid #e9ecef; }
.assign-section h4 { font-size:1em; margin-bottom:14px; color:#2c3e50; display:flex; align-items:center; gap:6px; }
.form-row { display:flex; gap:12px; margin-bottom:12px; }
.form-row:last-child { margin-bottom:0; }
.form-group { flex:1; display:flex; flex-direction:column; gap:4px; }
.form-group label { font-size:0.85em; color:#555; font-weight:500; }
.form-group.flex-2 { flex:2; }
.subject-select { font-size:0.95em; }
.class-selector { display:flex; gap:6px; }
.pick-list { max-height:160px; overflow-y:auto; border:1px solid #dfe6e9; border-radius:8px; margin-top:4px; background:#fff; }
.pick-list .pick-item { padding:8px 12px; cursor:pointer; border-bottom:1px solid #f0f0f0; font-size:0.9em; }
.pick-list .pick-item:hover { background:#e8f4fd; }
.pick-list .pick-item.selected { background:#3498db; color:#fff; }
.section-header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.add-question-group { display:flex; gap:6px; flex-wrap:wrap; }
.add-question-group .btn-small { font-size:0.8em; padding:5px 10px; background:#e8f4fd; color:#3498db; border:1px solid #c5e1f5; }
.add-question-group .btn-small:hover { background:#d0ebfa; }
.empty-questions { text-align:center; padding:30px; color:#95a5a6; }
.question-list { min-height:60px; }
.question-card { background:#fff; border:1px solid #e9ecef; border-radius:8px; padding:14px; margin-bottom:8px; position:relative; }
.question-card .q-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.question-card .q-type { display:inline-block; padding:2px 8px; border-radius:4px; font-size:0.78em; font-weight:600; }
.q-type-choice { background:#e8f4fd; color:#3498db; }
.q-type-fill { background:#fef3e2; color:#e67e22; }
.q-type-judge { background:#fde8e8; color:#e74c3c; }
.q-type-short { background:#e8f8f5; color:#27ae60; }
.q-type-essay { background:#f5e6ff; color:#8e44ad; }
.q-type-solve { background:#e8f4fd; color:#2c3e50; }
.question-card .q-text { width:100%; margin-bottom:6px; }
.question-card .q-options { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.question-card .q-option { display:flex; align-items:center; gap:6px; font-size:0.9em; }
.question-card .q-option input[type="radio"] { width:auto; }
.question-card .q-option input[type="text"] { flex:1; font-size:0.9em; padding:6px 8px; }
.question-card .q-answer-row { display:flex; gap:8px; margin-top:8px; align-items:center; }
.question-card .q-answer-row label { font-size:0.85em; }
.question-card .q-kp { font-size:0.85em; }
.question-card .q-del-btn { position:absolute; top:8px; right:8px; background:none; border:none; color:#e74c3c; cursor:pointer; font-size:1.1em; }
.assign-footer { display:flex; justify-content:space-between; align-items:center; padding-top:12px; border-top:1px solid #e9ecef; }
.assign-summary { font-size:0.9em; color:#7f8c8d; display:flex; gap:16px; }

/* 弹窗 */
.modal { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); display:flex; align-items:center; justify-content:center; z-index:1000; }
.modal-content { background:#fff; border-radius:16px; padding:30px; max-width:700px; width:90%; max-height:85vh; overflow-y:auto; }
.modal-content h3 { margin-bottom:16px; }
.close { float:right; font-size:1.5em; cursor:pointer; color:#7f8c8d; }
.close:hover { color:#333; }
.grade-modal { max-width:800px; }
.grade-type-select { display:flex; gap:16px; margin:12px 0; }
.grade-type-select label { cursor:pointer; }
.grade-score-row { display:flex; gap:8px; align-items:center; margin:12px 0; }
.grade-score-row input { width:80px; }

/* 错题 */
.wrong-item { background:#fff; border-radius:10px; padding:16px; margin-bottom:10px; border-left:4px solid #e74c3c; }
.wrong-item .kp-tag { display:inline-block; background:#3498db15; color:#3498db; padding:2px 10px; border-radius:12px; font-size:0.8em; margin-right:6px; }
.diff-tag { display:inline-block; padding:2px 10px; border-radius:12px; font-size:0.8em; }
.diff-easy { background:#27ae6015; color:#27ae60; }
.diff-medium { background:#f39c1215; color:#f39c12; }
.diff-hard { background:#e74c3c15; color:#e74c3c; }

/* 知识点进度条 */
.kp-bar-group { margin-bottom:12px; }
.kp-bar { margin-bottom:16px; }
.kp-bar .kp-label { display:flex; justify-content:space-between; margin-bottom:4px; }
.kp-bar .kp-label span:last-child { font-weight:600; }
.kp-progress { height:24px; background:#ecf0f1; border-radius:12px; overflow:hidden; }
.kp-progress .kp-fill { height:100%; border-radius:12px; transition:width 0.5s; }
.kp-good { background:#27ae60; }
.kp-mid { background:#f39c12; }
.kp-poor { background:#e74c3c; }

/* 学习任务 */
.task-item { background:#fff; border-radius:10px; padding:16px 20px; margin-bottom:10px; border-left:4px solid #3498db; display:flex; justify-content:space-between; align-items:center; }
.task-item.done { border-left-color:#27ae60; opacity:0.7; }
.task-item h4 { margin-bottom:4px; }
.task-meta { font-size:0.85em; color:#7f8c8d; }
.task-actions button { margin-left:8px; }

/* 筛选栏 */
.filter-bar { display:flex; gap:12px; margin-bottom:16px; }
.filter-bar input { flex:1; }

/* 图表区 */
.chart-area { min-height:100px; display:flex; align-items:center; justify-content:center; }

/* ====== 题库系统 ====== */
.qb-toolbar { background:#fff; border-radius:12px; padding:16px 20px; margin-bottom:16px; box-shadow:0 2px 8px rgba(0,0,0,0.06); }
.filter-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.filter-row select, .filter-row input { padding:8px 10px; font-size:0.85em; border-radius:6px; }
.filter-row select { min-width:100px; }
.filter-row input { flex:1; min-width:140px; }
.kb-stats { margin-top:8px; font-size:0.85em; color:#7f8c8d; }

.qb-layout { display:flex; gap:16px; align-items:flex-start; }
.qb-sidebar { width:240px; flex-shrink:0; background:#fff; border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,0.06); max-height:70vh; overflow-y:auto; }
.qb-sidebar h4 { font-size:0.95em; margin-bottom:10px; color:#2c3e50; }
.qb-main { flex:1; min-width:0; }

.tree-node { padding:4px 0; }
.tree-node-label { display:flex; align-items:center; gap:4px; padding:5px 8px; border-radius:6px; cursor:pointer; font-size:0.88em; color:#555; transition:background 0.15s; }
.tree-node-label:hover { background:#e8f4fd; }
.tree-node-label.active { background:#3498db; color:#fff; }
.tree-node-label .count { margin-left:auto; font-size:0.78em; color:#95a5a6; }
.tree-children { padding-left:16px; }

.qb-card { background:#fff; border-radius:10px; padding:16px 18px; margin-bottom:10px; box-shadow:0 1px 4px rgba(0,0,0,0.05); border-left:3px solid #3498db; }
.qb-card .qb-tags { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.qb-card .qb-tags span { font-size:0.75em; padding:2px 8px; border-radius:4px; }
.qb-card .qb-text { font-size:0.95em; margin-bottom:6px; line-height:1.5; }
.qb-card .qb-answer { font-size:0.85em; color:#27ae60; }
.qb-card .qb-actions { float:right; display:flex; gap:4px; }
.qb-card .qb-source { font-size:0.8em; color:#95a5a6; }

.pagination { text-align:center; padding:12px 0; }
.pagination .page-btn { display:inline-block; padding:6px 12px; margin:0 3px; border:1px solid #dfe6e9; border-radius:6px; cursor:pointer; font-size:0.85em; background:#fff; }
.pagination .page-btn.active { background:#3498db; color:#fff; border-color:#3498db; }

/* 提交列表 */
.submission-card { background:#fff; border-radius:10px; padding:14px 18px; margin-bottom:8px; box-shadow:0 1px 4px rgba(0,0,0,0.05); display:flex; justify-content:space-between; align-items:center; cursor:pointer; border-left:3px solid #3498db; transition:background 0.15s; }
.submission-card:hover { background:#f8f9fa; }
.submission-list { max-height:400px; overflow-y:auto; }

/* 班级管理 */
#classListPage .assign-item { border-left-color:#9b59b6; }

/* 个人档案表格 */
#profileSubjectStats table th { background:#f8f9fa; color:#2c3e50; font-size:0.9em; }
#profileSubjectStats table tr:hover { background:#f0f7ff; }

/* 响应式 */
@media(max-width:768px) {
  .navbar { flex-direction:column; gap:8px; }
  .nav-menu a { margin:0 8px; font-size:0.8em; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .assign-item { flex-direction:column; gap:12px; }
  .grade-type-select { flex-wrap:wrap; }
}
