/* ════════════════════════════════════════════════════════════════════════════
   HỘP "APP VỪA ĐƯỢC CẬP NHẬT" — THIẾT KẾ LẠI, Boss chốt 20/09/2026
   ────────────────────────────────────────────────────────────────────────────
   Boss: *"thiết kế cho tôi cái thông báo update liệt kê các công cụ thay đổi các
   thay đổi trong app ở giữa màn hình mỗi khi có 1 bản update mới bạn thiết kế cái
   bảng đó thành các block có hiệu ứng như của 21st dev nhưng để to hơn cho tôi
   chứa đucợ nhiều chữ và thông tin cho người dùng đọc đucợ nhũng phần thay đổi
   trong app dễ dang và đẹp có animation"*.
   Chốt bằng nút bấm: 720px × 80% màn · điện thoại gần kín màn · đóng bằng nút
   "Đã hiểu" + bấm ra ngoài + Esc · *"Cả kiểu A và B nhuwgn mà phải có gắn ảnh
   cơ để có ảnh chụp lại các thay đổi"*.

   ⛔⛔ ĐÂY LÀ THIẾT KẾ LẠI CÁI CÓ SẴN, KHÔNG PHẢI DỰNG CÁI THỨ HAI.
      App đã có đủ đường dữ liệu từ 19/08/2026: kho `thay-doi.json` → `ban-cap-nhat.js`
      lọc theo quyền từng chức vụ → `/api/thongbao-coso` → `moHopCapNhat()`. Bản đầu
      hôm nay đã lỡ dựng một hệ thống song song (`ban-moi.json` + `ban-moi-man.js`) và
      đo thật trong Chrome thì thấy HAI hộp chồng lên nhau giữa màn. Tệ hơn: hệ thống
      mới ấy không lọc quyền, tức là bày cho Giáo viên đọc đúng những mục mà
      `ban-cap-nhat.js` đang cố giấu. Đã gỡ bỏ. File này CHỈ thay phần bày ra.

   ⛔ Nạp SAU `css/lop.css` (nơi có luật cũ của `.hcn-*`), và mọi bộ chọn đều
      kẹp `#hopCapNhat` để chắc chắn đè được luật cũ mà không phải dùng `!important`.
   ⛔ Class mới đặt tiền tố `hcn2-` để không đụng luật `.hcn-*` cũ — phần "đang cập
      nhật" vẫn dùng khung cũ, chỉ phần "xong" mới sang thiết kế này.
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── khung to hơn: Boss chốt 720px × 80% màn ── */
#hopCapNhat.xong .hcn-hop{ width:min(720px,100%); height:80vh; max-height:80vh; }

/* ⛔ THÂN HỘP PHẢI LÀ CỘT CO GIÃN, KHÔNG PHẢI KHỐI CUỘN NHƯ CŨ.
   Luật cũ cho `.hcn-than` tự cuộn cả cục. Sân thẻ lại dùng `position:absolute`
   nên nó cần một cha có chiều cao THẬT để bám vào; để nguyên luật cũ thì thẻ
   cao 0px, bấm vào block ra một khoảng trắng. Nay thân là cột: dòng trạng thái
   đứng yên ở trên, phần lưới tự cuộn, sân thẻ chiếm hết chỗ còn lại. */
#hopCapNhat.xong .hcn-than{ flex:1; min-height:0; display:flex;
  flex-direction:column; overflow:hidden; padding:0; }
#hopCapNhat.xong .hcn-tt{ flex:0 0 auto; padding:14px 18px 0; }
#hopCapNhat.xong .hcn2-luoi-boc{ flex:1; min-height:0; overflow-y:auto; }
#hopCapNhat.xong .hcn-rong{ padding:16px 18px; }

