/* Ngân hàng đề theo môn — bản S12.
   Mực xanh đậm trên nền giấy lạnh; vàng phấn chỉ đánh dấu mục đang chọn; xanh lá là "đã duyệt".
   S14a: cùng bảng màu với khung chung (khung.css) và các trang cũ (chung.css): navy #12283f, vàng #e9b949, trắng;
   phông Be Vietnam Pro (phong.css). Thanh đầu trang cũ nhường chỗ cho thanh menu bên trái.
   S12 thêm: chip năng lực, khung Phụ lục III, bộ đề cố định (đề in, đáp án, phiếu trả lời), màn Quy định. */
:root {
  --muc: #12283f;
  --muc-nhat: #4a5a75;
  --giay: #f4f6f9;
  --trang: #ffffff;
  --ke: #d3dae4;
  --phan: #e9b949;
  --phan-nhat: #fdf6e3;
  --duyet: #1e8a5a;
  --mo: #9aa5b4;
  --loi: #b42318;
  --chu: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { font-size: 15px; }
body { margin: 0; font-family: var(--chu); color: var(--muc); background: var(--giay); line-height: 1.5; }
.an { display: none !important; }
.chi-doc-man-hinh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--phan); outline-offset: 2px; }

/* ----- nút và ô nhập ----- */
.nut { font: inherit; font-weight: 600; padding: 0.5rem 0.9rem; border-radius: 6px; border: 1.5px solid var(--muc); cursor: pointer; background: var(--trang); color: var(--muc); }
.nut:disabled { opacity: 0.55; cursor: default; }
.nut-chinh { background: var(--muc); color: var(--trang); }
.nut-chinh:hover { background: #1c3a5c; }
.nut-phu:hover { background: var(--phan-nhat); }
.nut-tro { border-color: transparent; color: var(--muc-nhat); }
.nut-tro:hover { text-decoration: underline; }
.nhan { display: block; font-weight: 600; margin: 0.9rem 0 0.3rem; padding: 0; }
.o-nhap { font: inherit; color: inherit; width: 100%; padding: 0.5rem 0.65rem; border: 1.5px solid var(--ke); border-radius: 6px; background: var(--trang); }
.o-nhap:focus { border-color: var(--muc); }
textarea.o-nhap { resize: vertical; }
.o-ngan { width: auto; min-width: 9rem; }
.loi { color: var(--loi); font-weight: 600; margin: 0.6rem 0 0; min-height: 1.3em; }

/* ----- đăng nhập ----- */
/* S14a3: khung đăng nhập nhúng (mon.html mở khi chưa đăng nhập) và trang đăng ký cùng kiểu trang đăng nhập mới (dang-nhap.css): nền navy, thẻ trắng */
.dang-nhap { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; background: #12283f; }
.khung-dn { width: min(26rem, 100%); background: var(--trang); border: 0; border-radius: 16px; padding: 2rem; }
.khung-dn input.o-nhap, .khung-dn select.o-nhap { min-height: 48px; padding: 0 14px; border: 1px solid #cbd2db; border-radius: 10px; font-size: 16px; }
.khung-dn textarea.o-nhap { padding: 10px 14px; border: 1px solid #cbd2db; border-radius: 10px; font-size: 16px; }
.khung-dn .o-nhap:focus { outline: none; border-color: var(--muc); box-shadow: 0 0 0 3px rgba(233, 185, 73, .45); }
.dn-logo { display: block; width: 56px; height: 56px; margin: 0 0 0.8rem; }
.dn-tieu-de { margin: 0; font-size: 1.5rem; line-height: 1.25; }
.dn-mo-ta { margin: 0.4rem 0 0.6rem; color: var(--muc-nhat); }
.khung-dn .nut-chinh { width: 100%; margin-top: 0.4rem; min-height: 50px; padding: 0.65rem; border-radius: 10px; font-size: 16px; }

/* ----- thanh đầu: chỉ còn nút menu và đường dẫn (khung.css, lớp .kh-dau) ----- */

/* ----- bố cục hai cột ----- */
.than { display: grid; grid-template-columns: 19.5rem minmax(0, 1fr); align-items: start; }
.cot-bai { position: sticky; top: var(--cao-dau, 3.6rem); max-height: calc(100vh - var(--cao-dau, 3.6rem)); overflow-y: auto; padding: 1rem 0.9rem 2rem 1.2rem; border-right: 1.5px solid var(--ke); background: var(--giay); }
.noi-dung { padding: 1.3rem 1.6rem 4rem; max-width: 62rem; min-width: 0; }
.noi-dung:focus { outline: none; }

.chon-khoi { display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.6rem; }
.nhan-khoi { font-weight: 600; margin-right: 0.3rem; }
.nut-nap { margin-left: auto; padding: 0.25rem 0.5rem; font-size: 0.88rem; }
.the-khoi { font: inherit; font-weight: 700; width: 2.4rem; height: 2.4rem; border: 1.5px solid var(--ke); border-radius: 6px; background: var(--trang); color: var(--muc); cursor: pointer; }
.the-khoi:hover { border-color: var(--muc); }
.the-khoi.dang-chon { background: var(--phan); border-color: var(--muc); }

.ten-nhom { margin: 1.1rem 0 0.35rem; font-size: 0.87rem; font-weight: 600; color: var(--muc-nhat); }
.bai-list { list-style: none; margin: 0; padding: 0; }
.bai { display: block; width: 100%; text-align: left; font: inherit; color: var(--muc); background: transparent; border: 0; border-left: 4px solid transparent; padding: 0.45rem 0.6rem 0.5rem; cursor: pointer; border-radius: 0 6px 6px 0; }
.bai:hover { background: var(--trang); }
.bai.dang-chon { background: var(--trang); border-left-color: var(--phan); font-weight: 700; }
.bai-ten { display: block; }

/* thanh độ phủ: mỗi đoạn là một yêu cầu cần đạt của bài */
.do-phu { display: flex; gap: 2px; margin-top: 0.35rem; }
.doan { width: 0.9rem; height: 0.4rem; border-radius: 1px; background: var(--trang); border: 1px solid var(--mo); }
.doan-nhap { background: var(--phan); border-color: #b78600; }
.doan-duyet { background: var(--duyet); border-color: var(--duyet); }

/* ----- nội dung bài ----- */
.ten-bai { margin: 0; font-size: 1.55rem; line-height: 1.25; }
.phu-bai { margin: 0.25rem 0 1.1rem; color: var(--muc-nhat); }
.ten-muc { margin: 1.8rem 0 0.6rem; font-size: 1.1rem; }
.trong { color: var(--muc-nhat); max-width: 46rem; }

.cuon-ngang { position: relative; overflow-x: auto; border: 1.5px solid var(--ke); border-radius: 8px; background: var(--trang); }
.bang { width: 100%; border-collapse: collapse; }
.bang th { text-align: left; font-size: 0.87rem; font-weight: 600; color: var(--muc-nhat); padding: 0.55rem 0.8rem; border-bottom: 1.5px solid var(--ke); white-space: nowrap; }
.bang td { padding: 0.6rem 0.8rem; border-bottom: 1px solid var(--ke); vertical-align: top; }
.bang tr:last-child td { border-bottom: 0; }
.bang .cot-hep { white-space: nowrap; }
.bang .cot-so { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.bang .so-khong { color: var(--mo); font-weight: 400; }
.bang .cot-nut { text-align: right; white-space: nowrap; }
.bang .cot-nut .nut { padding: 0.3rem 0.7rem; }
.bang tr.dang-soan td { background: var(--phan-nhat); }
.ma-yc { display: block; font-size: 0.82rem; font-weight: 600; color: var(--muc-nhat); font-variant-numeric: tabular-nums; }
.nd-yc { display: block; max-width: 46rem; }
.ma-cau { font-variant-numeric: tabular-nums; font-weight: 600; }

.tt { display: inline-block; padding: 0.1rem 0.55rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; border: 1.5px solid var(--ke); color: var(--muc-nhat); }
.tt-cho_duyet { border-color: #b78600; background: var(--phan-nhat); color: var(--muc); }
.tt-da_duyet { border-color: var(--duyet); color: var(--duyet); }

/* ----- nút AI ----- */
.nut-ai { border-color: var(--duyet); color: var(--duyet); }
.nut-ai:hover { background: #e6f4ec; }
.nut-rong { width: 100%; margin-bottom: 0.8rem; }

/* ----- form câu dùng chung, tự luận, AI ----- */
.o-diem { width: auto; min-width: 6rem; }
.tieu-chi { border: 0; margin: 0; padding: 0; }
.dong-tc { display: grid; grid-template-columns: 1fr 7rem; gap: 0.5rem; margin-bottom: 0.4rem; }
.dong-y { display: grid; grid-template-columns: 1.6rem 1fr 6rem 9rem; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
@media (max-width: 860px) { .dong-y { grid-template-columns: 1.6rem 1fr; } .dong-y select { grid-column: 2; } .dong-pa { grid-template-columns: auto 1.4rem 1fr; } .dong-pa .anh-o { grid-column: 3; } }
.soan-ai { border-left-color: var(--duyet); }
.ai-ghi-chu { margin: 0.3rem 0 0; color: var(--muc-nhat); }
.ai-ket-qua { max-width: 52rem; }
.ai-cau { margin-top: 0.9rem; padding: 0.4rem 1.2rem 1rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 6px solid var(--duyet); border-radius: 8px; }
.ai-dau { margin: 0.7rem 0 0; font-weight: 700; }

/* ----- màn ma trận ----- */
.mt-phu { display: block; font-size: 0.85rem; color: var(--muc-nhat); font-weight: 400; }
.mt-mau { margin: 0.6rem 0 0.2rem; }
.mt-mau-mo-ta { margin: 0.3rem 0; color: var(--muc-nhat); }
.mt-dang { list-style: none; margin: 0.3rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.mt-dang-chip { padding: 0.15rem 0.6rem; border: 1.5px solid var(--muc); border-radius: 999px; font-size: 0.88rem; font-weight: 600; }
.mt-dang-chua { border-color: var(--mo); color: var(--muc-nhat); border-style: dashed; }
.mt-hang-bai { align-items: center; gap: 0.2rem 0.4rem; margin-top: 0.9rem; }
.mt-hang-bai .nhan { margin: 0 0.4rem 0 0; }
.mt-dem { color: var(--muc-nhat); margin-left: auto; }
.mt-bai { columns: 2; column-gap: 1.5rem; }
.mt-bai .ten-nhom { break-after: avoid; margin-top: 0.5rem; }
.mt-bai-list { list-style: none; margin: 0 0 0.6rem; padding: 0; }
.mt-bai-list li { display: flex; align-items: flex-start; gap: 0.4rem; padding: 0.15rem 0; break-inside: avoid; }
.mt-bai-list input { margin-top: 0.3rem; accent-color: var(--muc); }
.mt-tiet { color: var(--muc-nhat); }
.mt-dau { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.6rem 1rem; }
.mt-kiem-tra { margin: 0.6rem 0 1rem; }
.mt-loi-dong { margin: 0.3rem 0; padding: 0.45rem 0.8rem; background: #fde8e6; border-left: 4px solid var(--loi); border-radius: 0 6px 6px 0; }
.mt-canh-bao { margin: 0.3rem 0; padding: 0.45rem 0.8rem; background: var(--phan-nhat); border-left: 4px solid var(--phan); border-radius: 0 6px 6px 0; }
.mt-du { margin: 0.3rem 0; padding: 0.45rem 0.8rem; background: #e6f4ec; border-left: 4px solid var(--duyet); border-radius: 0 6px 6px 0; font-weight: 600; }
.mt-ghi-chu { color: var(--muc-nhat); font-size: 0.9rem; }
.tt-thieu { border-color: var(--loi); color: var(--loi); }
.tt-yeu { border-color: #b78600; color: #7a5a00; }
.bang-mt th, .bang-mt td { border: 1px solid var(--ke); }
.bang-mt th { text-align: center; vertical-align: middle; }
.bang-mt .mt-muc { font-size: 0.8rem; font-weight: 600; }
.bang-mt .mt-diem { font-weight: 400; color: var(--muc-nhat); font-size: 0.82rem; }
.bang-mt tr.mt-tong td { font-weight: 700; background: var(--giay); }
.bang-mt .mt-cot-yccd { min-width: 22rem; }
.mt-yccd { margin: 0; padding-left: 1.1rem; font-size: 0.9rem; }
.bang-mt td:nth-child(2) { min-width: 9rem; }
.bang-mt td:nth-child(3) { min-width: 11rem; }
.mt-thieu { margin: 0.6rem 0; }
.mt-thieu summary { cursor: pointer; font-weight: 600; padding: 0.45rem 0.8rem; background: #fde8e6; border-left: 4px solid var(--loi); border-radius: 0 6px 6px 0; }
.mt-thieu[open] summary { margin-bottom: 0.5rem; }
.mt-thieu-yeu summary { background: var(--phan-nhat); border-left-color: var(--phan); }

.mt-dang-vi-pham { border-color: var(--loi); color: var(--loi); }
.mt-quy-dinh { margin: 0.4rem 0 0.2rem; padding: 0.45rem 0.8rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 4px solid var(--muc); border-radius: 0 6px 6px 0; }
.nut-lien-ket { padding: 0 0.2rem; font-weight: 600; color: var(--muc); text-decoration: underline; }
.nut-chinh.nut-lien-ket { color: var(--trang); text-decoration: none; }   /* 0.14.1: nút chính kiểu liên kết (Dùng cho kiểm tra online) giữ chữ trắng trên nền đậm */
.mt-tieu-de-in { margin: 0 0 0.4rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.mt-in { margin-top: 0.6rem; }
#mt-khung { font-size: 0.9rem; max-width: 20rem; }

/* khung Phụ lục III: ô ghi số câu, dòng dưới là mã năng lực */
.bang-pl3 th { font-size: 0.82rem; padding: 0.35rem 0.4rem; white-space: normal; }
.bang-pl3 td { padding: 0.35rem 0.45rem; font-size: 0.92rem; }
.bang-pl3 .mt-nl { font-size: 0.78rem; font-weight: 400; color: var(--muc-nhat); white-space: nowrap; }
.bang-pl3 .mt-chu-de { font-weight: 600; min-width: 8rem; }
.bang-pl3 .mt-nd { min-width: 11rem; }
.bang-pl3 .mt-cau { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bang-pl3 .mt-cot-yccd { min-width: 20rem; font-size: 0.88rem; }
.bang-pl3 td.cot-so { text-align: center; }
.bang-pl3 tr.mt-tong td.cot-so { text-align: center; }

/* ----- chip thành phần năng lực, ghi chú form ----- */
.nang-luc { border: 0; margin: 0.9rem 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.5rem; }
.nang-luc .nhan { flex: 1 1 100%; margin: 0 0 0.1rem; }
.chip-nl { display: inline-flex; align-items: center; gap: 0.2rem; padding: 0.15rem 0.65rem 0.15rem 0.45rem; border: 1.5px solid var(--ke); border-radius: 999px; font-weight: 600; cursor: pointer; background: var(--trang); }
.chip-nl:has(input:checked) { border-color: var(--muc); background: var(--phan-nhat); }
.chon-nl { width: 1rem; height: 1rem; accent-color: var(--muc); margin: 0; }
.nl-ghi-chu, .ghi-chu-form { flex: 1 1 100%; color: var(--muc-nhat); font-size: 0.88rem; margin: 0.2rem 0 0; }

/* ----- bộ đề cố định ----- */
.bd-mo-ta { margin: 0.2rem 0 0.6rem; color: var(--muc-nhat); max-width: 52rem; }
.bd-form { padding: 0.2rem 1rem 0.8rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; max-width: 52rem; margin-bottom: 0.8rem; }
.bd-tron { display: flex; flex-direction: column; justify-content: flex-end; gap: 0.2rem; padding-bottom: 0.2rem; }
.nhan-o { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.nhan-o input { accent-color: var(--muc); width: 1rem; height: 1rem; }
.bd-chua { color: var(--muc-nhat); font-size: 0.9rem; align-self: center; }
.bang-bd { max-width: 60rem; }
.bd-ten { display: block; font-weight: 600; }
.bd-phu { display: block; font-size: 0.85rem; color: var(--muc-nhat); }
.tt-bd-chot { border-color: var(--duyet); color: var(--duyet); }
.tt-bd-luu_tru { border-style: dashed; }
.bd-trung { display: block; font-size: 0.82rem; color: #7a5a00; }
.nut-ve { padding-left: 0; margin-bottom: 0.2rem; }
.bd-tabs, .bd-phan-tabs { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 1rem 0 0.6rem; }
.bd-phan-tabs { margin-top: 0; }
.bd-tab { font: inherit; font-weight: 600; padding: 0.35rem 0.9rem; border: 1.5px solid var(--ke); border-radius: 999px; background: var(--trang); color: var(--muc); cursor: pointer; }
.bd-tab:hover { border-color: var(--muc); }
.bd-tab.dang-chon { background: var(--muc); border-color: var(--muc); color: var(--trang); }
.bd-tab-phu.dang-chon { background: var(--phan); border-color: var(--muc); color: var(--muc); }
.bd-trang { max-width: 52rem; }
.bd-noi-dung .cuon-ngang { margin-bottom: 0.4rem; }
.bd-tom-tat { font-weight: 600; }
.bang-pt-du-kien { max-width: 46rem; }

/* đề in giấy, đáp án, phiếu trả lời: nền trắng như tờ giấy, chữ có chân */
.de-in { background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; padding: 1.6rem 2rem 1.4rem; font-family: "Times New Roman", Times, serif; font-size: 1.05rem; color: #000; line-height: 1.45; }
.de-in p { margin: 0 0 0.25rem; }
.de-dau-bang { width: 100%; border-collapse: collapse; margin-bottom: 0.4rem; }
.de-dau-bang td { vertical-align: top; width: 50%; padding: 0; }
.de-dau { text-align: center; }
.de-dau-trai { text-align: left; }
.de-ma { text-align: right; font-weight: 700; }
.de-hs { margin: 0.6rem 0 0.4rem !important; }
.de-phan { font-weight: 700; margin: 0.9rem 0 0.3rem !important; }
.de-loi-dan { font-style: italic; }
.de-cau { margin: 0.55rem 0 0.15rem !important; }
.de-y { margin: 0 0 0.1rem 1.2rem !important; }
.de-pa { margin: 0 0 0.2rem 1.4rem; }
.de-pa p { margin: 0; }
.de-anh { display: block; max-width: 100%; max-height: 16rem; margin: 0.3rem 0 0.3rem 1.4rem; }
.de-dong-ke { margin: 0 !important; line-height: 1.7; letter-spacing: 0.15em; color: #555; white-space: nowrap; overflow: hidden; }
.de-het { text-align: center; font-weight: 700; margin-top: 1rem !important; }
.de-ghi-chu, .de-in .nho { font-size: 0.9rem; }
.de-tieu-de { font-size: 1.15rem; text-align: center; margin: 0 0 0.3rem; }
.de-in .bang { width: auto; min-width: 50%; margin: 0.3rem 0 0.6rem; }
.de-in .bang th, .de-in .bang td { border: 1px solid #000; padding: 0.2rem 0.5rem; color: #000; font-size: 0.95rem; white-space: nowrap; }
.de-in .bang th { background: #f0f0f0; text-align: center; }
.de-in .bang .cot-so { text-align: center; }
.da-chu { font-weight: 700; }
.da-tl { margin: 0.4rem 0 0.8rem; }
.da-dan-y { white-space: pre-line; }
.da-giai-thich summary { cursor: pointer; font-weight: 600; margin-top: 0.6rem; }
.da-giai-thich ul { margin: 0.3rem 0 0 1.2rem; padding: 0; font-size: 0.92rem; }
.pt-khung { border-collapse: collapse; }
.pt-khung > tbody > tr > td.pt-cot { vertical-align: top; padding: 0 1.2rem 0 0; border: 0; }
.pt-o { display: inline-block; width: 1.3rem; height: 1.3rem; border: 1.5px solid #000; border-radius: 50%; text-align: center; font-size: 0.7rem; line-height: 1.2rem; font-weight: 700; }
.de-in .bang .pt-o-td { padding: 0.15rem 0.3rem; text-align: center; }
.de-in .bang .pt-o-sai { border-right-width: 2px; }
.pt-trong { min-width: 14rem; }

/* ----- phiếu làm bài theo học sinh, phát đề, chấm bài ----- */
.de-tieu-de-to { font-size: 1.15rem; margin: 0 0 0.1rem !important; }
.pt-hs { width: 100%; border-collapse: collapse; margin: 0.4rem 0 0.3rem; border: 1.5px solid #000; }
.pt-hs td { vertical-align: top; padding: 0.4rem 0.7rem; }
.pt-hs-chu p { margin: 0 0 0.2rem; }
.pt-hs-ten, .pt-hs-ma-de { font-size: 1.15rem; font-weight: 700; }
.pt-hs-qr { width: 3.2cm; text-align: center; }
.pt-qr svg { display: block; margin: 0 auto; }
.pt-ma-phieu { font-family: "Courier New", monospace; font-size: 0.85rem; letter-spacing: 0.08em; text-align: center; }
.bd-lop-ds { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin: 0.4rem 0; }
.bd-lop-o { padding: 0.3rem 0.6rem; border: 1.5px solid var(--ke); border-radius: 6px; background: var(--giay); }
.bd-in-nut { align-items: center; }
.bd-ds-phong { max-width: 60rem; margin-bottom: 0.8rem; }
.bd-phieu-ds .de-in { margin-top: 0.8rem; }
.tt-phieu-da_cham { border-color: var(--duyet); color: var(--duyet); }
.tt-phieu-vang { border-style: dashed; color: var(--mo); }
.bd-cham-dau { align-items: flex-end; gap: 0.4rem 1.4rem; }
.bd-cham-huong-dan { flex: 1 1 30rem; margin: 0.6rem 0 0.3rem; }
.bang-cham td { padding: 0.35rem 0.5rem; vertical-align: middle; }
.bang-cham .cham-o { white-space: nowrap; }
.bang-cham .o-nhap { padding: 0.3rem 0.45rem; font-family: "Courier New", monospace; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.cham-chuoi { width: 11rem; }
.cham-ds { width: 8rem; }
.cham-tln { width: 6.5rem; margin-right: 0.3rem; text-transform: none !important; letter-spacing: 0 !important; }
.cham-diem { width: 5rem; margin-right: 0.3rem; font-family: inherit !important; letter-spacing: 0 !important; text-transform: none !important; }
.bang-cham tr.cham-sua td { background: var(--phan-nhat); }
.bang-cham tr.cham-vua-luu td { background: #e6f4ec; }
.bang-cham tr.cham-vang td { background: var(--giay); color: var(--muc-nhat); }
.bang-cham tr.cham-dang-luu { opacity: 0.6; }
.bang-cham .cham-diem-o { font-size: 1.05rem; }
.bang-cham .nut-cham-luu { padding: 0.3rem 0.8rem; }
.bd-ket-qua { margin-top: 1.4rem; }
.bang-diem { max-width: 60rem; }

/* ----- màn Quy định ----- */
.than-mot-cot { grid-template-columns: minmax(0, 1fr); }
/* S14a: thanh menu bên trái đang ghim trên màn hình 1200–1499px: cột bài hẹp lại, hai nút của một yêu cầu xếp chồng,
   để bảng yêu cầu cần đạt còn đủ chỗ cho nội dung */
@media (min-width: 1200px) and (max-width: 1499.98px) {
  html.kh-co:not(.kh-gon) .than:not(.than-mot-cot) { grid-template-columns: 16rem minmax(0, 1fr); }
  html.kh-co:not(.kh-gon) .noi-dung { padding-left: 1.3rem; padding-right: 1.3rem; }
  html.kh-co:not(.kh-gon) .bang-yc .cot-nut { white-space: normal; }
  html.kh-co:not(.kh-gon) .bang-yc .cot-nut .nut { display: block; width: 100%; white-space: nowrap; }
  html.kh-co:not(.kh-gon) .bang-cau td:nth-child(5) { white-space: normal; min-width: 7.5rem; }
  html.kh-co:not(.kh-gon) .bang-yc th, html.kh-co:not(.kh-gon) .bang-yc td, html.kh-co:not(.kh-gon) .bang-cau th, html.kh-co:not(.kh-gon) .bang-cau td { padding-left: 0.6rem; padding-right: 0.6rem; }
  html.kh-co:not(.kh-gon) .bang-yc .cot-nut .nut + .nut { margin-top: 0.35rem; }
}
.qd-noi-dung { max-width: 66rem; }
.qd-hien-tai { padding: 0.4rem 1.2rem 1rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 6px solid var(--duyet); border-radius: 8px; max-width: 60rem; }
.qd-tom-tat { margin: 0.4rem 0; padding-left: 1.2rem; }
.qd-tom-tat li { margin: 0.15rem 0; }
.qd-tieu-de-nho { margin: 0.9rem 0 0.4rem; font-size: 0.95rem; }
.bang-qd-dang th[scope="row"] { text-align: left; color: var(--muc); white-space: nowrap; }
.bang-qd-dang td.cot-so { font-weight: 700; }
.qd-co { color: var(--duyet); }
.qd-khong { color: var(--mo); font-weight: 400 !important; }
.bang-qd-dang input { width: 1.1rem; height: 1.1rem; accent-color: var(--muc); }
.qd-form { max-width: 60rem; }
.qd-mau-ds { display: grid; gap: 0.5rem; margin: 0.3rem 0 0.6rem; }
.qd-mau { display: grid; grid-template-columns: auto 1fr; gap: 0.1rem 0.6rem; align-items: start; padding: 0.6rem 0.9rem; border: 1.5px solid var(--ke); border-radius: 8px; cursor: pointer; background: var(--giay); }
.qd-mau.dang-chon { border-color: var(--muc); background: var(--phan-nhat); }
.qd-mau input { margin: 0.3rem 0 0; accent-color: var(--muc); grid-row: 1 / span 2; }
.qd-mau-ten { font-weight: 700; }
.qd-mau-mo-ta { color: var(--muc-nhat); font-size: 0.92rem; }
.qd-dieu-chinh { border: 0; margin: 0.6rem 0 0; padding: 0; }
.qd-tham-so { padding: 0.1rem 0.6rem 0.4rem; border-left: 4px solid transparent; }
.qd-tham-so.qd-ghi-de { border-left-color: var(--phan); background: var(--phan-nhat); border-radius: 0 6px 6px 0; }
.qd-tham-so .nhan { margin-top: 0.6rem; }

/* ----- in hồ sơ, đề, đáp án, phiếu ----- */
@media print {
  .dau-trang, #mt-cot, .mt-hanh-dong, .mt-kiem-tra, .mt-quy-dinh, #mt-bo-de, .thong-bao, #than-ngan-hang, #man-quy-dinh, .bd-tabs, .bd-phan-tabs, .nut-ve, .thanh-cc { display: none !important; }
  html, body { background: #fff; color: #000; font-size: 11pt; }
  .than { display: block; }
  .noi-dung { padding: 0; max-width: none; }
  .cuon-ngang { overflow: visible; border: 0; }
  .bang-mt th, .bang-mt td { border: 1px solid #000; padding: 0.25rem 0.35rem; color: #000; }
  .bang-dac-ta { page-break-before: always; }
  .mt-diem, .bang-pl3 .mt-nl { color: #333; }
  .de-in { border: 0; padding: 0; font-size: 12pt; }
  .bd-trang, .bd-noi-dung { max-width: none; }
  .bd-dau .phu-bai, .bd-dau .ten-bai, .mt-canh-bao { display: none !important; }
  .de-anh { max-height: 9cm; }
  #form-phat, #phat-in, .bd-in-nut, .bd-ds-phong, .bd-mo-ta, .bd-cham-dau, .bang-cham, #cham-luu-het, .bd-ket-qua .nut { display: none !important; }
  .bd-phieu-ds .de-in { margin-top: 0; }
  .pt-hs { border-color: #000; }
}

/* ----- ảnh minh hoạ ----- */
.hang-anh { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.8rem; margin-top: 0.35rem; }
.nhan-anh { color: var(--muc-nhat); font-size: 0.9rem; }
.anh-o { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
.nut-anh { padding: 0.2rem 0.5rem; font-size: 0.88rem; }
.anh-o-xem img, .xem-anh img { max-height: 7rem; max-width: 14rem; border: 1.5px solid var(--ke); border-radius: 6px; vertical-align: middle; }
.xem-anh { display: block; margin: 0.3rem 0; }
.xem-anh img { max-height: 16rem; max-width: 100%; }
.anh-dang-tai, .loi-anh { font-size: 0.85rem; }
.loi-anh { margin: 0; min-height: 0; }

/* ----- củng cố trên lớp: cột chọn, thanh chọn, bộ đã lưu, lượt đã ghi ----- */
.bang .cot-chon { width: 2rem; text-align: center; padding-left: 0.6rem; padding-right: 0.2rem; }
.chon-cc { width: 1.15rem; height: 1.15rem; margin: 0.15rem 0 0; accent-color: var(--muc); cursor: pointer; }
.bang tr.dang-chon-cc td { background: var(--phan-nhat); }
.dau-muc { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.9rem; }
.dau-muc .ten-muc { margin-right: auto; }
.ghi-chu-chon { color: var(--muc-nhat); font-size: 0.88rem; }
.thanh-cc { position: fixed; left: 50%; bottom: 1.2rem; transform: translateX(-50%); z-index: 15; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.7rem; max-width: calc(100vw - 2rem); padding: 0.6rem 0.9rem 0.6rem 1.1rem; background: var(--muc); color: var(--trang); border-radius: 10px; box-shadow: 0 6px 24px rgba(20, 40, 75, 0.28); }
.thanh-cc-dem { font-weight: 700; margin-right: 0.3rem; }
.thanh-cc .nut-chinh { background: var(--phan); border-color: var(--phan); color: var(--muc); }
.thanh-cc .nut-chinh:hover { background: #f0c869; }
.thanh-cc .nut-phu { background: transparent; border-color: var(--trang); color: var(--trang); }
.thanh-cc .nut-phu:hover { background: rgba(255, 255, 255, 0.12); }
.nut-tro-sang { color: #dfe6f1; }
.nut-tro-sang:hover { color: var(--trang); }
.ds-bo-cc { list-style: none; margin: 0 0 0.6rem; padding: 0; display: grid; gap: 0.4rem; max-width: 52rem; }
.bo-cc { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.9rem; padding: 0.55rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 6px solid var(--phan); border-radius: 8px; }
.bo-cc-ten { font-weight: 700; }
.bo-cc-phu { color: var(--muc-nhat); font-size: 0.9rem; }
.bo-cc-nut { margin-left: auto; display: flex; gap: 0.4rem; }
.nut-cc { padding: 0.3rem 0.8rem; }
.luot-cc { max-width: 52rem; margin-bottom: 0.4rem; }
.luot-cc summary { cursor: pointer; font-weight: 600; color: var(--muc-nhat); padding: 0.3rem 0; }
.luot-cc .bang { margin-top: 0.4rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; overflow: hidden; }

/* ----- xem thử một câu ----- */
.bang tr.hang-xem td { background: var(--giay); }
.xem-thu { max-width: 46rem; }
.xem-ghi-chu { margin: 0 0 0.5rem; color: var(--muc-nhat); font-size: 0.9rem; }
.xem-de { margin: 0 0 0.4rem; font-weight: 600; }
.xem-pa { list-style: none; margin: 0; padding: 0; }
.xem-pa li { padding: 0.15rem 0; }
.xem-nhan { font-weight: 700; }

/* ----- khung soạn câu ----- */
.soan { margin-top: 1.4rem; padding: 0.4rem 1.2rem 1.2rem; background: var(--trang); border: 1.5px solid var(--muc); border-left: 6px solid var(--phan); border-radius: 8px; max-width: 52rem; }
.soan .ten-muc { margin-top: 0.9rem; }
.hang { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.truong-rong { flex: 1 1 18rem; min-width: 0; }
.phuong-an { border: 0; margin: 0; padding: 0; }
.dong-pa { display: grid; grid-template-columns: auto 1.4rem 1fr auto; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.dong-pa input[type="radio"] { width: 1.15rem; height: 1.15rem; accent-color: var(--muc); margin: 0; }
.nhan-pa { font-weight: 700; text-align: center; }
.hang-nut { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.9rem; }

/* ----- thông báo ----- */
.thong-bao { position: fixed; left: 50%; bottom: 1.4rem; transform: translateX(-50%); max-width: min(40rem, calc(100vw - 2rem)); padding: 0.7rem 1.1rem; border-radius: 8px; background: var(--muc); color: var(--trang); font-weight: 600; z-index: 20; }
.thong-bao-loi { background: var(--loi); }
body.co-thanh-cc .thong-bao { bottom: 5.4rem; }

/* ----- màn hình hẹp ----- */
@media (max-width: 860px) {
  .than { grid-template-columns: minmax(0, 1fr); }
  .cot-bai { position: static; max-height: 15.5rem; border-right: 0; border-bottom: 1.5px solid var(--ke); padding: 0.8rem 1rem 1rem; }
  .noi-dung { padding: 1rem 1rem 4rem; }
  .ten-bai { font-size: 1.3rem; }
  .mt-bai { columns: 1; }
  .mt-dau { flex-direction: column; }

  /* bảng xếp thành từng khối: nội dung một dòng, số liệu và nút ở dòng dưới */
  .bang-yc thead, .bang-cau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .bang-yc, .bang-yc tbody, .bang-cau, .bang-cau tbody { display: block; }
  .bang-yc tr, .bang-cau tr { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.9rem; padding: 0.7rem 0.8rem; border-bottom: 1px solid var(--ke); }
  .bang-yc tr:last-child, .bang-cau tr:last-child { border-bottom: 0; }
  .bang.bang-yc td, .bang.bang-cau td { padding: 0; border: 0; background: transparent; }
  .bang-yc td:first-child { flex: 1 1 100%; }
  .bang-yc td[data-nhan]::before { content: attr(data-nhan) ": "; font-weight: 400; color: var(--muc-nhat); }
  .bang-yc .cot-nut { margin-left: auto; }
  .bang-yc tr.dang-soan { background: var(--phan-nhat); }
  .bang-cau td:nth-child(3) { order: 5; flex: 1 1 100%; }
  .bang-cau td:nth-child(4) { color: var(--muc-nhat); }
  .bang-cau td:nth-child(6) { margin-left: auto; }
  .thanh-cc { left: 0.5rem; right: 0.5rem; transform: none; max-width: none; justify-content: center; }
  .bang-cau .hang-xem td { flex: 1 1 100%; order: 0; padding: 0.2rem 0 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .thong-bao { transition: opacity 0.15s ease; }
}

/* =====================================================================
   S13 — phân quyền theo cấp, tổ, môn; hai kho câu; Kho công cộng; Tổ & phân quyền; tự đăng ký.
   ===================================================================== */
:root { --chung: #2f5f9e; --chung-nhat: #e8f0fb; --gv: #7a4fb0; --gv-nhat: #f1eafa; --ck: #b4550f; --ck-nhat: #fdeee2; }

/* ----- đầu trang: tên ứng dụng, đường dẫn, vai trò ----- */

/* ----- nhãn chung ----- */
.nhan-kho { display: inline-block; padding: 0 0.5rem; border-radius: 999px; font-size: 0.8rem; font-weight: 700; border: 1.5px solid var(--ke); color: var(--muc-nhat); white-space: nowrap; }
.nhan-chung { border-color: var(--chung); color: var(--chung); background: var(--chung-nhat); }
.nhan-gv { border-color: var(--gv); color: var(--gv); background: var(--gv-nhat); }
.nhan-ck { border-color: var(--ck); color: var(--ck); background: var(--ck-nhat); }
.nhan-ql { border-color: var(--duyet); color: var(--duyet); background: #e6f4ec; }
.nhan-xem { border-color: var(--ke); }
.nhan-to-toi { margin-left: 0.5rem; border-color: var(--phan); background: var(--phan-nhat); color: var(--muc); vertical-align: middle; }
.nhan-sao { color: #8a5a00; font-weight: 700; font-size: 0.85rem; white-space: nowrap; }
.nhan-mo { color: var(--mo); font-weight: 400; }
.nhan-dung, .nhan-bl { color: var(--muc-nhat); font-size: 0.85rem; white-space: nowrap; }
.nhan-cau { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin-top: 0.3rem; }
.de-cau { display: block; }

/* ----- tổng quan ----- */
.tq { padding: 1.4rem 1.6rem 4rem; max-width: 78rem; }
.tq-dau { padding: 1rem 1.3rem 1.1rem; background: var(--trang); border: 1.5px solid var(--ke); border-top: 6px solid var(--muc); border-radius: 8px; }
.tq-chao { margin: 0; font-size: 1.5rem; line-height: 1.25; }
.tq-vai-tro { margin: 0.3rem 0 0; color: var(--muc-nhat); }
.tq-chuc-vu { font-weight: 700; color: var(--muc); }
.tq-pham-vi { margin: 0.5rem 0 0; max-width: 60rem; }
.tq-hang-nut { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-top: 0.7rem; }
.tq-ghi-chu { color: var(--muc-nhat); font-size: 0.9rem; }
.tq-canh-bao { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-top: 0.9rem; padding: 0.7rem 1rem; background: var(--phan-nhat); border-left: 5px solid var(--phan); border-radius: 0 8px 8px 0; }
.tq-canh-bao > span { flex: 1 1 22rem; }
.tq-dang-ky { background: #fde8e6; border-left-color: var(--loi); font-weight: 600; }
.tq-nhom { margin-top: 1.6rem; }
.tq-ten-nhom { margin: 0 0 0.6rem; font-size: 1.15rem; }
.tq-cap-to { font-weight: 400; color: var(--muc-nhat); font-size: 0.95rem; }
.tq-luoi { display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 0.9rem; }
.tq-the { display: flex; flex-direction: column; padding: 0.85rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; }
.tq-the-ql { border-left: 5px solid var(--duyet); }
.tq-the-dau { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.tq-ten-mon { margin: 0; font-size: 1.15rem; }
.tq-the-cap { margin: 0.15rem 0 0.4rem; color: var(--muc-nhat); font-size: 0.88rem; }
.tq-so { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.35rem; margin: 0.2rem 0 0.7rem; }
.tq-so-o { padding: 0.3rem 0.45rem; border: 1px solid var(--ke); border-radius: 6px; background: var(--giay); }
.tq-so-o dt { font-size: 0.74rem; color: var(--muc-nhat); line-height: 1.2; }
.tq-so-o dd { margin: 0; font-weight: 700; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.tq-so-cho { border-color: #b78600; background: var(--phan-nhat); }
.tq-the-nut { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: auto; }
.tq-the-nut .nut { padding: 0.3rem 0.6rem; font-size: 0.9rem; }

/* ----- chọn môn dạy ----- */
.chon-mon-day { max-width: 46rem; padding: 1.1rem 1.3rem 1.3rem; background: var(--trang); border: 1.5px solid var(--ke); border-top: 6px solid var(--phan); border-radius: 8px; }
.ds-mon-day { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.9rem; }
.ds-mon-nho { margin-top: 0.3rem; }
.chip-mon { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.35rem 0.85rem 0.35rem 0.6rem; border: 1.5px solid var(--ke); border-radius: 999px; font-weight: 600; cursor: pointer; background: var(--trang); }
.chip-mon:has(input:checked) { border-color: var(--muc); background: var(--phan-nhat); }
.chip-mon:has(input:disabled) { opacity: 0.5; cursor: default; }
.chip-mon input { width: 1rem; height: 1rem; accent-color: var(--muc); margin: 0; }

/* ----- ngân hàng: lọc theo kho, nút công khai ----- */
.loc-kho { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 0.6rem; }
.the-loc { font: inherit; font-size: 0.9rem; font-weight: 600; padding: 0.25rem 0.75rem; border: 1.5px solid var(--ke); border-radius: 999px; background: var(--trang); color: var(--muc); cursor: pointer; }
.the-loc:hover { border-color: var(--muc); }
.the-loc.dang-chon { background: var(--muc); border-color: var(--muc); color: var(--trang); }
.nut-ck { border-color: var(--ck); color: var(--ck); }
.nut-ck:hover { background: var(--ck-nhat); }
.xem-kho { margin-top: 0.6rem; }

/* ----- Kho công cộng ----- */
.kc { padding: 1.3rem 1.6rem 4rem; max-width: 64rem; }
.kc-loc { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 0.9rem; padding: 0.3rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; }
.kc-loc .o-ngan { min-width: 8rem; }
.kc-loc-o { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; padding-bottom: 0.55rem; }
.kc-loc-nut { padding-bottom: 0.05rem; }
.kc-tong { margin: 0.8rem 0 0.4rem; color: var(--muc-nhat); font-weight: 600; min-height: 1.4em; }
.kc-ds { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.kc-the { padding: 0.7rem 1rem 0.8rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 5px solid var(--ck); border-radius: 8px; }
.kc-the-mo { border-color: var(--muc); border-left-color: var(--ck); }
.kc-phu { margin: 0; font-size: 0.85rem; color: var(--muc-nhat); font-variant-numeric: tabular-nums; }
.kc-de { margin: 0.25rem 0 0.4rem; font-weight: 600; }
.kc-chan { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; }
.kc-tk { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.8rem; flex: 1 1 20rem; }
.kc-tac-gia { color: var(--muc-nhat); font-size: 0.85rem; }
.kc-nut-xem { margin-left: auto; padding: 0.3rem 0.7rem; }
.kc-trang { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1rem; }
.kc-rieng { margin: 0 0 1rem; padding: 0.2rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--muc); border-left: 6px solid var(--ck); border-radius: 8px; }
.kc-chi-tiet { margin-top: 0.7rem; padding-top: 0.7rem; border-top: 1px dashed var(--ke); max-width: 52rem; }
.kc-noi-dung { margin-bottom: 0.4rem; }
.kc-pa-dung { font-weight: 700; color: var(--duyet); }
.kc-pa-dung .xem-nhan::after { content: " ✓"; }
.kc-dap-an { margin: 0.3rem 0; font-weight: 600; color: var(--duyet); }
.kc-dap-an-y { font-weight: 700; color: var(--duyet); }
.kc-muc-y { color: var(--muc-nhat); font-size: 0.85rem; }
.kc-tieu-chi { margin: 0.2rem 0; padding-left: 1.2rem; font-weight: 400; color: var(--muc); }
.kc-giai-thich, .kc-yc, .kc-nguon { margin: 0.25rem 0; color: var(--muc-nhat); font-size: 0.92rem; }
.kc-tk-dong { display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; margin: 0.5rem 0; }
.kc-sao { display: flex; flex-wrap: wrap; align-items: center; gap: 0.15rem 0.3rem; margin: 0.5rem 0; }
.kc-sao-nhan { font-weight: 600; margin-right: 0.3rem; }
.kc-ngoi-sao { font: inherit; font-size: 1.55rem; line-height: 1; width: 2.3rem; height: 2.3rem; border: 1.5px solid var(--ke); border-radius: 6px; background: var(--trang); color: var(--mo); cursor: pointer; }
.kc-ngoi-sao:hover, .kc-ngoi-sao:focus-visible { border-color: var(--muc); color: #b78600; }
.kc-ngoi-sao.sang { color: #e0a000; border-color: #b78600; background: var(--phan-nhat); }
.kc-bl { margin-top: 0.8rem; }
.kc-bl-tieu-de { margin: 0 0 0.3rem; font-size: 1rem; }
.kc-bl-ds { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.kc-bl-mot { position: relative; padding: 0.45rem 0.8rem; background: var(--giay); border-radius: 6px; }
.kc-bl-ai { margin: 0; font-size: 0.82rem; color: var(--muc-nhat); font-weight: 600; }
.kc-bl-nd { margin: 0.15rem 0 0; white-space: pre-wrap; }
.kc-bl-go { position: absolute; top: 0.2rem; right: 0.3rem; padding: 0.15rem 0.4rem; font-size: 0.85rem; }
.kc-bl-form { margin-top: 0.4rem; max-width: 46rem; }

/* ----- Tổ & phân quyền ----- */
.to-khung { padding: 1.3rem 1.6rem 4rem; max-width: 70rem; }
.to-the { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.4rem 0 1rem; }
.to-thanh-cong-cu { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin-bottom: 0.8rem; }
.dk-ds { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.dk-phieu { padding: 0.7rem 1rem 0.8rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 5px solid var(--phan); border-radius: 8px; }
.dk-da_duyet { border-left-color: var(--duyet); }
.dk-tu_choi { border-left-color: var(--mo); opacity: 0.85; }
.dk-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.9rem; }
.dk-ten { font-weight: 700; font-size: 1.05rem; }
.dk-lien-he { color: var(--muc-nhat); font-size: 0.9rem; margin-right: auto; }
.dk-truong { margin: 0.3rem 0 0; font-weight: 600; color: var(--ck); }
.dk-noi-dung { margin: 0.3rem 0 0; }
.dk-ghi-chu { margin: 0.2rem 0 0; font-style: italic; color: var(--muc-nhat); }
.dk-luc { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--muc-nhat); }
.dk-form, .to-form, .ns-form { margin-top: 0.6rem; padding: 0.2rem 1rem 0.9rem; background: var(--giay); border: 1.5px solid var(--ke); border-radius: 8px; max-width: 52rem; }
.to-mot { margin-bottom: 1rem; padding: 0.8rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; }
.to-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1rem; margin-bottom: 0.6rem; }
.to-ten { margin: 0; font-size: 1.15rem; }
.to-phu { color: var(--muc-nhat); margin-right: auto; }
.to-nut { display: flex; gap: 0.4rem; }
.to-them { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.7rem; }
.to-them .o-nhap { flex: 1 1 16rem; width: auto; }
.to-them .o-ngan { flex: 0 1 auto; }

/* ----- đăng nhập, tự đăng ký ----- */
.dn-dang-ky { margin: 0.9rem 0 0; color: var(--muc-nhat); font-size: 0.92rem; }
.dn-dang-ky a { color: var(--muc); font-weight: 700; }
.khung-dk { width: min(44rem, 100%); }
.dk-nhom { margin: 1.1rem 0 0; padding: 0.2rem 0 0; border: 0; border-top: 1.5px solid var(--ke); }
.dk-tieu-de { padding: 0.6rem 0 0; font-weight: 700; font-size: 1.05rem; }
.dk-chon-truong { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; margin: 0.4rem 0 0; }
.o-ma { max-width: 12rem; text-transform: uppercase; letter-spacing: 0.04em; }
.dk-truong-tim { margin: 0.35rem 0 0; min-height: 1.3em; color: var(--muc-nhat); }
.dk-thay { color: var(--duyet); font-weight: 700; }
.nut-lien-ket-lon { display: block; text-align: center; text-decoration: none; margin-top: 0.6rem; padding: 0.65rem; }
/* S13b: hai cách dùng ở trang đăng ký — mỗi cách là một ô trả lời; chọn thì ô tròn tô vàng như trên phiếu (cùng ý với logo) */
.dk-cach { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; margin: 1rem 0 0; padding: 0; border: 0; min-width: 0; }
.dk-cach-o { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0.15rem 0.75rem; padding: 0.95rem 1rem 1rem;
  border: 1.5px solid var(--ke); border-radius: 12px; background: var(--trang); cursor: pointer; }
.dk-cach-o:hover { border-color: var(--muc-nhat); }
.dk-cach-o input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.dk-bong { grid-row: span 2; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 2px solid var(--muc); border-radius: 50%;
  font-size: 0.85rem; font-weight: 700; line-height: 1; transition: background-color 0.15s ease, border-color 0.15s ease; }
.dk-cach-ten { font-weight: 700; font-size: 1.05rem; line-height: 1.75rem; }
.dk-cach-mo { grid-column: 2; color: var(--muc-nhat); font-size: 0.9rem; line-height: 1.45; }
.dk-cach-o.dang-chon { border-color: var(--muc); box-shadow: inset 0 0 0 1px var(--muc); }
.dk-cach-o.dang-chon .dk-bong { background: var(--phan); border-color: var(--phan); }
.dk-cach-o:focus-within { outline: 3px solid var(--phan); outline-offset: 2px; }
@media (max-width: 560px) { .dk-cach { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .dk-bong { transition: none; } }
/* mã không gian vừa cấp */
.dk-ma-kg { display: grid; gap: 0.2rem; margin: 1rem 0 0.4rem; padding: 0.9rem 1rem; border-radius: 12px; background: var(--phan-nhat); border: 1.5px solid var(--phan); }
.dk-ma-kg-nhan { font-weight: 600; color: var(--muc-nhat); font-size: 0.9rem; }
.dk-ma-kg b { font-size: 2rem; letter-spacing: 0.1em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.dk-ma-kg-mo { color: var(--muc-nhat); font-size: 0.9rem; }

@media (max-width: 860px) {
  .tq, .kc, .to-khung { padding: 1rem 1rem 4rem; }
  .tq-so { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kc-nut-xem { margin-left: 0; }
}

/* ----- S13a: bảng Cấu trúc đề (tổ tự đặt số câu, điểm mỗi câu, số câu theo mức) ----- */
.ct { margin: 1rem 0 0.4rem; padding: 0.8rem 1rem 1rem; background: var(--giay); border: 1.5px solid var(--ke); border-radius: 8px; }
.ct-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.8rem; }
.ct-tieu-de { margin: 0; font-size: 1.08rem; }
.ct-goi-y { margin: 0.2rem 0 0.4rem; color: var(--muc-nhat); font-size: 0.92rem; }
.ct-nguon { margin: 0 0 0.7rem; font-size: 0.9rem; }
.ct-nguon summary { cursor: pointer; font-weight: 600; color: var(--muc); }
.ct-nguon ul { margin: 0.4rem 0 0; padding-left: 1.2rem; color: var(--muc-nhat); }
.ct-nguon li { margin: 0.15rem 0; }
.ct-ds { display: grid; gap: 0.55rem; }
.ct-dong { background: var(--trang); border: 1.5px solid var(--ke); border-left: 5px solid var(--muc); border-radius: 6px; padding: 0.55rem 0.8rem 0.6rem; }
.ct-dong-trong { border-left-color: var(--ke); background: #fbfcfd; }
.ct-dong-trong .ct-ten-chu, .ct-dong-trong .ct-diem-phan { color: var(--muc-nhat); font-weight: 600; }
.ct-dong-chan { background: #f3f5f8; }
.ct-dong-chan .ct-so, .ct-dong-chan .ct-muc { opacity: 0.55; }
.ct-dong-loi-co { border-left-color: var(--loi); }
.ct-dau-dong { display: flex; justify-content: space-between; align-items: baseline; gap: 0.6rem; margin-bottom: 0.4rem; }
.ct-ten-chu { font-weight: 700; }
.ct-diem-phan { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ct-so { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.5rem; }
.ct-nhom { display: inline-flex; align-items: center; gap: 0.4rem; }
.ct-nhan { font-weight: 600; font-size: 0.9rem; }
.ct-nhan-x { color: var(--muc-nhat); font-weight: 700; padding: 0 0.1rem; }
.ct-buoc { display: inline-flex; align-items: stretch; }
.ct-nut-buoc { min-width: 2.5rem; padding: 0.3rem 0.5rem; font-size: 1.15rem; line-height: 1; }
.ct-buoc .ct-nut-buoc:first-child { border-radius: 6px 0 0 6px; }
.ct-buoc .ct-nut-buoc:last-child { border-radius: 0 6px 6px 0; }
.ct-buoc .ct-o-so { width: 3.4rem; text-align: center; border-radius: 0; border-left: 0; border-right: 0; font-variant-numeric: tabular-nums; }
.ct-o-diem { width: 6.2rem; font-variant-numeric: tabular-nums; }
select.ct-o-diem { width: auto; min-width: 10rem; }
.ct-muc { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.8rem; margin-top: 0.5rem; }
.ct-muc-nhan { flex-basis: 100%; font-size: 0.85rem; font-weight: 600; color: var(--muc-nhat); }
.ct-muc-o { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.9rem; }
.ct-o-muc { width: 3.2rem; text-align: center; padding: 0.35rem 0.3rem; font-variant-numeric: tabular-nums; }
.ct-muc-tong { font-size: 0.85rem; font-weight: 600; color: var(--duyet); font-variant-numeric: tabular-nums; }
.ct-muc-tong.ct-sai { color: var(--loi); }
.ct-dong-ghi-chu { margin: 0.35rem 0 0; font-size: 0.85rem; color: var(--muc-nhat); }
.ct-dong-ghi-chu:empty, .ct-dong-loi:empty { display: none; }
.ct-dong-loi { margin: 0.3rem 0 0; font-size: 0.86rem; font-weight: 600; color: var(--loi); }
.ct-tong { margin-top: 0.7rem; padding: 0.6rem 0.8rem 0.7rem; background: var(--trang); border: 1.5px solid var(--muc); border-radius: 6px; }
.ct-tong-diem { margin: 0 0 0.35rem; font-size: 1.02rem; font-variant-numeric: tabular-nums; }
.ct-tong-diem.ct-du b { color: var(--duyet); }
.ct-tong-diem.ct-thieu b { color: var(--loi); }
.ct-thanh { display: flex; height: 10px; border-radius: 5px; overflow: hidden; background: var(--ke); margin: 0.15rem 0 0.35rem; }
.ct-thanh span { display: block; height: 100%; transition: width 0.15s; }
.ct-thanh-1 { background: #a9bcd8; } .ct-thanh-2 { background: #5b78a6; } .ct-thanh-3 { background: var(--muc); } .ct-thanh-4 { background: #070f1f; }
.ct-theo-muc { margin: 0 0 0.55rem; font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.ct-ty-le { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.8rem; padding-top: 0.5rem; border-top: 1px dashed var(--ke); }
.ct-phan-tram { color: var(--muc-nhat); }
.ct-nut-chia { margin-left: auto; }
.ct-loi-chung p { margin: 0.45rem 0 0; }
.ct-hanh-dong { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
.ct-luu { margin-top: 0.6rem; padding: 0.4rem 0.9rem 0.8rem; background: var(--trang); border: 1.5px solid var(--muc); border-left: 5px solid var(--phan); border-radius: 6px; }
.ct-luu-khoi, .ct-luu-cach { display: flex; flex-wrap: wrap; gap: 0.35rem 1.1rem; }
.ct-luu-cach { margin-top: 0.4rem; }
.mt-cau-truc-tom { margin: -0.7rem 0 1rem; color: var(--muc-nhat); font-size: 0.92rem; }
@media (max-width: 560px) {
  .ct { padding: 0.7rem 0.6rem 0.8rem; margin-left: -0.2rem; margin-right: -0.2rem; }
  .ct-dong { padding: 0.5rem 0.6rem 0.55rem; }
  .ct-nut-chia { margin-left: 0; }
  .ct-o-diem { width: 5.4rem; }
}
@media print { .ct, .ct-luu { display: none !important; } }

/* ----- S14: mục đích, phạm vi, yêu cầu cần đạt; xuất Word hồ sơ đề ----- */
.hsd { margin: 0.4rem 0 1.4rem; padding: 0.2rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 5px solid var(--muc); border-radius: 6px; }
.hsd .ten-muc { margin-top: 0.8rem; }
.hsd-ghi-chu { color: var(--muc-nhat); font-size: 0.9rem; }
.hsd-nguon { margin: -0.2rem 0 0.4rem; }
.hsd-muc { margin: 0.8rem 0 0.25rem; font-size: 1rem; }
.hsd-chu { margin: 0 0 0.35rem; white-space: pre-line; line-height: 1.5; }
.hsd-goi-y { color: var(--muc-nhat); }
.hsd-nhan { font-size: 0.86rem; font-style: italic; }
.hsd-ds { margin: 0 0 0.4rem; padding-left: 1.3rem; line-height: 1.5; }
.hsd-ds li { margin: 0.1rem 0; }
.hsd-tu-dong { color: var(--muc-nhat); }
.bang-yccd td, .bang-yccd th { vertical-align: top; }
.bang-yccd .hsd-chu-de { display: block; font-size: 0.86rem; color: var(--muc-nhat); }
.hsd-form .nhan { display: block; margin: 0.8rem 0 0.25rem; font-weight: 700; }
.hsd-o { width: 100%; min-height: 4.2rem; font: inherit; line-height: 1.45; resize: vertical; }
.hsd-nut-nho { margin-top: 0.3rem; }
.mt-xuat-cho:empty { display: none; }
.hsd-xuat { margin: 0.2rem 0 1rem; padding: 0.4rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--muc); border-left: 5px solid var(--phan); border-radius: 6px; }
.hsd-xuat .truong { margin: 0.5rem 0; }
.hsd-xuat select.o-nhap { max-width: 100%; }
.hsd-ma { border: 0; padding: 0; margin: 0.6rem 0; display: flex; flex-direction: column; gap: 0.3rem; }
.hsd-ma legend { margin-bottom: 0.3rem; }
@media print { #md-nut-sua, .hsd-xuat, .hsd-nguon, .hsd-nhan { display: none !important; } .hsd { border: 0; padding: 0; } .hsd-goi-y { color: #000; } }

/* ----- S14: phiếu tô ô (in) và quét chấm bằng camera / ảnh ----- */
.pq-ds { margin: 0.8rem 0 1rem; }
.pq-trang { width: 100%; max-width: 180mm; margin: 0 auto 1.2rem; background: #fff; box-shadow: 0 1px 4px rgba(20, 40, 75, 0.25); }
.pq-trang svg { display: block; width: 100%; height: auto; }
.pq-luu-y { max-width: 54rem; }
#pq-in { display: none; }
@page phieu-to-o { size: A4 portrait; margin: 14mm 12mm; }
@media print {
  body.in-pq { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  body.in-pq > *:not(#pq-in) { display: none !important; }
  body.in-pq #pq-in { display: block !important; }
  #pq-in .pq-trang { page: phieu-to-o; width: 180mm; max-width: none; height: 266mm; margin: 0; box-shadow: none; overflow: hidden; break-after: page; page-break-after: always; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #pq-in .pq-trang:last-child { break-after: auto; page-break-after: auto; }
  #pq-in .pq-trang svg { width: 180mm; height: 266mm; }
  #quet-khoi, .bd-cham-tieu-de, .pq-luu-y { display: none !important; }
}
.quet-khoi { margin: 0.6rem 0 1.4rem; padding: 0.3rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-left: 5px solid var(--phan); border-radius: 6px; }
.quet-nut { flex-wrap: wrap; align-items: center; gap: 0.5rem 0.8rem; }
.quet-nhan-tep { position: relative; display: inline-flex; align-items: center; }
.quet-nhan-tep:focus-within { outline: 3px solid var(--phan); outline-offset: 2px; }
.quet-tep-an { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.quet-trang-thai { margin: 0.6rem 0 0.4rem; padding: 0.45rem 0.7rem; border-radius: 6px; background: var(--giay); font-weight: 600; min-height: 2.2rem; }
.quet-tt-xong { background: #e8f5ee; color: var(--duyet); }
.quet-tt-can { background: var(--phan-nhat); color: #7a5600; }
.quet-tt-loi { background: #fdecea; color: var(--loi); }
.quet-dem { margin: 0.2rem 0 0.4rem; color: var(--muc-nhat); font-size: 0.9rem; }
.quet-camera { position: relative; max-width: 26rem; margin: 0.4rem 0 0.8rem; background: #000; border-radius: 6px; overflow: hidden; }
.quet-camera video { display: block; width: 100%; height: auto; }
.quet-lop-phu { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.quet-ds { display: flex; flex-direction: column; gap: 0.7rem; }
.quet-the { border: 1.5px solid var(--ke); border-left-width: 5px; border-radius: 6px; padding: 0.5rem 0.8rem 0.6rem; background: var(--trang); }
.quet-the.quet-ro { border-left-color: var(--duyet); }
.quet-the.quet-can-xem { border-left-color: var(--phan); }
.quet-the.quet-da-luu { border-left-color: var(--duyet); background: #f6fbf8; }
.quet-the.quet-loi { border-left-color: var(--loi); }
.quet-the-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.8rem; }
.quet-the-dau .quet-ten { font-size: 1.02rem; }
.quet-phu { color: var(--muc-nhat); font-size: 0.88rem; }
.quet-the-dau .tt { margin-left: auto; }
.quet-the.quet-da-luu .quet-tt { border-color: var(--duyet); color: var(--duyet); }
.quet-the.quet-can-xem .quet-tt { border-color: var(--phan); color: #7a5600; }
.tt-loi { border-color: var(--loi); color: var(--loi); }
.quet-the-than { display: grid; grid-template-columns: minmax(10rem, 15rem) 1fr; gap: 0.9rem; margin-top: 0.5rem; }
.quet-hinh { margin: 0; cursor: zoom-in; }
.quet-hinh canvas { display: block; width: 100%; height: auto; border: 1px solid var(--ke); border-radius: 4px; background: #fff; }
.quet-hinh figcaption { margin-top: 0.25rem; color: var(--muc-nhat); }
.quet-hinh.quet-hinh-to { grid-column: 1 / -1; cursor: zoom-out; max-width: 40rem; }
.quet-ly-do { margin: 0 0 0.5rem; padding-left: 1.2rem; color: #7a5600; }
.quet-ly-do li { margin: 0.1rem 0; }
.quet-ly-do-mot { margin: 0.4rem 0; color: var(--loi); }
.quet-dinh-danh { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; margin: 0 0 0.5rem; }
.quet-chon-nhan { display: inline-flex; align-items: center; gap: 0.3rem; margin-left: 0.6rem; }
.quet-phan { border: 1px solid var(--ke); border-radius: 6px; margin: 0 0 0.5rem; padding: 0.3rem 0.6rem 0.5rem; }
.quet-phan legend { font-weight: 700; font-size: 0.92rem; padding: 0 0.3rem; }
.quet-luoi { display: flex; flex-wrap: wrap; gap: 0.35rem 0.45rem; }
.quet-cau { display: inline-flex; flex-direction: column; align-items: center; gap: 0.1rem; }
.quet-so { font-size: 0.78rem; color: var(--muc-nhat); font-weight: 600; }
.quet-o { width: 2.1rem; padding: 0.25rem 0; text-align: center; font-family: "Courier New", monospace; font-weight: 700; text-transform: uppercase; }
.quet-o.quet-co { border-color: var(--phan); background: var(--phan-nhat); }
.quet-o.quet-sai { border-color: var(--loi); background: #fdecea; }
.quet-o.quet-cu { border-style: dashed; }
.quet-cau-dai { align-items: flex-start; flex-basis: 100%; }
.quet-cau-dai .quet-o { width: 12rem; text-align: left; padding: 0.25rem 0.45rem; text-transform: none; }
.quet-cau-tl .quet-o { width: 4rem; }
.quet-o-viet canvas { display: block; max-width: 100%; height: auto; border: 1px solid var(--ke); border-radius: 4px; }
.quet-mo-lai { margin-top: 0.3rem; }
@media (max-width: 40rem) { .quet-the-than { grid-template-columns: 1fr; } .quet-hinh { max-width: 16rem; } }

/* =====================================================================
   S14a2: trang Tổng quan có số liệu và gợi ý; màn Củng cố trên lớp, Đề giấy & chấm bài; nút dùng ma trận cho kiểm tra online.
   Ô số liệu: nhãn, con số (chữ đậm vừa, số tỉ lệ), dòng phụ; ô tròn biểu tượng tô vàng khi có việc chờ thầy cô (như mục đang mở ở menu).
   ===================================================================== */
.tq-loc { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.1rem 0 0; }
.tq-o-luoi { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: 0.75rem; margin-top: 1rem; }
/* sáu ô: hai hàng ba ô khi không đủ rộng cho một hàng (không để một ô lẻ ở hàng dưới) */
@media (max-width: 1499.98px) { .tq-o-luoi[data-so="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tq-o { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.8rem 0.95rem 0.85rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; min-width: 0; }
.tq-o-bieu { flex: none; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #eef2f7; color: var(--muc); }
.tq-o-bieu svg { width: 1.1rem; height: 1.1rem; }
.tq-o-luu-y .tq-o-bieu { background: var(--phan); }
.tq-o-chu { min-width: 0; }
.tq-o-nhan { margin: 0; font-size: 0.87rem; font-weight: 600; color: var(--muc-nhat); line-height: 1.3; }
.tq-o-so { margin: 0.1rem 0 0; font-size: 1.75rem; line-height: 1.15; font-weight: 600; font-variant-numeric: proportional-nums; letter-spacing: -0.01em; }
.tq-o-don-vi { font-size: 0.95rem; font-weight: 500; color: var(--muc-nhat); margin-left: 0.1rem; }
.tq-o-phu { margin: 0.15rem 0 0; font-size: 0.84rem; color: var(--muc-nhat); line-height: 1.35; }
.tq-cu { margin: 1rem 0 0; }

.tq-bang { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; margin-top: 0.9rem; align-items: start; }
.tq-hop { background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; padding: 0.75rem 0.4rem 0.45rem; min-width: 0; scroll-margin-top: calc(var(--cao-dau, 3.6rem) + 0.6rem); }
.tq-hop-dau { display: flex; align-items: baseline; gap: 0.6rem; padding: 0 0.6rem 0.35rem; }
.tq-hop-ten { margin: 0; font-size: 1.04rem; }
.tq-hop-dem { color: var(--muc-nhat); font-size: 0.88rem; }
.tq-hop > .trong { margin: 0.2rem 0.6rem 0.6rem; font-size: 0.93rem; }
.tq-hop > .nut { margin: 0 0.6rem 0.6rem; }
.tq-xong { display: flex; align-items: center; gap: 0.5rem; margin: 0.2rem 0.6rem 0.6rem; color: var(--duyet); font-weight: 600; }
.tq-xong-icon { width: 1.15rem; height: 1.15rem; flex: none; }

/* Việc cần làm */
.tq-viec { list-style: none; margin: 0; padding: 0; }
.tq-viec-dong { display: flex; align-items: center; gap: 0.65rem; padding: 0.5rem 0.6rem; border-top: 1px solid var(--ke); }
.tq-viec-dong:first-child { border-top: 0; }
.tq-viec-bieu { flex: none; display: grid; place-items: center; width: 1.85rem; height: 1.85rem; border-radius: 50%; background: #eef2f7; color: var(--muc); }
.tq-viec-bieu svg { width: 1rem; height: 1rem; }
.tq-viec-luu-y { background: var(--phan); }
.tq-viec-chu { flex: 1 1 auto; min-width: 0; line-height: 1.35; }
.tq-viec-nut { flex: none; padding: 0.3rem 0.65rem; font-size: 0.88rem; text-decoration: none; white-space: nowrap; }

/* danh sách câu gợi ý: cả dòng bấm được */
.tq-ds-cau { list-style: none; margin: 0; padding: 0; }
.tq-cau { border-top: 1px solid var(--ke); }
.tq-cau:first-child { border-top: 0; }
.tq-cau-nut { display: flex; flex-direction: column; gap: 0.15rem; width: 100%; margin: 0; padding: 0.55rem 0.6rem 0.6rem; background: none; border: 0; border-radius: 6px;
  font: inherit; color: inherit; text-align: left; cursor: pointer; }
button.tq-cau-nut:hover { background: var(--giay); }
.tq-cau-tinh { cursor: default; }
.tq-cau-de { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.tq-cau-phu { color: var(--muc-nhat); font-size: 0.86rem; line-height: 1.35; }
.tq-cau-nhan { display: flex; flex-wrap: wrap; gap: 0.3rem 0.45rem; margin-top: 0.15rem; }
.tq-nhan { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0 0.5rem; border-radius: 999px; border: 1.5px solid var(--ke); font-size: 0.79rem; font-weight: 700; line-height: 1.5; color: var(--muc-nhat); white-space: nowrap; }
.tq-nhan-cho { border-color: #b78600; background: var(--phan-nhat); color: #7a5600; }
.tq-nhan-ck { border-color: var(--ck); background: var(--ck-nhat); color: var(--ck); white-space: normal; }
.tq-nhan-sao { border-color: #b78600; color: var(--muc); }
.tq-sao { width: 0.85rem; height: 0.85rem; fill: var(--phan); stroke: #9a7000; }
.tq-nhan-thap { border-color: var(--loi); color: var(--loi); background: #fdf0ef; }
.tq-bl { display: flex; flex-direction: column; gap: 0.1rem; margin-top: 0.35rem; padding: 0.35rem 0.6rem; border-left: 3px solid var(--ke); background: var(--giay); border-radius: 0 6px 6px 0; }
.tq-bl-chu { font-size: 0.92rem; line-height: 1.4; overflow-wrap: anywhere; }
.tq-bl-ai { color: var(--muc-nhat); font-size: 0.82rem; }

/* màn rộng một cột: Củng cố trên lớp, Đề giấy & chấm bài */
.man-rong { padding: 1.3rem 1.6rem 4rem; max-width: 72rem; }
.man-dau { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.6rem 1.6rem; }
.man-dau .hang-nut { margin-top: 0.3rem; }
.man-mo-ta { margin: 0.3rem 0 0; max-width: 48rem; color: var(--muc-nhat); }
.man-muc { margin-top: 0.4rem; }
.ot-cua-toi { margin-left: 0.6rem; font-size: 0.92rem; }
.dg .bd-phu { display: block; }
.dg .bang-bd { width: 100%; }
.dg .bang-bd td:nth-child(2) { min-width: 15rem; }
.dg .cot-nut { white-space: nowrap; }

/* hồ sơ ma trận: dùng cho kiểm tra online */
.mt-online { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; margin: 0.4rem 0 0.2rem; padding: 0.5rem 0.8rem; background: var(--trang);
  border: 1.5px solid var(--ke); border-left: 4px solid var(--muc); border-radius: 0 6px 6px 0; max-width: 62rem; }
.mt-online-co { border-left-color: var(--duyet); }
.mt-online .nut { padding: 0.3rem 0.7rem; font-size: 0.92rem; text-decoration: none; }
@media print { .mt-online { display: none !important; } }

@media (max-width: 900px) {
  .tq-bang { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .man-rong { padding: 1rem 1rem 4rem; }
  .tq-o-luoi, .tq-o-luoi[data-so="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
  /* số ô lẻ: ô cuối trải hết hàng, không để một ô đứng lẻ nửa hàng */
  .tq-o-luoi[data-so="3"] .tq-o:last-child, .tq-o-luoi[data-so="5"] .tq-o:last-child { grid-column: 1 / -1; }
  .tq-o { padding: 0.7rem 0.75rem; gap: 0.55rem; }
  .tq-o-so { font-size: 1.45rem; }
}
@media (max-width: 480px) {
  .tq-o-bieu { display: none; }
  .tq-viec-dong { display: grid; grid-template-columns: 1.85rem minmax(0, 1fr); column-gap: 0.65rem; row-gap: 0.4rem; align-items: start; }
  .tq-viec-nut { grid-column: 2; justify-self: start; }
}

/* ----- S13b: phản biện → thẩm định → phê duyệt đề (mon-duyet-de.js) ----- */
.tt-qt { margin-left: 0.3rem; }
.tt-qt-cho_phan_bien, .tt-qt-cho_tham_dinh, .tt-qt-cho_phe_duyet { border-color: #b78600; background: var(--phan-nhat); color: var(--muc); }
.tt-qt-da_phe_duyet { border-color: var(--duyet); background: #e8f5ee; color: var(--duyet); }
.tt-qt-tra { border-color: var(--loi); color: var(--loi); margin-left: 0; }
.bd-tab-cham { display: inline-block; width: 0.55rem; height: 0.55rem; margin-left: 0.4rem; border-radius: 50%; background: var(--phan); vertical-align: 0.1rem; box-shadow: 0 0 0 1.5px var(--muc); }
.bd-tab.dang-chon .bd-tab-cham { box-shadow: 0 0 0 1.5px var(--trang); }
.bd-dang-duyet, .bd-can-duyet { max-width: 52rem; }

.dd { max-width: 62rem; }
.dd-khoi-buoc { margin: 0.2rem 0 0.6rem; }
.dd-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.9rem; }
.dd-dau .ten-muc { margin: 0.5rem 0 0.4rem; }
.dd-trang-thai { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.dd-trang-thai .tt-qt { margin-left: 0; }
.dd-vong { color: var(--muc-nhat); font-size: 0.9rem; font-weight: 600; }
/* các bước: bốn ô tròn nối nhau như một hàng ô trả lời; ô đang tới lượt tô vàng, ô đã xong tô xanh */
.dd-buoc { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dd-buoc-o { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; padding: 0 0.8rem 0 0; min-width: 0; }
.dd-buoc-o::before { content: ''; position: absolute; top: 0.85rem; left: 2rem; right: 0.15rem; height: 2px; background: var(--ke); }
.dd-buoc-o:last-child::before { display: none; }
.dd-buoc-o.dd-xong::before { background: var(--duyet); }
.dd-bong { position: relative; z-index: 1; display: grid; place-items: center; width: 1.8rem; height: 1.8rem; flex: none; border: 2px solid var(--mo); border-radius: 50%;
  background: var(--trang); color: var(--muc-nhat); font-weight: 700; font-size: 0.85rem; line-height: 1; }
.dd-xong .dd-bong { background: var(--duyet); border-color: var(--duyet); color: var(--trang); }
.dd-dang .dd-bong { background: var(--phan); border-color: var(--muc); color: var(--muc); }
.dd-tra .dd-bong { border-color: var(--loi); color: var(--loi); }
.dd-buoc-chu { display: flex; flex-direction: column; min-width: 0; }
.dd-buoc-ten { font-weight: 700; }
.dd-chua .dd-buoc-ten { color: var(--muc-nhat); font-weight: 600; }
.dd-buoc-phu { color: var(--muc-nhat); font-size: 0.86rem; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .dd-buoc { grid-template-columns: 1fr; }
  .dd-buoc-o { flex-direction: row; align-items: flex-start; gap: 0.7rem; padding: 0 0 0.9rem; }
  .dd-buoc-o::before { top: 1.8rem; bottom: 0; left: 0.85rem; right: auto; width: 2px; height: auto; }
}
.dd-quy-dinh { margin: 0.6rem 0 0.2rem; max-width: 54rem; color: var(--muc-nhat); font-size: 0.93rem; }
.dd-ly-do { margin: 0.5rem 0; padding: 0.45rem 0.8rem; background: #eef1f5; border-radius: 6px; max-width: 54rem; }
.dd-ket-thuc { margin: 0.8rem 0 0; padding: 0.55rem 0.9rem; border-left: 4px solid var(--loi); background: #fdf3f2; border-radius: 0 6px 6px 0; max-width: 56rem; }
.dd-ket-thuc p { margin: 0.25rem 0; }
.dd-hop { margin: 0.9rem 0 0; padding: 0.2rem 1rem 0.9rem; background: var(--trang); border: 1.5px solid var(--ke); border-radius: 8px; }
.dd-phieu { border-left: 5px solid var(--phan); }
.dd-hop-ten { margin: 0.7rem 0 0.3rem; font-size: 1.02rem; }
.dd-mo { margin: 0.25rem 0 0.4rem; color: var(--muc-nhat); max-width: 54rem; }
.dd-nut-dau { margin-top: 0.4rem; }
.dd-loi-nhan { margin: 0.3rem 0; padding: 0.4rem 0.75rem; background: var(--phan-nhat); border-radius: 6px; font-style: italic; }
.dd-phan-ten { margin: 1rem 0 0.35rem; font-weight: 700; }
.dd-tc-dau { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem 1rem; }
.dd-tc-dau .dd-phan-ten { margin-bottom: 0.2rem; }
.bang-dd-tc td { vertical-align: middle; }
.dd-tc-ten { display: block; font-weight: 600; }
.dd-tc-cc { display: block; color: var(--muc-nhat); font-size: 0.82rem; }
.dd-tc-chon { white-space: nowrap; }
.dd-tc-chon .nhan-o { margin-right: 0.8rem; }
.dd-tc-gc { min-width: 14rem; }
.dd-gc { padding: 0.35rem 0.55rem; }
.bang tr.dd-chua td { background: #fdf3f2; }
.dd-gy-ds { display: grid; gap: 0.4rem; }
.dd-gy-dong { display: flex; gap: 0.5rem; align-items: center; }
.dd-gy-cau { width: 5.2rem; flex: none; }
.dd-gy-nd { flex: 1 1 auto; min-width: 0; }
.dd-gy-them { margin-top: 0.35rem; padding-left: 0; }
.dd-ket-luan { margin: 0.6rem 0 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.dd-ket-luan legend { margin: 0.9rem 0 0.3rem; }
.dd-kl { display: inline-block; padding: 0.05rem 0.55rem; border-radius: 999px; font-size: 0.82rem; font-weight: 700; background: #eef1f5; color: var(--muc-nhat); }
.dd-kl-dat, .dd-kl-phe_duyet { background: #e8f5ee; color: var(--duyet); }
.dd-kl-can_sua, .dd-kl-tra_lai { background: #fdecea; color: var(--loi); }
.dd-kl-cho { background: var(--phan-nhat); color: var(--muc); }
.dd-truoc { display: grid; gap: 0.5rem; margin: 0.5rem 0; }
.dd-truoc-ten { margin: 0; font-weight: 700; }
.dd-tom-tat { padding: 0.45rem 0.8rem; border: 1.5px solid var(--ke); border-radius: 6px; background: var(--giay); }
.dd-tom-tat p { margin: 0.15rem 0; }
.dd-tom-tat-phu { color: var(--muc-nhat); font-size: 0.9rem; }
.dd-nx { margin: 0.25rem 0; white-space: pre-line; }
.dd-gy, .dd-ds-chua { margin: 0.25rem 0; padding-left: 1.2rem; }
.dd-gy li, .dd-ds-chua li { margin: 0.1rem 0; }
.dd-vong-khoi { margin: 0.6rem 0 0; }
.dd-vong-ten { margin: 0.8rem 0 0.3rem; font-size: 0.98rem; }
.dd-vong-kq { margin-left: 0.4rem; font-weight: 600; color: var(--muc-nhat); }
.dd-dong-ds { list-style: none; margin: 0; padding: 0 0 0 0.9rem; border-left: 2px solid var(--ke); display: grid; gap: 0.6rem; }
.dd-dong p { margin: 0.12rem 0; }
.dd-dong-luc { color: var(--muc-nhat); font-size: 0.86rem; }
.dd-dong-huy { opacity: 0.8; }
.dd-huy { color: var(--muc-nhat); font-size: 0.9rem; }
.dd-chi-tiet summary { cursor: pointer; font-weight: 600; color: var(--muc); margin: 0.2rem 0; }
.dd-chi-tiet .cuon-ngang { margin-top: 0.3rem; }
.bang-dd-ls td, .bang-dd-ls th { font-size: 0.9rem; padding: 0.35rem 0.6rem; }
.dd-xem-bb { margin-top: 0.8rem; }
.dd-xem-bb summary { cursor: pointer; font-weight: 600; }
/* biên bản: xem trước như trang giấy */
.bb-giay { margin: 0.6rem 0 0; padding: 1.4rem 1.6rem; background: var(--trang); border: 1px solid var(--ke); box-shadow: 0 1px 4px rgba(20, 40, 75, 0.18); max-width: 50rem; color: #000; font-size: 0.95rem; }
.bb .de-dau-bang { width: 100%; border-collapse: collapse; }
.bb .de-dau-bang td { vertical-align: top; padding: 0; }
.bb .de-dau-bang p { margin: 0; }
.bb .de-dau { text-align: center; }
.bb-tieu-de { margin: 1rem 0 0.4rem; font-size: 1.05rem; text-align: center; text-transform: uppercase; }
.bb h2 { margin: 0.9rem 0 0.3rem; font-size: 0.98rem; }
.bb p { margin: 0.2rem 0; }
.bb-bang { width: 100%; border-collapse: collapse; margin: 0.3rem 0 0.5rem; }
.bb-bang th, .bb-bang td { border: 1px solid #000; padding: 0.2rem 0.4rem; vertical-align: top; font-size: 0.9rem; }
.bb-bang th { background: #f0f0f0; }
.bb-bang .cot-so { text-align: center; }
.bb .ghi-chu { font-style: italic; color: #333; }
.bb .hsd-ngay { text-align: right; font-style: italic; margin: 0.9rem 0 0.3rem; }
.bb .hsd-ki { width: 100%; border-collapse: collapse; }
.bb .hsd-ki td { width: 25%; text-align: center; vertical-align: top; padding: 0.2rem; font-size: 0.88rem; }
.bb .hsd-ki-ghi { font-style: italic; padding-bottom: 2.6rem; color: #333; }
.bb .hsd-ki-ten { font-size: 0.9rem; }
#bb-in { display: none; }
@media print {
  body.in-bb { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  body.in-bb > *:not(#bb-in) { display: none !important; }
  body.in-bb #bb-in { display: block !important; color: #000; font-size: 12pt; }
  body.in-bb .bb-bang th { background: #eee; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* màn Phản biện & duyệt đề */
.dd-man .dd-nhom { margin-top: 0.4rem; }
.bang-dd .bd-phu { display: block; }
.bang-dd .tt-qt { margin-left: 0; }
.dd-qua-han-chu { color: var(--loi); font-weight: 600; }
.dd-nx-ngan { font-style: italic; max-width: 26rem; }
.dd-trong { margin: 1rem 0 0.4rem; }
/* S13b: mã không gian cá nhân ở trang Tổng quan */
.tq-ma-kg { margin: 0.5rem 0 0; color: var(--muc-nhat); }
.tq-ma-kg b { margin: 0 0.2rem; padding: 0.05rem 0.5rem; font-size: 1.15rem; letter-spacing: 0.08em; color: var(--muc); background: var(--phan-nhat); border: 1.5px solid var(--phan); border-radius: 6px; }
.qd-tieu-chi { margin: 0.3rem 0 0.8rem; padding-left: 1.4rem; max-width: 54rem; }
.qd-tieu-chi li { margin: 0.25rem 0; }
