/* 21/10/2026: các luật của hộp "Tạo bài bằng AI" đã chuyển sang td-hop-ai.css (TỰ SINH từ CSS trang giáo viên HUEVERSE bởi tools/chep_hop_ai.py).
   Tệp này chỉ còn phần riêng của trang Tạo đề. */
/* TAO DE MOI (18/10/2026) - giao dien hop 'Them de moi' CHEP tu Unit2Web (chung.css + giao-vien.css + gv-dien-thoai.css), doi mau hong -> xanh bien may cua Taode. Sua o day, KHONG sua Unit2Web. */
/* Giao dien chung cho ca 3 trang cua Unit 2 Online */
:root{
  /* Tong mau chu dao: HONG PHAN NHE */
  --xanh:#1A7AB8;        /* mau nhan chinh (nut, vien o da chon) */
  --xanh-nhat:#E0F1FB;   /* hong phan rat nhat - nen o da chon */
  --xanh-dam:#135C8C;    /* hong dam - chu nhan manh */
  --hong-dinh-1:#BFE0F5; /* dau trang: hong phan */
  --hong-dinh-2:#A8D4F0;
  --vang:#f59e0b; --do:#dc2626; --luc:#16a34a;
  --nen:#F0F8FD; --the:#ffffff; --chu:#17304A; --chu-mo:#5C6F80;
  --vien:#D8E6F0; --bo-goc:16px;
  --bong:0 1px 2px rgba(19,92,140,.06), 0 8px 24px rgba(19,92,140,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  background:var(--nen); color:var(--chu); line-height:1.6;
  -webkit-text-size-adjust:100%;
}
.boc{max-width:820px;margin:0 auto;padding:16px}
.boc-rong{max-width:1180px;margin:0 auto;padding:16px}

.dinh{
  background:linear-gradient(135deg,var(--hong-dinh-1),var(--hong-dinh-2));
  color:var(--xanh-dam);
  padding:22px 16px; text-align:center;
}
.dinh h1{margin:0;font-size:24px;letter-spacing:.2px}
.dinh p{margin:6px 0 0;opacity:.85;font-size:15px}

.the{
  background:var(--the); border:1px solid var(--vien); border-radius:var(--bo-goc);
  padding:18px; box-shadow:var(--bong); margin-bottom:16px;
}

label{display:block;font-weight:600;margin:14px 0 6px;font-size:15px}
input[type=text],input[type=password],select{
  width:100%;padding:13px 14px;font-size:17px;border:2px solid var(--vien);
  border-radius:12px;background:#fff;color:var(--chu);font-family:inherit;
}
input:focus,select:focus{outline:none;border-color:var(--xanh)}

.nut{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 20px;font-size:17px;font-weight:700;border:none;border-radius:12px;
  background:var(--xanh);color:#fff;cursor:pointer;font-family:inherit;
  transition:transform .08s ease, filter .15s ease;
}
.nut:hover{filter:brightness(1.07)}
.nut:active{transform:scale(.98)}
.nut[disabled]{opacity:.55;cursor:not-allowed}
.nut-to{width:100%;padding:16px;font-size:18px}
.nut-phu{background:#fff;color:var(--xanh-dam);border:2px solid var(--xanh)}
.nut-xam{background:#E3EEF6;color:#4A6074}
.nut-do{background:var(--do)}
.nut-nho{padding:8px 14px;font-size:14px;border-radius:10px}

.tab{display:flex;gap:8px;margin-bottom:6px}
.tab button{
  flex:1;padding:13px 10px;font-size:16px;font-weight:700;cursor:pointer;
  border:2px solid var(--vien);background:#fff;color:var(--chu-mo);
  border-radius:12px;font-family:inherit;
}
.tab button.chon{background:var(--xanh-nhat);border-color:var(--xanh);color:var(--xanh-dam)}

.bao{padding:12px 14px;border-radius:12px;font-weight:600;margin-top:12px;display:none}
.bao.hien{display:block}
.bao-loi{background:#fee2e2;color:#991b1b}
.bao-ok{background:#dcfce7;color:#166534}

.mo{color:var(--chu-mo);font-size:14px}
.giua{text-align:center}

/* Logo va ten web HUEVERSE */
.anh-logo{
  width:74px;height:74px;border-radius:50%;object-fit:cover;display:block;
  margin:0 auto 10px;border:3px solid #fff;
  box-shadow:0 6px 18px rgba(19,92,140,.25);
}
.anh-logo.to{width:96px;height:96px}
.ten-web{
  font-weight:800;letter-spacing:4px;text-transform:uppercase;
  text-shadow:0 2px 8px rgba(19,92,140,.14);
}

/* ---------- Noi dung dung chung cua de (bai doc, file nghe, hinh, video) + cac kieu cau moi ---------- */
.doan.khoi h3{margin:0 0 8px;font-size:16px;color:#135C8C}
.doan.khoi p{margin:8px 0 0;white-space:pre-line;font-size:16px}
.may-nghe{display:block;width:100%;margin:6px 0}
.khung-video{position:relative;width:100%;aspect-ratio:16/9;margin:8px 0;border-radius:12px;overflow:hidden;background:#000}
.khung-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.anh-khoi,.anh-cau{display:block;max-width:100%;max-height:420px;border-radius:12px;margin:8px auto;border:1px solid var(--vien);background:#fff}
.anh-cau{max-height:300px;margin:0 0 12px}
.nhan-loai{display:inline-block;font-size:12px;font-weight:800;padding:2px 9px;border-radius:99px;
           background:#eef2ff;color:#3730a3;margin-left:6px;vertical-align:middle;white-space:nowrap}
.o-dien{width:100%;padding:12px 14px;font-size:17px;border:2px solid var(--vien);border-radius:12px;
        font-family:inherit;color:var(--chu);background:#fff}
.o-dien:focus{outline:none;border-color:var(--xanh)}
.o-dien.co{border-color:var(--xanh);background:var(--xanh-nhat)}
.sx-dong{min-height:54px;padding:8px;border:2px dashed var(--vien);border-radius:12px;background:#fff;
         display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sx-dong.co{border-style:solid;border-color:var(--xanh);background:var(--xanh-nhat)}
.sx-dong .goi-y{color:var(--chu-mo);font-size:14px;padding:0 6px}
.sx-kho{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sx-tu{padding:9px 14px;font-size:16px;font-family:inherit;font-weight:600;cursor:pointer;color:var(--chu);
       border:2px solid var(--vien);border-radius:10px;background:#fff;box-shadow:0 2px 0 var(--vien)}
.sx-tu:hover{border-color:#A9C8DE}
.sx-dong .sx-tu{border-color:var(--xanh);box-shadow:0 2px 0 #A9C8DE}
.sx-tu.da{visibility:hidden}
.noi-hang{display:flex;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.noi-hang .trai{flex:1;min-width:120px;padding:10px 12px;border:2px solid var(--vien);border-radius:12px;background:#F0F8FD;font-weight:600}
.noi-hang select{flex:1;min-width:140px;width:auto}
.noi-hang select.co{border-color:var(--xanh);background:var(--xanh-nhat)}
/* kiểu câu mới (06/10/2026): kho từ của điền từ bằng lựa chọn, khuôn số ký tự, sắp xếp câu */
.kho-tu{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 12px}
.kho-tu span{padding:6px 12px;border:2px dashed var(--vien);border-radius:999px;background:#fff;font-weight:600;font-size:15px}
.khuon-kt{font-family:ui-monospace,Consolas,monospace;font-size:20px;letter-spacing:2px;color:var(--chu-mo);margin:0 0 8px;word-break:break-all}
.sx-cau .sx-kho{flex-direction:column;align-items:stretch}
.sx-cau .sx-tu,.sx-cau .sx-dong .sx-tu{display:block;text-align:left;border-radius:12px}
.sx-cau .sx-dong{flex-direction:column;align-items:stretch}
.lua button .o-tick{flex:none;width:20px;height:20px;border:2px solid var(--chu-mo);border-radius:5px;margin-top:3px;
                    display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:#fff}
.lua button.chon .o-tick{background:var(--xanh);border-color:var(--xanh)}
@media print{ .may-nghe,.khung-video,.sx-kho{display:none !important} }

/* ===== BANG DIEM CUA DE (11/10/2026): tong diem ca de + diem tung phan (HVCau.veBangDiem) ===== */
.bang-diem{background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:12px 14px;margin:0 0 12px;color:#5b3a0a;font-size:15px}
.bang-diem .bd-dau{font-weight:800;color:#92400e;font-size:16px;margin-bottom:8px}
.bang-diem .bd-hang{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:7px 0;border-top:1px dashed #fde68a}
.bang-diem .bd-hang.bd-tong{border-top:0;padding-top:0}
.bang-diem .bd-tong .bd-ten{font-weight:800;color:#92400e}
.bang-diem .bd-ten{min-width:0;font-weight:600}
.bang-diem label.bd-ten{margin:0;display:block;font-size:15px}
.bang-diem .bd-ten small{font-weight:500;color:#a16207;margin-left:4px;white-space:nowrap}
.bang-diem .bd-nhap{white-space:nowrap}
.bang-diem input.bd-o{width:84px;padding:6px 8px;font-size:16px;text-align:right;border:2px solid #fcd34d;border-radius:9px;background:#fff;margin:0 4px 0 0}
.bang-diem input.bd-o:focus{border-color:var(--xanh);outline:none}
.bang-diem input.bd-o::placeholder{color:#b8a27a}
.bang-diem .bd-tong input.bd-o{font-weight:800;color:var(--xanh-dam)}
.bang-diem .bd-moi{grid-column:1 / -1;font-size:13px;color:#a16207}
.bang-diem .bd-nut{border:1.5px solid #fcd34d;background:#fff;color:#92400e;border-radius:99px;padding:5px 11px;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.bang-diem .bd-nut:hover{background:#fef3c7}
.bang-diem .bd-tieu{margin:8px 0 2px;font-weight:700;color:#92400e}
.bang-diem .bd-tieu span{font-weight:500;font-size:13px;color:#a16207}
.bang-diem .bd-ket{margin-top:8px;color:#166534;font-weight:600}
.bang-diem .bd-loi{margin-top:8px;color:#b91c1c;font-weight:700}
.bang-diem .bd-ghi{margin-top:6px;font-size:13px;color:#a16207}
@media (min-width:620px){
  .bang-diem .bd-hang{grid-template-columns:minmax(0,1fr) auto 190px}
  .bang-diem .bd-moi{grid-column:auto}
}

/* ---------- giao-vien.css ---------- */
/* Giao dien trang giao vien HUEVERSE - tach ra tu giao-vien.html ngay 10/10/2026 (truoc nam trong <style>) */
  .dinh{position:relative}
  .nut-xuat{position:absolute;top:10px;right:10px;padding:7px 12px;font-size:13px;font-weight:700;cursor:pointer;
            font-family:inherit;border:0;border-radius:99px;background:rgba(255,255,255,.75);color:var(--xanh-dam)}
  .nut-xuat:hover{background:#fff}
  .nut-xuat.trai{right:auto;left:10px}
  .dinh .anh-logo{cursor:pointer}
  /* --- doi anh: avatar, anh trang chu, anh cau hoi vui --- */
  #manCat{z-index:60}
  .the-anh{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid var(--vien);
           border-radius:14px;margin-bottom:10px;background:#F0F8FD}
  .the-anh .xem{flex:none;width:92px;height:92px;border-radius:12px;object-fit:cover;background:#E3EEF6;
                border:2px solid #fff;box-shadow:var(--bong)}
  .the-anh .xem.tron{border-radius:50%}
  .the-anh .xem.doc{height:110px}
  .the-anh h3{margin:0;font-size:16px}
  .the-anh p{margin:2px 0 8px;font-size:13.5px;color:var(--chu-mo);line-height:1.4}
  .khung-cat{position:relative;margin:10px auto;overflow:hidden;border-radius:14px;background:#222;
             touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
  .khung-cat:active{cursor:grabbing}
  .khung-cat canvas{display:block;width:100%;height:100%}
  /* avatar: lam mo phan ngoai hinh tron de co thay dung phan se hien */
  .khung-cat.tron::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
                         box-shadow:0 0 0 999px rgba(255,255,255,.62);border:2px solid #fff}
  /* anh trang chu: danh dau cho se bi o loi chao (tren) va chu HUEVERSE (duoi) de len */
  .khung-cat .che{position:absolute;pointer-events:none;color:#fff;font-size:11px;font-weight:700;
                  display:flex;align-items:center;justify-content:center;text-align:center}
  .khung-cat .che.tren{top:4%;right:5%;width:60%;height:17%;background:rgba(255,255,255,.72);color:#135C8C;border-radius:12px}
  .khung-cat .che.duoi{left:0;right:0;bottom:0;height:24%;align-items:flex-end;padding-bottom:8px;
                       background:linear-gradient(to bottom,transparent,rgba(19,40,70,.78))}
  input[type=range]{width:100%;accent-color:var(--xanh)}
  table{width:100%;border-collapse:collapse;font-size:15px}
  th,td{padding:9px 8px;border-bottom:1px solid var(--vien);text-align:left;vertical-align:middle}
  th{background:#E9F3FB;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--chu-mo)}
  tbody tr:hover{background:#F0F8FD}
  .diem{font-weight:800}
  .diem.g{color:var(--luc)} .diem.k{color:var(--vang)} .diem.y{color:var(--do)}
  .o-so{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
  .o-so div{flex:1;min-width:120px;background:var(--the);border:1px solid var(--vien);
            border-radius:14px;padding:12px 14px;box-shadow:var(--bong)}
  .o-so b{display:block;font-size:26px;color:var(--xanh-dam)}
  .hang-nut{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
  select,.o-tim{width:auto;padding:8px 12px;font-size:15px;border-radius:10px}
  .chuyen{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--vien)}
  .chuyen:last-child{border-bottom:none}
  .chuyen input[type=checkbox]{width:20px;height:20px;flex:none;margin-top:2px}
  .man{position:fixed;inset:0;background:rgba(23,48,74,.5);display:none;z-index:50;padding:16px;overflow:auto}
  .man.hien{display:block}
  .hop{max-width:760px;margin:20px auto;background:#fff;border-radius:18px;padding:20px}
  .ra{border-left:5px solid var(--luc);padding:8px 12px;border-radius:8px;background:#F0F8FD;margin-bottom:8px}
  .ra.sai{border-left-color:var(--do)}
  .ra .t{font-weight:700;font-size:15px}
  .ra .n{font-size:14px;color:var(--chu-mo)}
  .trong{padding:26px;text-align:center;color:var(--chu-mo)}
  .tt{font-size:12px;font-weight:800;padding:3px 10px;border-radius:99px;white-space:nowrap}
  .tt.cho{background:#fef3c7;color:#92400e}
  .tt.duyet{background:#dcfce7;color:#166534}
  .tt.tu_choi{background:#fee2e2;color:#991b1b}
  .the-lop{display:inline-block;font-size:13px;font-weight:700;padding:3px 10px;border-radius:99px;
           background:var(--xanh-nhat);color:var(--xanh-dam);cursor:pointer;border:1px dashed #A9C8DE}
  .the-lop.trong{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}
  .thanh-chon{position:sticky;bottom:0;background:#fff;border-top:2px solid var(--xanh);
              padding:10px 12px;display:none;gap:8px;flex-wrap:wrap;align-items:center;
              box-shadow:0 -4px 16px rgba(19,92,140,.12);border-radius:14px 14px 0 0;z-index:15}
  .thanh-chon.hien{display:flex}
  input[type=checkbox].oc{width:19px;height:19px}
  .lop-goi{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
  .lop-goi button{padding:7px 14px;font-size:15px;border-radius:99px;border:2px solid var(--vien);
                  background:#fff;cursor:pointer;font-family:inherit}
  .lop-goi button:hover{border-color:var(--xanh)}

  /* --- the de --- */
  .the-de{background:var(--the);border:2px solid var(--vien);border-radius:var(--bo-goc);
          padding:16px;box-shadow:var(--bong);margin-bottom:12px}
  .the-de.an{opacity:.62;border-style:dashed}
  .the-de .dau{display:flex;align-items:flex-start;gap:12px}
  .the-de .bt{font-size:32px;line-height:1}
  .the-de h3{margin:0;font-size:18px}
  .the-de .mota{margin:2px 0 0;font-size:14px;color:var(--chu-mo)}
  .nhan{display:inline-block;font-size:12px;font-weight:800;padding:3px 9px;border-radius:99px;
        background:#E3EEF6;color:#4A6074;margin:6px 6px 0 0}
  .nhan.x{background:#dcfce7;color:#166534}
  .nhan.v{background:#fef3c7;color:#92400e}
  .nhan.d{background:#e0e7ff;color:#3730a3}
  textarea{width:100%;min-height:150px;padding:12px;font-size:14px;border:2px solid var(--vien);
           border-radius:12px;font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}
  textarea:focus{outline:none;border-color:var(--xanh)}
  .o-file{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .o-file input[type=file]{flex:1;min-width:200px;padding:8px;border:1.5px dashed var(--vien);border-radius:10px;background:transparent}
  /* --- bang "Tao bai bang AI" (06/10/2026) --- */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /* kiểu từng bước như FForm: mỗi lần một bước, thanh tiến độ ở trên, nút Quay lại / Tiếp cố định ở đáy */
  
  
  
  
  
  
  
  
  
  
  
  
  
  @keyframes aiHien{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  
  
  
  
  
  .cac-buoc{margin:12px 0 0;padding-left:22px;line-height:1.55;font-size:14.5px}
  .cac-buoc li{margin-bottom:6px}
  .loc-tm{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 6px}
  
  .loc-tm button.chon{background:var(--xanh);border-color:var(--xanh);color:#fff}
  .loc-tag{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 10px}
  .loc-tag button{padding:3px 10px;font-size:13px}
  .loc-tag button.chon{background:#e0e7ff;border-color:#6366f1;color:#3730a3}
  
  
  .nhan.tm{background:#fff7ed;color:#9a3412}
  .nhan.tg{background:#eef2ff;color:#4338ca;cursor:pointer}
  .tieu-tm{font-size:15px;font-weight:800;margin:18px 0 8px;display:flex;align-items:center;gap:8px}
  .tieu-tm .dem{font-weight:600;font-size:13px;opacity:.6}
  #timDe{width:100%;margin-top:10px}
  .buoc{font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
        color:var(--xanh);margin:18px 0 8px}
  
  
  
  
  /* --- cau tu luan --- */
  .nhan.tl{background:#fef3c7;color:#92400e}
  
  .ra.tl{border-left-color:var(--vang);background:#fffdf5}
  .ra.tl.xong{border-left-color:var(--luc)}
  .viet{white-space:pre-wrap;background:#fff;border:1px solid var(--vien);border-radius:8px;
        padding:8px 10px;margin-top:6px;font-size:15px}
  .hang-cham{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
  .hang-cham b{font-size:14px}
  input.o-diem{width:84px !important;padding:8px 10px !important;font-size:16px !important;
               text-align:center;font-weight:800}
  input.o-phe{flex:1;min-width:180px;width:auto !important;padding:8px 12px !important;font-size:15px !important}
  .nut-diem{padding:6px 10px;font-size:13px;font-weight:700;border-radius:99px;border:2px solid var(--vien);
            background:#fff;cursor:pointer;font-family:inherit;color:inherit}
  .nut-diem:hover{border-color:var(--xanh)}
  
  
  /* --- lop hoc online --- */
  .lop-goi button.chon{background:var(--xanh);border-color:var(--xanh);color:#fff}
  /* moi rieng tung hoc sinh */
  .moi-rieng{border:2px dashed var(--vien);border-radius:14px;padding:10px 12px;margin:4px 0 14px}
  .moi-rieng .dau-mr{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .moi-rieng .dau-mr b{color:var(--xanh-dam);font-size:15px}
  .moi-rieng .loc-hs{display:flex;gap:8px;flex-wrap:wrap}
  .moi-rieng .loc-hs input[type=text]{flex:1 1 200px;min-width:0;margin:0}
  .moi-rieng .loc-hs select{flex:0 1 190px;min-width:130px;margin:0}
  .moi-rieng .ds-hs button.khoa{cursor:not-allowed;border-style:dashed;background:#F3F7FA;color:#5C6F80}
  .moi-rieng .ds-hs button.khoa small{color:#b45309}
  .moi-rieng .ds-hs button.khoa:hover{border-color:var(--vien)}
  .moi-rieng .dem-hs{font-size:12.5px;margin-top:6px}
  .moi-rieng .da-chon{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .moi-rieng .da-chon span{background:var(--xanh-nhat);color:var(--xanh-dam);border-radius:99px;padding:4px 6px 4px 12px;font-size:14px;
                           font-weight:700;display:inline-flex;align-items:center;gap:4px}
  .moi-rieng .da-chon span button{border:0;background:none;cursor:pointer;font-size:15px;line-height:1;padding:2px 5px;color:var(--xanh-dam);border-radius:99px}
  .moi-rieng .da-chon span button:hover{background:#fff}
  .moi-rieng .khung-hs{margin-top:10px}
  .moi-rieng .khung-hs input[type=text]{margin:0}
  .moi-rieng .ds-hs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;max-height:200px;overflow:auto;padding:2px;align-content:flex-start}
  .moi-rieng .ds-hs button{padding:6px 12px;font-size:14.5px;border-radius:99px;border:2px solid var(--vien);background:#fff;
                           cursor:pointer;font-family:inherit;text-align:left}
  .moi-rieng .ds-hs button small{color:var(--chu-mo);font-size:12.5px}
  .moi-rieng .ds-hs button:hover{border-color:var(--xanh)}
  .moi-rieng .ds-hs button.chon{background:var(--xanh);border-color:var(--xanh);color:#fff}
  .moi-rieng .ds-hs button.chon small{color:#E0F1FB}
  .the-phong .bt{font-size:30px}
  /* --- thu muc lop co nhanh con --- */
  .cay-hang{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 6px;border-bottom:1px solid var(--vien)}
  .cay-hang:hover{background:#F0F8FD}
  .cay-ten{flex:1;min-width:140px;font-size:16px}
  .cay-nut{display:flex;gap:4px;flex-wrap:wrap}
  .lop-tick-hang{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--vien)}
  /* --- bang cong tru diem ne nep --- */
  .nn-luat{display:inline-flex;margin:0 8px 8px 0;border-radius:99px;overflow:hidden;border:2px solid var(--vien);background:#fff}
  .nn-luat button{border:0;background:transparent;font-family:inherit;font-size:15px;padding:7px 12px;cursor:pointer;color:inherit}
  .nn-luat button.sua{padding:7px 9px;border-left:1px solid var(--vien);font-size:13px}
  .nn-luat.cong{border-color:#86efac;background:#f0fdf4;color:#166534}
  .nn-luat.tru{border-color:#fca5a5;background:#fef2f2;color:#991b1b}
  .nn-luat button:hover{filter:brightness(.95);background:rgba(0,0,0,.04)}
  #nnKy button.chon{background:var(--xanh);border-color:var(--xanh);color:#fff}
  @media(max-width:700px){
    .tab{flex-wrap:wrap}
    .tab button{font-size:13.5px;padding:11px 3px}
    .an-nho{display:none}
    th,td{padding:8px 5px;font-size:14px}
    #bangHS td:nth-child(2){min-width:92px}
    #bangHS td:last-child{white-space:normal !important;min-width:118px}
    #bangHS td:last-child .nut{margin:2px 2px 0 0}
  }
  /* ---- 🎮 Trò chơi (08/10/2026) ---- */
  .ds-game-gv{display:flex;flex-direction:column;gap:10px}
  .game-gv{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1.5px solid var(--vien);background:#fff;flex-wrap:wrap}
  .game-gv.bat{border-color:#86efac;background:#f6fef9}
  .gg-icon{font-size:32px;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#EAF4FB;flex:none}
  .gg-chu{flex:1;min-width:150px;display:flex;flex-direction:column;line-height:1.3}
  .gg-chu b{font-size:16.5px}
  .cong-tac{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer;font-weight:700}
  .cong-tac input{position:absolute;opacity:0;width:1px;height:1px}
  .cong-tac span{width:48px;height:28px;border-radius:99px;background:#e5d5dd;position:relative;transition:background .15s;flex:none}
  .cong-tac span::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
  .cong-tac input:checked + span{background:#22c55e}
  .cong-tac input:checked + span::after{left:23px}
  .cong-tac input:focus-visible + span{outline:3px solid #93C5E8}
  .cong-tac small{font-size:13.5px;color:var(--chu-mo)}
  @media(max-width:560px){ .game-gv .nut{order:3} .cong-tac{order:4;margin-left:auto} }

  /* --- PHAN TICH CAU SAI (12/10/2026): bam vao cau de thay ai sai --- */
  #manPhanTich{z-index:45}                 /* thap hon #manBai (50) de bam "Xem bai" thi bai hien len tren */
  .pt-tong{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
  .pt-tong div{flex:1;min-width:110px;background:#F0F8FD;border:1px solid var(--vien);border-radius:12px;padding:8px 12px}
  .pt-tong b{display:block;font-size:22px;color:var(--xanh-dam)}
  .pt-tab{display:flex;gap:8px;margin:10px 0}
  .pt-tab button{padding:8px 16px;font-size:15px;border-radius:99px;border:2px solid var(--vien);background:#fff;cursor:pointer;font-family:inherit;font-weight:700}
  .pt-tab button.chon{border-color:var(--xanh);background:var(--xanh-nhat);color:var(--xanh-dam)}
  .pt-cau{border:1.5px solid var(--vien);border-radius:12px;margin-bottom:8px;background:#fff;overflow:hidden}
  .pt-cau.mo{border-color:var(--xanh)}
  .pt-dau{display:flex;gap:10px;align-items:center;padding:10px 12px;cursor:pointer}
  .pt-dau:hover{background:#F0F8FD}
  .pt-so{flex:none;min-width:58px;font-weight:800;color:var(--xanh-dam)}
  .pt-chu{flex:1;min-width:0;font-size:14px;color:var(--chu-mo);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pt-ti{flex:none;width:150px}
  .pt-ti .vach{display:block;height:9px;border-radius:5px;background:#E3EEF6;overflow:hidden}
  .pt-ti .vach i{display:block;height:100%;border-radius:5px;background:var(--do)}
  .pt-ti .vach i.vua{background:var(--vang)}
  .pt-ti .vach i.it{background:var(--luc)}
  .pt-ti small{display:block;font-size:12px;font-weight:700;margin-top:2px;color:var(--chu-mo)}
  .pt-than{display:none;padding:4px 14px 14px;border-top:1px dashed var(--vien)}
  .pt-cau.mo .pt-than{display:block}
  .pt-de{font-size:15px;font-weight:600;margin:8px 0}
  .pt-lua{display:flex;align-items:center;gap:8px;font-size:14px;margin:3px 0}
  .pt-lua .ten{flex:none;width:40%;min-width:120px;overflow:hidden;text-overflow:ellipsis}
  .pt-lua .vach{flex:1;height:8px;border-radius:5px;background:#E3EEF6;overflow:hidden}
  .pt-lua .vach i{display:block;height:100%;background:#A9C8DE}
  .pt-lua.dung .vach i{background:var(--luc)}
  .pt-lua.dung .ten{font-weight:800;color:#166534}
  .pt-lua b.so{flex:none;width:34px;text-align:right}
  .pt-em{padding:7px 10px;border-radius:8px;background:#F0F8FD;margin:5px 0;font-size:14px}
  .pt-em .ten{font-weight:800}
  .pt-em .nho{color:var(--chu-mo);font-size:12.5px}
  .pt-em .bai-nut{float:right;font-size:12.5px}
  .pt-chip{display:inline-block;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:#fee2e2;color:#991b1b;margin:2px 4px 2px 0;cursor:pointer}
  .pt-chip:hover{background:#fecaca}
  .pt-tot{font-size:13.5px;color:#166534;background:#dcfce7;border-radius:10px;padding:8px 12px;margin:8px 0}

  /* --- cong tac chung phan tro choi (12/10/2026) --- */
  .game-tong{border:2px solid var(--vien);border-radius:16px;padding:12px 14px;background:#F0F8FD}
  .game-tong.bat{border-color:#86efac;background:#f0fdf4}
  .ds-game-gv.mo-di{opacity:.5}

/* 13/10/2026: hộp cộng / trừ điểm - ô số + 2 nút ＋ − */
.nn-cong-tru{display:flex;gap:10px;align-items:stretch}
.nn-cong-tru input{flex:1;min-width:0;font-size:20px;font-weight:700;text-align:center}
.nn-ct{width:64px;border:none;border-radius:14px;font-size:30px;font-weight:800;color:#fff;cursor:pointer;line-height:1}
.nn-ct.cong{background:#2e9e5b}.nn-ct.tru{background:#d9435a}
.nn-ct:active{transform:scale(.94)}

/* 14/10/2026: tạo đề y nguyên từ file Word / PDF */

/* 15/10/2026: danh sách các đề đang tạo */

.hd-dau{font-weight:800;font-size:14px}
.hd-dau span{font-weight:600;color:var(--chu-mo);font-size:13px;margin-left:6px}
.hd{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border-radius:10px;background:#fff;border:1.5px solid var(--vien)}
.hd.xong{border-color:#86efac;background:#f6fef9}
.hd.loi{border-color:#fca5a5;background:#fef2f2}
.hd.dang{border-color:var(--xanh)}
.hd.luu{opacity:.7}
.hd-ten{flex:1 1 180px;font-weight:700;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hd-tt{flex:2 1 220px;font-size:13px;color:var(--chu-mo)}
.hd.loi .hd-tt{color:#b91c1c}
.hd.xong .hd-tt{color:#047857;font-weight:700}
.hd-nut{display:flex;gap:6px}
.hd-nut .nut{margin:0;padding:6px 10px;font-size:13px}

/* ===== 16/10/2026: NHIỀU ĐỀ — MỖI ĐỀ MỘT TAB NHƯ TRÌNH DUYỆT (de-nhieu-tab.js) ===== */

.dt{flex:0 1 210px;min-width:118px;display:flex;align-items:center;gap:6px;height:40px;padding:0 4px 0 12px;border-radius:12px 12px 0 0;
  cursor:pointer;font-size:13.5px;font-weight:700;color:var(--chu-mo);user-select:none;position:relative;transition:background .12s}
.dt:hover{background:#D8E6F0}
.dt.on{background:#fff;color:var(--chu);box-shadow:0 -2px 0 var(--xanh) inset, 0 -1px 4px rgba(19,92,140,.08)}
.dt-i{flex:0 0 auto;font-size:14px}
.dt.dang .dt-i{animation:dtNhip 1.1s ease-in-out infinite}
@keyframes dtNhip{50%{opacity:.35}}
.dt.xong:not(.on) .dt-ten{color:var(--xanh-dam)}
.dt.loi .dt-ten{color:#b91c1c}
.dt.luu .dt-ten{opacity:.7}
.dt-ten{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dt-x{flex:0 0 auto;border:none;background:none;width:26px;height:26px;border-radius:50%;cursor:pointer;color:inherit;font-size:17px;line-height:1;padding:0;margin:0}
.dt-x:hover{background:#ecd0dd;color:#b91c1c}
.dt-moi{flex:0 0 auto;width:38px;height:34px;margin:0 0 3px 4px;border:none;border-radius:10px;background:transparent;font-size:22px;line-height:1;
  cursor:pointer;color:var(--xanh);font-weight:700;padding:0}
.dt-moi:hover{background:#D8E6F0}

@media(max-width:640px){.dt{flex-basis:150px;min-width:96px;padding-left:9px;font-size:13px}}

/* ô trạng thái "việc" ở đầu mỗi tab (đề từ file / đề tương tự / nhiều đề từ chủ đề) */

.dv-chu{flex:1 1 260px;display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.45}
.dv-chu span{color:var(--chu-mo)}

.dv-nut{display:flex;gap:6px;flex-wrap:wrap}
.dv-nut .nut{margin:0}

.dv-dong{cursor:pointer;text-decoration:underline;font-weight:700}

/* chọn thêm đề tương tự từ file */

@keyframes aiNhay{50%{box-shadow:0 0 0 4px var(--xanh-nhat), 0 0 0 6px var(--xanh)}}

/* hộp chọn: 1 đề / nhiều đề / nhiều đề từ 1 nội dung */

/* ===== 16/10/2026: 💾 Lưu tất cả + thư mục đích ở hộp chọn ===== */
.de-luu-het{margin:0 0 0 auto !important;white-space:nowrap}

/* ===== 16/10/2026: 📁 THƯ MỤC ĐỀ kiểu File trên máy tính (thu-muc-de.js) ===== */
.tm-hop{max-width:900px;display:flex;flex-direction:column;gap:10px;min-height:min(560px, calc(100dvh - 72px))}
.tm-thanh{display:flex;gap:8px;align-items:center;background:#F2F7FB;border:1px solid var(--vien);border-radius:12px;padding:6px 8px}
.tm-len{margin:0 !important;flex:0 0 auto}
.tm-len:disabled{opacity:.4;cursor:default}
.tm-duong{flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow-x:auto;white-space:nowrap;scrollbar-width:thin}
.tm-dd{border:none;background:none;font-family:inherit;font-size:14.5px;font-weight:700;color:var(--xanh-dam);padding:6px 8px;border-radius:8px;cursor:pointer}
.tm-dd:hover{background:#D5E4EF}
.tm-dd:last-child{color:var(--chu)}
.tm-mui{color:var(--chu-mo);font-weight:700}
.tm-cong-cu{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tm-cong-cu .nut{margin:0}
.tm-dem{margin-left:auto;font-size:13px;color:var(--chu-mo);font-weight:600}
.tm-luoi{flex:1;display:grid;grid-template-columns:repeat(auto-fill, minmax(132px, 1fr));gap:10px;align-content:start;
  padding:12px;border:1.5px solid var(--vien);border-radius:14px;background:#fff;min-height:240px;overflow:auto}
.tm-o{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:12px 8px 10px;border-radius:12px;
  border:1.5px solid transparent;cursor:pointer;user-select:none;transition:background .1s,border-color .1s}
.tm-o:hover{background:#EEF5FA}
.tm-bt{font-size:40px;line-height:1.1}
.tm-thu .tm-bt{filter:drop-shadow(0 2px 2px rgba(19,92,140,.15))}
.tm-ten{font-size:13.5px;font-weight:700;line-height:1.3;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tm-phu{font-size:12px;color:var(--chu-mo)}
.tm-de.chon{background:var(--xanh-nhat);border-color:var(--xanh)}
.tm-de.an .tm-bt{opacity:.45}
.tm-o.tha,.tm-dd.tha{background:#E0F1FB;border-color:var(--xanh);outline:2px dashed var(--xanh);outline-offset:-3px}
.tm-o.dang-keo{opacity:.4}
.tm-trong{grid-column:1/-1;text-align:center;color:var(--chu-mo);padding:40px 10px;margin:0}
.tm-chon{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px;padding:8px 10px;border-radius:12px;background:#F2F7FB;font-size:13.5px}
.tm-chon .nut{margin:0}
.tm-chon b{margin-right:4px}
.tm-goi{color:var(--chu-mo)}
@media(max-width:640px){
  .tm-luoi{grid-template-columns:repeat(auto-fill, minmax(100px, 1fr));padding:8px;gap:6px}
  .tm-bt{font-size:34px}
  .tm-dem{margin-left:0;flex-basis:100%}
}
/* 16/10/2026: báo câu lặp lại trong đề */
.canh-trung{margin:0 0 12px;line-height:1.6}
.canh-trung .nut{margin:0 4px}

/* ===== 16/10/2026: độ khó 1–5 sao ===== */

.nhan.sao-the{display:inline-flex;align-items:center;gap:0;background:#fff7e6;color:#92400e;padding:1px 8px 1px 4px}
.nhan.sao-the button{border:none;background:none;padding:0 1px;font-size:14px;line-height:1;cursor:pointer;color:#e9d7c0}
.nhan.sao-the button.on{color:#f5a623}
.hang-tim-de{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}
.hang-tim-de input{flex:1 1 260px;margin:0}
.hang-tim-de select{flex:0 0 auto;width:auto;margin:0}
.hang-tim-de{margin-top:10px}
.hang-tim-de #timDe{width:auto;margin-top:0}
.tm-sao{font-size:12px;color:#f5a623;letter-spacing:1px}

/* ---------- gv-dien-thoai.css ---------- */
/* ===== Trang giáo viên trên điện thoại (13/10/2026) =====
   Nạp SAU vu-tru.css. Bảng nhiều cột -> mỗi em / mỗi bài là một thẻ gọn, nút xếp hàng ngang bên dưới,
   không còn nút bị che ở mép phải. */
@media (max-width:700px){
  .boc-rong{padding:12px 10px}
  /* đầu trang gọn hơn */
  .dinh{padding:10px 12px 4px !important}
  .dinh .anh-logo{width:58px !important;height:58px !important}
  .dinh h1.ten-web{font-size:19px !important;margin-top:4px !important}
  .dinh p{font-size:13px;margin-top:2px}
  .dinh .nut-xuat{font-size:12.5px;padding:6px 10px}

  /* 6 tab: lưới 3 cột, chữ một dòng */
  .tab{display:grid !important;grid-template-columns:repeat(3,1fr);gap:4px !important;border-radius:22px !important;padding:5px !important}
  .tab button{font-size:13px !important;padding:8px 3px !important;line-height:1.25;border-radius:16px !important}

  /* ô số liệu: 4 ô nhỏ trên 2 hàng gọn */
  .o-so{gap:8px}
  .o-so div{min-width:calc(50% - 4px) !important;padding:10px 12px !important}
  .o-so b{font-size:21px !important}
  .o-so .mo{font-size:12.5px}

  /* hàng nút / ô lọc */
  .hang-nut{gap:8px}
  .hang-nut select{flex:1 1 45%;min-width:0}
  .hang-nut .o-tim{flex:1 1 100%;min-width:0}

  /* ---------- bảng -> thẻ ---------- */
  #bangHS tr,#bangKQ tr,#bangGiao tr,#nnBang tr{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 14px;border-bottom:1px solid var(--vien)}
  #bangHS td,#bangKQ td,#bangGiao td,#nnBang td{padding:0 !important;border:0 !important;min-width:0 !important;white-space:normal !important;font-size:15px}
  #bangHS tr:last-child,#bangKQ tr:last-child,#bangGiao tr:last-child,#nnBang tr:last-child{border-bottom:0}

  /* Học sinh: ☐ Tên ......... lớp | trạng thái — dưới là hàng nút */
  #bangHS td:nth-child(2){flex:1 1 120px}
  #bangHS td:nth-child(2) b{font-size:16px}
  #bangHS td:last-child{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px}
  #bangHS td:last-child .nut{flex:1 1 0;margin:0 !important;min-width:64px;padding:9px 6px;font-size:13.5px;white-space:nowrap;justify-content:center;text-align:center}
  #bangHS td:last-child .nut.an-nho{display:inline-flex}

  /* thanh tiêu đề của bảng Học sinh / Nề nếp: chỉ giữ ô "chọn hết" */
  table:has(#bangHS) thead tr,table:has(#nnBang) thead tr{display:flex;align-items:center;padding:10px 14px}
  table:has(#bangHS) thead th,table:has(#nnBang) thead th{display:none;padding:0 !important;border:0 !important}
  table:has(#bangHS) thead th:first-child,table:has(#nnBang) thead th:first-child{display:flex;align-items:center;gap:8px;width:auto !important}
  table:has(#bangHS) thead th:first-child::after,table:has(#nnBang) thead th:first-child::after{content:"Chọn tất cả";text-transform:none;letter-spacing:0;font-weight:600}

  /* Kết quả: Tên ...... điểm / đề / nộp lúc + Xoá */
  table:has(#bangKQ) thead,table:has(#bangGiao) thead{display:none}
  #bangKQ td:nth-child(1){display:none}
  #bangKQ td:nth-child(2){order:1;flex:1 1 140px}
  #bangKQ td:nth-child(5){order:2;font-size:19px;white-space:nowrap !important}
  #bangKQ td:nth-child(4){order:3;flex:1 1 100%;font-size:14px}
  #bangKQ td:nth-child(9){order:4;flex:1;font-size:13px;color:var(--chu-mo)}
  #bangKQ td:nth-child(10){order:5}

  /* Bài đã giao: đề (cả dòng) / lớp, hạn nộp, Gỡ */
  #bangGiao td:nth-child(1){flex:1 1 100%;white-space:normal !important}
  #bangGiao td:nth-child(2){flex:1}
  #bangGiao td:nth-child(4){font-size:14px}

  /* Nề nếp: ☐ Tên ....... điểm — dưới là Ghi điểm + sổ */
  #nnBang td:nth-child(2){display:none}
  #nnBang td:nth-child(3){flex:1 1 120px}
  #nnBang td:nth-child(3) b{font-size:16px}
  #nnBang td:nth-child(7){font-size:20px !important}
  #nnBang td:last-child{flex:1 1 100%;display:flex;gap:8px}
  #nnBang td:last-child .nut{flex:1;margin:0 !important;justify-content:center;padding:9px 8px}
  #nnBang td:last-child .nut-xam{flex:0 0 auto}

  /* thẻ đề: nút chia đều 2 cột cho dễ bấm */
  .the-de .hang-nut{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .the-de .hang-nut .nut{margin:0 !important;justify-content:center;text-align:center;padding:9px 6px}

  /* hộp hiện lên (cộng/trừ điểm, cài đặt đề...) vừa màn hình */
  .man .hop{width:calc(100vw - 20px) !important;max-width:none !important;padding:18px 16px !important;max-height:calc(100dvh - 20px);overflow:auto}
}

/* ============================================================
   20/10/2026: DONG BO TU HUEVERSE (giao-vien.css) - hop tao de: 📤 Up de co san, 📎 Gui kem tai lieu,
   hang Ten de + sao / Noi dung + 📎 gon, bo o Hoi AI nao. Chep tay 20/10/2026; lan sau xem Taode/tools/doi_chieu_hueverse.py.
   ============================================================ */

/* ============================================================
   HỘP "TẠO BÀI BẰNG AI" GỌN ĐẸP HƠN TRÊN ĐIỆN THOẠI (21/10/2026, Toanr yêu cầu)
   Chỉ bố cục / cỡ chữ / khoảng cách, không đổi màu, không đổi chức năng. HUEVERSE: cùng khối ở Unit2Web/public/giao-vien.css.
   ============================================================ */


/* 21/10/2026: trang Tạo đề không gắn tệp nghe / hình → ẩn đoạn hướng dẫn về tệp (hộp dùng chung với HUEVERSE) */
.chi-co-tep{display:none}
