/* ============================================================
   MIMOSA ACADEMY — giao diện riêng (Lớp đào tạo nhiếp ảnh)
   • Mọi class tiền tố "aca-" → KHÔNG đụng CSS cũ.
   • Nội dung trang gói trong #page-academy; form là lớp phủ .aca-overlay
     (gắn vào body) nên style để ở cấp ngoài, vẫn prefix aca-.
   • Màu/khung bám 4 file demo Academy.
   ============================================================ */
#page-academy, .aca-overlay{
  --aca-gold:#E1A146; --aca-gold-light:#EDB96A; --aca-gold-cream:#FBF1DC;
  --aca-gold-ink:#9c6a16; --aca-gold-pale:#fef9ee;
  --aca-navy:#0D1B33; --aca-bg:#F6F2EA; --aca-text:#26221B; --aca-soft:#8A8170; --aca-line:#ECE5D8;
  --aca-green:#2E7D5B; --aca-green-bg:#E8F3ED; --aca-blue:#2f5fa8; --aca-blue-bg:#EAF0F9;
  --aca-red:#C0392B; --aca-amber:#B9791C;
}
#page-academy{ font-family:'Montserrat',system-ui,-apple-system,Roboto,sans-serif; color:var(--aca-text); }
.aca-wrap{ max-width:1300px; margin:0 auto; }

