/* 布置作业模态框样式 */
#assignPracticeModal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 10000; }
.ap-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }
.ap-modal { position: relative; max-width: 480px; margin: 60px auto; background: #fff; border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,0.15); overflow: hidden; }
[data-theme="dark"] .ap-modal { background: #1a1a2e; }

.ap-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid #eee; }
[data-theme="dark"] .ap-header { border-bottom-color: #333; }
.ap-header h3 { margin: 0; font-size: 17px; font-weight: 700; }
.ap-close { background: none; border: none; font-size: 18px; cursor: pointer; color: #999; padding: 4px; }
.ap-close:hover { color: #333; }

.ap-body { padding: 20px 24px; max-height: 60vh; overflow-y: auto; }
.ap-field { margin-bottom: 16px; }
.ap-field label { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 8px; }
[data-theme="dark"] .ap-field label { color: #aaa; }
.ap-field input[type="text"], .ap-field input[type="date"] { width: 100%; padding: 10px 14px; border: 1.5px solid #e0e0e0; border-radius: 10px; font-size: 14px; outline: none; transition: border-color 0.15s; }
[data-theme="dark"] .ap-field input { background: #16213e; border-color: #333; color: #eee; }
.ap-field input:focus { border-color: #845EC2; }

.ap-class-list { display: flex; flex-direction: column; gap: 8px; }
.ap-class-item { padding: 12px 16px; border: 1.5px solid #e0e0e0; border-radius: 10px; cursor: pointer; display: flex; align-items: center; font-size: 14px; transition: all 0.15s; }
[data-theme="dark"] .ap-class-item { border-color: #333; background: #16213e; }
.ap-class-item:hover { border-color: #845EC2; }
.ap-class-item.active { border-color: #845EC2; background: rgba(132,94,194,0.08); color: #845EC2; font-weight: 600; }

.ap-student-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-student-item { padding: 6px 14px; border: 1.5px solid #e0e0e0; border-radius: 8px; font-size: 13px; cursor: pointer; transition: all 0.15s; display: flex; align-items: center; }
[data-theme="dark"] .ap-student-item { border-color: #333; background: #16213e; }
.ap-student-item.checked { border-color: #845EC2; background: rgba(132,94,194,0.08); color: #845EC2; }

.ap-btn-small { font-size: 12px; padding: 2px 10px; border: 1px solid #845EC2; border-radius: 6px; background: none; color: #845EC2; cursor: pointer; transition: all 0.15s; }
.ap-btn-small.active { background: #845EC2; color: #fff; }

.ap-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px; border-top: 1px solid #eee; }
[data-theme="dark"] .ap-footer { border-top-color: #333; }
.ap-btn-cancel { padding: 10px 20px; border: 1px solid #ddd; border-radius: 10px; background: none; font-size: 14px; cursor: pointer; }
[data-theme="dark"] .ap-btn-cancel { border-color: #444; color: #aaa; }
.ap-btn-submit { padding: 10px 24px; background: linear-gradient(135deg, #845EC2, #D65DB1); color: #fff; border: none; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; }
.ap-btn-submit:hover { opacity: 0.9; }

.ap-spinner { width: 28px; height: 28px; border: 3px solid #e0e0e0; border-top-color: #845EC2; border-radius: 50%; animation: ap-spin 0.8s linear infinite; margin: 0 auto; }
@keyframes ap-spin { to { transform: rotate(360deg); } }
