/* Assign-exam dialog: class picker + "Students & Assigned" panel (v2.9.1) */
#blv-assign-modal .blv-modal-content, #blv-sp-assign-modal .blv-modal-content { max-width: 680px; }
#blv-assign-modal .blv-tabs, #blv-sp-assign-modal .blv-tabs { gap: 0; margin-bottom: 14px; }
#blv-assign-modal .blv-tab-btn, #blv-sp-assign-modal .blv-tab-btn { flex: 1; padding: 10px 12px; font-weight: 600; text-align: center; }

.blv-cp-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.blv-cp-count { font-size: 12px; font-weight: 700; color: #6b7280; background: #f3f4f6; padding: 4px 10px; border-radius: 999px; }
.blv-cp-count.has { color: #3730a3; background: #e0e7ff; }
.blv-cp-bar-btns { display: flex; gap: 14px; }
.blv-cp-link { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; font-weight: 600; color: #4f46e5; cursor: pointer; }
.blv-cp-link:hover { text-decoration: underline; }

.blv-cp-arms { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 12px; padding: 10px 12px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 10px; }
.blv-cp-armlabel { font-size: 12px; font-weight: 600; color: #4b5563; }
.blv-cp-armchips { display: flex; flex-wrap: wrap; gap: 6px; }
.blv-cp-arm { margin: 0; padding: 5px 14px; background: #fff; border: 1px solid #d1d5db; border-radius: 999px; font: inherit; font-size: 12px; font-weight: 600; line-height: 1.3; white-space: nowrap; cursor: pointer; color: #374151; transition: all .12s; }
.blv-cp-arm:hover { border-color: #818cf8; color: #4338ca; }
.blv-cp-arm.on { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.blv-cp-arm:disabled { opacity: .4; cursor: default; }

.blv-cp { max-height: 360px; overflow-y: auto; padding: 2px 4px 2px 2px; }
.blv-cp-empty { padding: 14px; text-align: center; color: #6b7280; font-size: 13px; background: #f9fafb; border: 1px dashed #d1d5db; border-radius: 10px; margin-bottom: 8px; }
.blv-cp-group { margin-bottom: 10px; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; background: #fff; transition: border-color .12s; }
.blv-cp-group.has-sel { border-color: #a5b4fc; }
.blv-cp-levelhead { display: flex; align-items: center; gap: 10px; margin: 0; padding: 9px 12px; background: #f1f5f9; cursor: pointer; }
.blv-cp-group.has-sel .blv-cp-levelhead { background: #eef2ff; }
.blv-cp-title { font-weight: 700; font-size: 14px; color: #1f2937; }
.blv-cp-n { font-size: 12px; color: #6b7280; }
.blv-cp-sel { margin-left: auto; font-size: 12px; font-weight: 600; color: #4f46e5; }
.blv-cp-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; padding: 10px; }
.blv-cp-item { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 8px 10px; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 13px; cursor: pointer; background: #fff; transition: all .12s; }
.blv-cp-item:hover { border-color: #a5b4fc; background: #fafaff; }
.blv-cp-item:has(input:checked) { border-color: #6366f1; background: #eef2ff; }
.blv-cp-item.done { background: #f0fdf4; border-color: #bbf7d0; cursor: default; }
.blv-cp-item.off { background: #f9fafb; color: #9ca3af; cursor: not-allowed; }
.blv-cp-name { font-weight: 600; color: #111827; }
.blv-cp-item.off .blv-cp-name { color: #9ca3af; }
.blv-cp-tag { font-size: 11px; font-weight: 600; color: #4338ca; background: #e0e7ff; padding: 1px 8px; border-radius: 999px; }
.blv-cp-state { margin-left: auto; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.blv-cp-state.ok { color: #047857; background: #d1fae5; }
.blv-cp-state.off { color: #6b7280; background: #e5e7eb; }

.blv-assign-warn { background: #fffbeb; border: 1px solid #fcd34d; border-radius: 8px; padding: 8px 10px; margin: 8px 0; font-size: 13px; }

/* Students & Assigned panel */
.blv-asg-h { margin: 16px 0 8px; font-size: 13px; font-weight: 700; color: #1f2937; display: block; }
.blv-asg-h:first-child { margin-top: 0; }
.blv-asg-list { border: 1px solid #e5e7eb; border-radius: 10px; max-height: 190px; overflow: auto; background: #fff; }
.blv-asg-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
.blv-asg-row:last-child { border-bottom: 0; }
label.blv-asg-row { justify-content: flex-start; cursor: pointer; margin: 0; }
label.blv-asg-row:hover { background: #fafaff; }
.blv-asg-dim { color: #6b7280; font-size: 12px; }
.blv-asg-warn { color: #b45309; font-size: 12px; }
.blv-asg-actions { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.blv-asg-note { background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 8px; padding: 9px 12px; margin-bottom: 12px; font-size: 13px; line-height: 1.5; }
.blv-asg-add { margin-top: 16px; padding: 12px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 10px; }
.blv-asg-add .blv-asg-h { margin-top: 0; }
.blv-asg-regs { width: 100%; margin: 4px 0 8px; box-sizing: border-box; }
.blv-asg-closed { color: #b45309; }