/* ── avatar gradient (dùng chung trang + form) ── */
.aca-av-1{background:linear-gradient(135deg,#3a5a9c,#2f5fa8);} .aca-av-2{background:linear-gradient(135deg,#e2a64a,#c9851f);}
.aca-av-3{background:linear-gradient(135deg,#3f8a68,#2E7D5B);} .aca-av-4{background:linear-gradient(135deg,#7a5cc0,#5d3fa0);}
.aca-av-5{background:linear-gradient(135deg,#cf7150,#b8542e);}

/* ── tiêu đề + tab chính ── */
.aca-ph h1{ font-size:22px; color:var(--aca-navy); font-weight:800; display:flex; align-items:center; gap:9px; margin:0 0 3px; font-variant-numeric:lining-nums tabular-nums; }
.aca-ph .aca-sub{ font-size:12.5px; color:var(--aca-soft); margin-bottom:16px; }
.aca-tabs{ display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap; }
.aca-tb{ padding:10px 16px; font-size:13.5px; font-weight:700; color:var(--aca-soft); border-radius:9px; background:#fff; border:1px solid var(--aca-line); cursor:pointer; font-family:inherit; transition:.14s; }
.aca-tb:hover{ border-color:var(--aca-gold); color:var(--aca-gold-ink); }
.aca-tb.on{ background:var(--aca-navy); color:#fff; border-color:var(--aca-navy); }
.aca-panel{ min-height:120px; }
.aca-deny{ background:#fff; border:1px solid var(--aca-line); border-radius:14px; padding:30px 20px; text-align:center; color:var(--aca-red); font-weight:700; }
.aca-note{ margin-top:14px; font-size:12px; color:var(--aca-soft); background:var(--aca-gold-pale); border:1px solid var(--aca-line); border-radius:10px; padding:9px 13px; }
.aca-empty-mini{ background:#fff; border:1.5px dashed var(--aca-line); border-radius:12px; padding:20px; text-align:center; color:var(--aca-soft); font-size:12.5px; }

/* ════════ TAB GIÁO ÁN ════════ */
.aca-ov{ background:var(--aca-navy); border-radius:16px; padding:18px 20px; color:#fff; display:flex; align-items:center; gap:16px; margin-bottom:16px; border-bottom:4px solid var(--aca-gold); }
.aca-ovpct{ font-size:32px; font-weight:800; color:var(--aca-gold-light); line-height:1; font-variant-numeric:lining-nums tabular-nums; }
.aca-ovbar-wrap{ flex:1; }
.aca-ovl{ font-size:12.5px; color:#cdd3df; margin-bottom:7px; }
.aca-ovbar{ height:10px; background:rgba(255,255,255,.15); border-radius:10px; overflow:hidden; }
.aca-ovbar>i{ display:block; height:100%; background:linear-gradient(90deg,var(--aca-gold),var(--aca-gold-light)); border-radius:10px; transition:.3s; }
.aca-gatabs{ display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; margin-bottom:16px; }
.aca-gatb{ flex:0 0 auto; padding:10px 14px; font-size:13px; font-weight:700; color:var(--aca-soft); border-radius:10px; background:#fff; border:1px solid var(--aca-line); cursor:pointer; white-space:nowrap; font-family:inherit; }
.aca-ganum{ display:inline-flex; width:20px; height:20px; border-radius:50%; background:var(--aca-gold-cream); color:var(--aca-gold-ink); font-size:11px; align-items:center; justify-content:center; margin-right:7px; font-weight:800; }
.aca-gatb.on{ background:var(--aca-navy); color:#fff; border-color:var(--aca-navy); }
.aca-gatb.on .aca-ganum{ background:var(--aca-gold); color:#fff; }
.aca-gact{ font-size:11px; opacity:.8; margin-left:4px; }
.aca-cover{ position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--aca-line); background:linear-gradient(135deg,var(--aca-navy),#1f3b66); min-height:150px; }
.aca-cover img{ width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
.aca-cover.no-img{ aspect-ratio:auto; }
.aca-ccap{ position:absolute; left:0; right:0; bottom:0; padding:30px 18px 14px; background:linear-gradient(to top,rgba(13,27,51,.86),rgba(13,27,51,0)); color:#fff; }
.aca-cct{ font-size:18px; font-weight:800; }
.aca-ccs{ font-size:12px; color:#e7d6b8; margin-top:2px; }
.aca-cbadge{ position:absolute; top:12px; right:12px; background:rgba(255,255,255,.94); color:var(--aca-navy); font-size:11.5px; font-weight:800; padding:6px 12px; border-radius:20px; }
.aca-cbar{ height:9px; background:#eee6d6; border-radius:9px; overflow:hidden; margin:14px 2px 4px; }
.aca-cbar>i{ display:block; height:100%; background:linear-gradient(90deg,var(--aca-gold),var(--aca-gold-light)); transition:.3s; }
.aca-cbar-l{ font-size:11.5px; color:var(--aca-soft); font-weight:700; margin:0 2px 14px; }
.aca-lessons{ display:flex; flex-direction:column; gap:8px; }
.aca-ls{ display:flex; align-items:center; gap:13px; background:#fff; border:1px solid var(--aca-line); border-radius:12px; padding:13px 15px; cursor:pointer; transition:.12s; }
.aca-ls:not(.ro):hover{ border-color:var(--aca-gold); background:var(--aca-gold-pale); }
.aca-ls.ro{ cursor:default; }
.aca-bx{ width:26px; height:26px; border-radius:8px; border:2px solid #cabfa9; flex:0 0 26px; display:flex; align-items:center; justify-content:center; font-size:15px; color:#fff; transition:.12s; }
.aca-ls.on .aca-bx{ background:var(--aca-green); border-color:var(--aca-green); }
.aca-lt{ flex:1; min-width:0; }
.aca-ln{ font-size:14px; font-weight:700; color:var(--aca-navy); }
.aca-ls.on .aca-ln{ color:#8a8170; text-decoration:line-through; }
.aca-lref{ font-size:11px; color:var(--aca-soft); margin-top:1px; }
.aca-lst{ font-size:10px; font-weight:700; border-radius:20px; padding:3px 10px; white-space:nowrap; background:#eef1f5; color:#5b6680; }
.aca-ls.on .aca-lst{ background:var(--aca-green-bg); color:var(--aca-green); }

/* ════════ TAB LỊCH GIẢNG DẠY ════════ */
.aca-blk-lb{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--aca-gold-ink); font-weight:800; margin-bottom:10px; }
.aca-tcards{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.aca-tcard{ flex:0 0 auto; width:154px; background:#fff; border:1px solid var(--aca-line); border-radius:15px; padding:15px 14px; text-align:center; transition:.14s; }
.aca-tcard:hover{ transform:translateY(-2px); box-shadow:0 8px 22px rgba(13,27,51,.10); }
.aca-tav{ width:48px; height:48px; border-radius:50%; margin:0 auto 9px; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800; color:#fff; }
.aca-tn{ font-size:14px; font-weight:800; color:var(--aca-navy); }
.aca-big{ font-size:30px; font-weight:800; color:var(--aca-gold-ink); line-height:1.05; margin-top:6px; font-variant-numeric:lining-nums tabular-nums; }
.aca-big span{ font-size:11px; color:var(--aca-soft); font-weight:600; }
.aca-pp{ display:flex; flex-wrap:wrap; gap:4px; justify-content:center; margin-top:9px; }
.aca-pr{ background:#f6f1e7; color:#7a6c4f; border-radius:20px; padding:2px 8px; font-size:9.5px; font-weight:600; }
.aca-calhead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; gap:10px; flex-wrap:wrap; }
.aca-wk{ display:flex; align-items:center; gap:12px; font-size:16px; font-weight:800; color:var(--aca-navy); font-variant-numeric:lining-nums tabular-nums; }
.aca-nav{ border:1px solid var(--aca-line); background:#fff; border-radius:9px; width:34px; height:34px; cursor:pointer; font-size:14px; color:var(--aca-navy); }
.aca-nav:hover{ border-color:var(--aca-gold); color:var(--aca-gold-ink); }
.aca-legend{ display:flex; gap:14px; font-size:11.5px; color:var(--aca-soft); }
.aca-legend i{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.aca-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:9px; }
.aca-wcol{ border:1px solid var(--aca-line); border-radius:13px; overflow:hidden; display:flex; flex-direction:column; background:#fff; min-height:188px; }
.aca-wh{ padding:10px 6px; text-align:center; border-bottom:1px solid var(--aca-line); }
.aca-wcol.today .aca-wh{ background:var(--aca-gold-pale); }
.aca-wd{ font-size:10px; color:var(--aca-soft); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.aca-wn{ font-size:19px; font-weight:800; color:var(--aca-navy); font-variant-numeric:lining-nums tabular-nums; }
.aca-wcol.today .aca-wn{ color:var(--aca-gold-ink); }
.aca-wb{ padding:8px; flex:1; display:flex; flex-direction:column; gap:7px; }
.aca-wcard{ position:relative; border-radius:11px; padding:10px 9px; border:1px solid var(--aca-line); }
.aca-wcard.out{ background:var(--aca-green-bg); border-color:#cfe6da; } .aca-wcard.in{ background:var(--aca-blue-bg); border-color:#cfdcef; }
.aca-wmd{ font-size:9.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.aca-wcard.out .aca-wmd{ color:var(--aca-green); } .aca-wcard.in .aca-wmd{ color:var(--aca-blue); }
.aca-wtt{ font-size:12px; font-weight:700; color:var(--aca-navy); margin:5px 0 7px; line-height:1.3; }
.aca-wloc{ font-size:10.5px; color:var(--aca-soft); margin-bottom:6px; }
.aca-wpp{ display:flex; flex-direction:column; gap:5px; }
.aca-wpr{ display:flex; align-items:center; gap:6px; }
.aca-wa{ width:22px; height:22px; border-radius:50%; background:var(--aca-navy); color:#fff; font-size:9px; font-weight:700; display:flex; align-items:center; justify-content:center; flex:0 0 22px; }
.aca-wnm{ font-size:11.5px; font-weight:600; color:#3a3322; }
.aca-wdel{ position:absolute; top:6px; right:7px; width:18px; height:18px; border-radius:50%; background:rgba(192,57,43,.12); color:var(--aca-red); font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.aca-wempty{ flex:1; display:flex; align-items:center; justify-content:center; color:#c2b9a6; font-size:11px; border:1.5px dashed var(--aca-line); border-radius:11px; cursor:pointer; min-height:90px; font-weight:700; }
.aca-wempty.ro{ cursor:default; }
.aca-wempty:not(.ro):hover{ border-color:var(--aca-gold); color:var(--aca-gold-ink); background:var(--aca-gold-pale); }
.aca-wadd{ text-align:center; color:var(--aca-soft); font-size:10.5px; font-weight:700; border:1px dashed var(--aca-line); border-radius:9px; padding:6px; cursor:pointer; }
.aca-wadd:hover{ border-color:var(--aca-gold); color:var(--aca-gold-ink); }
.aca-thisweek{ text-align:center; margin-top:14px; color:var(--aca-gold-ink); font-size:12.5px; font-weight:700; cursor:pointer; }
.aca-thisweek:hover{ text-decoration:underline; }

/* ════════ FORM XẾP BUỔI (lớp phủ) ════════ */
.aca-overlay{ position:fixed; inset:0; background:rgba(13,27,51,.55); display:none; align-items:center; justify-content:center; z-index:99999; padding:20px; font-family:'Montserrat',system-ui,sans-serif; }
.aca-overlay.show{ display:flex; }
.aca-pop{ background:#fff; width:100%; max-width:480px; border-radius:18px; max-height:92vh; overflow-y:auto; box-shadow:0 24px 60px rgba(13,27,51,.4); }
.aca-ph2{ background:var(--aca-navy); padding:16px 20px; border-bottom:3px solid var(--aca-gold); display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; z-index:2; }
.aca-ph2 h3{ color:#fff; font-size:17px; margin:0; }
.aca-day2{ color:var(--aca-gold-light); font-size:12px; font-weight:700; margin-top:4px; }
.aca-pclose{ border:none; background:rgba(255,255,255,.15); width:32px; height:32px; border-radius:50%; font-size:16px; cursor:pointer; color:#fff; }
.aca-pb{ padding:18px 20px 22px; }
.aca-flb{ font-size:12px; font-weight:800; color:var(--aca-navy); margin:18px 0 9px; display:flex; justify-content:space-between; align-items:center; }
.aca-flb:first-child{ margin-top:0; }
.aca-cc{ color:var(--aca-soft); font-weight:600; font-size:11px; }
.aca-suggest{ background:var(--aca-gold-pale); border:1px solid var(--aca-gold-cream); border-radius:10px; padding:8px 12px; font-size:12px; color:#5a4a28; margin-bottom:10px; }
.aca-suggest b{ color:var(--aca-gold-ink); }
.aca-seg{ display:flex; gap:8px; }
.aca-seg button{ flex:1; border:1.5px solid var(--aca-line); background:#fff; border-radius:12px; padding:11px 6px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; color:var(--aca-navy); }
.aca-seg button.on{ border-color:var(--aca-gold); background:var(--aca-gold-pale); color:var(--aca-gold-ink); }
.aca-tgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.aca-tcell{ border:1.5px solid var(--aca-line); border-radius:13px; padding:12px 6px; text-align:center; cursor:pointer; position:relative; transition:.12s; }
.aca-tcell .aca-ca{ width:40px; height:40px; border-radius:50%; margin:0 auto 7px; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; color:#fff; }
.aca-tcell .aca-cn{ font-size:12.5px; font-weight:700; color:var(--aca-navy); }
.aca-tcell.on{ border-color:var(--aca-gold); background:var(--aca-gold-pale); }
.aca-tcell.on::after{ content:'✓'; position:absolute; top:7px; right:9px; color:var(--aca-green); font-weight:800; font-size:14px; }
.aca-tcell.busy{ opacity:.45; cursor:not-allowed; }
.aca-bz{ font-size:9px; color:var(--aca-red); font-weight:700; display:block; margin-top:3px; }
.aca-modesel{ display:flex; gap:10px; }
.aca-msb{ flex:1; border:1.5px solid var(--aca-line); background:#fff; border-radius:13px; padding:14px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; text-align:center; color:var(--aca-navy); }
.aca-msb .aca-em{ font-size:21px; display:block; margin-bottom:4px; }
.aca-msb.on{ border-color:var(--aca-gold); background:var(--aca-gold-pale); color:var(--aca-gold-ink); }
.aca-pop select, .aca-pop input[type=text], .aca-pop textarea{ width:100%; border:1.5px solid var(--aca-line); border-radius:11px; padding:12px 13px; font-size:13.5px; font-family:inherit; color:var(--aca-text); background:#fff; }
.aca-pop textarea{ resize:vertical; min-height:58px; }
.aca-pop select:focus, .aca-pop input:focus, .aca-pop textarea:focus{ outline:none; border-color:var(--aca-gold); }
.aca-pacts{ display:flex; gap:10px; margin-top:22px; }
.aca-pacts button{ flex:1; border-radius:12px; padding:14px; font-size:13.5px; font-weight:800; cursor:pointer; font-family:inherit; border:1px solid var(--aca-line); background:#fff; color:var(--aca-navy); }
.aca-pacts .aca-save{ flex:2; background:var(--aca-gold); border-color:var(--aca-gold); }

/* ════════ MOBILE ════════ */
@media (max-width:860px){
  .aca-ph h1{ font-size:19px; }
  .aca-tabs{ gap:8px; } .aca-tb{ flex:1; text-align:center; padding:11px 8px; }
  .aca-ov{ padding:15px 16px; gap:12px; } .aca-ovpct{ font-size:26px; }
  /* báo cáo thầy: cuộn ngang */
  .aca-tcards{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; }
  .aca-tcard{ width:132px; }
  /* lịch tuần: mỗi ngày 1 hàng */
  .aca-week{ display:flex; flex-direction:column; gap:9px; }
  .aca-wcol{ flex-direction:row; min-height:0; }
  .aca-wh{ flex:0 0 56px; border-bottom:none; border-right:1px solid var(--aca-line); display:flex; flex-direction:column; justify-content:center; }
  .aca-wb{ flex:1; }
  .aca-wempty{ min-height:54px; }
  /* form: bottom sheet */
  .aca-overlay{ align-items:flex-end; padding:0; }
  .aca-pop{ max-width:100%; border-radius:20px 20px 0 0; max-height:90vh; }
}


/* ════════ TAB GIÁO ÁN — gộp từ academy-giaoan.css (scoped #ac-giaoan) ════════ */
/* ============================================================
   MIMOSA ACADEMY — TAB GIÁO ÁN (CSS)
   • TẤT CẢ selector scope dưới #ac-giaoan → KHÔNG đụng app / tab Lịch giảng dạy.
   • Bê nguyên màu + font Roboto từ demo.
   ============================================================ */
#ac-giaoan{
  --gold:#E1A146; --gold-light:#EDB96A; --gold-cream:#FBF1DC; --gold-ink:#9c6a16; --gold-pale:#fef9ee;
  --navy:#0D1B33; --navy-side:#0c1526;
  --panel:#FFFFFF; --text:#26221B; --mid:#6b6456; --soft:#8A8170; --line:#ECE5D8;
  --green:#2E7D5B; --green-bg:#E8F3ED; --blue:#2f5fa8; --blue-bg:#EAF0F9;
  --fd:'Roboto',system-ui,-apple-system,sans-serif; --fb:'Roboto',system-ui,-apple-system,sans-serif;
  font-family:var(--fb); color:var(--text); -webkit-font-smoothing:antialiased;
}
#ac-giaoan :focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:4px; }

/* ---------- KHỐI TỔNG (header + vòng tiến độ) ---------- */
#ac-giaoan .ac-overall{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:18px 22px; margin-bottom:16px; }
#ac-giaoan .ac-eyebrow{ font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:5px; }
#ac-giaoan .ac-ov-title{ font-family:var(--fd); font-weight:500; font-size:26px; color:var(--navy); line-height:1; }
#ac-giaoan .ac-ov-sub{ font-size:12.5px; color:var(--soft); margin-top:7px; }
#ac-giaoan .ac-ov-sub b{ color:var(--gold-ink); font-weight:500; }
#ac-giaoan .ring{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
#ac-giaoan .ring-txt{ display:flex; flex-direction:column; line-height:1.1; }
#ac-giaoan .ring-txt b{ font-family:var(--fd); font-size:22px; color:var(--navy); }
#ac-giaoan .ring-txt span{ font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); }
#ac-giaoan #ringFg{ transition:stroke-dashoffset .5s ease; }

/* ---------- TABS 6 PHẦN ---------- */
#ac-giaoan .tabs{ display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; }
#ac-giaoan .tab{ flex:1 1 0; text-align:left; border:1px solid var(--line); background:#fff; border-radius:13px;
  padding:12px 14px; cursor:pointer; display:flex; flex-direction:column; gap:7px; transition:.18s; font-family:var(--fb); min-width:130px; }
#ac-giaoan .tab:hover{ border-color:var(--gold-light); }
#ac-giaoan .tab.active{ border-color:var(--gold); background:var(--gold-pale); box-shadow:0 0 0 2px rgba(225,161,70,.18); }
#ac-giaoan .tab-no{ font-family:var(--fd); font-weight:700; font-size:20px; color:var(--gold); line-height:1; }
#ac-giaoan .tab.active .tab-no{ color:var(--gold-ink); }
#ac-giaoan .tab-name{ font-size:12px; font-weight:500; color:var(--navy); line-height:1.25; }
#ac-giaoan .tab-meta{ display:flex; align-items:center; gap:8px; font-size:11px; color:var(--soft); }
#ac-giaoan .tab-meta b{ color:var(--gold-ink); font-weight:500; }
#ac-giaoan .tbar{ display:block; flex:1; height:4px; border-radius:4px; background:var(--gold-cream); overflow:hidden; }
#ac-giaoan .tbar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transition:width .4s ease; }

/* ---------- STAGE ---------- */
#ac-giaoan .stage{ max-width:1080px; }
#ac-giaoan .cover{ display:flex; gap:24px; align-items:flex-start; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-side) 100%);
  border-radius:18px; padding:26px 30px; color:#fff; position:relative; overflow:hidden; }
#ac-giaoan .cover::after{ content:""; position:absolute; right:-40px; top:-60px; width:280px; height:280px;
  background:radial-gradient(circle,rgba(225,161,70,.16) 0%,transparent 65%); pointer-events:none; }
#ac-giaoan .cov-no{ font-family:var(--fd); font-weight:700; font-size:64px; color:var(--gold); line-height:.85; opacity:.95; position:relative; z-index:1; }
#ac-giaoan .cov-main{ flex:1; min-width:0; position:relative; z-index:1; }
#ac-giaoan .cov-eyebrow{ font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light); margin-bottom:6px; }
#ac-giaoan .cov-title{ font-family:var(--fd); font-weight:500; font-size:28px; color:#fff; line-height:1.05; }
#ac-giaoan .cov-goal{ font-size:13px; color:rgba(255,255,255,.82); margin-top:9px; max-width:60ch; line-height:1.55; }
#ac-giaoan .cov-prog{ min-width:152px; text-align:right; position:relative; z-index:1; }
#ac-giaoan .cov-prog-num{ font-family:var(--fd); font-size:24px; color:#fff; }
#ac-giaoan .cov-prog-num span{ color:var(--gold-light); }
#ac-giaoan .cov-prog .bar{ height:6px; border-radius:6px; background:rgba(255,255,255,.16); overflow:hidden; margin:8px 0 6px; }
#ac-giaoan .cov-prog .bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transition:width .4s ease; }
#ac-giaoan .cov-prog-lab{ font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* ---------- LESSON CARDS ---------- */
#ac-giaoan .lessons{ margin-top:22px; display:flex; flex-direction:column; gap:14px; }
#ac-giaoan .lesson{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:18px 20px; display:flex; gap:16px; transition:.18s; }
#ac-giaoan .lesson:hover{ box-shadow:0 6px 22px rgba(13,27,51,.06); }
#ac-giaoan .lesson.done{ background:var(--gold-pale); border-color:#eedcb6; }
#ac-giaoan .chk{ width:26px; height:26px; flex-shrink:0; margin-top:2px; border:2px solid var(--gold); border-radius:50%;
  background:#fff; cursor:pointer; position:relative; transition:.15s; padding:0; }
#ac-giaoan .chk:hover{ background:var(--gold-cream); }
#ac-giaoan .chk[aria-pressed="true"]{ background:var(--gold); border-color:var(--gold); }
#ac-giaoan .chk[aria-pressed="true"]::after{ content:""; position:absolute; left:8px; top:4px; width:6px; height:11px;
  border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
#ac-giaoan .lbody{ flex:1; min-width:0; }
#ac-giaoan .lhead{ display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
#ac-giaoan .ltitle{ font-size:15px; font-weight:500; color:var(--navy); line-height:1.3; }
#ac-giaoan .code{ font-size:10.5px; background:var(--gold-cream); color:var(--gold-ink); padding:2px 8px; border-radius:20px; letter-spacing:.03em; font-variant-numeric:tabular-nums; font-weight:500; }
#ac-giaoan .badge{ font-size:10px; background:var(--gold-cream); color:var(--gold-ink); border:1px solid #e9d3a3; padding:2px 8px; border-radius:20px; font-weight:500; letter-spacing:.02em; }
#ac-giaoan .tg{ font-size:10px; font-weight:500; padding:2px 9px; border-radius:20px; }
#ac-giaoan .tg.out{ background:var(--green-bg); color:var(--green); }
#ac-giaoan .tg.in{ background:var(--blue-bg); color:var(--blue); }
#ac-giaoan .ldesc{ margin-top:6px; font-size:13px; color:var(--mid); line-height:1.5; }
#ac-giaoan .plabel{ margin-top:13px; font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--gold-ink); font-weight:700; }
#ac-giaoan .points{ margin-top:6px; list-style:none; display:flex; flex-direction:column; gap:5px; padding:0; }
#ac-giaoan .points li{ position:relative; padding-left:16px; font-size:13px; color:var(--text); line-height:1.5; }
#ac-giaoan .points li::before{ content:""; position:absolute; left:2px; top:8px; width:5px; height:5px; border-radius:50%; background:var(--gold); }
#ac-giaoan .gallery{ margin-top:14px; display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; scrollbar-width:thin; }
#ac-giaoan .gallery::-webkit-scrollbar{ height:7px; }
#ac-giaoan .gallery::-webkit-scrollbar-thumb{ background:var(--gold-cream); border-radius:6px; }
#ac-giaoan .tile{ width:94px; height:66px; flex-shrink:0; border-radius:9px; border:1px solid #ecdcbf;
  background:linear-gradient(135deg,#fef9ee 0%,#fbf1dc 100%); display:flex; align-items:center; justify-content:center; color:#d8b878; transition:.15s; }
#ac-giaoan .tile:hover{ transform:translateY(-2px); box-shadow:0 5px 14px rgba(225,161,70,.18); }
#ac-giaoan .tile .tile-ic{ font-size:20px; opacity:.85; }
#ac-giaoan .tile.add{ border:1.5px dashed var(--gold); background:#fff; color:var(--gold-ink); font-size:11px; font-weight:500; cursor:pointer; flex-direction:column; gap:2px; }
#ac-giaoan .tile.add span{ font-size:16px; line-height:1; }
#ac-giaoan .cap{ margin-top:6px; font-size:11px; color:var(--soft); }
#ac-giaoan .noteToggle{ margin-top:13px; background:none; border:none; color:var(--gold-ink); font-family:var(--fb); font-size:12px; font-weight:500; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:6px; }
#ac-giaoan .noteToggle::before{ content:"+"; font-size:14px; }
#ac-giaoan .noteToggle[aria-expanded="true"]::before{ content:"\2212"; }
#ac-giaoan .note{ margin-top:9px; }
#ac-giaoan .note textarea{ width:100%; min-height:62px; border:1px solid var(--line); border-radius:9px; padding:9px 11px; font-family:var(--fb); font-size:12.5px; color:var(--text); resize:vertical; background:#fffdf8; }
#ac-giaoan .note textarea::placeholder{ color:#b6ad9a; }

/* ---------- SECTION RESOURCES ---------- */
#ac-giaoan .secres{ margin-top:18px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:12px; padding:15px 18px; }
#ac-giaoan .secres-h{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-ink); font-weight:700; margin-bottom:9px; }
#ac-giaoan .secres ul{ list-style:none; display:flex; flex-direction:column; gap:6px; padding:0; }
#ac-giaoan .secres li{ position:relative; padding-left:18px; font-size:13px; color:var(--text); line-height:1.5; }
#ac-giaoan .secres li::before{ content:"\2192"; position:absolute; left:0; top:0; color:var(--gold); font-weight:700; }

/* ---------- QUIZ ---------- */
#ac-giaoan .quiz{ margin-top:20px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:12px; padding:16px 20px; }
#ac-giaoan .quiz-h{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--navy); font-weight:700; margin-bottom:10px; }
#ac-giaoan .quiz ol{ padding-left:20px; display:flex; flex-direction:column; gap:7px; }
#ac-giaoan .quiz li{ font-size:13.5px; color:var(--text); line-height:1.55; }

/* ---------- PEDAGOGY (lỗi/bài tập) ---------- */
#ac-giaoan .lp{ margin-top:13px; border-top:1px dashed var(--line); padding-top:12px; display:flex; flex-direction:column; gap:11px; }
#ac-giaoan .lp-h{ font-size:10px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; margin-bottom:3px; }
#ac-giaoan .lp-h.miss{ color:#b06a1e; }
#ac-giaoan .lp-h.task{ color:var(--gold-ink); }
#ac-giaoan .lp-item p{ font-size:12.5px; color:var(--mid); line-height:1.55; }
#ac-giaoan .lp-pass{ font-size:12px; color:var(--green); margin-top:4px; }
#ac-giaoan .lp-pass b{ color:var(--green); font-weight:700; }

/* ---------- CARDS: students / downloads / credo / library ---------- */
#ac-giaoan .ac-cards{ max-width:1080px; margin-top:24px; }
#ac-giaoan .students-card, #ac-giaoan .downloads-card{ background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:22px 26px; margin-bottom:20px; }
#ac-giaoan .sc-h, #ac-giaoan .dc-h{ font-size:18px; font-weight:700; color:var(--navy); }
#ac-giaoan .sc-sub, #ac-giaoan .dc-sub{ font-size:12.5px; color:var(--soft); margin:5px 0 16px; line-height:1.5; }
#ac-giaoan .sc-scroll{ overflow-x:auto; }
#ac-giaoan .stbl{ width:100%; border-collapse:collapse; font-size:12.5px; min-width:560px; }
#ac-giaoan .stbl th{ text-align:center; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--soft); font-weight:700; padding:8px 6px; border-bottom:2px solid var(--line); }
#ac-giaoan .stbl th.snm-h{ text-align:left; }
#ac-giaoan .stbl td{ text-align:center; padding:9px 6px; border-bottom:1px solid var(--line); }
#ac-giaoan .stbl td.snm{ text-align:left; font-weight:600; color:var(--navy); }
#ac-giaoan .stbl td.spct{ font-weight:700; color:var(--gold-ink); }
#ac-giaoan .st{ display:inline-block; font-size:11px; font-weight:600; padding:3px 9px; border-radius:20px; }
#ac-giaoan .st.done{ background:var(--green-bg); color:var(--green); }
#ac-giaoan .st.learn{ background:var(--gold-cream); color:var(--gold-ink); }
#ac-giaoan .st.none{ background:#f1efe9; color:#a59c8a; }
#ac-giaoan .sc-legend{ display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; font-size:11.5px; color:var(--mid); }
#ac-giaoan .sc-legend span{ display:inline-flex; align-items:center; gap:6px; }
#ac-giaoan .sc-dot{ width:9px; height:9px; border-radius:50%; display:inline-block; }
#ac-giaoan .sc-dot.done{ background:var(--green); } #ac-giaoan .sc-dot.learn{ background:var(--gold); } #ac-giaoan .sc-dot.none{ background:#cfc7b6; }
#ac-giaoan .dl-item{ display:flex; align-items:center; gap:14px; padding:11px 0; border-bottom:1px solid var(--line); }
#ac-giaoan .dl-item:last-child{ border-bottom:none; }
#ac-giaoan .dl-ic{ width:34px; height:34px; flex-shrink:0; border-radius:9px; background:var(--gold-cream); color:var(--gold-ink); display:flex; align-items:center; justify-content:center; font-size:18px; }
#ac-giaoan .dl-body{ flex:1; min-width:0; }
#ac-giaoan .dl-name{ font-size:13.5px; font-weight:500; color:var(--navy); line-height:1.3; }
#ac-giaoan .dl-note{ font-size:11.5px; color:var(--soft); margin-top:2px; }
#ac-giaoan .dl-btn{ flex-shrink:0; border:1px solid var(--gold); background:#fff; color:var(--gold-ink); font-family:var(--fb); font-size:12px; font-weight:500; padding:7px 16px; border-radius:20px; cursor:pointer; transition:.15s; }
#ac-giaoan .dl-btn:hover{ background:var(--gold); color:#fff; }

#ac-giaoan .credo{ background:linear-gradient(135deg,#fffdf8 0%,var(--gold-pale) 100%); border:1px solid #f0e2c4; border-radius:16px; padding:24px 28px; margin-bottom:20px; }
#ac-giaoan .credo-eyebrow{ font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-ink); font-weight:700; margin-bottom:11px; }
#ac-giaoan .credo-lead{ font-size:14.5px; color:var(--navy); line-height:1.65; max-width:78ch; }
#ac-giaoan .credo-lead b{ color:var(--gold-ink); font-weight:700; }
#ac-giaoan .credo-lines{ list-style:none; margin-top:17px; display:flex; flex-direction:column; gap:11px; padding:0; }
#ac-giaoan .credo-lines li{ position:relative; padding-left:26px; font-size:14px; color:var(--mid); font-style:italic; line-height:1.6; }
#ac-giaoan .credo-lines li::before{ content:"\2014"; position:absolute; left:0; top:0; color:var(--gold); font-weight:700; font-style:normal; }

#ac-giaoan .library{ background:linear-gradient(135deg,var(--navy) 0%,var(--navy-side) 100%); border-radius:18px; padding:26px 30px; color:#fff; position:relative; overflow:hidden; }
#ac-giaoan .library::after{ content:""; position:absolute; left:-50px; bottom:-70px; width:300px; height:300px; background:radial-gradient(circle,rgba(225,161,70,.12) 0%,transparent 65%); pointer-events:none; }
#ac-giaoan .lib-h{ font-family:var(--fd); font-weight:500; font-size:24px; color:var(--gold); position:relative; z-index:1; }
#ac-giaoan .lib-sub{ font-size:12px; color:rgba(255,255,255,.6); margin:4px 0 18px; position:relative; z-index:1; line-height:1.5; }
#ac-giaoan .lib-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; position:relative; z-index:1; }
#ac-giaoan .lib-col h4{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-light); margin-bottom:10px; }
#ac-giaoan .lib-col ul{ list-style:none; display:flex; flex-direction:column; gap:8px; padding:0; }
#ac-giaoan .lib-col li{ position:relative; padding-left:14px; font-size:12.5px; color:rgba(255,255,255,.84); line-height:1.5; }
#ac-giaoan .lib-col li::before{ content:""; position:absolute; left:0; top:8px; width:5px; height:5px; border-radius:50%; background:var(--gold); }

/* ---------- RESPONSIVE ---------- */
@media (max-width:1180px){ #ac-giaoan .lib-cols{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:860px){
  #ac-giaoan .ac-overall{ flex-direction:column; align-items:flex-start; gap:14px; padding:16px 18px; }
  #ac-giaoan .ac-ov-title{ font-size:22px; }
  #ac-giaoan .tabs{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  #ac-giaoan .tabs::-webkit-scrollbar{ display:none; }
  #ac-giaoan .tab{ flex:0 0 auto; width:150px; }
  #ac-giaoan .cover{ flex-direction:column; gap:12px; padding:18px 18px; }
  #ac-giaoan .cov-no{ font-size:40px; }
  #ac-giaoan .cov-title{ font-size:22px; }
  #ac-giaoan .cov-prog{ min-width:0; text-align:left; width:100%; }
  #ac-giaoan .students-card, #ac-giaoan .downloads-card{ padding:18px; }
  #ac-giaoan .credo{ padding:18px; } #ac-giaoan .library{ padding:20px 18px; }
  #ac-giaoan .lib-cols{ grid-template-columns:1fr; gap:18px; }
}
@media (prefers-reduced-motion:reduce){ #ac-giaoan *{ transition:none!important; } }


/* ════════ TAB HỌC VIÊN — gộp từ demo hoc-vien (scoped #ac-hocvien) ════════ */
#ac-hocvien{
  --gold:#E1A146;--gold-light:#EDB96A;--gold-cream:#FBF1DC;--gold-ink:#9c6a16;--gold-pale:#fef9ee;
  --navy:#0D1B33;--navy-side:#0c1526;--panel:#FFFFFF;--text:#26221B;--mid:#6b6456;--soft:#8A8170;--line:#ECE5D8;
  --green:#2E7D5B;--green-bg:#E8F3ED;--blue:#2f5fa8;--blue-bg:#EAF0F9;--warn:#b5552f;--warn-bg:#f6e7df;
  font-family:'Roboto',system-ui,-apple-system,sans-serif; color:var(--text); max-width:1080px;
}
/* KPIs */
#ac-hocvien .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch;}
#ac-hocvien .kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;border-left:4px solid var(--line);}
#ac-hocvien .kpi.k-blue{border-left-color:var(--blue);} #ac-hocvien .kpi.k-green{border-left-color:var(--green);}
#ac-hocvien .kpi.k-warn{border-left-color:var(--warn);} #ac-hocvien .kpi.k-gold{border-left-color:var(--gold);}
#ac-hocvien .k-v{font-size:30px;font-weight:700;color:var(--navy);line-height:1;}
#ac-hocvien .k-l{font-size:12px;color:var(--soft);margin-top:7px;}
#ac-hocvien .kpi-note{grid-column:1/-1;font-size:11px;color:var(--soft);margin-top:-4px;}
/* block */
#ac-hocvien .block{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin-top:18px;}
#ac-hocvien .block-h{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:16px;}
#ac-hocvien .block-sub{font-size:12px;font-weight:400;color:var(--soft);}
/* pipeline */
#ac-hocvien .pipeline{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding-bottom:4px;}
#ac-hocvien .pstep{flex:1;min-width:120px;background:var(--gold-pale);border:1px solid var(--line);border-radius:12px;padding:13px 14px;}
#ac-hocvien .pstep-no{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:9px;}
#ac-hocvien .pstep-name{font-size:12.5px;font-weight:500;color:var(--navy);line-height:1.35;min-height:34px;}
#ac-hocvien .pstep-count{font-size:11.5px;color:var(--gold-ink);font-weight:500;margin-top:8px;}
#ac-hocvien .parrow{display:flex;align-items:center;color:var(--soft);font-size:18px;flex-shrink:0;}
/* roster */
#ac-hocvien .roster-head,#ac-hocvien .stu-row{display:grid;grid-template-columns:44px minmax(130px,1.3fr) 1fr 1.15fr 1fr .9fr .9fr 18px;gap:12px;align-items:center;}
#ac-hocvien .roster-head{padding:0 16px 10px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--soft);font-weight:700;border-bottom:2px solid var(--line);}
#ac-hocvien .roster-head span:nth-child(1),#ac-hocvien .roster-head span:last-child{visibility:hidden;}
#ac-hocvien .stu-row{width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-top:10px;cursor:pointer;font-family:var(--fb,'Roboto',sans-serif);transition:.14s;}
#ac-hocvien .stu-row:hover{border-color:var(--gold);box-shadow:0 3px 14px rgba(13,27,51,.06);}
#ac-hocvien .stu-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--navy),#22324f);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;}
#ac-hocvien .stu-main{min-width:0;display:flex;flex-direction:column;}
#ac-hocvien .stu-name{font-size:14.5px;font-weight:500;color:var(--navy);}
#ac-hocvien .stu-sub{font-size:11.5px;color:var(--soft);margin-top:2px;}
#ac-hocvien .stu-stage{font-size:12.5px;color:var(--text);}
#ac-hocvien .stu-teacher{font-size:12.5px;color:var(--text);font-weight:500;}
#ac-hocvien .stu-lab{display:none;}
#ac-hocvien .pwrap{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mid);font-weight:500;}
#ac-hocvien .mbar{flex:1;max-width:70px;height:6px;background:var(--line);border-radius:99px;overflow:hidden;}
#ac-hocvien .mbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-light));}
#ac-hocvien .stu-arrow{color:var(--soft);font-size:20px;text-align:center;}
/* badges */
#ac-hocvien .ev{display:inline-block;font-size:11.5px;font-weight:500;padding:3px 11px;border-radius:20px;white-space:nowrap;}
#ac-hocvien .ev.pass{background:var(--green-bg);color:var(--green);}
#ac-hocvien .ev.ok{background:var(--gold-cream);color:var(--gold-ink);}
#ac-hocvien .ev.low{background:var(--warn-bg);color:var(--warn);}
#ac-hocvien .ev.none{background:#f1efe9;color:#a59c8a;}
#ac-hocvien .st{display:inline-block;font-size:11px;font-weight:500;padding:3px 10px;border-radius:20px;}
#ac-hocvien .st.done{background:var(--green-bg);color:var(--green);}
#ac-hocvien .st.learn{background:var(--gold-cream);color:var(--gold-ink);}
#ac-hocvien .st.none{background:#f1efe9;color:#a59c8a;}
#ac-hocvien .msb{display:inline-block;font-size:11px;font-weight:500;padding:3px 10px;border-radius:20px;}
#ac-hocvien .msb.pass{background:var(--green-bg);color:var(--green);}
#ac-hocvien .msb.pending{background:#fff;color:var(--gold-ink);box-shadow:inset 0 0 0 1px var(--gold);}
#ac-hocvien .msb.retry{background:var(--warn-bg);color:var(--warn);}
#ac-hocvien .msb.none{background:#f1efe9;color:#a59c8a;}
#ac-hocvien .sb{display:inline-block;font-size:11px;font-weight:500;padding:3px 11px;border-radius:20px;white-space:nowrap;}
#ac-hocvien .sb.active{background:var(--blue-bg);color:var(--blue);}
#ac-hocvien .sb.grad{background:var(--green-bg);color:var(--green);}
#ac-hocvien .sb.drop{background:var(--warn-bg);color:var(--warn);}
#ac-hocvien .sb.pause{background:#f1efe9;color:#8a8170;}
/* modal */
#ac-hocvien .overlay{position:fixed;inset:0;background:rgba(13,27,51,.55);display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow:auto;z-index:99999;}
#ac-hocvien .overlay.open{display:flex;}
#ac-hocvien .modal{background:var(--bg,#F6F2EA);width:100%;max-width:760px;border-radius:18px;padding:26px 28px 30px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.35);}
#ac-hocvien .m-close{position:absolute;top:16px;right:18px;width:34px;height:34px;border:none;border-radius:9px;background:#fff;color:var(--mid);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.08);}
#ac-hocvien .m-head{display:flex;align-items:center;gap:16px;padding-right:40px;}
#ac-hocvien .m-av{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--navy),#22324f);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
#ac-hocvien .m-head-main{flex:1;min-width:0;}
#ac-hocvien .m-name{font-size:21px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
#ac-hocvien .m-meta{font-size:12.5px;color:var(--soft);margin-top:4px;}
#ac-hocvien .m-overall{font-size:11px;color:var(--soft);text-align:right;line-height:1.7;}
#ac-hocvien .m-reason{background:var(--warn-bg);color:#7a3a1f;border-radius:11px;padding:11px 15px;font-size:12.5px;margin-top:16px;line-height:1.5;}
#ac-hocvien .m-reason b{color:var(--warn);}
#ac-hocvien .m-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;}
#ac-hocvien .m-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 18px;}
#ac-hocvien .m-grid .m-card{margin-top:0;}
#ac-hocvien .m-card+.m-card{margin-top:14px;}
#ac-hocvien .m-card-h{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);font-weight:700;margin-bottom:12px;}
#ac-hocvien .m-sub-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--soft);font-weight:700;margin:15px 0 9px;}
#ac-hocvien .m-prow,#ac-hocvien .m-msrow,#ac-hocvien .m-skrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);}
#ac-hocvien .m-prow:last-child,#ac-hocvien .m-msrow:last-child,#ac-hocvien .m-skrow:last-child{border-bottom:none;}
#ac-hocvien .m-pname,#ac-hocvien .m-msrow span:first-child,#ac-hocvien .m-skrow span:first-child{font-size:12.5px;color:var(--text);}
#ac-hocvien .m-pname b{color:var(--gold-ink);margin-right:3px;}
#ac-hocvien .m-eval{padding:11px 0;border-bottom:1px solid var(--line);}
#ac-hocvien .m-eval:last-child{border-bottom:none;}
#ac-hocvien .m-eval-top{display:flex;align-items:center;justify-content:space-between;}
#ac-hocvien .m-eval-top b{font-size:13px;color:var(--navy);font-weight:500;}
#ac-hocvien .m-date{font-size:11px;color:var(--soft);}
#ac-hocvien .m-eval-mid{display:flex;align-items:center;gap:9px;margin:6px 0;}
#ac-hocvien .m-skilltag{font-size:11px;color:var(--gold-ink);background:var(--gold-pale);padding:2px 9px;border-radius:6px;}
#ac-hocvien .m-eval-note{font-size:12.5px;color:var(--mid);line-height:1.5;}
#ac-hocvien .m-sess{display:flex;gap:12px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--line);font-size:12.5px;}
#ac-hocvien .m-sess:last-child{border-bottom:none;}
#ac-hocvien .m-sess-t{color:var(--gold-ink);min-width:78px;}
#ac-hocvien .m-sess-c{color:var(--mid);}
#ac-hocvien .m-teacher{display:inline-block;font-size:12.5px;color:var(--navy);margin-top:12px;background:var(--gold-pale);padding:6px 13px;border-radius:9px;}
#ac-hocvien .m-teacher b{color:var(--gold-ink);font-weight:500;}
#ac-hocvien .m-rv-by{font-size:12px;color:var(--gold-ink);font-weight:500;margin-bottom:11px;}
#ac-hocvien .m-rv{margin-bottom:12px;} #ac-hocvien .m-rv:last-child{margin-bottom:0;}
#ac-hocvien .m-rv-lab{display:inline-block;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;padding:2px 9px;border-radius:6px;margin-bottom:6px;}
#ac-hocvien .m-rv-lab.manh{background:var(--green-bg);color:var(--green);}
#ac-hocvien .m-rv-lab.yeu{background:var(--warn-bg);color:var(--warn);}
#ac-hocvien .m-rv-lab.huong{background:var(--gold-cream);color:var(--gold-ink);}
#ac-hocvien .m-rv p{font-size:12.5px;color:var(--mid);line-height:1.55;}
#ac-hocvien .footnote{padding:14px 4px 8px;font-size:11px;color:var(--soft);line-height:1.6;}

/* ── MOBILE (roster xếp dọc, ẩn header/mũi tên) ── */
@media(max-width:860px){
  #ac-hocvien .kpis{grid-template-columns:repeat(2,1fr);}
  #ac-hocvien .parrow{display:none;}
  #ac-hocvien .roster-head{display:none;}
  #ac-hocvien .stu-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
  #ac-hocvien .stu-av{order:1;flex-shrink:0;}
  #ac-hocvien .stu-main{order:2;flex:1;}
  #ac-hocvien .stu-name{font-size:15px;}
  #ac-hocvien .stu-status{order:3;}
  #ac-hocvien .stu-teacher,#ac-hocvien .stu-stage,#ac-hocvien .stu-prog,#ac-hocvien .stu-eval{order:4;flex-basis:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;margin-top:1px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--text);}
  #ac-hocvien .stu-lab{display:inline;color:var(--soft);font-size:11.5px;}
  #ac-hocvien .mbar{width:64px;max-width:64px;flex:none;}
  #ac-hocvien .stu-arrow{display:none;}
  #ac-hocvien .m-grid{grid-template-columns:1fr;}
  #ac-hocvien .modal{padding:22px 18px 24px;}
}

/* ── ẢNH Academy: gallery minh hoạ giáo án + avatar/bài tập học viên (upload + nén) ── */
#ac-giaoan .tile.has{ padding:0; overflow:hidden; position:relative; cursor:pointer; background:#f3ece0; }
#ac-giaoan .tile.has img{ width:100%; height:100%; object-fit:cover; display:block; }
#ac-giaoan .tile-del,#ac-hocvien .hv-wdel{ position:absolute; top:3px; right:3px; width:18px; height:18px; border:none; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:13px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
#ac-giaoan .tile-del:hover,#ac-hocvien .hv-wdel:hover{ background:#B0492F; }

#ac-hocvien .stu-av{ overflow:hidden; }
#ac-hocvien .stu-av img.hv-avimg{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
#ac-hocvien .m-av{ position:relative; overflow:visible; }
#ac-hocvien .m-av img.hv-avimg{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; cursor:pointer; }
#ac-hocvien .m-av-edit{ position:absolute; right:-4px; bottom:-4px; width:24px; height:24px; border-radius:50%; border:2px solid #fff; background:var(--gold,#E1A146); color:#fff; font-size:12px; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; box-shadow:0 1px 4px rgba(0,0,0,.25); }
#ac-hocvien .m-work-note{ font-weight:400; color:var(--soft); font-size:11.5px; }
#ac-hocvien .hv-work{ display:flex; flex-wrap:wrap; gap:8px; }
#ac-hocvien .hv-wtile{ width:90px; height:90px; border-radius:9px; overflow:hidden; position:relative; border:1px solid #e6ddd0; background:#f3ece0; cursor:pointer; flex-shrink:0; }
#ac-hocvien .hv-wtile img{ width:100%; height:100%; object-fit:cover; display:block; }
#ac-hocvien .hv-wtile.add{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; cursor:pointer; border:1.5px dashed var(--gold,#E1A146); background:#fff; color:var(--gold-ink,#8a5a14); font-size:11px; font-weight:500; }
#ac-hocvien .hv-wtile.add span{ font-size:18px; line-height:1; }
#ac-hocvien .hv-wempty{ color:var(--soft); font-size:13px; font-style:italic; }