/* ── đầu hộp ── */
#hopCapNhat .hcn2-huy{ width:38px; height:38px; border-radius:11px; flex:0 0 auto;
  background:linear-gradient(140deg,var(--xanh-sang,#2FBFB2),var(--xanh-dam,#0D8081));
  display:flex; align-items:center; justify-content:center; }
#hopCapNhat .hcn2-huy svg{ width:20px; height:20px; fill:none; stroke:#fff;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#hopCapNhat .hcn2-lui{ display:none; font:inherit; font-size:13px; font-weight:500;
  cursor:pointer; align-items:center; gap:6px; padding:7px 12px 7px 9px;
  border-radius:8px; border:1px solid var(--vien,#D8DEE0);
  background:var(--the,#fff); color:var(--chu,#1B2A2E); transition:.16s; }
#hopCapNhat .hcn2-lui:hover{ background:var(--nen2,#F0EEEA); }
#hopCapNhat .hcn2-lui svg{ width:15px; height:15px; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#hopCapNhat.che-the .hcn2-lui{ display:inline-flex; }
#hopCapNhat.che-the .hcn2-huy, #hopCapNhat.che-the .hcn-tieu{ display:none; }

/* 🐾 LINH VẬT THAY BIỂU TƯỢNG TẢI XUỐNG — Boss chốt 22/09/2026 (bằng nút bấm):
   linh vật TÁCH NỀN (không khung), cao ~56px, NHÚN NHẸ MỘT LẦN khi bảng hiện.
   ⛔ Ảnh NHÚNG thẳng (data:) chứ không thêm tệp .png mới: tệp mới phải khai ở 5 chỗ
      (danh sách tệp tĩnh của máy chủ + 4 danh sách chép lên VPS / lùi bản), sót một
      chỗ là ô trống trơn trên VPS mà không lỗi nào báo — đúng bẫy logo-banner 13/09.
      Ảnh 8,6KB (204×168, cắt từ anh/icon-512.png, 128 màu) — nét ở màn 3x.
   ⛔ Nguồn: linh vật đội mũ chữ T trong anh/icon-512.png, tách nền bằng cách loang từ
      mép ảnh vào và dừng ở viền tối của linh vật. KHÔNG dùng anh/nhan-vat-tai.png (dải
      khung hình của thanh chờ, Boss cấm sửa, mũ chữ W đời cũ). */
#hopCapNhat .hcn2-huy.hcn2-linh-vat{ width:68px; height:56px; border-radius:0;
  margin:-6px 0 -6px -4px;
  background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAACoCAMAAACbmfGMAAABgFBMVEVfWizy46UTJyEHY1EfYFznqFpj15qdrJ1aaFiXzakCNy3frpGel12g7cjQ4dSojDNXn2wEUi/Na09sp48HZZ+Rcy0VnGkAmWzXpDIFJyMCKCNQNSnj02EOid0TUjkDNUsA//gIRDcC+Kn///tzwWWZb12asaZbaWGtyVp/6sA+z6EcwHchUkcAq5cAQTYSlqAPVEb+0D1V//8A/38FhYX//7+pPzCcxMQAAABo16pIxZkCKCNDvJMBGRc6uZD711K3VTz6tjUDIh37+/UINCtY0qX6ykfBXEH5o4eYRDKpSze9W0AACgtSzaFx47Q8w5UIo2QvqYT0rDD95GWt+ND94VwCiVgDlFwPRjgsl3aKPC0viGsyzH0FmmIBKCQUVkX9xDorOCkCKyXz6MyM5bsVaFECNi0raFMqo3tzNyrq6+o50oIDKiUwRjCR7ML8+dQQd1gDKSQANCwDNy9MqYf22mYBRjgrc1oLeszAWj7MmC8nWEg10H76m4VJl3hK2IljkG+mAAAAgHRSTlP+/+8W/////v7/Jf/+///+/hX//////gz/YKH////+/gJPBAL//wsS/////0cHnP+a/wMEVgT/DQD///z//v/////9//7//////////v///////////////v//////1P///pD///9w/v////+v/v///3GOTv//Mf7////+/////x6BlCgAAB85SURBVHja1Z2JXxrJtsebfXHXuMabyTKZmXvfXd8aumnAToNBWcQlAYkQiIIm4h690Rnzr7/fqepuuqEBx21MzceAy0B/+yx16pyqg/DqRuP/fh5x/fzqoQzhJv9zcLoklZxK1YXnP/3sqh0eHk5jHB4e//zTdwYTnJHZkCRn7RBYkqqqEh+K7JwOvvh+YF4cSZKsCEP9fpUung2FDTxJyYoklWo/fS8wVSD0R9cS/QJg5FRKlhr+fp/PF/D5+of9FQhMVUvH3wdMUJIqnuiQACFACuBwfNx/zcY+Hvc/OoYbwJGqP30PMDOSUxAUUqiK3+cgBIdpENdHX0WG7fz14cO8mIFRKDAav+8jSByOlZW16Jo+VlYYkMNPYnM9dJhnTlylLAn9uGQiIZCoxsHGWjQKoP1+qODu/zxoGFeVOSzBs7Kvk9DV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") center / contain no-repeat;
  transform-origin:50% 100%;
  animation:hcn2Nhun .75s .18s cubic-bezier(.3,.7,.4,1) both; }
@keyframes hcn2Nhun{
  0%  { transform:translateY(0) scale(1,1); }
  28% { transform:translateY(-7px) scale(.97,1.04); }
  52% { transform:translateY(0) scale(1.05,.94); }
  74% { transform:translateY(-2px) scale(.99,1.01); }
  100%{ transform:none; } }
@media (prefers-reduced-motion: reduce){ #hopCapNhat .hcn2-huy.hcn2-linh-vat{ animation:none; } }

/* ══ CHẾ ĐỘ LƯỚI (các block công cụ) ══ */
#hopCapNhat .hcn2-luoi-boc{ padding:16px 18px 18px; }
#hopCapNhat.che-the .hcn2-luoi-boc{ display:none; }
#hopCapNhat .hcn2-nhan{ font-size:11px; font-weight:500; letter-spacing:.5px;
  text-transform:uppercase; color:var(--mo,#6B6660); margin:0 0 11px; }
#hopCapNhat .hcn2-luoi{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#hopCapNhat .hcn2-block{ border:1px solid var(--vien,#D8DEE0); border-radius:12px;
  overflow:hidden; background:var(--the,#fff); display:flex; flex-direction:column;
  cursor:pointer; text-align:left; font:inherit; color:inherit; padding:0;
  opacity:0; transform:translateY(12px);
  animation:hcn2Len .42s cubic-bezier(.2,.9,.3,1) forwards;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
#hopCapNhat .hcn2-block:hover{ border-color:var(--xanh-sang,#2FBFB2);
  transform:translateY(-2px); box-shadow:0 6px 18px rgba(20,160,160,.12); }
#hopCapNhat .hcn2-block:focus-visible{ outline:2px solid var(--xanh,#14A0A0);
  outline-offset:2px; }
@keyframes hcn2Len{ to{ opacity:1; transform:none } }
#hopCapNhat .hcn2-block:nth-child(1){ animation-delay:.04s }
#hopCapNhat .hcn2-block:nth-child(2){ animation-delay:.08s }
#hopCapNhat .hcn2-block:nth-child(3){ animation-delay:.12s }
#hopCapNhat .hcn2-block:nth-child(4){ animation-delay:.16s }
#hopCapNhat .hcn2-block:nth-child(5){ animation-delay:.20s }
#hopCapNhat .hcn2-block:nth-child(6){ animation-delay:.24s }
#hopCapNhat .hcn2-block:nth-child(n+7){ animation-delay:.28s }

#hopCapNhat .hcn2-anh{ height:104px; background:var(--nen2,#F0EEEA);
  border-bottom:1px solid var(--vien,#D8DEE0); overflow:hidden; flex:0 0 auto; }
#hopCapNhat .hcn2-anh img{ width:100%; height:100%; object-fit:cover;
  object-position:left top; display:block; transition:transform .3s ease; }
#hopCapNhat .hcn2-block:hover .hcn2-anh img{ transform:scale(1.03); }
#hopCapNhat .hcn2-anh.trong{ display:flex; align-items:center; justify-content:center;
  background:var(--xanh-nhat,#E8F5F5); }
#hopCapNhat .hcn2-anh.trong svg{ width:30px; height:30px; fill:none;
  stroke:var(--xanh-dam,#0D8081); stroke-width:1.6; opacity:.5; }
#hopCapNhat .hcn2-ruot{ padding:13px 15px 15px; display:flex; flex-direction:column;
  gap:7px; }
#hopCapNhat .hcn2-block h4{ margin:0; font-size:14.5px; font-weight:600;
  line-height:1.4; letter-spacing:-.1px; }
#hopCapNhat .hcn2-block p{ margin:0; font-size:12.5px; line-height:1.6;
  color:var(--chu,#1B2A2E); opacity:.86; }
#hopCapNhat .hcn2-dem{ align-self:flex-start; font-size:11px; font-weight:500;
  color:var(--xanh-dam,#0D8081); background:var(--xanh-nhat,#E8F5F5);
  padding:3px 8px; border-radius:5px; }
#hopCapNhat .hcn2-xem{ margin-top:1px; font-size:12px; font-weight:500;
  color:var(--xanh-dam,#0D8081); }

/* ══ CHẾ ĐỘ THẺ (một công cụ, ảnh to, liệt kê đủ) ══ */
#hopCapNhat .hcn2-san{ flex:1; position:relative; padding:18px 18px 6px;
  overflow:hidden; display:none; }
#hopCapNhat.che-the .hcn2-san{ display:block; }
#hopCapNhat .hcn2-the{ position:absolute; left:18px; right:18px; top:18px; bottom:6px;
  background:var(--the,#fff); border:1px solid var(--vien,#D8DEE0); border-radius:14px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .38s cubic-bezier(.2,.9,.3,1), opacity .28s ease,
    box-shadow .3s ease; }
#hopCapNhat .hcn2-the[data-o="0"]{ transform:none; opacity:1; z-index:3;
  box-shadow:0 8px 22px rgba(31,29,26,.09); }
#hopCapNhat .hcn2-the[data-o="1"]{ transform:translateY(14px) scale(.968);
  opacity:1; z-index:2; box-shadow:0 4px 12px rgba(31,29,26,.06); }
#hopCapNhat .hcn2-the[data-o="2"]{ transform:translateY(26px) scale(.938);
  opacity:1; z-index:1; }
#hopCapNhat .hcn2-the[data-o="xa"]{ transform:translateY(34px) scale(.92);
  opacity:0; z-index:0; pointer-events:none; }
#hopCapNhat .hcn2-the[data-o="di"]{ transform:translateY(-30px) scale(1.01);
  opacity:0; z-index:4; pointer-events:none; }

/* ⛔ ẢNH GIÃN LẤP CHỖ TRỐNG, ĐỪNG GHIM CHIỀU CAO CỨNG.
   Ghim 208px thì công cụ chỉ có MỘT thay đổi để lại nửa thẻ trắng trơn — đo thật
   20/09 với "Tìm công cụ nhanh" đúng ra cảnh đó. Nay ảnh nhận phần thừa (tối thiểu
   150px, tối đa 62% thẻ) còn phần chữ co theo nội dung, nên thẻ nào cũng đầy đặn
   mà thẻ nhiều chữ vẫn không bị ảnh lấn. */
#hopCapNhat .hcn2-the-anh{ flex:1 1 auto; min-height:150px; max-height:62%;
  background:var(--nen2,#F0EEEA);
  border-bottom:1px solid var(--vien,#D8DEE0); overflow:hidden; }
#hopCapNhat .hcn2-the-anh img{ width:100%; height:100%; object-fit:cover;
  object-position:left top; display:block; }
#hopCapNhat .hcn2-the-anh.trong{ display:flex; align-items:center;
  justify-content:center; background:var(--xanh-nhat,#E8F5F5); }
#hopCapNhat .hcn2-the-anh.trong svg{ width:44px; height:44px; fill:none;
  stroke:var(--xanh-dam,#0D8081); stroke-width:1.5; opacity:.45; }
#hopCapNhat .hcn2-the-ruot{ flex:0 1 auto; min-height:0; padding:18px 20px 20px;
  display:flex; flex-direction:column; gap:12px; overflow-y:auto; }
#hopCapNhat .hcn2-the h4{ margin:0; font-size:19px; font-weight:600;
  line-height:1.35; letter-spacing:-.2px; }
#hopCapNhat .hcn2-ds{ margin:0; padding:0; list-style:none; display:flex;
  flex-direction:column; gap:11px; }
#hopCapNhat .hcn2-ds li{ position:relative; padding-left:20px; font-size:14px;
  line-height:1.66; color:var(--chu,#1B2A2E); opacity:.9; }
#hopCapNhat .hcn2-ds li::before{ content:""; position:absolute; left:3px; top:9px;
  width:7px; height:7px; border-radius:50%; background:var(--xanh,#14A0A0); }

/* ── chân hộp ── */
#hopCapNhat .hcn2-cham{ display:none; gap:6px; align-items:center; }
#hopCapNhat.che-the .hcn2-cham{ display:flex; }
#hopCapNhat .hcn2-cham i{ width:7px; height:7px; border-radius:50%;
  background:var(--vien-ro,#B9B3AA); transition:width .25s ease, background .25s ease; }
#hopCapNhat .hcn2-cham i.dang{ width:20px; border-radius:4px;
  background:var(--xanh,#14A0A0); }
#hopCapNhat .hcn2-ghi{ font-size:12.5px; color:var(--mo,#6B6660); margin-right:auto;
  line-height:1.5; font-variant-numeric:tabular-nums; }
#hopCapNhat.xong .hcn-day{ display:flex; align-items:center; gap:11px; }
#hopCapNhat .hcn2-phu{ font:inherit; font-size:14px; font-weight:500; cursor:pointer;
  padding:10px 18px; border-radius:9px; border:1px solid var(--vien,#D8DEE0);
  background:var(--the,#fff); color:var(--chu,#1B2A2E); transition:.16s; }
#hopCapNhat .hcn2-phu:hover{ background:var(--nen2,#F0EEEA); }
#hopCapNhat .hcn2-phu[hidden]{ display:none; }

@media (prefers-reduced-motion: reduce){
  #hopCapNhat .hcn2-block{ animation:none !important; opacity:1; transform:none; }
  #hopCapNhat .hcn2-the, #hopCapNhat .hcn2-anh img{ transition:none !important; }
}

/* ── điện thoại: Boss chọn "gần kín màn" ── */
@media (max-width: 640px){
  #hopCapNhat.xong .hcn-hop{ width:100%; height:94vh; max-height:94vh; }
  #hopCapNhat .hcn2-luoi-boc{ padding:14px 14px 16px; }
  #hopCapNhat .hcn2-luoi{ grid-template-columns:1fr; }
  #hopCapNhat .hcn2-anh{ height:128px; }
  #hopCapNhat .hcn2-san{ padding:14px 14px 5px; }
  #hopCapNhat .hcn2-the{ left:14px; right:14px; top:14px; bottom:5px; }
  #hopCapNhat .hcn2-the-anh{ height:160px; }
  #hopCapNhat .hcn2-the-ruot{ padding:15px 16px 16px; }
  #hopCapNhat .hcn2-the h4{ font-size:17px; }
  #hopCapNhat .hcn2-ghi{ display:none; }
  #hopCapNhat .hcn2-phu{ padding:11px 14px; flex:1; }
}

/* ════════════════════════════════════════════════════════════════════════════
   📜 LỊCH SỬ CẬP NHẬT — Boss chọn "Thêm trang Lịch sử cập nhật" (21/09/2026)
   ────────────────────────────────────────────────────────────────────────────
   Mượn nguyên khung `#hopCapNhat.xong` (720px × 80% màn, cùng đầu hộp, cùng
   nút đóng) — `moLichSuCapNhat()` trong js/tinh-nang.js. Chỉ thêm phần thân: một
   cột cuộn, mỗi bản một khối, trong khối gom theo công cụ.
   ⛔ Kẹp `.lich-su` vào mọi bộ chọn để không đụng hộp "Có gì mới".
   ════════════════════════════════════════════════════════════════════════════ */
#hopCapNhat.lich-su .hls-cuon{ flex:1; min-height:0; overflow-y:auto; padding:6px 18px 18px; }
#hopCapNhat.lich-su .hls-ban{ padding:16px 0; border-bottom:1px solid var(--vien,#D8DEE0); }
#hopCapNhat.lich-su .hls-ban:last-child{ border-bottom:0; }
#hopCapNhat.lich-su .hls-dau{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
#hopCapNhat.lich-su .hls-dau b{ font-size:14.5px; font-weight:600; color:var(--chu,#1B2A2E); }
#hopCapNhat.lich-su .hls-ngay{ margin-left:auto; font-size:12.5px; color:var(--mo,#5F7479); }
#hopCapNhat.lich-su .hls-cc{ margin:0 0 10px; }
#hopCapNhat.lich-su .hls-cc h4{ margin:0 0 4px; font-size:13.5px; font-weight:600;
  color:var(--chu,#1B2A2E); }
#hopCapNhat.lich-su .hls-cc .hcn2-ds{ margin:0; }
#hopCapNhat.lich-su .hls-rong{ margin:0; font-size:13px; color:var(--mo,#5F7479); }
