/* ==========================================================================
   Giao dien "thanhminh" - Trang thong tin Truong Tieu hoc va THCS Thanh Minh (NukeViet 4.6.02)
   Thiet ke 10/2026: tre trung, tuoi sang cho truong lien cap Tieu hoc - THCS.
   Bang mau: xanh duong (tri thuc, tin cay) - xanh ngoc (tuoi tre, nang dong) - vang nang (uoc mo, niem vui)
   - cam san ho (cap Tieu hoc, am ap) - xanh la (doi nuong, ruong bac thang ban Pung Tom).
   Phong: Be Vietnam Pro (noi dung) + Baloo 2 (ten truong, tieu de) - luu cuc bo, giay phep OFL.
   Nap sau bootstrap.min.css + style.css (giao dien default 4.6.02) va CSS cua module.
   Mau dat o bien --tm-* duoi day; sua bien la doi mau toan giao dien.
   ========================================================================== */

:root {
    --tm-pri: #1452b8;
    --tm-pri-600: #2f7bf5;
    --tm-pri-700: #0f3f94;
    --tm-deep: #0b2a5b;
    --tm-deep-2: #12408a;
    --tm-pri-100: #d6e6ff;
    --tm-pri-50: #eef5ff;
    --tm-red: #ff6b57;
    --tm-red-700: #e5503c;
    --tm-red-50: #fff1ee;
    --tm-green: #16a34a;
    --tm-green-50: #e8f8ee;
    --tm-gold: #ffc83d;
    --tm-gold-600: #e6a100;
    --tm-gold-50: #fff7dc;
    --tm-teal: #0fb3a3;
    --tm-teal-50: #e3f8f5;
    --tm-violet: #7c5cff;
    --tm-violet-50: #f1edff;
    --tm-pink: #ff5c9a;
    --tm-th: #ff7a45;        /* cap Tieu hoc */
    --tm-th-2: #ffb547;
    --tm-thcs: #1d6fe0;      /* cap THCS */
    --tm-thcs-2: #12b5c9;
    --tm-ink: #14213d;
    --tm-text: #2b3650;
    --tm-muted: #61708a;
    --tm-line: #e2e9f4;
    --tm-line-2: #eef3fa;
    --tm-bg: #f4f8ff;
    --tm-card: #ffffff;
    --tm-grad: linear-gradient(115deg, #1452b8 0%, #2f7bf5 55%, #12b5c9 100%);
    --tm-grad-warm: linear-gradient(115deg, #ff6b57 0%, #ff8a3d 55%, #ffc83d 100%);
    --tm-rainbow: linear-gradient(90deg, #2f7bf5, #12b5c9 25%, #3fcf7a 45%, #ffc83d 65%, #ff8a3d 82%, #ff5c9a);
    --tm-radius: 18px;
    --tm-radius-sm: 12px;
    --tm-shadow-sm: 0 1px 2px rgba(11, 42, 91, .06);
    --tm-shadow: 0 1px 2px rgba(11, 42, 91, .05), 0 8px 24px rgba(11, 42, 91, .08);
    --tm-shadow-lg: 0 18px 44px rgba(11, 42, 91, .16);
    --tm-font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --tm-display: "Baloo 2", "Be Vietnam Pro", system-ui, "Segoe UI", Arial, sans-serif;
    --tm-container: 1240px;
    --tm-ease: cubic-bezier(.22, .61, .36, 1);
}


/* ---------- Nen tang ---------- */
html { scroll-behavior: smooth; }
body {
    /* default/style.css dat html, body { height: 100% }: body chi cao 1 man hinh nen menu dinh (.tm-nav, sticky, con truc tiep
       cua body) bi day khoi man hinh khi cuon qua chieu cao do -> de body cao theo noi dung */
    height: auto; min-height: 100%;
    font-family: var(--tm-font);
    font-size: 15px;
    line-height: 1.6;
    color: var(--tm-text);
    background: var(--tm-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4 { font-family: var(--tm-font); color: var(--tm-ink); }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(255, 200, 61, .85);
    outline-offset: 2px;
}
/* toan site: tro chuot / chon vao lien ket khong hien gach chan (yeu cau 20/10/2026) - doi mau thay cho gach chan */
a, a:hover, a:focus, a:active, a:visited, .btn:hover, .btn:focus, .nav > li > a:hover, .pagination > li > a:hover { text-decoration: none !important; }
a:hover { color: var(--tm-pri-600); }
img { max-width: 100%; height: auto; }
::selection { background: var(--tm-gold); color: var(--tm-deep); }
.list-none { list-style: none; margin: 0; padding: 0; }
.tm-container { max-width: var(--tm-container); margin: 0 auto; padding: 0 16px; }
.tm-container::after { content: ""; display: table; clear: both; }
/* khung flex: bo phan tu gia clearfix (neu khong no thanh muc flex thu ba, day khoi ben phai vao giua) */
.tm-topbar__in::after, .tm-header__in::after, .tm-nav__in::after, .tm-hero__grid::after, .tm-ck__grid::after, .tm-footer__bottom-in::after { content: none; }
.tm-skip {
    position: absolute; left: 12px; top: -60px; z-index: 3000;
    background: var(--tm-gold); color: var(--tm-deep) !important; font-weight: 700;
    padding: 10px 16px; border-radius: 0 0 8px 8px; transition: top .2s;
}
.tm-skip:focus { top: 0; text-decoration: none; }
.tm-main { display: block; outline: 0; min-height: 40vh; }

/* nut chung */
.tm-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 20px; border-radius: 999px; border: 0;
    font-weight: 700; font-size: 14.5px; line-height: 1.2;
    transition: transform .2s var(--tm-ease), box-shadow .2s, background-color .2s, color .2s;
}
.tm-btn:hover, .tm-btn:focus { text-decoration: none; transform: translateY(-2px); }
.tm-btn--gold, a.tm-btn--gold { background: var(--tm-gold); color: var(--tm-deep) !important; box-shadow: 0 6px 16px rgba(255, 200, 61, .35); }
.tm-btn--gold:hover { background: #ffc93a; box-shadow: 0 10px 22px rgba(255, 200, 61, .45); }
.tm-btn--blue, a.tm-btn--blue { background: var(--tm-pri); color: #fff !important; }
.tm-btn--blue:hover { background: var(--tm-deep); }

/* chip, huy hieu, meta */
.tm-chip, a.tm-chip {
    display: inline-block; padding: 4px 11px; border-radius: 999px;
    background: var(--tm-red); color: #fff !important; font-size: 12px; font-weight: 700;
    letter-spacing: .2px; line-height: 1.4; text-transform: uppercase;
}
.tm-chip:hover { text-decoration: none; background: var(--tm-red-700); }
.tm-chip--soft, a.tm-chip--soft { background: var(--tm-pri-50); color: var(--tm-pri) !important; }
.tm-chip--soft:hover { background: var(--tm-pri); color: #fff !important; }
.tm-badge-new {
    display: inline-block; padding: 1px 7px; border-radius: 999px; vertical-align: 2px;
    background: var(--tm-red); color: #fff; font-size: 10.5px; font-weight: 700; text-transform: uppercase;
    animation: tm-pulse 2.2s infinite;
}
@keyframes tm-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 107, 87, .45); } 60% { box-shadow: 0 0 0 6px rgba(255, 107, 87, 0); } }
.tm-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--tm-muted); font-size: 13px; }
.tm-meta .fa { margin-right: 3px; color: var(--tm-pri); opacity: .8; }
.tm-meta > span + span::before, .tm-meta > time + span::before { content: none; }
.tm-datebadge {
    flex: 0 0 auto; display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
    width: 54px; height: 58px; border-radius: 12px; overflow: hidden;
    background: #fff; border: 1px solid var(--tm-pri-100); box-shadow: var(--tm-shadow-sm);
}
.tm-datebadge b { display: block; width: 100%; text-align: center; font-size: 21px; font-weight: 800; color: var(--tm-pri); line-height: 1.35; }
.tm-datebadge small { display: block; width: 100%; text-align: center; font-size: 11px; font-weight: 700; color: #fff; background: var(--tm-pri); line-height: 1.7; text-transform: uppercase; }
.tm-datebadge--sm { width: 46px; height: 50px; border-radius: 10px; }
.tm-datebadge--sm b { font-size: 18px; }
.tm-more, a.tm-more {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 10px;
    font-weight: 700; font-size: 14px; color: var(--tm-pri);
}
.tm-more .fa { transition: transform .2s; }
.tm-more:hover { text-decoration: none; color: var(--tm-red); }
.tm-more:hover .fa { transform: translateX(4px); }
.tm-more--sm { font-size: 13.5px; }

/* ==========================================================================
   NHAN DIEN: thanh tren cung, dau trang, menu, dai tieu de trang, khoi, trang chu, chan trang
   ========================================================================== */
h1, h2, h3, .h1, .h2, .h3 { letter-spacing: -.1px; }

/* ---------- Thanh tren cung: xanh tham, diem nhan vang - san ho ---------- */
.tm-topbar { position: relative; z-index: 3; background: var(--tm-deep); color: rgba(255, 255, 255, .86); font-size: 13px; }
.tm-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--tm-rainbow); opacity: .9; }
.tm-topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; }
.tm-topbar__left, .tm-topbar__right { display: flex; align-items: center; gap: 16px; min-width: 0; }
.tm-topbar__date { white-space: nowrap; color: #fff; font-weight: 600; }
.tm-topbar__date .fa { color: var(--tm-gold); margin-right: 5px; }
.tm-topbar__motto { white-space: nowrap; color: rgba(255, 255, 255, .82); font-weight: 500; }
.tm-topbar__motto .fa { color: var(--tm-red); margin-right: 6px; animation: tm-beat 2.4s ease-in-out infinite; display: inline-block; }
@keyframes tm-beat { 0%, 60%, 100% { transform: scale(1); } 70% { transform: scale(1.25); } 80% { transform: scale(.95); } }
.tm-topbar__links { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.tm-topbar__links:empty { display: none; }
.tm-topbar a, .tm-topbar a:visited { color: rgba(255, 255, 255, .9); }
.tm-topbar a:hover { color: var(--tm-gold); text-decoration: none; }
.tm-topbar__links span[style] { color: rgba(255, 255, 255, .45) !important; }
.tm-topbar__quick { display: flex; gap: 4px; }
.tm-topbar__quick a, .tm-topbar__quick a:visited { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px; border-radius: 999px; font-weight: 600; white-space: nowrap; transition: background-color .2s, color .2s; }
.tm-topbar__quick a .fa { color: var(--tm-gold); }
.tm-topbar__quick a:nth-child(2) .fa { color: #7fe3d6; }
.tm-topbar__quick a:nth-child(3) .fa { color: #ffb4a6; }
.tm-topbar__quick a:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.tm-topbar .socialList { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.tm-topbar .socialList li { margin: 0; }
.tm-topbar .socialList a {
    display: inline-flex; width: 26px; height: 26px; border-radius: 50%; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .12); color: #fff !important; font-size: 13px; transition: background-color .2s, transform .2s;
}
.tm-topbar .socialList a:hover { background: var(--tm-gold); color: var(--tm-deep) !important; transform: translateY(-2px); }
.tm-topbar .tm-social__label { color: rgba(255, 255, 255, .6); margin-right: 4px; }
.tm-topbar__user a { display: inline-flex; align-items: center; gap: 6px; }
.tm-topbar__user .fa { color: var(--tm-gold); }

/* ---------- Dau trang: troi xanh nhat, cac dom mau mem, tranh doi xanh - ngoi truong - may bay giay ---------- */
.tm-header, #header.tm-header { display: block; position: relative; z-index: 2; overflow: hidden; background: linear-gradient(180deg, #e7f1ff 0%, #f3f8ff 62%, #ffffff 100%); border-bottom: 0; }
.tm-header__sky { position: absolute; inset: 0; pointer-events: none; }
.tm-blob { position: absolute; display: block; border-radius: 50%; filter: blur(46px); opacity: .55; }
.tm-blob--a { width: 340px; height: 220px; left: -80px; top: -90px; background: #9cc7ff; }
.tm-blob--b { width: 300px; height: 200px; left: 34%; top: -120px; background: #ffe17a; opacity: .45; }
.tm-blob--c { width: 260px; height: 180px; left: 18%; bottom: -150px; background: #8ff0dc; opacity: .45; }
.tm-header__art {
    position: absolute; top: 0; right: 0; bottom: 0; width: 72%; pointer-events: none;
    background: url("../images/tm-header-art.svg") right bottom / auto 100% no-repeat;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .6) 22%, #000 46%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .6) 22%, #000 46%);
}
.tm-header__in { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 164px; padding-top: 16px; padding-bottom: 18px; }
.tm-brand, .tm-brand:visited { display: flex; align-items: center; gap: 20px; min-width: 0; color: inherit; }
.tm-brand:hover { text-decoration: none; }
.tm-brand__badge { position: relative; flex: 0 0 auto; display: block; padding: 6px; border-radius: 50%; background: #fff; box-shadow: 0 10px 26px rgba(20, 82, 184, .22), 0 0 0 4px rgba(255, 255, 255, .7); }
/* vong mau nhe quanh bieu trung */
.tm-brand__badge::before { content: ""; position: absolute; inset: -9px; z-index: -1; border-radius: 50%; background: conic-gradient(from 210deg, #2f7bf5, #12b5c9, #3fcf7a, #ffc83d, #ff8a3d, #ff5c9a, #2f7bf5); opacity: .55; filter: blur(8px); animation: tm-spin 18s linear infinite; }
@keyframes tm-spin { to { transform: rotate(360deg); } }
.tm-brand__logo { display: block; width: 104px; height: 104px; object-fit: contain; border-radius: 50%; transition: transform .5s var(--tm-ease); }
.tm-brand:hover .tm-brand__logo { transform: rotate(-6deg) scale(1.04); }
.tm-brand__text { display: flex; flex-direction: column; align-items: flex-start; text-align: left; min-width: 0; }
.tm-brand__org { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--tm-pri); }
.tm-brand__org::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--tm-red); box-shadow: 14px 0 0 var(--tm-gold), 28px 0 0 var(--tm-teal); margin-right: 30px; }
.tm-brand__name { display: flex; flex-direction: column; line-height: 1.02; margin-top: 4px; text-transform: uppercase; }
.tm-brand__l1 { font-size: 17px; font-weight: 800; letter-spacing: 1.2px; color: var(--tm-deep); }
.tm-brand__l2 {
    margin-top: 2px; font-family: var(--tm-display); font-size: 56px; font-weight: 800; letter-spacing: .5px; white-space: nowrap; line-height: 1;
    background: linear-gradient(100deg, #1452b8 0%, #2f7bf5 45%, #12b5c9 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
    filter: drop-shadow(0 3px 0 rgba(255, 200, 61, .55));
    padding-top: 6px;
}
.tm-brand__tag { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--tm-muted); }
.tm-brand__chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 12px; border-radius: 999px; color: #fff; font-size: 12.5px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase; box-shadow: 0 4px 10px rgba(11, 42, 91, .12); }
.tm-brand__chip--th { background: linear-gradient(110deg, var(--tm-th), var(--tm-th-2)); }
.tm-brand__chip--thcs { background: linear-gradient(110deg, var(--tm-thcs), var(--tm-thcs-2)); }
.tm-brand__chip .fa { font-size: 12px; }

/* ---------- Menu chinh: thanh trang dinh, vach cau vong, muc dang chon dang vien thuoc ---------- */
.tm-nav {
    position: sticky; top: 0; z-index: 1030; background: rgba(255, 255, 255, .96);
    -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
    box-shadow: 0 1px 0 var(--tm-line), 0 10px 28px rgba(11, 42, 91, .08);
}
.tm-nav::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--tm-rainbow); }
.tm-nav__in { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; min-height: 60px; padding-top: 4px; }
.tm-nav .tm-search { position: relative; flex: 0 0 auto; width: 210px; transition: width .3s var(--tm-ease); }
.tm-nav .tm-search:focus-within { width: 290px; }
.tm-nav .tm-search__input {
    width: 100%; height: 40px; padding: 0 44px 0 16px; border-radius: 999px; border: 1px solid var(--tm-line);
    background: var(--tm-pri-50); color: var(--tm-ink); font-size: 13.5px; transition: background-color .2s, border-color .2s, box-shadow .2s;
}
.tm-nav .tm-search.headerSearch { margin: 0; }
.tm-nav .headerSearch .tm-search__input { background-color: var(--tm-pri-50) !important; }
.tm-nav .headerSearch .tm-search__input:hover { background-color: #e3eeff !important; }
.tm-nav .tm-search__input::placeholder { color: var(--tm-muted); }
.tm-nav .tm-search__input:focus, .tm-nav .headerSearch .tm-search__input:focus { outline: 0; background-color: #fff !important; border-color: var(--tm-pri-600); box-shadow: 0 0 0 4px rgba(47, 123, 245, .15); }
.tm-nav .tm-search__btn {
    position: absolute; right: 4px; top: 4px; width: 32px; height: 32px; border-radius: 50%; border: 0;
    background: var(--tm-grad); color: #fff; font-size: 13px; transition: transform .2s, box-shadow .2s;
}
.tm-nav .tm-search__btn:hover { transform: scale(1.08); box-shadow: 0 6px 14px rgba(20, 82, 184, .3); }
.tm-nav .tm-search.has-error .tm-search__input { border-color: var(--tm-red); }
.tm-nav__mini { display: none; flex: 0 0 auto; }
.tm-nav.is-stuck .tm-nav__mini { display: inline-flex; animation: tm-fadein .3s; }
.tm-nav__mini img { display: block; width: 38px; height: 38px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(11, 42, 91, .18); }
.tm-nav__menu { flex: 1 1 auto; min-width: 0; }
.tm-nav__drawer-head, .tm-nav__toggle, .tm-nav__searchbtn { display: none; }
.tm-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.tm-menu > li { position: relative; }
.tm-menu > li > a {
    position: relative; display: flex; align-items: center; gap: 6px; height: 42px; padding: 0 14px; border-radius: 999px;
    color: var(--tm-deep) !important; font-size: 14.5px; font-weight: 700; white-space: nowrap;
    transition: background-color .2s, color .2s, box-shadow .2s;
}
.tm-menu > li:hover > a, .tm-menu > li > a:focus { background: var(--tm-pri-50); color: var(--tm-pri) !important; text-decoration: none; }
.tm-menu > li.active > a { background: var(--tm-grad); color: #fff !important; box-shadow: 0 6px 16px rgba(20, 82, 184, .28); }
.tm-menu > li > a .fa-home { font-size: 18px; }
.tm-menu__hometxt { display: none; }
.tm-menu__caret { font-size: 12px; opacity: .7; transition: transform .2s; }
.tm-menu > li:hover .tm-menu__caret { transform: rotate(180deg); }
.tm-menu__expand { display: none; }
.tm-menu__sub {
    list-style: none; margin: 0; padding: 8px; position: absolute; left: 0; top: calc(100% + 9px); min-width: 260px; z-index: 50;
    background: #fff; border-radius: 16px; border: 1px solid var(--tm-line);
    box-shadow: var(--tm-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(10px);
    transition: opacity .2s, transform .2s var(--tm-ease), visibility .2s;
}
.tm-menu__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; } /* cau noi de re chuot xuong menu con khong bi dong */
.tm-menu > li:hover > .tm-menu__sub, .tm-menu > li:focus-within > .tm-menu__sub { opacity: 1; visibility: visible; transform: none; }
.tm-menu > li:last-child > .tm-menu__sub, .tm-menu > li:nth-last-child(2) > .tm-menu__sub { left: auto; right: 0; }
.tm-menu__subitem { position: relative; }
.tm-menu__subitem > a {
    display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; color: var(--tm-text) !important; font-size: 14px; font-weight: 600;
    transition: background-color .15s, color .15s, padding .15s;
}
.tm-menu__subitem > a::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: 50%; background: var(--tm-pri-100); transition: background-color .15s, transform .15s; }
.tm-menu__subitem:nth-child(4n+1) > a::before { background: #9cc7ff; }
.tm-menu__subitem:nth-child(4n+2) > a::before { background: #7fe3d6; }
.tm-menu__subitem:nth-child(4n+3) > a::before { background: #ffd56b; }
.tm-menu__subitem:nth-child(4n+4) > a::before { background: #ffab9c; }
.tm-menu__subitem > a:hover, .tm-menu__subitem > a:focus { background: var(--tm-pri-50); color: var(--tm-pri) !important; padding-left: 16px; text-decoration: none; }
.tm-menu__subitem > a:hover::before { transform: scale(1.3); }
.tm-menu__subitem.has-sub > a::after { content: "\f105"; font-family: FontAwesome; margin-left: auto; color: var(--tm-muted); }
.tm-menu__sub .tm-menu__sub { left: 100%; top: -8px; transform: translateX(10px); }
.tm-menu__subitem:hover > .tm-menu__sub, .tm-menu__subitem:focus-within > .tm-menu__sub { opacity: 1; visibility: visible; transform: none; }
.tm-nav.is-open { z-index: 1060; }
.tm-nav-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(8, 27, 61, .5); backdrop-filter: blur(2px); }
@keyframes tm-fadein { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Dai tieu de trang con (duong dan): xanh chuyen ngoc, cham tron vui ---------- */
.tm-pagehead { position: relative; overflow: hidden; color: #fff; padding: 15px 0; background: var(--tm-grad); }
.tm-pagehead__deco { position: absolute; inset: 0; pointer-events: none; }
.tm-pagehead::before {
    content: ""; position: absolute; inset: 0; opacity: .16; pointer-events: none;
    background-image: radial-gradient(rgba(255, 255, 255, .95) 1.2px, transparent 1.6px); background-size: 20px 20px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 65%); mask-image: linear-gradient(90deg, transparent, #000 65%);
}
.tm-pagehead::after { content: ""; position: absolute; right: 8%; top: -60px; width: 150px; height: 150px; border-radius: 50%; background: rgba(255, 200, 61, .35); filter: blur(4px); pointer-events: none; }
.tm-pagehead__deco::before { content: ""; position: absolute; right: 22%; bottom: -46px; width: 90px; height: 90px; border-radius: 50%; border: 14px solid rgba(255, 255, 255, .14); }
.tm-pagehead__deco::after { content: ""; position: absolute; right: 3%; bottom: 10px; width: 16px; height: 16px; border-radius: 4px; background: rgba(255, 107, 87, .8); transform: rotate(20deg); box-shadow: -60px -18px 0 -3px rgba(255, 255, 255, .5); }
.tm-pagehead .tm-container { position: relative; }
.tm-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; }
.tm-breadcrumbs li { display: inline-flex; align-items: center; font-size: 14px; }
.tm-breadcrumbs li + li::before { content: "\f105"; font-family: FontAwesome; margin: 0 10px; color: var(--tm-gold); }
.tm-breadcrumbs a, .tm-breadcrumbs a:visited { color: rgba(255, 255, 255, .9); }
.tm-breadcrumbs a:hover { color: var(--tm-gold); text-decoration: none; }
.tm-breadcrumbs li:last-child a { color: #fff; font-weight: 700; }
.tm-header-blocks:empty { display: none; }

/* ---------- Trang con: noi dung + cot ben ---------- */
.tm-page { padding-top: 28px; padding-bottom: 40px; }
.tm-content { background: var(--tm-card); border-radius: var(--tm-radius); box-shadow: var(--tm-shadow); padding: 26px 28px; margin-bottom: 22px; min-height: 200px; }
.tm-content > :first-child { margin-top: 0; }
.tm-page__side .tm-block:first-child { margin-top: 0; }
@media (min-width: 992px) { .tm-page__side { position: sticky; top: 80px; } }

/* ---------- Khung khoi: the trang, tieu de dai mau xanh + cham vang ---------- */
.tm-block { background: var(--tm-card); border-radius: var(--tm-radius); box-shadow: var(--tm-shadow); margin-bottom: 22px; overflow: hidden; }
.tm-block__title {
    position: relative; margin: 0; padding: 13px 18px 12px 46px; font-family: var(--tm-display); font-size: 18px; font-weight: 700; line-height: 1.3; letter-spacing: .1px;
    color: #fff; background: var(--tm-grad); border-bottom: 0; overflow: hidden;
}
.tm-block__title::before { content: ""; position: absolute; left: 18px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--tm-gold); box-shadow: 0 0 0 4px rgba(255, 255, 255, .25); }
.tm-block__title::after { content: ""; position: absolute; right: -26px; top: -30px; width: 92px; height: 92px; border-radius: 50%; border: 16px solid rgba(255, 255, 255, .12); pointer-events: none; }
.tm-block__title > span, .tm-block__title a { position: relative; z-index: 1; }
.tm-block__title a, .tm-block__title a:visited { color: #fff; }
.tm-block__title a:hover { color: #fff3c4; text-decoration: none; }
.tm-block__body { padding: 14px 18px 18px; }
/* mau tieu de khoi doi dan theo vi tri cot ben cho vui mat */
.tm-page__side .tm-block:nth-of-type(4n+2) > .tm-block__title, .tm-home-body__side .tm-block:nth-of-type(4n+2) > .tm-block__title { background: linear-gradient(115deg, #0e9f8f, #12b5c9); }
.tm-page__side .tm-block:nth-of-type(4n+3) > .tm-block__title, .tm-home-body__side .tm-block:nth-of-type(4n+3) > .tm-block__title { background: linear-gradient(115deg, #ff6b57, #ff9a3d); }
.tm-page__side .tm-block:nth-of-type(4n+4) > .tm-block__title, .tm-home-body__side .tm-block:nth-of-type(4n+4) > .tm-block__title { background: linear-gradient(115deg, #6b4ff0, #9b7bff); }
.tm-block--primary .tm-block__title { background: linear-gradient(115deg, var(--tm-deep), var(--tm-pri)); }
.tm-block--simple { background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
.tm-block--simple .tm-block__title { padding-left: 0; background: none; color: var(--tm-deep); border-bottom: 2px solid var(--tm-pri-100); font-family: var(--tm-display); }
.tm-block--simple .tm-block__title::before, .tm-block--simple .tm-block__title::after { display: none; }
.tm-block--simple .tm-block__body { padding: 12px 0 0; }
.tm-block--border { border: 1px solid var(--tm-line); box-shadow: none; }
.tm-block__body > .panel, .tm-block__body > .well { margin-bottom: 0; }
.tm-block .panel { box-shadow: none; border-radius: var(--tm-radius-sm); }
.tm-block__body .nv-block-banners { text-align: center; }
.tm-block__body .nv-block-banners img { border-radius: var(--tm-radius-sm); margin-bottom: 8px; transition: transform .25s, box-shadow .25s; }
.tm-block__body .nv-block-banners a:hover img { transform: translateY(-2px); box-shadow: var(--tm-shadow); }

/* ---------- Danh sach tin (cot ben) ---------- */
.tm-nlist__item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed var(--tm-line); }
.tm-nlist__item:first-child { padding-top: 2px; }
.tm-nlist__item:last-child { border-bottom: 0; }
.tm-nlist__body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tm-nlist__link, .tm-nlist__link:visited { color: var(--tm-ink); font-weight: 600; font-size: 14.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-nlist__link:hover { color: var(--tm-pri); text-decoration: none; }
.tm-nlist__thumb { flex: 0 0 96px; height: 66px; border-radius: 10px; overflow: hidden; background: var(--tm-pri-50); }
.tm-nlist__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.tm-nlist__item:hover .tm-nlist__thumb img { transform: scale(1.07); }

/* van ban moi */
.tm-docs__item { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--tm-line); }
.tm-docs__item:last-child { border-bottom: 0; }
.tm-docs__icon { flex: 0 0 40px; height: 46px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--tm-teal-50); color: var(--tm-teal); font-size: 19px; position: relative; }
.tm-docs__icon::after { content: ""; position: absolute; right: 0; top: 0; border-width: 0 10px 10px 0; border-style: solid; border-color: #fff #fff rgba(15, 179, 163, .3) rgba(15, 179, 163, .3); border-radius: 0 10px 0 3px; }
.tm-docs__body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tm-docs__link, .tm-docs__link:visited { color: var(--tm-ink); font-weight: 600; font-size: 14.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-docs__link:hover { color: var(--tm-teal); text-decoration: none; }
.tm-docs__code { font-weight: 700; color: #0b8f82; }

/* ---------- TRANG CHU: trinh chieu + thong bao ---------- */
.tm-home-hero { position: relative; }
.tm-hero { position: relative; padding: 28px 0 76px; }
.tm-hero__bg {
    position: absolute; inset: 0; z-index: -1;
    background:
        radial-gradient(700px 320px at 8% 0%, rgba(47, 123, 245, .14), transparent 62%),
        radial-gradient(600px 320px at 100% 30%, rgba(255, 200, 61, .2), transparent 60%),
        radial-gradient(520px 260px at 55% 100%, rgba(18, 181, 201, .14), transparent 62%),
        linear-gradient(180deg, #ffffff 0%, var(--tm-bg) 100%);
}
.tm-hero__grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 22px; align-items: stretch; }
.tm-hero__slider { position: relative; border-radius: 24px; overflow: hidden; background: var(--tm-deep); min-height: 430px; box-shadow: var(--tm-shadow-lg); isolation: isolate; }
.tm-hero__slider::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.tm-hero__slider--static { background-size: cover; background-position: center; }
.tm-slides { position: absolute; inset: 0; }
.tm-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility .9s; }
.tm-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.tm-hero__slider--slide .tm-slide { opacity: 1; transform: translateX(100%); transition: transform .75s cubic-bezier(.65, 0, .35, 1), visibility 0s linear .75s; }
.tm-hero__slider--slide .tm-slide.is-active { transform: translateX(0); transition: transform .75s cubic-bezier(.65, 0, .35, 1), visibility 0s; }
@media (prefers-reduced-motion: reduce) { .tm-hero__slider--slide .tm-slide, .tm-hero__slider--slide .tm-slide.is-active { transition: none; } }
.tm-slide { display: flex; flex-direction: column; }
.tm-slide__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); filter: blur(22px) brightness(.55) saturate(1.25); pointer-events: none; }
.tm-slide__media { position: relative; z-index: 1; flex: 1 1 auto; min-height: 0; display: block; margin: 14px 14px 0; }
.tm-slide__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 8px 22px rgba(0, 0, 0, .4)); }
.tm-slide__cap { position: relative; z-index: 2; flex: 0 0 auto; padding: 14px 30px 46px; color: #fff; background: linear-gradient(180deg, rgba(8, 27, 61, 0), rgba(8, 27, 61, .55) 35%, rgba(8, 27, 61, .86)); }
.tm-slide__cap > * { transform: translateY(14px); opacity: 0; transition: transform .7s var(--tm-ease), opacity .7s; }
.tm-slide.is-active .tm-slide__cap > * { transform: none; opacity: 1; }
.tm-slide.is-active .tm-slide__cap > :nth-child(2) { transition-delay: .12s; }
.tm-slide.is-active .tm-slide__cap > :nth-child(3) { transition-delay: .22s; }
.tm-slide.is-active .tm-slide__cap > :nth-child(4) { transition-delay: .3s; }
.tm-slide__cap .tm-chip { background: var(--tm-gold); color: var(--tm-deep) !important; }
.tm-slide__title { margin: 8px 0 4px; font-size: 24px; font-weight: 800; line-height: 1.3; color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tm-slide__title a, .tm-slide__title a:visited { color: #fff; }
.tm-slide__title a:hover { color: var(--tm-gold); text-decoration: none; }
.tm-slide__desc { display: none !important; }
.tm-slide__time { font-size: 13px; color: rgba(255, 255, 255, .85); }
.tm-slide__time .fa { color: var(--tm-gold); }
.tm-slider__nav { position: absolute; top: 50%; z-index: 3; width: 46px; height: 46px; margin-top: -23px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .2); color: #fff; font-size: 24px; backdrop-filter: blur(6px); opacity: 0; transition: opacity .25s, background-color .2s, transform .2s; }
.tm-slider__nav--prev { left: 16px; }
.tm-slider__nav--next { right: 16px; }
.tm-hero__slider:hover .tm-slider__nav, .tm-slider__nav:focus { opacity: 1; }
.tm-slider__nav:hover { background: var(--tm-gold); color: var(--tm-deep); transform: scale(1.06); }
.tm-slider__dots { position: absolute; z-index: 3; right: 26px; bottom: 22px; display: flex; gap: 7px; }
.tm-slider__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 10px; background: rgba(255, 255, 255, .5); transition: width .3s, background-color .3s; }
.tm-slider__dot.is-active { width: 30px; background: var(--tm-gold); }
.tm-slider__progress { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255, 255, 255, .14); }
.tm-slider__progress span { display: block; height: 100%; width: 0; background: var(--tm-rainbow); }
.tm-slider__progress.is-run span { animation: tm-progress linear forwards; animation-duration: var(--tm-interval, 6500ms); }
@keyframes tm-progress { from { width: 0; } to { width: 100%; } }

.tm-notice { display: flex; flex-direction: column; background: #fff; border-radius: 24px; box-shadow: var(--tm-shadow); overflow: hidden; }
.tm-notice__head { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; background: var(--tm-grad-warm); color: #fff; }
.tm-notice__head::after { content: ""; position: absolute; right: -30px; top: -40px; width: 110px; height: 110px; border-radius: 50%; border: 18px solid rgba(255, 255, 255, .16); }
.tm-notice__title { position: relative; z-index: 1; margin: 0; font-family: var(--tm-display); font-size: 20px; font-weight: 800; color: #fff; letter-spacing: .2px; }
.tm-notice__title .fa { color: #fff; margin-right: 6px; animation: tm-wiggle 3.5s infinite; display: inline-block; }
@keyframes tm-wiggle { 0%, 88%, 100% { transform: rotate(0); } 91% { transform: rotate(-14deg); } 94% { transform: rotate(12deg); } 97% { transform: rotate(-6deg); } }
.tm-notice__all, .tm-notice__all:visited { position: relative; z-index: 1; color: #fff; font-size: 13px; font-weight: 700; white-space: nowrap; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .2); }
.tm-notice__all:hover { background: #fff; color: var(--tm-red-700); text-decoration: none; }
.tm-notice__list { list-style: none; margin: 0; padding: 6px 16px 10px; flex: 1 1 auto; }
.tm-notice__item { display: flex; gap: 12px; align-items: flex-start; padding: 11px 0; border-bottom: 1px dashed var(--tm-line); }
.tm-notice__item:last-child { border-bottom: 0; }
.tm-notice__item .tm-datebadge { border-color: #ffd9d2; }
.tm-notice__item .tm-datebadge b { color: var(--tm-red-700); }
.tm-notice__item .tm-datebadge small { background: var(--tm-red); }
.tm-notice__body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tm-notice__link, .tm-notice__link:visited { color: var(--tm-ink); font-weight: 600; font-size: 14.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tm-notice__link:hover { color: var(--tm-red-700); text-decoration: none; }
.tm-notice__meta { font-size: 12.5px; color: var(--tm-muted); }

/* ---------- TRANG CHU: o truy cap nhanh nhieu mau ---------- */
.tm-home-quick { position: relative; z-index: 2; margin-top: -46px; }
.tm-quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tm-tile, .tm-tile:visited {
    position: relative; display: flex; align-items: center; gap: 13px; height: 100%; padding: 16px; border-radius: var(--tm-radius);
    background: #fff; box-shadow: var(--tm-shadow); color: var(--tm-ink); overflow: hidden; border: 1px solid rgba(255, 255, 255, .8);
    transition: transform .25s var(--tm-ease), box-shadow .25s, color .25s;
}
.tm-tile::before { content: ""; position: absolute; inset: 0; background: var(--tm-tile-grad, var(--tm-grad)); transform: translateY(101%); transition: transform .35s var(--tm-ease); z-index: 0; }
.tm-tile::after { content: ""; position: absolute; right: -24px; bottom: -24px; width: 70px; height: 70px; border-radius: 50%; background: var(--tm-tile-bg, var(--tm-pri-50)); opacity: .8; transition: opacity .3s; }
.tm-tile > * { position: relative; z-index: 1; }
.tm-tile:hover, .tm-tile:focus { transform: translateY(-5px); box-shadow: var(--tm-shadow-lg); text-decoration: none; color: #fff; }
.tm-tile:hover::before, .tm-tile:focus::before { transform: none; }
.tm-tile:hover::after { opacity: 0; }
.tm-tile__icon {
    flex: 0 0 50px; height: 50px; border-radius: 15px; display: flex; align-items: center; justify-content: center; font-size: 21px;
    color: #fff; background: var(--tm-tile-grad, var(--tm-grad)); box-shadow: 0 8px 16px var(--tm-tile-shadow, rgba(20, 82, 184, .25));
    transition: background-color .25s, color .25s, transform .35s var(--tm-ease);
}
.tm-tile:hover .tm-tile__icon { background: rgba(255, 255, 255, .22); box-shadow: none; transform: rotate(-8deg) scale(1.06); }
.tm-tile__text { min-width: 0; display: flex; flex-direction: column; }
.tm-tile__title { font-weight: 800; font-size: 15px; line-height: 1.3; }
.tm-tile__desc { font-size: 12.5px; color: var(--tm-muted); line-height: 1.35; margin-top: 2px; transition: color .25s; }
.tm-tile:hover .tm-tile__desc { color: rgba(255, 255, 255, .88); }
.tm-tile__go { margin-left: auto; opacity: 0; transform: translateX(-6px); transition: opacity .25s, transform .25s; }
.tm-tile:hover .tm-tile__go { opacity: 1; transform: none; }
.tm-tile--blue { --tm-tile-grad: linear-gradient(135deg, #1452b8, #2f7bf5); --tm-tile-bg: #e8f1ff; --tm-tile-shadow: rgba(20, 82, 184, .28); }
.tm-tile--red { --tm-tile-grad: linear-gradient(135deg, #ff5a4a, #ff8a5c); --tm-tile-bg: #ffeee9; --tm-tile-shadow: rgba(255, 107, 87, .32); }
.tm-tile--green { --tm-tile-grad: linear-gradient(135deg, #16a34a, #4ccf7c); --tm-tile-bg: #e7f8ee; --tm-tile-shadow: rgba(22, 163, 74, .28); }
.tm-tile--gold { --tm-tile-grad: linear-gradient(135deg, #f59e0b, #ffc83d); --tm-tile-bg: #fff6d9; --tm-tile-shadow: rgba(245, 158, 11, .32); }
.tm-tile--teal { --tm-tile-grad: linear-gradient(135deg, #0e9f8f, #12b5c9); --tm-tile-bg: #e2f8f5; --tm-tile-shadow: rgba(15, 179, 163, .3); }
.tm-tile--violet { --tm-tile-grad: linear-gradient(135deg, #6b4ff0, #a284ff); --tm-tile-bg: #f0ecff; --tm-tile-shadow: rgba(124, 92, 255, .3); }
.tm-tile--pink { --tm-tile-grad: linear-gradient(135deg, #f43f86, #ff7fb0); --tm-tile-bg: #ffecf4; --tm-tile-shadow: rgba(244, 63, 134, .28); }
.tm-tile--orange { --tm-tile-grad: linear-gradient(135deg, #ff7a45, #ffb547); --tm-tile-bg: #fff1e6; --tm-tile-shadow: rgba(255, 122, 69, .3); }

/* ---------- TRANG CHU: than (cot chinh + cot phai) ---------- */
.tm-home-body { padding-top: 34px; padding-bottom: 20px; }
.tm-section { margin-bottom: 32px; }
.tm-section__head, .tm-lib__head {
    position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding: 12px 18px 12px 20px;
    border-radius: 16px; background: var(--tm-grad); box-shadow: 0 10px 22px rgba(20, 82, 184, .2);
}
.tm-section__head::after, .tm-lib__head::after { content: ""; position: absolute; right: 70px; top: -26px; width: 80px; height: 80px; border-radius: 50%; background: rgba(255, 200, 61, .32); pointer-events: none; }
.tm-section__head::before, .tm-lib__head::before { content: ""; position: absolute; right: -20px; bottom: -40px; width: 110px; height: 110px; border-radius: 50%; border: 18px solid rgba(255, 255, 255, .12); pointer-events: none; }
.tm-section__title, .tm-lib__title { position: relative; z-index: 1; margin: 0; padding-left: 30px; font-family: var(--tm-display); font-size: 24px; font-weight: 800; line-height: 1.25; color: #fff; letter-spacing: .1px; }
.tm-section__title::before { content: ""; position: absolute; left: 0; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 6px; background: var(--tm-gold); transform: rotate(45deg); box-shadow: 0 0 0 4px rgba(255, 255, 255, .22); }
.tm-section__title a, .tm-section__title a:visited { color: #fff; }
.tm-section__title a:hover { color: #fff3c4; text-decoration: none; }
.tm-home-body__side .tm-block:first-child { margin-top: 0; }
/* tieu de muc trang chu doi mau theo thu tu */
.tm-home-body__main .tm-section:nth-of-type(3n+2) .tm-section__head { background: linear-gradient(115deg, #0e9f8f, #12b5c9); box-shadow: 0 10px 22px rgba(15, 179, 163, .22); }
.tm-home-body__main .tm-section:nth-of-type(3n+3) .tm-section__head { background: linear-gradient(115deg, #ff6b57, #ff9a3d); box-shadow: 0 10px 22px rgba(255, 107, 87, .24); }

/* tin theo the */
.tm-ntabs__bar { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 16px; }
.tm-ntabs__tab { padding: 8px 16px; border-radius: 999px; border: 1px solid var(--tm-line); background: #fff; color: var(--tm-text); font-size: 13.5px; font-weight: 700; transition: all .2s; box-shadow: var(--tm-shadow-sm); }
.tm-ntabs__tab:hover { border-color: var(--tm-pri-600); color: var(--tm-pri); }
.tm-ntabs__tab.is-active { background: var(--tm-grad); border-color: transparent; color: #fff; box-shadow: 0 6px 16px rgba(20, 82, 184, .28); }
.tm-ntabs__panel.is-active { animation: tm-rise .45s var(--tm-ease); }
@keyframes tm-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.tm-ngrid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; }
.tm-ncard { background: #fff; border-radius: var(--tm-radius); box-shadow: var(--tm-shadow); overflow: hidden; }
.tm-ncard--lead { display: flex; flex-direction: column; }
.tm-ncard__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tm-pri-50); }
.tm-ncard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tm-ease); }
.tm-ncard:hover .tm-ncard__media img { transform: scale(1.06); }
.tm-ncard__media--empty, .tm-ncard__thumb--empty { display: flex; align-items: center; justify-content: center; color: var(--tm-pri); font-size: 40px; background: linear-gradient(135deg, var(--tm-pri-50), #fff); }
.tm-ncard__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.tm-ncard__body .tm-chip { align-self: flex-start; }
.tm-ncard__title { margin: 0; font-size: 19px; font-weight: 800; line-height: 1.38; }
.tm-ncard__title a, .tm-ncard__title a:visited { color: var(--tm-ink); }
.tm-ncard__title a:hover { color: var(--tm-pri); text-decoration: none; }
.tm-ncard__desc { margin: 0; color: var(--tm-muted); font-size: 14.5px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-ngrid__list { display: flex; flex-direction: column; gap: 12px; }
.tm-ncard--row { display: flex; gap: 12px; padding: 10px; align-items: center; transition: transform .2s, box-shadow .2s; }
.tm-ncard--row:hover { transform: translateX(4px); box-shadow: var(--tm-shadow-lg); }
.tm-ncard__thumb { flex: 0 0 116px; height: 78px; border-radius: 12px; overflow: hidden; background: var(--tm-pri-50); }
.tm-ncard__thumb img { width: 100%; height: 100%; object-fit: cover; }
.tm-ncard__thumb--empty { font-size: 20px; font-weight: 800; flex-direction: column; line-height: 1; }
.tm-ncard__thumb--empty small { font-size: 11px; font-weight: 700; margin-top: 3px; }
.tm-ncard--row .tm-ncard__body { padding: 0; gap: 4px; }
.tm-ncard--row .tm-ncard__title { font-size: 14.5px; font-weight: 700; line-height: 1.42; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- TRANG CHU: dai Cong khai giao duc (xanh tham, diem vang) ---------- */
.tm-home-band { margin-top: 14px; }
.tm-ck { position: relative; overflow: hidden; color: #fff; padding: 58px 0; background: linear-gradient(125deg, #081d44 0%, var(--tm-deep) 38%, #13489c 78%, #1d6fe0 100%); }
.tm-ck__pattern {
    position: absolute; inset: 0; opacity: .7; pointer-events: none;
    background:
        radial-gradient(500px 300px at 85% 10%, rgba(255, 200, 61, .22), transparent 70%),
        radial-gradient(420px 260px at 0% 100%, rgba(18, 181, 201, .3), transparent 70%),
        radial-gradient(rgba(255, 255, 255, .2) 1px, transparent 1.4px) 0 0 / 22px 22px;
}
.tm-ck__pattern::after { content: ""; position: absolute; right: -120px; top: 50%; width: 420px; height: 420px; margin-top: -210px; border-radius: 50%; border: 60px solid rgba(255, 255, 255, .05); }
.tm-ck__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 34px; align-items: start; }
.tm-ck__eyebrow { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 200, 61, .16); font-size: 12.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--tm-gold); }
.tm-ck__title { margin: 10px 0 10px; font-family: var(--tm-display); font-size: 40px; font-weight: 800; color: #fff; letter-spacing: .3px; line-height: 1.1; }
.tm-ck__lead { margin: 0 0 16px; max-width: 640px; color: rgba(255, 255, 255, .86); font-size: 15px; }
.tm-ck__lead strong { color: #fff; }
.tm-ck__years { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tm-ck__year { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .07); color: #fff; font-weight: 700; font-size: 14px; transition: all .2s; }
.tm-ck__year span { min-width: 24px; padding: 1px 7px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 12px; text-align: center; }
.tm-ck__year:hover { border-color: var(--tm-gold); }
.tm-ck__year.is-active { background: var(--tm-gold); border-color: var(--tm-gold); color: var(--tm-deep); box-shadow: 0 8px 20px rgba(255, 200, 61, .3); }
.tm-ck__year.is-active span { background: rgba(11, 42, 91, .14); }
.tm-ck__panel.is-active { animation: tm-rise .45s var(--tm-ease); }
.tm-ck__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tm-ckg, .tm-ckg:visited { display: flex; align-items: center; gap: 12px; height: 100%; padding: 13px 14px; border-radius: 14px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); color: #fff; transition: background-color .2s, transform .2s var(--tm-ease), border-color .2s; }
.tm-ckg:hover, .tm-ckg:focus { background: rgba(255, 255, 255, .15); border-color: rgba(255, 200, 61, .7); transform: translateY(-3px); text-decoration: none; color: #fff; }
.tm-ckg.is-empty { opacity: .6; }
.tm-ckg__icon { flex: 0 0 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--tm-gold); color: var(--tm-deep); font-size: 18px; }
.tm-ck__groups > :nth-child(6n+2) .tm-ckg__icon { background: #7fe3d6; }
.tm-ck__groups > :nth-child(6n+3) .tm-ckg__icon { background: #ffab9c; }
.tm-ck__groups > :nth-child(6n+4) .tm-ckg__icon { background: #9cc7ff; }
.tm-ck__groups > :nth-child(6n+5) .tm-ckg__icon { background: #c9b8ff; }
.tm-ck__groups > :nth-child(6n+6) .tm-ckg__icon { background: #a6e58f; }
.tm-ckg__text { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.tm-ckg__name { font-weight: 700; font-size: 14.5px; line-height: 1.3; }
.tm-ckg__law { font-size: 12px; color: rgba(255, 255, 255, .66); }
.tm-ckg__count { flex: 0 0 auto; min-width: 34px; text-align: center; padding: 3px 9px; border-radius: 999px; background: rgba(255, 255, 255, .15); font-weight: 800; font-size: 13.5px; }
.tm-ck__yearlink, .tm-ck__yearlink:visited { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; color: var(--tm-gold); font-weight: 700; font-size: 14px; }
.tm-ck__yearlink:hover { color: #fff; text-decoration: none; }
.tm-ck__latest { background: #fff; color: var(--tm-text); border-radius: 22px; padding: 20px 20px 22px; box-shadow: 0 24px 54px rgba(0, 0, 0, .3); }
.tm-ck__latest-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.tm-ck__latest-head h3 { margin: 0; font-family: var(--tm-display); font-size: 21px; font-weight: 800; color: var(--tm-deep); }
.tm-ck__latest-head a { font-weight: 700; font-size: 13.5px; }
.tm-ckdoc { display: flex; gap: 12px; align-items: flex-start; padding: 11px 0; border-bottom: 1px dashed var(--tm-line); }
.tm-ckdoc:last-child { border-bottom: 0; }
.tm-ckdoc__img { flex: 0 0 104px; height: 64px; border-radius: 10px; overflow: hidden; background: #f3f7fd; border: 1px solid var(--tm-line); box-shadow: 2px 3px 0 var(--tm-line-2); }
.tm-ckdoc__img img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s; }
.tm-ckdoc:hover .tm-ckdoc__img img { transform: scale(1.06); }
.tm-ckdoc__img--empty { display: flex; align-items: center; justify-content: center; color: var(--tm-pri); font-size: 24px; }
.tm-ckdoc__body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tm-ckdoc__title, .tm-ckdoc__title:visited { color: var(--tm-ink); font-weight: 600; font-size: 14px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-ckdoc__title:hover { color: var(--tm-pri); text-decoration: none; }
.tm-ckdoc .tm-meta { font-size: 12px; gap: 2px 10px; }
.tm-ck__latest .tm-btn { margin-top: 14px; width: 100%; justify-content: center; }

/* ---------- TRANG CHU: thu vien anh, video ---------- */
.tm-home-library { padding: 48px 0 22px; }
.tm-lib { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; }
.tm-lib__title { font-size: 22px; }
.tm-lib__title .fa { color: var(--tm-gold); margin-right: 6px; }
.tm-lib__title::before { content: ""; position: absolute; left: 0; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 6px; background: var(--tm-gold); transform: rotate(45deg); box-shadow: 0 0 0 4px rgba(255, 255, 255, .22); }
.tm-lib__title .fa { display: none; }
.tm-lib > :nth-child(2) .tm-lib__head { background: linear-gradient(115deg, #ff6b57, #ff9a3d); box-shadow: 0 10px 22px rgba(255, 107, 87, .24); }
.tm-lib__all, .tm-lib__all:visited { position: relative; z-index: 1; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .2); color: #fff; font-weight: 700; font-size: 13.5px; white-space: nowrap; }
.tm-lib__all:hover { background: #fff; color: var(--tm-pri); text-decoration: none; }
.tm-albums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 12px; }
.tm-album--lead { grid-column: span 2; grid-row: span 2; }
.tm-album a { position: relative; display: block; height: 100%; border-radius: var(--tm-radius); overflow: hidden; background: var(--tm-deep); box-shadow: var(--tm-shadow); }
.tm-album img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tm-ease), opacity .3s; }
.tm-album a:hover img { transform: scale(1.07); opacity: .9; }
.tm-album a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(8, 27, 61, .88)); }
.tm-album__name { position: absolute; z-index: 1; left: 12px; right: 12px; bottom: 10px; color: #fff; font-weight: 700; font-size: 13.5px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tm-album--lead .tm-album__name { font-size: 17px; left: 16px; bottom: 14px; }
.tm-album__count { position: absolute; z-index: 1; top: 10px; right: 10px; padding: 3px 9px; border-radius: 999px; background: rgba(255, 200, 61, .95); color: var(--tm-deep); font-size: 12px; font-weight: 800; }
.tm-video, .tm-video:visited { display: block; color: var(--tm-ink); }
.tm-video:hover { text-decoration: none; color: var(--tm-pri); }
.tm-video__media { position: relative; display: block; border-radius: var(--tm-radius); overflow: hidden; background: var(--tm-deep); aspect-ratio: 16 / 9; box-shadow: var(--tm-shadow); }
.tm-video__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tm-ease); }
.tm-video:hover .tm-video__media img { transform: scale(1.05); }
.tm-video__empty { display: block; width: 100%; height: 100%; background: var(--tm-grad); }
.tm-video__play { position: absolute; left: 50%; top: 50%; width: 60px; height: 60px; margin: -30px 0 0 -30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; padding-left: 4px; font-size: 20px; background: var(--tm-red); color: #fff; box-shadow: 0 0 0 9px rgba(255, 107, 87, .3); transition: transform .25s, box-shadow .25s; }
.tm-video:hover .tm-video__play { transform: scale(1.1); box-shadow: 0 0 0 13px rgba(255, 107, 87, .22); }
.tm-video--lead .tm-video__title { display: block; margin: 10px 0 4px; font-weight: 800; font-size: 16.5px; line-height: 1.4; }
.tm-videos { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 14px; }
.tm-video--row { display: flex; gap: 12px; align-items: center; }
.tm-video--row .tm-video__media { flex: 0 0 132px; aspect-ratio: 16 / 9; border-radius: 12px; }
.tm-video--row .tm-video__play { width: 32px; height: 32px; margin: -16px 0 0 -16px; font-size: 12px; box-shadow: 0 0 0 5px rgba(255, 107, 87, .25); }
.tm-video__text { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tm-video--row .tm-video__title { font-weight: 700; font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- TRANG CHU: dai so lieu ---------- */
.tm-home-stats { margin-top: 26px; }
.tm-stats { position: relative; overflow: hidden; padding: 50px 0; background: var(--tm-deep); }
.tm-stats__bg { position: absolute; inset: -20px; background-size: cover; background-position: center 60%; filter: saturate(.9); transform: scale(1.04); }
.tm-stats::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(100deg, rgba(11, 42, 91, .94), rgba(20, 82, 184, .86) 55%, rgba(14, 159, 143, .84)); }
.tm-stats .tm-container { position: relative; z-index: 2; }
.tm-stats__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.tm-stat__in, .tm-stat__in:visited { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 16px 10px; border-radius: var(--tm-radius); color: #fff; transition: background-color .2s, transform .2s; }
a.tm-stat__in:hover { background: rgba(255, 255, 255, .1); text-decoration: none; color: #fff; transform: translateY(-3px); }
.tm-stat__icon { width: 56px; height: 56px; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 6px; color: var(--tm-deep); background: var(--tm-gold); box-shadow: 0 8px 18px rgba(0, 0, 0, .18); transform: rotate(-6deg); }
.tm-stat:nth-child(5n+2) .tm-stat__icon { background: #7fe3d6; }
.tm-stat:nth-child(5n+3) .tm-stat__icon { background: #ffab9c; }
.tm-stat:nth-child(5n+4) .tm-stat__icon { background: #c9b8ff; }
.tm-stat:nth-child(5n+5) .tm-stat__icon { background: #a6e58f; }
.tm-stat__num { font-family: var(--tm-display); font-size: 42px; font-weight: 800; line-height: 1.05; color: #fff; font-variant-numeric: tabular-nums; }
.tm-stat__label { font-size: 13.5px; font-weight: 600; color: rgba(255, 255, 255, .82); text-transform: uppercase; letter-spacing: .4px; }

/* ---------- TRANG CHU: lien ket ---------- */
.tm-home-partners { padding: 32px 0 36px; background: #fff; border-top: 1px solid var(--tm-line); }
.tm-partners { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; align-items: center; }
.tm-partner a { display: flex; align-items: center; justify-content: center; height: 78px; padding: 6px; border-radius: 14px; border: 1px solid var(--tm-line); background: #fff; transition: box-shadow .25s, transform .25s, border-color .25s; }
.tm-partner img { max-height: 64px; width: auto; object-fit: contain; filter: grayscale(.25); transition: filter .25s; }
.tm-partner a:hover { box-shadow: var(--tm-shadow); transform: translateY(-3px); border-color: var(--tm-pri-100); }
.tm-partner a:hover img { filter: none; }

/* ---------- Chan trang ---------- */
#footer ul.menu li, #footer ul.menu li:nth-child(2n), #footer ul.menu li:nth-child(2n + 1) { float: none; width: auto; display: block; padding: 0; }
#footer ul.menu li a { display: inline-flex; align-items: baseline; gap: 10px; white-space: normal; border-bottom: 0; padding: 0; }
#footer ul.menu li a::before { content: "\f105"; flex: 0 0 auto; font-size: 13px; color: var(--tm-gold); padding-right: 0; }
#footer ul.menu li a:hover::before { color: var(--tm-gold); }
.tm-home .tm-menu > li.active:not(.tm-menu__item--home) > a { background: transparent; color: var(--tm-deep) !important; box-shadow: none; }
.tm-home .tm-menu > li.active:not(.tm-menu__item--home):hover > a { background: var(--tm-pri-50); color: var(--tm-pri) !important; }
.tm-home .tm-menu__item--home > a { background: var(--tm-grad); color: #fff !important; box-shadow: 0 6px 16px rgba(20, 82, 184, .28); }
.tm-footer, #footer.tm-footer { position: relative; margin-top: 0; overflow: hidden; background: linear-gradient(160deg, #081d44 0%, var(--tm-deep) 50%, #0f3f94 100%); color: rgba(255, 255, 255, .82); }
.tm-footer__wave { position: absolute; left: 0; right: 0; top: -1px; height: 54px; line-height: 0; transform: rotate(180deg); }
.tm-footer__wave svg { width: 100%; height: 100%; }
.tm-footer__wave-a { fill: rgba(18, 181, 201, .35); }
.tm-footer__wave-b { fill: var(--tm-bg); }
.tm-home .tm-footer__wave-b { fill: #fff; }
.tm-footer__dots { position: absolute; inset: 0; opacity: .1; pointer-events: none; background-image: radial-gradient(#fff 1px, transparent 1.4px); background-size: 24px 24px; -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%); mask-image: linear-gradient(180deg, transparent, #000 40%); }
.tm-footer::before { content: ""; position: absolute; right: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 200, 61, .18), transparent 65%); pointer-events: none; }
.tm-footer__main { position: relative; z-index: 1; padding: 74px 0 30px; }
.tm-footer__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr) minmax(0, 1fr); gap: 34px; }
.tm-footer__brand, .tm-footer__brand:visited { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; color: #fff; font-family: var(--tm-display); font-weight: 800; font-size: 20px; line-height: 1.25; }
.tm-footer__brand img { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 50%; background: #fff; padding: 3px; box-shadow: 0 0 0 3px rgba(255, 200, 61, .5); }
.tm-footer__brand:hover { text-decoration: none; color: var(--tm-gold); }
.tm-footer h2, .tm-footer h3, .tm-footer .tm-block__title { font-family: var(--tm-display); font-size: 18px; font-weight: 800; letter-spacing: .2px; color: #fff; margin: 0 0 14px; padding: 0 0 10px; border: 0; position: relative; background: none; box-shadow: none; }
.tm-footer .tm-block__title::before { display: none; }
.tm-footer h2::after, .tm-footer h3::after, .tm-footer .tm-block__title::after { content: ""; position: absolute; left: 0; right: auto; top: auto; bottom: 0; width: 46px; height: 4px; margin: 0; border: 0; border-radius: 4px; opacity: 1; background: var(--tm-rainbow); }
.tm-footer .tm-block, .tm-footer .tm-block--simple { background: transparent; box-shadow: none; margin-bottom: 18px; }
.tm-footer .tm-block__body { padding: 0; }
.tm-footer a, .tm-footer a:visited { color: rgba(255, 255, 255, .88); }
.tm-footer a:hover { color: var(--tm-gold); text-decoration: none; }
.tm-footer .company_info { list-style: none; margin: 0; padding: 0; font-size: 14px; overflow-wrap: anywhere; }
.tm-footer .company_info li { display: flex; gap: 10px; margin-bottom: 9px; line-height: 1.55; }
.tm-footer .company_info li.company_name { display: none; }
.tm-footer .company_info li > a { display: flex; gap: 10px; }
.tm-footer .company_info .fa { flex: 0 0 18px; margin-top: 3px; color: var(--tm-gold); text-align: center; }
.tm-footer ul.menu { list-style: none; margin: 0; padding: 0; columns: 1; }
.tm-footer ul.menu li { margin-bottom: 7px; }
.tm-footer ul.menu a { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; transition: transform .2s, color .2s; }
.tm-footer ul.menu a::before { content: "\f105"; font-family: FontAwesome; color: var(--tm-gold); }
.tm-footer ul.menu a:hover { transform: translateX(4px); }
.tm-footer .counter, .tm-footer .counter li { color: rgba(255, 255, 255, .85); }
.tm-footer__bottom { position: relative; z-index: 1; background: rgba(0, 0, 0, .22); border-top: 1px solid rgba(255, 255, 255, .08); }
.tm-footer__bottom-in { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; font-size: 13px; color: rgba(255, 255, 255, .72); padding-top: 8px; padding-bottom: 8px; }
.tm-footer__bottom .copyright span { white-space: normal; }
.tm-footer__themetype a, .tm-footer__themetype span { display: inline-flex; width: 30px; height: 30px; border-radius: 50%; align-items: center; justify-content: center; background: rgba(255, 255, 255, .08); margin-left: 4px; }
.tm-footer__qr:empty { display: none; }
.tm-totop { position: fixed; right: 18px; bottom: 18px; z-index: 1020; width: 48px; height: 48px; border-radius: 16px; border: 0; background: var(--tm-grad-warm); color: #fff; font-size: 18px; box-shadow: 0 10px 24px rgba(255, 107, 87, .4); opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s, transform .3s, visibility .3s; }
.tm-totop.is-show { opacity: 1; visibility: visible; transform: none; }
.tm-totop:hover { transform: translateY(-3px) rotate(-6deg); }

/* ---------- Hieu ung xuat hien khi cuon ---------- */
.tm-js .tm-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--tm-ease), transform .7s var(--tm-ease); transition-delay: var(--tm-delay, 0ms); }
.tm-js .tm-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .tm-js .tm-reveal { opacity: 1; transform: none; }
}


/* ==========================================================================
   NOI DUNG MODULE (dong bo phong cach cho template mac dinh 4.6)
   ========================================================================== */
.tm-content .panel { border-radius: var(--tm-radius-sm); border-color: var(--tm-line); box-shadow: none; }
.tm-content .panel-default > .panel-heading { background: var(--tm-pri-50); color: var(--tm-deep); font-weight: 700; border-color: var(--tm-line); }
.tm-content .panel-primary > .panel-heading { background: var(--tm-pri); border-color: var(--tm-pri); }
.btn-primary { background-color: var(--tm-pri); border-color: var(--tm-pri); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background-color: var(--tm-deep); border-color: var(--tm-deep); }
.btn { border-radius: 8px; font-weight: 600; }
.form-control { border-radius: 8px; border-color: #d6e2f3; box-shadow: none; }
.form-control:focus { border-color: var(--tm-pri); box-shadow: 0 0 0 3px rgba(20, 82, 184, .12); }
.table > thead > tr > th { background: var(--tm-pri-50); color: var(--tm-deep); border-bottom-width: 1px; }
.pagination > li > a, .pagination > li > span { color: var(--tm-pri); border-color: var(--tm-line); margin: 0 2px; border-radius: 8px !important; }
.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover { background: var(--tm-pri); border-color: var(--tm-pri); }
.label-primary { background-color: var(--tm-pri); }

/* tieu de trang, noi dung chi tiet */
.tm-content h1, .tm-content .title h1, .tm-content h1.title { font-size: 26px; font-weight: 800; line-height: 1.35; color: var(--tm-deep); margin: 0 0 12px; }
.tm-content .bodytext, #news-bodyhtml, .tm-content .page .bodytext { font-size: 16.5px; line-height: 1.8; color: #1f2a3d; }
#news-bodyhtml p, .tm-content .bodytext p { margin: 0 0 14px; }
#news-bodyhtml img { border-radius: 8px; }
#news-bodyhtml figure.image figcaption { color: var(--tm-muted); font-style: italic; font-size: 14px; }
.tm-content .hometext { font-size: 17px; font-weight: 600; color: #33415c; line-height: 1.7; }
.news_column .meta, .tm-content .small.text-muted { color: var(--tm-muted); }
.tm-content .h3, .tm-content h3 { color: var(--tm-deep); }
.tm-content blockquote { border-left: 4px solid var(--tm-gold); background: var(--tm-gold-50); border-radius: 0 8px 8px 0; }

/* danh sach tin cua module news (viewcat_*) */
.news_column .panel-body .h3 a, .news_column h3 a, .viewcat_list h3 a { color: var(--tm-ink); }
.news_column .panel-body .h3 a:hover, .news_column h3 a:hover { color: var(--tm-pri); text-decoration: none; }
.news_column .panel-body img.img-thumbnail, .news_column img.img-thumbnail { border-radius: 10px; padding: 0; border: 0; box-shadow: var(--tm-shadow-sm); }
.news_column .panel { transition: box-shadow .2s; }
.news_column .panel:hover { box-shadow: var(--tm-shadow); }
.news_column .panel-heading { font-weight: 700; }
.news_column .panel-heading a { color: var(--tm-deep); text-transform: uppercase; }

/* khung chuyen muc con dang hai cot (viewcat_two_column): anh lon bai dau, anh nho cac bai tiep */
.tm-tc { border-radius: var(--tm-radius-sm); overflow: hidden; box-shadow: var(--tm-shadow-sm); }
.tm-content .tm-tc > .tm-tc__head, .tm-tc__head {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px;
    background: linear-gradient(90deg, var(--tm-deep), var(--tm-pri)); border: 0;
}
.tm-tc__head h4 { margin: 0; font-size: 15.5px; font-weight: 800; line-height: 1.35; }
.tm-tc__head h4 a, .tm-tc__head h4 a:visited { color: #fff; text-transform: none; }
.tm-tc__head h4 a:hover { color: var(--tm-gold); text-decoration: none; }
.tm-tc__head .cat-icon::before { display: none; }
.tm-tc__all, a.tm-tc__all { flex: 0 0 auto; padding: 4px 11px; border-radius: 999px; background: var(--tm-gold); color: var(--tm-deep) !important; font-size: 12.5px; font-weight: 800; white-space: nowrap; transition: background-color .2s; }
.tm-tc__all:hover { background: #fff; text-decoration: none; }
.tm-tc .panel-body { padding: 14px; }
.tm-tc__lead-img { display: block; margin: 0 0 10px; border-radius: 8px; overflow: hidden; border: 1px solid var(--tm-line); background: #eef4fc; aspect-ratio: 760 / 470; }
.tm-tc__lead-img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .5s var(--tm-ease); }
.tm-tc__lead-img:hover img { transform: scale(1.04); }
.tm-tc .panel-body > h3 { margin: 0 0 6px; font-size: 16px; font-weight: 800; line-height: 1.45; }
.tm-tc .panel-body > h3 a, .tm-tc .panel-body > h3 a:visited { color: var(--tm-ink); }
.tm-tc .panel-body > h3 a:hover { color: var(--tm-pri); text-decoration: none; }
.tm-tc .text-muted { font-size: 12.5px; }
.tm-tc .text-muted .list-inline { margin-bottom: 4px; }
.tm-tc__desc { font-size: 13.5px; color: var(--tm-muted); margin: 0 0 6px; }
.tm-tc__list { list-style: none; margin: 6px 0 0; padding: 0; }
.tm-tc__list li { padding: 0; border-top: 1px dashed var(--tm-line); background: none !important; }
.tm-tc__item, a.tm-tc__item { display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; color: var(--tm-ink); font-size: 13.5px; line-height: 1.45; font-weight: 600; }
.tm-tc__item:hover { color: var(--tm-pri); text-decoration: none; }
.tm-tc__thumb { flex: 0 0 96px; height: 59px; border-radius: 6px; border: 1px solid var(--tm-line); background: #eef4fc center top / cover no-repeat; box-shadow: 2px 2px 0 var(--tm-line-2); }
.tm-tc__ttl { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-mod-news .tm-tc__thumb, .tm-file-news .tm-tc__thumb { background-position: center; }

/* van ban (laws) */
.tm-content .laws table.table, .tm-content table.tab1 { border-radius: 10px; overflow: hidden; }

/* tim kiem */
.tm-content .search-result .result-title a, .tm-content .result-title { color: var(--tm-pri); }

/* ==========================================================================
   CONG KHAI GIAO DUC (Thong tu 09/2024/TT-BGDDT) - trinh bay nhu chuyen muc
   cong khai cua Truong TH&THCS Muong Thanh: khung gioi thieu + bang tra cuu nhanh,
   danh sach danh so, trang nam hoc theo nhom, bang thong tin van ban, xem PDF trong bai.
   ========================================================================== */
.ckgd-intro {
    position: relative; background: linear-gradient(180deg, #f7faff, #fff); border: 1px solid var(--tm-pri-100); border-left: 5px solid var(--tm-red);
    border-radius: var(--tm-radius-sm); padding: 18px 20px; margin-bottom: 22px; font-size: 15px;
}
.ckgd-intro h2 { font-size: 19px; font-weight: 800; color: var(--tm-deep); margin: 0 0 8px; text-transform: uppercase; }
.ckgd-lead { margin: 0 0 14px; line-height: 1.7; text-align: justify; }
.ckgd-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 10px; border: 1px solid var(--tm-line); }
.ckgd-matrix { width: 100%; min-width: 640px; border-collapse: collapse; background: #fff; font-size: 13.5px; }
.ckgd-matrix th, .ckgd-matrix td { border: 1px solid var(--tm-line); padding: 7px 7px; vertical-align: middle; }
.ckgd-matrix tbody th { width: 30%; }
.ckgd-matrix thead th { background: var(--tm-deep); color: #fff; text-align: center; font-weight: 700; white-space: nowrap; border-color: rgba(255, 255, 255, .15); }
.ckgd-matrix thead th a, .ckgd-matrix thead th a:visited { color: #fff !important; }
.ckgd-matrix thead th a:hover { color: var(--tm-gold) !important; }
.ckgd-matrix tbody tr:nth-child(even) { background: #f7faff; }
.ckgd-matrix tbody th { text-align: left; font-weight: 700; color: var(--tm-deep); }
.ckgd-matrix tbody th small { display: block; font-weight: 400; color: var(--tm-muted); font-size: 12.5px; line-height: 1.4; margin-top: 2px; }
.ckgd-matrix td { text-align: center; white-space: nowrap; }
.ckgd-matrix td.ckgd-law { color: var(--tm-muted); font-size: 13px; }
.ckgd-matrix td a, .ckgd-matrix td a:visited { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--tm-pri-50); color: var(--tm-pri); font-weight: 700; transition: all .15s; }
.ckgd-matrix td a:hover, .ckgd-matrix td a:focus { background: var(--tm-red); color: #fff; text-decoration: none; }
.ckgd-matrix td.ckgd-none { color: #b6c3d6; }
.ckgd-facts { margin: 14px 0 0; padding-left: 20px; font-size: 14px; line-height: 1.65; }
.ckgd-facts li { margin-bottom: 2px; }
.ckgd-facts li::marker { color: var(--tm-red); }
.ckgd-meta { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 14.5px; background: #fff; border-radius: 10px; overflow: hidden; }
.ckgd-meta th { width: 28%; background: var(--tm-pri-50); color: var(--tm-deep); text-align: left; font-weight: 700; padding: 9px 12px; border: 1px solid var(--tm-line); vertical-align: top; }
.ckgd-meta td { padding: 9px 12px; border: 1px solid var(--tm-line); }
.ckgd-viewer { border: 1px solid #d0dcec; background: #525659; margin: 8px 0; border-radius: 10px; overflow: hidden; box-shadow: var(--tm-shadow); }
.ckgd-viewer iframe { display: block; width: 100%; height: 82vh; min-height: 520px; border: 0; }
.ckgd-hint { font-size: 13.5px; color: var(--tm-muted); margin-top: 8px; }
.ckgd-note { background: var(--tm-gold-50); border-left: 4px solid var(--tm-gold); padding: 9px 13px; font-size: 14px; margin: 0 0 14px; border-radius: 0 8px 8px 0; }
.ckgd-orig { margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: #f7faff; border: 1px dashed var(--tm-line); font-size: 14.5px; }
.ckgd-orig strong { color: var(--tm-deep); }
.ckgd-side { font-size: 14.5px; }
.ckgd-side p { margin: 0 0 8px; color: #444; }
.ckgd-side ul { list-style: none; margin: 0 0 12px; padding: 0; }
.ckgd-side li { border-bottom: 1px dashed var(--tm-line); }
.ckgd-side li a { display: block; padding: 8px 2px 8px 20px; position: relative; color: var(--tm-deep); font-weight: 700; }
.ckgd-side li a::before { content: ""; position: absolute; left: 4px; top: 16px; width: 7px; height: 7px; border-radius: 50%; background: var(--tm-red); transition: transform .2s; }
.ckgd-side li a:hover { color: var(--tm-red); text-decoration: none; }
.ckgd-side li a:hover::before { transform: scale(1.4); }
.ckgd-side-all, a.ckgd-side-all { display: block; text-align: center; background: var(--tm-deep); color: #fff !important; padding: 10px 12px; border-radius: 999px; font-weight: 700; transition: background-color .2s; }
.ckgd-side-all:hover { background: var(--tm-red); text-decoration: none; }

/* module Cong khai: danh sach danh so (viewcat_list_new), khung mo ta chuyen muc, trang nam hoc (viewcat_two_column) */
.tm-mod-cong-khai-giao-duc .list-group > a.show { display: block; margin-bottom: 4px; padding: 9px 4px; border-bottom: 1px dashed var(--tm-line); transition: background-color .15s; border-radius: 6px; }
.tm-mod-cong-khai-giao-duc .list-group > a.show:hover { text-decoration: none; background: var(--tm-pri-50); }
.tm-mod-cong-khai-giao-duc .list-group > a.show h4.list-group-item-heading {
    display: flex; align-items: flex-start; gap: 8px; margin: 0; font-weight: 400; font-size: 16px; line-height: 1.6; color: var(--tm-ink);
    text-align: justify; text-align-last: left; hyphens: auto;
}
.tm-mod-cong-khai-giao-duc .list-group > a.show:hover h4.list-group-item-heading { color: var(--tm-pri); }
.tm-mod-cong-khai-giao-duc .list-group > a.show h4.list-group-item-heading .label { flex: 0 0 auto; margin-top: 4px; font-size: 12px; font-weight: 700; min-width: 28px; background: var(--tm-deep); border-radius: 6px; }
.tm-mod-cong-khai-giao-duc .viewcat_list .alert, .tm-mod-cong-khai-giao-duc .news_column > .alert-info, .tm-mod-cong-khai-giao-duc .alert-info {
    background: #f7faff; border: 1px solid var(--tm-pri-100); border-left: 5px solid var(--tm-pri); color: #2a3650; border-radius: 10px;
}
.tm-mod-cong-khai-giao-duc .alert-info h1, .tm-mod-cong-khai-giao-duc .alert-info h2, .tm-mod-cong-khai-giao-duc .alert-info strong { color: var(--tm-deep); }
.tm-mod-cong-khai-giao-duc .news_column .panel-heading { background: linear-gradient(90deg, var(--tm-deep), var(--tm-pri)); border: 0; padding: 11px 14px; }
.tm-mod-cong-khai-giao-duc .news_column .panel-heading a, .tm-mod-cong-khai-giao-duc .news_column .panel-heading a:visited { color: #fff; text-transform: none; font-size: 15.5px; }
.tm-mod-cong-khai-giao-duc .news_column .panel-heading .btn, .tm-mod-cong-khai-giao-duc .news_column .panel-heading .label { background: var(--tm-gold); color: var(--tm-deep) !important; border: 0; }
.tm-mod-cong-khai-giao-duc .news_column .panel { border-color: var(--tm-line); overflow: hidden; }
.tm-mod-cong-khai-giao-duc .news_column img.img-thumbnail { border: 1px solid var(--tm-line); box-shadow: 2px 3px 0 var(--tm-line-2); border-radius: 6px; object-fit: cover; object-position: top; }
.tm-mod-cong-khai-giao-duc .news_column .panel-body h3 a, .tm-mod-cong-khai-giao-duc .news_column .panel-body .h3 a { font-size: 16px; line-height: 1.45; }
.tm-mod-cong-khai-giao-duc .news_column ul.related li { padding: 6px 0; border-bottom: 1px dashed var(--tm-line); }
/* chi tiet van ban cong khai */
.tm-mod-cong-khai-giao-duc #news-bodyhtml { font-size: 15.5px; line-height: 1.7; }
.tm-mod-cong-khai-giao-duc .news-detail .title, .tm-mod-cong-khai-giao-duc h1.title { font-size: 23px; }
.tm-mod-cong-khai-giao-duc .news_column .hometext { font-size: 15px; font-weight: 500; color: #3a4760; background: #f7faff; border-radius: 8px; padding: 10px 12px; }

/* cay "Danh muc cong khai" (block_category cua module news) */
.tm-block .metismenu, .tm-block .panel.metismenu { background: var(--tm-deep); border: 0; border-radius: 10px; margin: 0; }
.tm-block .metismenu .sidebar-nav ul a, .tm-block .metismenu a { color: #fff; }
.tm-block .metismenu .sidebar-nav ul a:hover { background: rgba(255, 255, 255, .08); color: var(--tm-gold); }
.tm-block .metismenu .sidebar-nav ul ul a { color: rgba(255, 255, 255, .85); }
/* jquery.metisMenu.css (giao dien default) to nen xanh #205fa0: doi sang do tham + vach vang */
.tm-block .metismenu .sidebar-nav { background: var(--tm-pri-700); background-image: linear-gradient(to right, var(--tm-gold) 4px, var(--tm-pri-700) 4px); border-bottom: 1px solid rgba(0, 0, 0, .18); }
.tm-block .metismenu .sidebar-nav:hover, .tm-block .metismenu .sidebar-nav.active { background-image: linear-gradient(to right, var(--tm-gold) 4px, var(--tm-pri) 4px); }
.tm-block .metismenu .sidebar-nav ul ul { background: rgba(0, 0, 0, .14); }
/* default/style.css: #footer { background: #245682 ... } (do uu tien ID) */
#footer.tm-footer { background: linear-gradient(160deg, #081d44 0%, var(--tm-deep) 55%, #0f3f94 100%); color: rgba(255, 255, 255, .8); }

/* ==========================================================================
   DAP UNG MAN HINH
   ========================================================================== */
@media (max-width: 1199px) {
    .tm-menu > li > a { padding: 0 10px; font-size: 13px; }
    .tm-brand__l2 { font-size: 38px; }
    .tm-nav .tm-search { width: 170px; }
    .tm-nav .tm-search:focus-within { width: 230px; }
    .tm-topbar__motto { display: none; }
    .tm-stats__list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
    .tm-stat__num { font-size: 30px; }
    .tm-partners { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* may tinh bang ngang: o tim kiem + nut van hien, thu nho ten truong de giu mot dong */
@media (min-width: 992px) and (max-width: 1099px) {
    .tm-brand__l2 { font-size: 34px; }
    .tm-nav .tm-search { width: 44px; }
    .tm-nav .tm-search__input { padding-right: 0; color: transparent; }
    .tm-nav .tm-search__input::placeholder { color: transparent; }
    .tm-nav .tm-search:focus-within { width: 220px; }
    .tm-nav .tm-search:focus-within .tm-search__input { color: var(--tm-ink); padding-right: 42px; }
}

@media (max-width: 991px) {
    body { font-size: 15px; }
    .tm-header__art { width: 60%; opacity: .7; }
    .tm-header__photo { display: none; }
    .tm-header__in { min-height: 110px; }
    .tm-brand__logo { width: 76px; }
    .tm-brand__l1 { font-size: 15px; }
    .tm-brand__l2 { font-size: 32px; }
    .tm-topbar__quick { display: none; }
    .tm-nav .tm-search { display: none; }
    /* backdrop-filter tao khung chua cho phan tu position:fixed ben trong -> ngan keo (.tm-nav__menu) chi cao bang thanh menu
       (bi cat mat danh sach tren dien thoai): tat hieu ung kinh mo o kich thuoc nay, dung nen trang dac */
    .tm-nav { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
    /* menu dang ngan keo */
    .tm-nav__in { min-height: 50px; }
    .tm-nav__mini { display: inline-flex; }
    .tm-nav__toggle, .tm-nav__searchbtn {
        display: inline-flex; align-items: center; gap: 9px; height: 40px; padding: 0 12px; border: 0; border-radius: 10px;
        background: rgba(255, 255, 255, .12); color: #fff; font-weight: 700; font-size: 14.5px;
    }
    .tm-nav__searchbtn { margin-left: auto; width: 40px; padding: 0; justify-content: center; font-size: 17px; }
    .tm-burger { display: inline-flex; flex-direction: column; gap: 4px; width: 20px; }
    .tm-burger span { display: block; height: 2px; border-radius: 2px; background: #fff; }
    .tm-burger span:nth-child(2) { width: 70%; }
    .tm-nav__menu {
        position: fixed; z-index: 1050; top: 0; left: 0; bottom: 0; width: min(86vw, 360px); overflow-y: auto; -webkit-overflow-scrolling: touch;
        background: #fff; box-shadow: 10px 0 40px rgba(0, 0, 0, .25); transform: translateX(-104%); transition: transform .35s var(--tm-ease); visibility: hidden;
    }
    .tm-nav.is-open .tm-nav__menu { transform: none; visibility: visible; }
    .tm-nav__drawer-head { display: flex; align-items: center; gap: 10px; padding: 14px 14px; background: linear-gradient(110deg, var(--tm-deep), var(--tm-pri)); color: #fff; font-weight: 800; font-size: 14.5px; line-height: 1.3; text-transform: uppercase; }
    .tm-nav__close { margin-left: auto; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .15); color: #fff; font-size: 17px; }
    .tm-menu { display: block; padding: 8px 0 24px; }
    .tm-menu > li { border-bottom: 1px solid var(--tm-line-2); }
    .tm-menu > li > a { height: auto; padding: 13px 52px 13px 18px; color: var(--tm-ink) !important; text-transform: none; font-size: 15.5px; }
    .tm-menu > li > a::after { display: none; }
    .tm-menu > li.active > a { background: var(--tm-pri-50); color: var(--tm-pri) !important; box-shadow: inset 4px 0 0 var(--tm-red); }
    .tm-menu > li:hover > a { background: transparent; }
    .tm-menu__hometxt { display: inline; }
    .tm-menu__caret { display: none; }
    .tm-menu__expand {
        display: flex; align-items: center; justify-content: center; position: absolute; right: 8px; top: 6px; width: 38px; height: 38px;
        border: 0; border-radius: 10px; background: var(--tm-pri-50); color: var(--tm-pri); font-size: 17px; transition: transform .25s;
    }
    .tm-menu__expand[aria-expanded="true"] { transform: rotate(180deg); background: var(--tm-pri); color: #fff; }
    .tm-menu__sub, .tm-menu__sub .tm-menu__sub {
        position: static; opacity: 1; visibility: visible; transform: none; display: none; min-width: 0; box-shadow: none; border: 0; border-radius: 0;
        padding: 0 0 8px 14px; background: transparent;
    }
    .tm-menu li.is-open > .tm-menu__sub { display: block; animation: tm-rise .3s; }
    .tm-menu__sub .tm-menu__sub { display: block; }
    .tm-menu__subitem > a { padding: 9px 12px; font-size: 14.5px; }
    .tm-menu__subitem.has-sub > a::after { content: none; }
    body.tm-nav-open { overflow: hidden; }
    body.tm-search-open .tm-nav .tm-search {
        display: block; position: fixed; z-index: 1045; left: 12px; right: 12px; top: 62px; width: auto; padding: 12px;
        background: #fff; border-radius: 14px; box-shadow: var(--tm-shadow-lg); animation: tm-rise .25s;
    }
    body.tm-search-open .tm-nav .tm-search__input { height: 44px; background-color: #fff !important; color: var(--tm-ink); border-color: var(--tm-pri-100); }
    body.tm-search-open .tm-nav .tm-search__input::placeholder { color: var(--tm-muted); }
    body.tm-search-open .tm-nav .tm-search__btn { top: 16px; right: 16px; width: 36px; height: 36px; }
    .tm-hero__grid { grid-template-columns: 1fr; }
    .tm-hero__slider { min-height: 0; aspect-ratio: 16 / 10; }
    .tm-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-ngrid { grid-template-columns: 1fr; }
    .tm-ck__grid { grid-template-columns: 1fr; gap: 24px; }
    .tm-lib { grid-template-columns: 1fr; }
    .tm-stats__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tm-footer__grid { grid-template-columns: 1fr 1fr; }
    .tm-footer__col--info { grid-column: 1 / -1; }
    .tm-page__side { margin-top: 6px; }
}

@media (max-width: 767px) {
    .tm-topbar__links, .tm-topbar__user { display: none; }
    .tm-topbar__in { min-height: 34px; }
    .tm-header__in { min-height: 84px; gap: 12px; }
    .tm-brand { gap: 11px; }
    .tm-brand__logo { width: 58px; }
    .tm-brand__org { font-size: 10.5px; letter-spacing: .8px; }
    .tm-brand__org::after { display: none; }
    .tm-brand__l1 { font-size: 11.5px; letter-spacing: .6px; }
    .tm-brand__l2 { font-size: 25px; letter-spacing: .3px; }
    .tm-brand__tag { display: none; }
    .tm-brand__badge::before { width: 340px; height: 340px; margin: -170px 0 0 -170px; }
    .tm-header__art { width: 75%; opacity: .45; }
    .tm-hero { padding: 14px 0 58px; }
    .tm-hero__slider { border-radius: 14px; aspect-ratio: 1 / 1; }
    .tm-slide__media { margin: 10px 10px 0; }
    .tm-slide__cap { padding: 8px 16px 32px; }
    .tm-slide__title { font-size: 17px; }
    .tm-slide__desc { display: none; }
    .tm-slider__nav { display: none; }
    .tm-slider__dots { right: 16px; bottom: 14px; }
    .tm-notice { border-radius: 14px; }
    .tm-quick { gap: 10px; }
    .tm-tile { padding: 12px; gap: 10px; flex-direction: column; align-items: flex-start; }
    .tm-tile__icon { flex-basis: auto; width: 42px; height: 42px; font-size: 18px; }
    .tm-tile__title { font-size: 14px; }
    .tm-tile__desc { display: none; }
    .tm-tile__go { display: none; }
    .tm-section__title, .tm-lib__title { font-size: 19px; }
    .tm-ntabs__bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
    .tm-ntabs__bar::-webkit-scrollbar { display: none; }
    .tm-ntabs__tab { flex: 0 0 auto; }
    .tm-ncard__title { font-size: 17px; }
    .tm-ncard__thumb { flex-basis: 96px; height: 68px; }
    .tm-ck { padding: 38px 0; }
    .tm-ck__title { font-size: 26px; }
    .tm-ck__groups { grid-template-columns: 1fr; }
    .tm-ck__latest { padding: 16px; border-radius: 14px; }
    .tm-albums { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 120px; }
    .tm-album--lead { grid-column: span 2; grid-row: span 2; }
    .tm-stats { padding: 34px 0; }
    .tm-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-stat:last-child { grid-column: 1 / -1; }
    .tm-stat__num { font-size: 28px; }
    .tm-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .tm-footer__main { padding-top: 54px; }
    .tm-footer__bottom-in { flex-direction: column; text-align: center; }
    .tm-content { padding: 16px 14px; border-radius: 12px; }
    .tm-page { padding-top: 16px; }
    .tm-pagehead { padding: 10px 0; }
    .tm-content h1, .tm-content .title h1 { font-size: 21px; }
    .tm-content .bodytext, #news-bodyhtml { font-size: 16px; }
    .ckgd-intro { padding: 12px 12px; }
    .ckgd-meta th { width: 38%; }
    .ckgd-viewer iframe { height: 72vh; min-height: 420px; }
    .tm-mod-cong-khai-giao-duc .list-group > a.show h4.list-group-item-heading { font-size: 15px; }
    .tm-totop { right: 12px; bottom: 12px; width: 42px; height: 42px; }
}

@media (max-width: 400px) {
    .tm-brand__logo { width: 50px; }
    .tm-brand__l1 { font-size: 10.5px; letter-spacing: .2px; }
    .tm-brand__l2 { font-size: 22px; }
    .tm-brand__org { font-size: 9.5px; letter-spacing: .3px; }
}

@media (max-width: 350px) {
    .tm-brand__l2 { font-size: 19px; }
    .tm-brand__org { display: none; }
}

@media print {
    .tm-topbar, .tm-nav, .tm-header__art, .tm-page__side, .tm-footer, .tm-totop, .tm-pagehead::before, .tm-pagehead::after { display: none !important; }
    .tm-pagehead { background: none; color: #000; padding: 0; }
    .tm-content { box-shadow: none; padding: 0; }
}

/* tep dinh kem trong bai (module news) */
.tm-mod-cong-khai-giao-duc .news_column .panel-heading { color: #fff; }
.tm-files .panel-heading .fa { color: var(--tm-gold); margin-right: 4px; }
.tm-files .list-group-item a strong { word-break: break-word; }
@media (max-width: 991px) {
    .tm-home .tm-menu > li.active:not(.tm-menu__item--home) > a { background: transparent; color: var(--tm-ink) !important; box-shadow: none; }
    .tm-home .tm-menu__item--home > a { background: var(--tm-pri-50); color: var(--tm-pri) !important; box-shadow: inset 4px 0 0 var(--tm-red); }
}

/* khoi tin chi co mot the: an thanh the */
.tm-ntabs__bar:has(> .tm-ntabs__tab:only-child) { display: none; }

/* khung quang cao truot hai ben (fix_banner_*): khong che, khong chan bam vao noi dung ben duoi; khong co quang cao thi an */
.fix_banner_left, .fix_banner_right { pointer-events: none; }
.fix_banner_left > *, .fix_banner_right > * { pointer-events: auto; }
.fix_banner_left.tm-empty, .fix_banner_right.tm-empty { display: none !important; }

/* ==========================================================================
   SU KIEN (module events): lich su kien dang the ngay, trang thai sap dien ra / dang dien ra / da dien ra
   ========================================================================== */
.tm-ev-title { margin: 0 0 16px; font-size: 24px; font-weight: 800; color: var(--tm-deep); }
.tm-ev-search { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.tm-ev-search .form-control { flex: 1 1 220px; width: auto; height: 42px; border-radius: 10px; }
.tm-ev-search select.form-control { flex: 0 1 240px; }
.tm-ev-search .btn { height: 42px; border-radius: 10px; padding: 0 18px; font-weight: 700; }
.tm-ev-list { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 14px; }
.tm-ev { position: relative; display: flex; gap: 18px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--tm-line); border-radius: var(--tm-radius); background: var(--tm-card); transition: box-shadow .25s, transform .25s, border-color .25s; }
.tm-ev:hover { box-shadow: var(--tm-shadow); transform: translateY(-2px); border-color: var(--tm-pri-100); }
.tm-ev--now { border-left: 4px solid var(--tm-green); }
.tm-ev__date { flex: 0 0 92px; display: flex; flex-direction: column; align-items: center; overflow: hidden; border-radius: 12px; border: 1px solid var(--tm-pri-100); background: var(--tm-pri-50); text-align: center; line-height: 1.2; }
.tm-ev__mon { align-self: stretch; padding: 5px 0; background: var(--tm-red); color: #fff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.tm-ev__day { padding-top: 6px; font-size: 32px; font-weight: 800; color: var(--tm-deep); line-height: 1.05; }
.tm-ev__wday { margin-top: 2px; font-size: 12px; color: var(--tm-muted); }
.tm-ev__year { padding: 1px 0 7px; font-size: 12px; font-weight: 700; color: var(--tm-pri); }
.tm-ev__body { flex: 1 1 auto; min-width: 0; }
.tm-ev__state { display: inline-block; padding: 3px 10px; border-radius: 20px; background: var(--tm-pri-50); color: var(--tm-pri); font-size: 12px; font-weight: 700; }
.tm-ev--now .tm-ev__state { background: var(--tm-green-50); color: var(--tm-green); }
.tm-ev--past .tm-ev__state { background: var(--tm-line-2); color: var(--tm-muted); }
.tm-ev--past .tm-ev__mon { background: #94a3b8; }
.tm-ev--past .tm-ev__day { color: var(--tm-muted); }
.tm-ev__name { margin: 7px 0 5px; font-size: 18px; font-weight: 700; line-height: 1.38; }
.tm-ev__name a, .tm-ev__name a:visited { color: var(--tm-deep); }
.tm-ev__name a:hover { color: var(--tm-red); text-decoration: none; }
.tm-ev__meta { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0 0 6px; font-size: 14px; color: var(--tm-muted); }
.tm-ev__meta .fa { color: var(--tm-red); width: 14px; text-align: center; }
.tm-ev__desc { margin: 0 0 8px; font-size: 14.5px; color: var(--tm-text); line-height: 1.6; }
.tm-ev__desc:empty, .tm-ev__img:empty, .tm-evd__img:empty { display: none; }
.tm-ev__cats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tm-ev__cats a { display: inline-block; padding: 2px 10px; border-radius: 20px; border: 1px solid var(--tm-line); font-size: 12px; color: var(--tm-pri); }
.tm-ev__cats a:hover { background: var(--tm-pri); border-color: var(--tm-pri); color: #fff; text-decoration: none; }
.tm-ev__img { flex: 0 0 180px; }
.tm-ev__img img { display: block; width: 180px; height: 120px; object-fit: cover; border-radius: 10px; }
.tm-evd__head { display: flex; gap: 20px; align-items: flex-start; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--tm-line); }
.tm-evd__info { min-width: 0; }
.tm-evd__title { margin: 7px 0 8px; font-size: 26px; font-weight: 800; line-height: 1.3; color: var(--tm-deep); }
.tm-evd__img img { max-width: 100%; height: auto; border-radius: 12px; margin-bottom: 14px; }
.tm-evd__lead { margin: 0 0 12px; font-size: 16.5px; font-weight: 600; color: var(--tm-deep); line-height: 1.6; }
.tm-evd__body ul { padding-left: 20px; }
@media (max-width: 767px) {
    .tm-ev { gap: 12px; padding: 12px; }
    .tm-ev__date { flex-basis: 70px; }
    .tm-ev__day { font-size: 26px; }
    .tm-ev__mon { font-size: 11px; }
    .tm-ev__wday { font-size: 11px; }
    .tm-ev__name { font-size: 16px; }
    .tm-ev__img { display: none; }
    .tm-evd__head { gap: 12px; }
    .tm-evd__title { font-size: 20px; }
}

/* ==========================================================================
   VIDEO (module videos): luoi deu hang/cot, anh 16:9, tieu de 2 dong, nut phat
   ========================================================================== */
.tm-mod-videos .news_column > .panel { border: 1px solid var(--tm-line); border-radius: var(--tm-radius); box-shadow: none; overflow: hidden; margin-bottom: 18px; background: var(--tm-card); }
.tm-mod-videos .news_column .panel-heading h4 { margin: 0; font-size: 15px; font-weight: 800; text-transform: uppercase; }
/* trang chinh: moi chuyen muc mot luoi 3 cot */
.tm-mod-videos .news_column .panel-body > .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; margin: 0; }
.tm-mod-videos .news_column .panel-body > .row::before, .tm-mod-videos .news_column .panel-body > .row::after { content: none; }
.tm-mod-videos .videos_list { float: none; width: auto; min-height: 0; padding: 0; display: flex; flex-direction: column; }
.tm-mod-videos .videos_list > .videos-home-thumbnail, .tm-mod-videos .videos_list > .videos-home-info { float: none; width: 100%; padding: 0; }
.tm-mod-videos .videos-home-thumbnail a, .tm-mod-videos .videos-thumbnail a { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: #081d44; }
.tm-mod-videos .videos-home-thumbnail img, .tm-mod-videos .videos-thumbnail img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; padding: 0; border: 0; border-radius: 0; transition: transform .35s var(--tm-ease); }
.tm-mod-videos .videos-home-thumbnail a:hover img, .tm-mod-videos .videos-thumbnail a:hover img { transform: scale(1.05); }
.tm-mod-videos .videos-home-thumbnail a::after, .tm-mod-videos .videos-thumbnail a::after {
    content: "\f04b"; font-family: FontAwesome; position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; padding-left: 4px;
    display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 107, 87, .9); color: #fff; font-size: 16px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .35); transition: transform .25s;
}
.tm-mod-videos .videos-home-thumbnail a:hover::after, .tm-mod-videos .videos-thumbnail a:hover::after { transform: scale(1.1); }
.tm-mod-videos .videos-home-info h3, .tm-mod-videos .videos-text h3 { height: auto; margin: 10px 0 4px; font-size: 15.5px; font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.tm-mod-videos .videos-home-info h3 a, .tm-mod-videos .videos-text h3 a { color: var(--tm-deep); }
.tm-mod-videos .videos-home-info h3 a:hover, .tm-mod-videos .videos-text h3 a:hover { color: var(--tm-red); text-decoration: none; }
.tm-mod-videos .videos-home-info .text-muted ul, .tm-mod-videos .videos-text .text-muted ul { display: flex; flex-wrap: wrap; gap: 0 12px; margin: 0; padding: 0; font-size: 13px; color: var(--tm-muted); }
.tm-mod-videos .videos-home-info .text-muted li, .tm-mod-videos .videos-text .text-muted li { float: none; }
.tm-mod-videos .text-muted li.spacer { display: none; }
.tm-mod-videos .videos-home-info h3 { -webkit-line-clamp: 3; min-height: 4.2em; } /* luoi trang chinh: 3 dong de doc du ten tran dau, tiet muc */
.tm-mod-videos .videos-home-info h3::before, .tm-mod-videos .videos-home-info h3::after { content: none; } /* clearfix trong h3 lam line-clamp hien "..." thua */
/* trang chuyen muc: danh sach the ngang (anh 16:9 trai, chu phai) */
.tm-mod-videos .news_column > .panel > .panel-body:has(> .videos-thumbnail) { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: center; padding: 14px; }
.tm-mod-videos .news_column > .panel > .panel-body:has(> .videos-thumbnail)::before, .tm-mod-videos .news_column > .panel > .panel-body:has(> .videos-thumbnail)::after { content: none; }
.tm-mod-videos .videos-thumbnail, .tm-mod-videos .videos-text { float: none; width: auto; padding: 0; }
.tm-mod-videos .videos-text h3 { margin-top: 0; font-size: 17px; min-height: 0; }
@media (max-width: 991px) {
    .tm-mod-videos .news_column .panel-body > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .tm-mod-videos .news_column .panel-body > .row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .tm-mod-videos .videos_list { display: flex; flex-direction: column; }
    .tm-mod-videos .videos-home-info h3, .tm-mod-videos .videos-text h3 { margin: 8px 0 2px; min-height: 0; font-size: 15px; -webkit-line-clamp: 3; }
    .tm-mod-videos .news_column > .panel > .panel-body:has(> .videos-thumbnail) { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 10px; }
}

/* ==========================================================================
   GIOI THIEU > CO CAU TO CHUC (trang about "co-cau-to-chuc", tools/php/menu-gioi-thieu.php)
   ========================================================================== */
.tm-org { font-size: 15px; line-height: 1.65; }
.tm-org__lead { background: linear-gradient(180deg, #f7faff, #fff); border: 1px solid var(--tm-pri-100); border-left: 5px solid var(--tm-red); border-radius: var(--tm-radius-sm); padding: 14px 18px; text-align: justify; }
.tm-org h2 { font-size: 19px; font-weight: 800; color: var(--tm-deep); margin: 26px 0 12px; padding-left: 11px; border-left: 4px solid var(--tm-red); line-height: 1.3; }
.tm-org__chart { margin: 0; padding: 10px; background: #fff; border: 1px solid var(--tm-line); border-radius: var(--tm-radius-sm); box-shadow: var(--tm-shadow-sm); text-align: center; }
.tm-org__chart img { display: block; width: 100%; max-width: 100%; height: auto; margin: 0 auto; }
.tm-org__chart figcaption { font-size: 13px; color: var(--tm-muted); font-style: italic; margin-top: 6px; }
.tm-org__bgh { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tm-org__card { display: flex; flex-direction: column; gap: 3px; background: var(--tm-pri-50); border: 1px solid var(--tm-pri-100); border-top: 4px solid var(--tm-pri); border-radius: var(--tm-radius-sm); padding: 12px 14px; }
.tm-org__card--ht { background: var(--tm-deep); border-color: var(--tm-deep); color: #dbe7f7; }
.tm-org__role { font-size: 12.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; color: var(--tm-red); }
.tm-org__card--ht .tm-org__role { color: var(--tm-gold); }
.tm-org__name { font-size: 18px; font-weight: 800; color: var(--tm-deep); line-height: 1.3; }
.tm-org__card--ht .tm-org__name { color: #fff; }
.tm-org__task { font-size: 14px; }
.tm-org__qd { font-size: 12.5px; color: var(--tm-muted); line-height: 1.5; margin-top: 4px; padding-top: 6px; border-top: 1px dashed var(--tm-pri-100); }
.tm-org__card--ht .tm-org__qd { color: #c9d6ea; border-top-color: rgba(255, 255, 255, .2); }
.tm-org__card--ht .tm-org__qd a, .tm-org__card--ht .tm-org__qd a:visited { color: #ffd966; text-decoration: none; }
.tm-org__qd a:hover, .tm-org__qd a:focus { text-decoration: none; color: var(--tm-red); }
.tm-org__card--ht .tm-org__qd a:hover, .tm-org__card--ht .tm-org__qd a:focus { color: #fff; }
.tm-org__table { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--tm-line); border-radius: var(--tm-radius-sm); }
.tm-org__table .table { margin: 0; min-width: 640px; font-size: 14px; background: #fff; }
.tm-org__table .table > thead > tr > th { background: var(--tm-deep); color: #fff; white-space: nowrap; border: 0; }
.tm-org__table .table > tbody > tr > td { vertical-align: top; border-top: 1px solid var(--tm-line); }
.tm-org__table .table > tbody > tr:nth-child(even) { background: #f7faff; }
.tm-org__table td:first-child { width: 22%; color: var(--tm-deep); }
.tm-org__table td:nth-child(2), .tm-org__table td:nth-child(3) { width: 17%; font-weight: 600; }
.tm-org__count { display: block; font-size: 12.5px; color: var(--tm-muted); font-weight: 400; }
.tm-org__list { padding-left: 20px; margin: 0; }
.tm-org__list li { margin-bottom: 4px; }
.tm-org__list li::marker { color: var(--tm-red); }
.tm-org__more { margin-top: 18px; font-size: 14px; color: var(--tm-muted); border-top: 1px solid var(--tm-line); padding-top: 10px; }
@media (max-width: 767px) {
    .tm-org__bgh { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .tm-org h2 { font-size: 17px; }
}

/* ==========================================================================
   THANH MINH - thanh phan rieng: dai chao mung + hai cap hoc (trang chu), lien ket, trang Gioi thieu
   ========================================================================== */
.tm-section__title, .tm-ck__title, .tm-lib__title, .tm-intro__title, .tm-about h2, .tm-notice__title, .tm-block__title { font-family: var(--tm-display); }

/* ---------- dai chao mung + so lieu + hai cap hoc ---------- */
.tm-home-intro { padding: 42px 0 10px; }
.tm-intro { position: relative; }
.tm-intro__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 26px; align-items: stretch; }
.tm-intro__text { position: relative; padding: 30px 32px; border-radius: 24px; background: #fff; box-shadow: var(--tm-shadow); overflow: hidden; }
.tm-intro__text > * { position: relative; z-index: 1; }
.tm-intro__text::before { content: ""; position: absolute; right: -70px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 200, 61, .35), transparent 68%); }
.tm-intro__text::after { content: ""; position: absolute; left: -50px; bottom: -60px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(18, 181, 201, .18), transparent 68%); }
.tm-intro__eyebrow { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px; border-radius: 999px; background: var(--tm-pri-50); font-size: 12.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--tm-pri); }
.tm-intro__eyebrow .fa { color: var(--tm-gold-600); }
.tm-intro__title { margin: 10px 0 10px; font-size: 34px; font-weight: 800; line-height: 1.15; color: var(--tm-deep); }
.tm-intro__title span { background: linear-gradient(100deg, #1452b8, #12b5c9); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tm-intro__text p { color: var(--tm-text); font-size: 15.5px; line-height: 1.75; }
.tm-intro__nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0 20px; }
.tm-intro__nums div { padding: 12px 6px; border-radius: 16px; text-align: center; background: var(--tm-pri-50); border: 1px solid var(--tm-pri-100); }
.tm-intro__nums div:nth-child(2) { background: var(--tm-teal-50); border-color: #bdeee6; }
.tm-intro__nums div:nth-child(3) { background: var(--tm-gold-50); border-color: #ffe7a6; }
.tm-intro__nums div:nth-child(4) { background: var(--tm-red-50); border-color: #ffd5cc; }
.tm-intro__nums b { display: block; font-family: var(--tm-display); font-size: 34px; font-weight: 800; line-height: 1.05; color: var(--tm-pri); }
.tm-intro__nums div:nth-child(2) b { color: #0b8f82; }
.tm-intro__nums div:nth-child(3) b { color: #c98500; }
.tm-intro__nums div:nth-child(4) b { color: var(--tm-red-700); }
.tm-intro__nums span { font-size: 12.5px; font-weight: 700; color: var(--tm-muted); text-transform: uppercase; letter-spacing: .3px; }
.tm-intro__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.tm-intro__badge { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 12px; background: #fff; border: 1px dashed var(--tm-pri-100); font-size: 13.5px; font-weight: 700; color: var(--tm-deep); }
.tm-intro__badge .fa { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: var(--tm-gold); color: var(--tm-deep); font-size: 13px; }
.tm-intro__badge:nth-child(2) .fa { background: #7fe3d6; }
.tm-intro__actions { display: flex; flex-wrap: wrap; gap: 10px; }
/* hai cap hoc */
.tm-levels { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.tm-level, .tm-level:visited {
    position: relative; overflow: hidden; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 18px; align-content: center; padding: 22px 24px; border-radius: 24px;
    color: #fff; box-shadow: var(--tm-shadow-lg); transition: transform .3s var(--tm-ease), box-shadow .3s; isolation: isolate;
}
.tm-level--th { background: linear-gradient(130deg, #ff6b57 0%, #ff8a3d 55%, #ffb547 100%); }
.tm-level--thcs { background: linear-gradient(130deg, #1452b8 0%, #1d6fe0 50%, #12b5c9 100%); }
.tm-level::before { content: ""; position: absolute; right: -40px; top: -50px; z-index: -1; width: 190px; height: 190px; border-radius: 50%; border: 28px solid rgba(255, 255, 255, .14); transition: transform .8s var(--tm-ease); }
.tm-level::after { content: ""; position: absolute; right: 28px; bottom: 18px; z-index: -1; width: 70px; height: 70px; opacity: .22; background: radial-gradient(#fff 2px, transparent 2.6px) 0 0 / 14px 14px; }
.tm-level:hover { transform: translateY(-4px); box-shadow: 0 24px 50px rgba(11, 42, 91, .22); text-decoration: none; color: #fff; }
.tm-level:hover::before { transform: scale(1.15) rotate(20deg); }
.tm-level__icon { grid-row: 1 / span 3; width: 78px; height: 78px; border-radius: 22px; display: grid; place-items: center; font-size: 34px; background: rgba(255, 255, 255, .22); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .35); transform: rotate(-6deg); }
.tm-level__tag { align-self: end; font-size: 12.5px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; opacity: .9; }
.tm-level__name { font-family: var(--tm-display); font-size: 30px; font-weight: 800; line-height: 1.05; }
.tm-level__desc { font-size: 14px; line-height: 1.5; opacity: .95; }
.tm-level__nums { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.tm-level__nums span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: 13px; font-weight: 700; }
.tm-level__nums b { font-family: var(--tm-display); font-size: 18px; line-height: 1; }
.tm-level__go { position: absolute; right: 22px; top: 22px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--tm-deep); transition: transform .3s var(--tm-ease); }
.tm-level--th .tm-level__go { color: var(--tm-red-700); }
.tm-level:hover .tm-level__go { transform: translateX(4px); }

/* ---------- lien ket huu ich ---------- */
.tm-links { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.tm-links__item, .tm-links__item:visited { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 16px; background: #fff; border: 1px solid var(--tm-line); color: var(--tm-ink); transition: transform .25s, box-shadow .25s, border-color .25s; }
.tm-links__item .fa { flex: 0 0 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--tm-pri-50); color: var(--tm-pri); font-size: 17px; }
.tm-links__item:nth-child(6n+2) .fa { background: var(--tm-teal-50); color: #0b8f82; }
.tm-links__item:nth-child(6n+3) .fa { background: var(--tm-red-50); color: var(--tm-red-700); }
.tm-links__item:nth-child(6n+4) .fa { background: var(--tm-gold-50); color: #c98500; }
.tm-links__item:nth-child(6n+5) .fa { background: var(--tm-violet-50); color: var(--tm-violet); }
.tm-links__item:nth-child(6n+6) .fa { background: var(--tm-green-50); color: var(--tm-green); }
.tm-links__item span { min-width: 0; display: flex; flex-direction: column; }
.tm-links__item strong { font-size: 13.5px; line-height: 1.3; }
.tm-links__item small { font-size: 11.5px; color: var(--tm-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-links__item:hover { transform: translateY(-3px); box-shadow: var(--tm-shadow); border-color: var(--tm-pri-100); text-decoration: none; color: var(--tm-pri); }

/* ---------- trang Gioi thieu ---------- */
.tm-about { font-size: 15.5px; line-height: 1.78; }
.tm-about h2 { position: relative; margin: 30px 0 14px; padding-left: 30px; font-size: 25px; font-weight: 800; line-height: 1.25; color: var(--tm-deep); }
.tm-about h2::before { content: ""; position: absolute; left: 2px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 5px; background: var(--tm-gold); transform: rotate(45deg); box-shadow: 4px 4px 0 rgba(47, 123, 245, .35); }
.tm-about h3 { font-size: 18px; font-weight: 800; color: var(--tm-deep); }
.tm-about__hero { position: relative; margin: 0 0 22px; border-radius: 22px; overflow: hidden; aspect-ratio: 16 / 7; background: var(--tm-deep); }
.tm-about__hero img { width: 100%; height: 100%; object-fit: cover; }
.tm-about__hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 27, 61, .88), rgba(8, 27, 61, .35) 58%, transparent); }
.tm-about__hero-cap { position: absolute; z-index: 1; left: 30px; bottom: 26px; display: flex; flex-direction: column; color: #fff; }
.tm-about__hero-cap span { font-size: 14px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--tm-gold); }
.tm-about__hero-cap strong { font-family: var(--tm-display); font-size: 48px; font-weight: 800; line-height: 1.02; }
.tm-about__hero-cap em { font-size: 16px; font-style: normal; opacity: .92; }
.tm-about__lead { font-size: 16.5px; }
.tm-about__facts { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--tm-line); border-radius: 16px; overflow: hidden; }
.tm-about__facts th, .tm-about__facts td { padding: 11px 16px; border-bottom: 1px solid var(--tm-line-2); vertical-align: top; }
.tm-about__facts tr:last-child th, .tm-about__facts tr:last-child td { border-bottom: 0; }
.tm-about__facts th { width: 30%; background: var(--tm-pri-50); color: var(--tm-deep); font-weight: 700; }
.tm-about__src { margin-top: 10px; font-size: 13.5px; color: var(--tm-muted); font-style: italic; }
.tm-about__more { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.tm-cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 14px 0; }
.tm-mvv { padding: 18px 18px 16px; border-radius: 18px; border: 1px solid var(--tm-line); background: #fff; box-shadow: var(--tm-shadow-sm); }
.tm-mvv__icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 10px; border-radius: 14px; font-size: 21px; color: #fff; background: var(--tm-grad); }
.tm-mvv:nth-child(2) .tm-mvv__icon { background: var(--tm-grad-warm); }
.tm-mvv:nth-child(3) .tm-mvv__icon { background: linear-gradient(135deg, #16a34a, #4ccf7c); }
.tm-about .tm-mvv h3 { margin: 0 0 6px; font-family: var(--tm-display); font-size: 21px; }
.tm-mvv p { margin: 0; font-size: 14.5px; line-height: 1.65; }
.tm-campus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tm-campus__item { position: relative; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--tm-line); background: linear-gradient(180deg, #fff, var(--tm-bg)); }
.tm-campus__item h3 { margin: 6px 0 6px; font-size: 19px; font-weight: 800; color: var(--tm-deep); }
.tm-campus__item p { margin: 0 0 4px; font-size: 14.5px; }
.tm-campus__item .fa { color: var(--tm-red); margin-right: 4px; }
.tm-campus__tag { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--tm-pri-50); color: var(--tm-pri); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.tm-bgh { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tm-bgh__card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 20px 14px 16px; border-radius: 18px; border: 1px solid var(--tm-line); background: #fff; box-shadow: var(--tm-shadow-sm); }
.tm-bgh__avatar { flex: 0 0 auto; width: 68px; height: 68px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; font-family: var(--tm-display); font-size: 28px; font-weight: 800; color: #fff; background: var(--tm-grad); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--tm-pri-100); }
.tm-bgh__card:nth-child(3) .tm-bgh__avatar { background: linear-gradient(135deg, #0e9f8f, #12b5c9); }
.tm-bgh__pos { font-size: 12px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--tm-red-700); }
.tm-bgh__name { font-family: var(--tm-display); font-size: 21px; font-weight: 800; color: var(--tm-deep); line-height: 1.2; }
.tm-bgh__prev { font-size: 13.5px; color: var(--tm-muted); line-height: 1.45; }
.tm-bgh__doc { margin-top: 4px; font-size: 12.5px; font-weight: 600; }
.tm-bgh__card--lead { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; column-gap: 18px; row-gap: 2px; align-items: center; text-align: left; padding: 18px 22px; background: linear-gradient(110deg, var(--tm-pri-50), #fff 72%); border-color: var(--tm-pri-100); }
.tm-bgh__card--lead .tm-bgh__avatar { grid-row: 1 / span 4; width: 80px; height: 80px; margin: 0; font-size: 32px; background: var(--tm-grad-warm); }
.tm-timeline { list-style: none; margin: 18px 0 8px; padding: 0 0 0 28px; border-left: 3px dashed var(--tm-pri-100); }
.tm-timeline li { position: relative; margin: 0 0 18px; padding-left: 8px; }
.tm-timeline li::before { content: ""; position: absolute; left: -40px; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--tm-pri-600); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--tm-pri-100); }
.tm-timeline li:nth-child(3n+2)::before { background: var(--tm-teal); }
.tm-timeline li:nth-child(3n+3)::before { background: var(--tm-red); }
.tm-timeline__date { display: inline-block; padding: 2px 12px; border-radius: 999px; background: var(--tm-gold-50); color: var(--tm-deep); font-weight: 800; font-size: 13.5px; border: 1px solid #ffe7a6; }
.tm-timeline p { margin: 6px 0 0; }
.tm-history { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tm-history__item { padding: 16px 20px; border-radius: 16px; border: 1px solid var(--tm-line); background: #fff; }
.tm-history__item h3 { margin: 0 0 8px; font-family: var(--tm-display); font-size: 21px; font-weight: 800; color: var(--tm-deep); }
.tm-history__item h3 small { margin-left: 8px; font-family: var(--tm-font); font-size: 12.5px; font-weight: 700; color: var(--tm-red-700); text-transform: uppercase; letter-spacing: .4px; }
.tm-history__link { margin: 0; font-weight: 700; }
.tm-orgchart { display: flex; flex-direction: column; align-items: center; gap: 22px; margin: 20px 0 10px; padding: 24px 12px; border-radius: 20px; background: linear-gradient(180deg, var(--tm-bg), #fff); border: 1px solid var(--tm-line); }
.tm-orgchart__lvl { position: relative; display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; width: 100%; }
.tm-orgchart__lvl + .tm-orgchart__lvl::before { content: ""; position: absolute; left: 50%; top: -22px; height: 22px; border-left: 2px dashed #9cc2ff; }
.tm-orgchart__box { flex: 0 1 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 11px 14px; border-radius: 14px; background: #fff; border: 1.5px solid var(--tm-pri-100); color: var(--tm-deep); font-weight: 800; font-size: 14px; line-height: 1.35; box-shadow: var(--tm-shadow-sm); }
.tm-orgchart__box small { font-weight: 500; font-size: 12.5px; color: var(--tm-muted); }
.tm-orgchart__box--top { background: var(--tm-deep); border-color: var(--tm-deep); color: #fff; }
.tm-orgchart__box--top small { color: rgba(255, 255, 255, .78); }
.tm-orgchart__box--head { flex-basis: 280px; background: var(--tm-grad); border-color: transparent; color: #fff; font-size: 16px; }
.tm-orgchart__box--head small { color: #fff3c4; font-size: 13.5px; font-weight: 700; }
.tm-orgchart__box--th { background: #fff1e8; border-color: #ffc9a8; }
.tm-orgchart__box--thcs { background: #e8f2ff; border-color: #b9d4ff; }
.tm-orgchart__box--unit { background: var(--tm-gold-50); border-color: #ffe7a6; }
.tm-orgchart__box--org { background: var(--tm-green-50); border-color: #b8e8c8; color: #0f6b3a; }

@media (max-width: 991px) {
    .tm-intro__grid { grid-template-columns: 1fr; }
    .tm-levels { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
    .tm-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tm-cards3 { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .tm-home-intro { padding-top: 26px; }
    .tm-intro__text { padding: 20px 18px; border-radius: 18px; }
    .tm-intro__title { font-size: 26px; }
    .tm-intro__nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-intro__nums b { font-size: 28px; }
    .tm-levels { grid-template-columns: 1fr; }
    .tm-level { padding: 18px; border-radius: 18px; gap: 2px 14px; }
    .tm-level__icon { width: 60px; height: 60px; font-size: 26px; border-radius: 18px; }
    .tm-level__name { font-size: 24px; }
    .tm-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-about h2 { font-size: 21px; }
    .tm-about__hero { aspect-ratio: 4 / 3; }
    .tm-about__hero-cap { left: 16px; bottom: 14px; }
    .tm-about__hero-cap strong { font-size: 30px; }
    .tm-about__facts th { width: 38%; }
    .tm-campus, .tm-bgh, .tm-history { grid-template-columns: 1fr; }
    .tm-bgh__card--lead { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .tm-bgh__card--lead .tm-bgh__avatar { grid-row: auto; }
    .tm-orgchart__box { flex-basis: 44%; }
}



/* ---------- VIDEO (module videoclips, che do luoi "viewgrid"): the 16:9, nut phat, tieu de 2 dong ---------- */
.tm-file-videoclips .viewgrid > .row { display: flex; flex-wrap: wrap; margin: 0 -8px; }
.tm-file-videoclips .viewgrid > .row > [class*="col-"] { float: none; display: flex; padding: 0 8px; margin-bottom: 16px; }
.tm-file-videoclips .panel-item-clip { width: 100%; margin: 0; border: 0; border-radius: var(--tm-radius); overflow: hidden; background: #fff; box-shadow: var(--tm-shadow); transition: transform .25s var(--tm-ease), box-shadow .25s; }
.tm-file-videoclips .panel-item-clip:hover { transform: translateY(-4px); box-shadow: var(--tm-shadow-lg); }
.tm-file-videoclips .panel-item-clip .panel-body { padding: 0 0 12px; text-align: left; }
.tm-file-videoclips .clip-thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--tm-deep) center / cover no-repeat; overflow: hidden; }
.tm-file-videoclips .clip-thumb img { width: 100%; height: 100%; object-fit: cover; padding: 0; border: 0; border-radius: 0; opacity: 0; }
.tm-file-videoclips .clip-thumb::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(8, 27, 61, .55)); transition: background-color .25s; }
.tm-file-videoclips .clip-thumb::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 54px; height: 54px; margin: -27px 0 0 -27px; border-radius: 50%;
    background: var(--tm-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3C/svg%3E") 56% 50% / 26px no-repeat;
    box-shadow: 0 0 0 8px rgba(255, 107, 87, .28); transition: transform .25s;
}
.tm-file-videoclips .panel-item-clip:hover .clip-thumb::after { transform: scale(1.1); }
.tm-file-videoclips .panel-item-clip h3 { margin: 12px 14px 4px; font-size: 15px; font-weight: 700; line-height: 1.45; min-height: 2.9em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tm-file-videoclips .panel-item-clip h3 a { color: var(--tm-ink); }
.tm-file-videoclips .panel-item-clip h3 a:hover { color: var(--tm-pri); text-decoration: none; }
.tm-file-videoclips .panel-item-clip .text-muted { margin: 0 14px; font-size: 12.5px; }
.tm-file-videoclips .panel-item-clip .list-inline { margin: 0; }
@media (max-width: 767px) { .tm-file-videoclips .viewgrid > .row > [class*="col-"] { width: 100%; } }

/* ---------- THU VIEN ANH (module photos): anh thu nho 720x540 (cau hinh module), khung 4:3 deu nhau, an ten tai khoan dang ---------- */
.tm-file-photos .album-album .panel { border: 0; border-radius: var(--tm-radius); overflow: hidden; box-shadow: var(--tm-shadow); transition: transform .25s var(--tm-ease), box-shadow .25s; }
.tm-file-photos .album-album .panel:hover { transform: translateY(-4px); box-shadow: var(--tm-shadow-lg); }
.tm-file-photos .album-image { padding: 0 !important; aspect-ratio: 4 / 3; overflow: hidden; background: var(--tm-pri-50); }
.tm-file-photos .album-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tm-ease); }
.tm-file-photos .album-album .panel:hover .album-image img { transform: scale(1.05); }
.tm-file-photos .album-name h4 { display: none; }
.tm-file-photos .album-name h3 { margin: 4px 0 8px; font-size: 15px; font-weight: 700; line-height: 1.45; height: 2.9em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.tm-file-photos .album-name h3 a { color: var(--tm-ink); }
.tm-file-photos .catalog_content { background: #fff; border-top: 0; padding: 10px 12px 12px !important; }

/* ---------- anh dai dien trong danh sach tin (module news): khung 3:2 deu nhau, nguon anh thu nho 960px ---------- */
.tm-file-news .news_column img.imghome { aspect-ratio: 3 / 2; height: auto; object-fit: cover; padding: 0; border: 0; border-radius: 10px; margin: 0 16px 8px 0; box-shadow: var(--tm-shadow-sm); background: var(--tm-pri-50); }
@media (max-width: 575px) { .tm-file-news .news_column img.imghome { width: 128px; } }


/* khung gioi thieu o dau chuyen muc tru so chinh / phan hieu */
.tm-campus-intro { position: relative; overflow: hidden; margin: 0 0 18px; padding: 18px 22px; border-radius: 14px; border: 1px solid #ffe3a1; background: linear-gradient(110deg, var(--tm-gold-50), #fff 70%); }
.tm-campus-intro h2 { margin: 6px 0 4px; font-family: var(--tm-display); font-size: 24px; font-weight: 700; color: var(--tm-deep); }
.tm-campus-intro p { position: relative; z-index: 1; margin: 4px 0 0; font-size: 14.5px; }
.tm-campus-intro .fa { color: var(--tm-red); margin-right: 4px; }

/* lien ket noi dung theo tong do tham (thay mau xanh mac dinh cua Bootstrap) */
a { color: var(--tm-pri-700); }
a:hover, a:focus { color: var(--tm-pri-600); }

/* mo ta chuyen muc co khung gioi thieu co so: bo hop xanh "alert-info" mac dinh, tieu de trang theo phong Lora */
.news_column .alert-info:has(.tm-campus-intro) { background: none; border: 0; padding: 0; margin-bottom: 4px; box-shadow: none; }
.news_column .alert-info:has(.tm-campus-intro) > h1 { margin: 0 0 12px; font-family: var(--tm-display); font-size: 26px; font-weight: 700; color: var(--tm-deep); }
.news_column .alert-info .tm-campus-intro h2 { display: none; }
.news_column .alert-info .tm-campus-intro { margin-bottom: 8px; }

.news_column .alert-info:has(.tm-campus-intro) { color: var(--tm-text); }

/* VAN BAN (module laws, bang .flex-table-laws): chu tieu de cot can giua; trich yeu chu thuong (khong in dam) - yeu cau 20/10/2026 */
.flex-table-laws .table-head > div { text-align: center !important; vertical-align: middle !important; }
.flex-table-laws .table-head { background: var(--tm-pri-50); }
.flex-table-laws .c-intro, .flex-table-laws .c-intro a, .flex-table-laws .c-intro a:visited { font-weight: 400 !important; }
.flex-table-laws .c-intro strong, .flex-table-laws .c-intro b { font-weight: 400 !important; }
.flex-table-laws .table-head > div { font-weight: 700 !important; }
/* nut "Tat ca van ban cong khai" o cot ben: nen mo nhe hai hoa (yeu cau 20/10/2026) */
.ckgd-side-all, a.ckgd-side-all { background: linear-gradient(100deg, rgba(20, 82, 184, .08), rgba(255, 200, 61, .2)); color: var(--tm-deep) !important; border: 1px solid rgba(20, 82, 184, .18); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6); }
.ckgd-side-all:hover, a.ckgd-side-all:hover { background: linear-gradient(100deg, rgba(20, 82, 184, .14), rgba(255, 200, 61, .32)); color: var(--tm-pri-700) !important; }

/* ==========================================================================
   UU TIEN 1 (20/10/2026): Lich cong tac, Su kien, Tuyen sinh, Hoi dap, He thong co so, Doi ngu
   ========================================================================== */
/* --- khoi Lich cong tac tuan (trang chu) --- */
.tm-ws__week { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 6px 14px; border-radius: 999px; background: var(--tm-gold-50); color: var(--tm-deep); font-weight: 700; font-size: 14px; }
.tm-ws__week .fa { color: var(--tm-pri); }
.tm-ws__days { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; margin-bottom: 14px; }
.tm-ws__day { background: var(--tm-card); border: 1px solid var(--tm-line); border-radius: var(--tm-radius-sm); overflow: hidden; box-shadow: var(--tm-shadow-sm); }
.tm-ws__date { display: flex; align-items: baseline; gap: 8px; margin: 0; padding: 9px 14px; background: linear-gradient(100deg, var(--tm-pri-50), #fff); border-bottom: 1px solid var(--tm-line); font-family: var(--tm-font); font-size: 15px; color: var(--tm-deep); }
.tm-ws__date b { font-weight: 800; }
.tm-ws__date span { color: var(--tm-muted); font-weight: 600; font-size: 14px; }
.tm-ws__today { margin-left: auto; padding: 2px 9px; border-radius: 999px; background: var(--tm-pri); color: #fff; font-style: normal; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.tm-ws__day--today { border-color: var(--tm-pri); box-shadow: 0 0 0 2px rgba(20, 82, 184, .12), var(--tm-shadow); }
.tm-ws__day--today .tm-ws__date { background: linear-gradient(100deg, var(--tm-pri), var(--tm-deep-2)); color: #fff; }
.tm-ws__day--today .tm-ws__date span { color: rgba(255, 255, 255, .85); }
.tm-ws__day--today .tm-ws__today { background: var(--tm-gold); color: var(--tm-deep); }
.tm-ws__day--past { opacity: .72; }
.tm-ws__items { margin: 0; padding: 4px 0; }
.tm-ws__item { display: flex; gap: 10px; padding: 9px 14px; }
.tm-ws__item + .tm-ws__item { border-top: 1px dashed var(--tm-line); }
.tm-ws__time { flex: 0 0 auto; min-width: 54px; padding-top: 1px; color: var(--tm-pri); font-weight: 800; font-size: 13px; line-height: 1.5; }
.tm-ws__body { min-width: 0; }
.tm-ws__content { margin: 0 0 3px; font-size: 14.5px; line-height: 1.5; color: var(--tm-ink); }
.tm-ws__hl { color: var(--tm-gold-600); }
.tm-ws__loc { display: block; font-size: 12.5px; color: var(--tm-muted); }
.tm-ws__loc .fa { color: var(--tm-red); width: 12px; }

/* --- khoi Su kien sap toi --- */
.tm-evb { padding: 14px 16px 16px; }
.tm-evb__feature { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; padding: 14px; border-radius: 12px; color: #fff !important; transition: transform .2s, box-shadow .2s;
    background: radial-gradient(120% 140% at 0% 0%, var(--tm-pri-600) 0%, var(--tm-pri) 45%, var(--tm-deep) 100%); box-shadow: 0 10px 22px rgba(11, 42, 91, .22); }
.tm-evb__feature:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(11, 42, 91, .3); }
.tm-evb__count { flex: 0 0 70px; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 70px; border-radius: 12px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 200, 61, .55); line-height: 1; }
.tm-evb__count b { font-size: 30px; font-weight: 800; color: var(--tm-gold); }
.tm-evb__count small { margin-top: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .3px; color: rgba(255, 255, 255, .9); text-align: center; }
.tm-evb__count--now .fa { font-size: 24px; color: var(--tm-gold); animation: tm-ring 2.4s ease-in-out infinite; }
@keyframes tm-ring { 0%, 70%, 100% { transform: rotate(0); } 75% { transform: rotate(14deg); } 85% { transform: rotate(-12deg); } 95% { transform: rotate(6deg); } }
.tm-evb__ftext { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tm-evb__ftext strong { font-size: 15px; line-height: 1.4; font-weight: 700; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tm-evb__ftext small { font-size: 12.5px; color: rgba(255, 255, 255, .85); }
.tm-evb__list { margin: 0 0 10px; padding: 0; }
.tm-evb__item { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; }
.tm-evb__item + .tm-evb__item { border-top: 1px dashed var(--tm-line); }
.tm-evb__item .tm-datebadge { flex: 0 0 46px; }
.tm-evb__body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tm-evb__link, .tm-evb__link:visited { color: var(--tm-ink); font-weight: 600; font-size: 14.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tm-evb__link:hover { color: var(--tm-pri); }
.tm-evb__state { font-weight: 700; color: var(--tm-pri); }
.tm-evb__state--now { color: var(--tm-green); }

/* --- khoi Tuyen sinh lop 6 --- */
.tm-adm { position: relative; overflow: hidden; margin: 0 0 22px; padding: 18px; border-radius: var(--tm-radius); background: var(--tm-card); border: 1px solid var(--tm-line); box-shadow: var(--tm-shadow); }
.tm-adm::after { content: ""; position: absolute; right: -40px; top: -40px; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 200, 61, .28), rgba(255, 200, 61, 0) 70%); pointer-events: none; }
.tm-adm__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.tm-adm__icon { flex: 0 0 48px; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, var(--tm-gold), var(--tm-gold-600)); color: var(--tm-deep); font-size: 22px; box-shadow: 0 6px 14px rgba(230, 161, 0, .35); }
.tm-adm__eyebrow { display: block; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: var(--tm-pri); }
.tm-adm__year { display: block; font-family: var(--tm-display); font-size: 19px; color: var(--tm-deep); line-height: 1.3; }
.tm-adm__lead { margin: 0 0 12px; font-size: 14px; line-height: 1.6; color: var(--tm-text); }
.tm-adm__news { margin: 0 0 12px; padding: 0; }
.tm-adm__news li { padding: 6px 0 6px 16px; position: relative; font-size: 14px; line-height: 1.45; }
.tm-adm__news li::before { content: ""; position: absolute; left: 2px; top: 13px; width: 6px; height: 6px; border-radius: 50%; background: var(--tm-gold); }
.tm-adm__news small { color: var(--tm-muted); }
.tm-adm__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.tm-adm__links a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 9px 4px; border-radius: 10px; background: var(--tm-pri-50); border: 1px solid var(--tm-pri-100); color: var(--tm-deep) !important; font-size: 13px; font-weight: 700; text-align: center; transition: background-color .2s, transform .2s; }
.tm-adm__links a .fa { font-size: 17px; color: var(--tm-pri); }
.tm-adm__links a:hover { background: var(--tm-pri); color: #fff !important; transform: translateY(-2px); }
.tm-adm__links a:hover .fa { color: var(--tm-gold); }
.tm-adm--season { background: radial-gradient(130% 120% at 100% 0%, #fff6dc 0%, #fff 55%); border: 2px solid var(--tm-gold); }

/* --- khoi He thong co so (trang Lien he) --- */
.tm-cmap__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.tm-cmap__tab { display: flex; flex-direction: column; align-items: flex-start; padding: 8px 14px; border: 1px solid var(--tm-line); border-radius: 10px; background: #fff; color: var(--tm-ink); font-weight: 700; font-size: 14.5px; line-height: 1.3; transition: all .2s; }
.tm-cmap__tab small { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--tm-muted); }
.tm-cmap__tab:hover { border-color: var(--tm-pri); color: var(--tm-pri); }
.tm-cmap__tab.is-active { background: linear-gradient(120deg, var(--tm-pri), var(--tm-deep-2)); border-color: var(--tm-pri); color: #fff; box-shadow: 0 6px 16px rgba(20, 82, 184, .25); }
.tm-cmap__tab.is-active small { color: var(--tm-gold); }
.tm-cmap__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 16px; align-items: stretch; }
.tm-cmap__info { padding: 16px; border-radius: var(--tm-radius-sm); background: var(--tm-pri-50); border: 1px solid var(--tm-pri-100); }
.tm-cmap__panel h3 { margin: 8px 0 8px; font-size: 19px; color: var(--tm-deep); }
.tm-cmap__panel p { margin: 0 0 8px; font-size: 14.5px; }
.tm-cmap__panel .fa-map-marker { color: var(--tm-red); }
.tm-cmap__links, .tm-site__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px !important; }
.tm-cmap__links a, .tm-site__links a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--tm-pri-100); color: var(--tm-pri) !important; font-size: 13px; font-weight: 700; }
.tm-cmap__links a:hover, .tm-site__links a:hover { background: var(--tm-pri); color: #fff !important; }
.tm-cmap__map, .tm-site__map { min-height: 300px; border-radius: var(--tm-radius-sm); overflow: hidden; border: 1px solid var(--tm-line); background: var(--tm-line-2); }
.tm-cmap__map iframe, .tm-site__map iframe { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; }

/* --- trang He thong co so --- */
.tm-sites { display: grid; gap: 18px; margin: 18px 0; }
.tm-site { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 0; border: 1px solid var(--tm-line); border-radius: var(--tm-radius); overflow: hidden; background: #fff; box-shadow: var(--tm-shadow); }
.tm-site__info { padding: 20px 22px; }
.tm-about .tm-site__info h3 { margin: 8px 0 10px; font-size: 21px; color: var(--tm-deep); }
.tm-site__info p { margin: 0 0 6px; }
.tm-site__info .fa-map-marker { color: var(--tm-red); }
.tm-site--main { border-color: var(--tm-gold); box-shadow: 0 0 0 2px rgba(255, 200, 61, .25), var(--tm-shadow); }
.tm-site__map { border: 0; border-left: 1px solid var(--tm-line); border-radius: 0; }

/* --- trang Doi ngu --- */
.tm-staff { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
.tm-staff__item { padding: 18px; border-radius: var(--tm-radius); background: #fff; border: 1px solid var(--tm-line); box-shadow: var(--tm-shadow-sm); }
.tm-staff__icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 10px; border-radius: 12px; background: var(--tm-pri-50); color: var(--tm-pri); font-size: 20px; }
.tm-about .tm-staff__item h3 { margin: 0 0 6px; font-size: 17px; color: var(--tm-deep); }
.tm-staff__item p { margin: 0; font-size: 14.5px; line-height: 1.65; }
.tm-note { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0; padding: 12px 16px; border-radius: 10px; background: var(--tm-gold-50); border-left: 4px solid var(--tm-gold); font-size: 14.5px; }
.tm-note .fa { color: var(--tm-gold-600); font-size: 18px; margin-top: 2px; }

/* --- trang Tuyen sinh lop 6 --- */
.tm-ts__hero { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; align-items: center; margin-bottom: 26px; padding: 26px 28px; border-radius: var(--tm-radius); color: #fff;
    background: radial-gradient(120% 140% at 100% 0%, rgba(255, 200, 61, .25), rgba(255, 200, 61, 0) 45%), linear-gradient(120deg, var(--tm-deep) 0%, var(--tm-pri) 70%, var(--tm-pri-600) 100%); box-shadow: var(--tm-shadow-lg); }
.tm-about .tm-ts__hero h2 { margin: 8px 0 10px; padding: 0; border: 0; background: none; font-size: 28px; line-height: 1.3; color: #fff; }
.tm-about .tm-ts__hero h2::before, .tm-about .tm-ts__hero h2::after { content: none; }
.tm-ts__hero p { color: rgba(255, 255, 255, .92); }
.tm-ts__eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: var(--tm-gold); font-size: 12.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; }
.tm-ts__cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.tm-ts__cta .tm-btn--blue { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .4); }
.tm-ts__badge { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 20px 14px; border-radius: 16px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 200, 61, .55); }
.tm-ts__badge b { font-family: var(--tm-display); font-size: 52px; line-height: 1; color: var(--tm-gold); }
.tm-ts__badge span { margin-top: 6px; font-weight: 700; font-size: 15px; line-height: 1.4; }
.tm-ts__badge small { margin-top: 8px; font-size: 12.5px; color: rgba(255, 255, 255, .8); }
.tm-steps { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 16px 0 26px; padding: 0; }
.tm-steps li { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 16px 16px; border-radius: var(--tm-radius); background: #fff; border: 1px solid var(--tm-line); box-shadow: var(--tm-shadow-sm); }
.tm-steps li:not(:last-child)::after { content: "\f105"; font-family: FontAwesome; position: absolute; right: -12px; top: 26px; z-index: 1; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--tm-gold); color: var(--tm-deep); font-size: 14px; }
.tm-steps b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--tm-pri), var(--tm-deep-2)); color: #fff; font-size: 17px; }
.tm-steps strong { font-size: 15.5px; color: var(--tm-deep); }
.tm-steps span { font-size: 14px; line-height: 1.55; color: var(--tm-text); }
.tm-ts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.tm-ts__grid section { padding: 18px 20px; border-radius: var(--tm-radius); background: var(--tm-pri-50); border: 1px solid var(--tm-pri-100); }
.tm-about .tm-ts__grid h3 { margin: 0 0 8px; font-size: 17px; color: var(--tm-deep); }
.tm-ts__grid h3 .fa { color: var(--tm-pri); margin-right: 4px; }
.tm-ts__grid p { margin: 0; font-size: 15px; line-height: 1.7; }
.tm-ts__sites { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; padding-left: 20px; }
.tm-ts__news { padding-left: 20px; }
.tm-ts__news li { margin-bottom: 6px; }
.tm-ts__news small { color: var(--tm-muted); }

/* --- module Su kien (events): the ngay, trang thai --- */
.tm-ev-title { margin: 0 0 16px; font-size: 24px; font-weight: 800; color: var(--tm-deep); }
.tm-ev-search { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.tm-ev-search .form-control { flex: 1 1 220px; width: auto; height: 42px; border-radius: 10px; }
.tm-ev-search select.form-control { flex: 0 1 240px; }
.tm-ev-search .btn { height: 42px; border-radius: 10px; padding: 0 18px; font-weight: 700; background: var(--tm-pri); border-color: var(--tm-pri); }
.tm-ev-list { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 14px; }
.tm-ev { position: relative; display: flex; gap: 18px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--tm-line); border-radius: var(--tm-radius); background: var(--tm-card); transition: box-shadow .25s, transform .25s, border-color .25s; }
.tm-ev:hover { box-shadow: var(--tm-shadow); transform: translateY(-2px); border-color: var(--tm-pri-100); }
.tm-ev--now { border-left: 4px solid var(--tm-green); }
.tm-ev__date { flex: 0 0 92px; display: flex; flex-direction: column; align-items: center; overflow: hidden; border-radius: 12px; border: 1px solid var(--tm-pri-100); background: var(--tm-pri-50); text-align: center; line-height: 1.2; }
.tm-ev__mon { align-self: stretch; padding: 5px 0; background: var(--tm-pri); color: #fff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.tm-ev__day { padding-top: 6px; font-size: 32px; font-weight: 800; color: var(--tm-deep); line-height: 1.05; }
.tm-ev__wday { margin-top: 2px; font-size: 12px; color: var(--tm-muted); }
.tm-ev__year { padding: 1px 0 7px; font-size: 12px; font-weight: 700; color: var(--tm-pri); }
.tm-ev__body { flex: 1 1 auto; min-width: 0; }
.tm-ev__state { display: inline-block; padding: 3px 10px; border-radius: 20px; background: var(--tm-gold-50); color: var(--tm-pri-700); font-size: 12px; font-weight: 700; }
.tm-ev--now .tm-ev__state { background: var(--tm-green-50); color: var(--tm-green); }
.tm-ev--past .tm-ev__state { background: var(--tm-line-2); color: var(--tm-muted); }
.tm-ev--past .tm-ev__mon { background: #94a3b8; }
.tm-ev--past .tm-ev__day { color: var(--tm-muted); }
.tm-ev__name { margin: 7px 0 5px; font-size: 18px; font-weight: 700; line-height: 1.38; }
.tm-ev__name a, .tm-ev__name a:visited { color: var(--tm-ink); }
.tm-ev__name a:hover { color: var(--tm-pri); }
.tm-ev__meta { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0 0 6px; font-size: 14px; color: var(--tm-muted); }
.tm-ev__meta .fa { color: var(--tm-red); width: 14px; text-align: center; }
.tm-ev__desc { margin: 0 0 8px; font-size: 14.5px; color: var(--tm-text); line-height: 1.6; }
.tm-ev__desc:empty, .tm-ev__img:empty, .tm-evd__img:empty { display: none; }
.tm-ev__cats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tm-ev__cats a { display: inline-block; padding: 2px 10px; border-radius: 20px; border: 1px solid var(--tm-line); font-size: 12px; color: var(--tm-pri); }
.tm-ev__cats a:hover { background: var(--tm-pri); border-color: var(--tm-pri); color: #fff; }
.tm-ev__img { flex: 0 0 180px; }
.tm-ev__img img { display: block; width: 180px; height: 120px; object-fit: cover; border-radius: 10px; }
.tm-evd__head { display: flex; gap: 20px; align-items: flex-start; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--tm-line); }
.tm-evd__info { min-width: 0; }
.tm-evd__title { margin: 7px 0 8px; font-size: 26px; font-weight: 800; line-height: 1.3; color: var(--tm-deep); }
.tm-evd__img img { max-width: 100%; height: auto; border-radius: 12px; margin-bottom: 14px; }
.tm-evd__lead { margin: 0 0 12px; font-size: 16.5px; font-weight: 600; color: var(--tm-deep); line-height: 1.6; }
.tm-evd__body ul { padding-left: 20px; }

/* --- module Lich cong tac (work-schedules) --- */
.schedules-week .h2, .schedules-week h2 { font-family: var(--tm-display); color: var(--tm-deep); }
.schedule-list { border-radius: var(--tm-radius-sm); overflow: hidden; background: #fff; box-shadow: var(--tm-shadow-sm); }
.schedule-list thead, .schedule-list thead th { background: linear-gradient(100deg, var(--tm-pri), var(--tm-deep-2)) !important; color: #fff !important; border-color: rgba(255, 255, 255, .15) !important; font-weight: 700; text-align: center; vertical-align: middle !important; }
.schedule-list .week-head { background: var(--tm-gold-50) !important; color: var(--tm-deep) !important; font-weight: 800; }
.schedule-list > tbody > tr > td { padding: 9px 10px !important; vertical-align: top; border-color: var(--tm-line) !important; font-size: 14.5px; line-height: 1.55; }
.schedule-list > tbody > tr:hover > td { background: var(--tm-pri-50); }
.schedule-list .highlights { background: #fff4d8 !important; color: var(--tm-ink) !important; font-weight: 600; }
.schedule-list .highlights a { color: var(--tm-pri) !important; }
.schedule-list-tool .btn-info { background: var(--tm-pri); border-color: var(--tm-pri); }
.schedule-list-tool .btn-info:hover { background: var(--tm-deep); border-color: var(--tm-deep); }

/* --- module Hoi dap (faq) --- */
#faq .flex-box { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; padding: 16px 18px; border-radius: var(--tm-radius); background: linear-gradient(110deg, var(--tm-pri-50), #fff); border: 1px solid var(--tm-pri-100); }
#faq .ptitle { margin: 0 0 4px; font-size: 24px; color: var(--tm-deep); }
#faq .pdesc { margin: 0; color: var(--tm-muted); }
#faq .panel { border: 1px solid var(--tm-line); border-radius: var(--tm-radius-sm) !important; box-shadow: none; overflow: hidden; margin-bottom: 10px; }
#faq .panel-heading { display: block; padding: 13px 16px 13px 46px; position: relative; background: #fff; color: var(--tm-ink); font-weight: 700; font-size: 15.5px; line-height: 1.45; }
#faq .panel-heading::before { content: "\f128"; font-family: FontAwesome; position: absolute; left: 14px; top: 12px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--tm-pri); color: #fff; font-size: 12px; font-weight: 400; }
#faq .panel-heading[aria-expanded="true"] { background: var(--tm-pri-50); color: var(--tm-pri); }
#faq .list-group-item { border-color: var(--tm-line); font-size: 15px; line-height: 1.7; }
#faq .list-group-item.iquestion { display: none; }
#faq .list-group-item .answer { display: none; }
#faq .subcats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#faq .subcats .item { padding: 16px 18px; border-radius: var(--tm-radius); background: #fff; border: 1px solid var(--tm-line); box-shadow: var(--tm-shadow-sm); }
#faq .subcats .ctitle { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--tm-gold); font-size: 18px; }
#faq .subcats .ctitle a { color: var(--tm-deep); }
#faq .questions-list { list-style: none; margin: 0; padding: 0; }
#faq .questions-item { font-size: 14.5px; line-height: 1.5; }
#faq .questions-item > a.question { gap: 6px; padding: 8px 6px; border-bottom: 1px dashed var(--tm-line); color: var(--tm-ink); background: transparent !important; }
#faq .questions-item > a.question:before { color: var(--tm-pri); font-weight: 700; margin-top: 1px; }
#faq .questions-item > a.question:hover { color: var(--tm-pri); }
#faq .questions-item > a.question:hover span { text-decoration: none; }
#faq .ctitle:before { color: var(--tm-pri); margin-right: 6px; }
#faq .questions-item .more { font-weight: 700; color: var(--tm-pri); }

@media (max-width: 991px) {
    .tm-cmap__grid, .tm-site { grid-template-columns: 1fr; }
    .tm-site__map { border-left: 0; border-top: 1px solid var(--tm-line); }
    .tm-staff { grid-template-columns: 1fr; }
    .tm-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-steps li:not(:last-child)::after { display: none; }
    .tm-ts__hero { grid-template-columns: 1fr; padding: 20px; }
    #faq .subcats { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .tm-ws__days { grid-template-columns: 1fr; }
    .tm-ts__grid, .tm-ts__sites { grid-template-columns: 1fr; }
    .tm-steps { grid-template-columns: 1fr; }
    .tm-about .tm-ts__hero h2 { font-size: 22px; }
    .tm-ev { gap: 12px; padding: 12px; }
    .tm-ev__date { flex-basis: 70px; }
    .tm-ev__day { font-size: 26px; }
    .tm-ev__name { font-size: 16px; }
    .tm-ev__img { display: none; }
    .tm-evd__head { gap: 12px; }
    .tm-evd__title { font-size: 20px; }
}
.tm-evb__count--now small { font-size: 9.5px; line-height: 1.2; }
.tm-evb .tm-meta { gap: 2px 10px; }
/* ==========================================================================
   CUOI TEP: menu may tinh (mot dong, o tim kiem thu gon), dap ung man hinh cho dau trang sang mau
   ========================================================================== */
@media (min-width: 992px) {
    /* o tim kiem thu gon thanh bieu tuong, bam vao mo rong de len menu */
    .tm-nav .tm-search, .tm-nav .tm-search:focus-within { position: relative; flex: 0 0 42px; width: 42px; height: 42px; margin-left: 6px; }
    .tm-nav .tm-search .tm-search__input { position: absolute; right: 0; top: 0; width: 42px; height: 42px; padding: 0; border-radius: 999px; cursor: pointer; color: transparent; transition: width .3s var(--tm-ease), background-color .2s, box-shadow .2s; }
    .tm-nav .tm-search .tm-search__input::placeholder { color: transparent; }
    .tm-nav .tm-search:focus-within .tm-search__input { width: 320px; padding: 0 46px 0 16px; z-index: 6; cursor: text; color: var(--tm-ink); box-shadow: 0 10px 26px rgba(11, 42, 91, .18); }
    .tm-nav .tm-search:focus-within .tm-search__input::placeholder { color: var(--tm-muted); }
    .tm-nav .tm-search .tm-search__btn { top: 5px; right: 5px; z-index: 7; }
    .tm-nav .tm-search:not(:focus-within) .tm-search__btn { pointer-events: none; }
}
@media (min-width: 992px) and (max-width: 1239px) {
    .tm-menu > li > a { padding: 0 10px; font-size: 13.5px; }
    .tm-menu__caret { display: none; }
}
@media (min-width: 992px) and (max-width: 1099px) {
    .tm-menu > li > a { padding: 0 8px; font-size: 13px; }
}

@media (max-width: 1199px) {
    .tm-brand__l2 { font-size: 48px; }
    .tm-topbar__motto { display: none; }
}
@media (max-width: 991px) {
    .tm-header__art { width: 78%; opacity: .55; }
    .tm-header__in { min-height: 120px; }
    .tm-brand__logo { width: 84px; height: 84px; }
    .tm-brand__l1 { font-size: 14px; }
    .tm-brand__l2 { font-size: 40px; }
    /* menu ngan keo tren nen trang */
    .tm-nav__in { min-height: 56px; }
    .tm-nav__toggle, .tm-nav__searchbtn { background: var(--tm-pri-50); color: var(--tm-deep); }
    .tm-nav__toggle:hover, .tm-nav__searchbtn:hover { background: var(--tm-pri-100); }
    .tm-burger span { background: var(--tm-deep); }
    .tm-nav__drawer-head { background: var(--tm-grad); text-transform: none; font-family: var(--tm-display); font-size: 17px; }
    .tm-nav__drawer-head img { flex: 0 0 44px; border-radius: 50%; background: #fff; padding: 2px; }
    .tm-menu { gap: 0; }
    .tm-menu > li > a { height: auto; border-radius: 0; padding: 13px 52px 13px 18px; color: var(--tm-ink) !important; font-size: 15.5px; }
    .tm-menu > li.active > a, .tm-home .tm-menu__item--home > a { background: var(--tm-pri-50); color: var(--tm-pri) !important; box-shadow: inset 4px 0 0 var(--tm-pri-600); }
    .tm-menu__sub, .tm-menu__sub .tm-menu__sub { border: 0; border-radius: 0; top: auto; }
    .tm-menu__sub::before { content: none; }
    .tm-menu__expand { background: var(--tm-pri-50); color: var(--tm-pri); }
    .tm-menu__expand[aria-expanded="true"] { background: var(--tm-pri); color: #fff; }
    body.tm-search-open .tm-nav .tm-search { top: 66px; }
}
@media (max-width: 767px) {
    .tm-header__in { min-height: 92px; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
    .tm-brand { gap: 12px; }
    .tm-brand__badge { padding: 4px; }
    .tm-brand__badge::before { inset: -6px; }
    .tm-brand__logo { width: 62px; height: 62px; }
    .tm-brand__org { font-size: 10px; letter-spacing: .8px; }
    .tm-brand__org::before { display: none; }
    .tm-brand__l1 { font-size: 11px; letter-spacing: .4px; }
    .tm-brand__l2 { font-size: 32px; padding-top: 3px; }
    .tm-brand__tag { display: none; }
    .tm-header__art { width: 100%; opacity: .35; }
    .tm-hero { padding: 14px 0 60px; }
    .tm-hero__slider { border-radius: 18px; }
    .tm-notice { border-radius: 18px; }
    .tm-section__head, .tm-lib__head { padding: 10px 14px 10px 16px; border-radius: 14px; }
    .tm-section__title, .tm-lib__title { font-size: 20px; padding-left: 26px; }
    .tm-section__title::before, .tm-lib__title::before { width: 14px; height: 14px; margin-top: -7px; }
    .tm-ck__title { font-size: 30px; }
    .tm-stat__num { font-size: 32px; }
    .tm-block__title { font-size: 17px; }
}
@media (max-width: 400px) {
    .tm-brand__logo { width: 54px; height: 54px; }
    .tm-brand__l1 { font-size: 9.5px; letter-spacing: .1px; }
    .tm-brand__l2 { font-size: 27px; }
    .tm-brand__org { font-size: 9px; letter-spacing: .3px; }
}
@media (max-width: 350px) {
    .tm-brand__l2 { font-size: 23px; }
    .tm-brand__org { display: none; }
}
@media print {
    .tm-header__sky, .tm-header__art, .tm-brand__badge::before { display: none !important; }
}

/* thu vien anh trang chu: 4 hoac 5 album van kin khung (album cuoi trai rong phan con lai cua hang) */
.tm-album:nth-child(4):last-child { grid-column: span 3; }
.tm-album:nth-child(5):last-child { grid-column: span 2; }
@media (max-width: 767px) {
    .tm-album:nth-child(4):last-child, .tm-album:nth-child(5):last-child { grid-column: span 2; }
}

/* trang Gioi thieu tren dien thoai: bang thong tin dang "nhan tren - noi dung duoi", chu tren anh lon gon lai, bang to chuc cuon ngang */
.tm-about__facts td { overflow-wrap: anywhere; }
@media (max-width: 575px) {
    .tm-about__facts, .tm-about__facts tbody, .tm-about__facts tr, .tm-about__facts th, .tm-about__facts td { display: block; width: 100% !important; }
    .tm-about__facts th { padding: 9px 14px 2px; border-bottom: 0; }
    .tm-about__facts td { padding: 2px 14px 10px; background: var(--tm-pri-50); }
    .tm-about__hero-cap { left: 14px; right: 14px; bottom: 12px; }
    .tm-about__hero-cap span { font-size: 11px; letter-spacing: .8px; }
    .tm-about__hero-cap strong { font-size: 26px; }
    .tm-about__hero-cap em { font-size: 13px; }
    .tm-about .tm-cards3[style] { grid-template-columns: 1fr !important; }
}

/* ---------- Tai lieu (module download): luoi the co anh bia, mo ta ngan, nut Chi tiet (mau: modules/download/viewcat_main_bottom.tpl, viewcat_list.tpl) ---------- */
.tm-dl__cat { margin-bottom: 34px; }
.tm-dl__cat:last-child { margin-bottom: 6px; }
.tm-dl__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 6px; }
.tm-dl__title { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--tm-display); font-size: 23px; font-weight: 800; line-height: 1.25; color: var(--tm-deep); }
.tm-dl__title a { color: inherit; }
.tm-dl__title a:hover { color: var(--tm-pri); text-decoration: none; }
.tm-dl__count { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 9px; border-radius: 999px; background: var(--tm-pri-50); color: var(--tm-pri); font-family: var(--tm-font, inherit); font-size: 14px; font-weight: 800; }
.tm-dl__head .tm-more { margin-left: auto; }
.tm-dl__subs a { margin-right: 10px; font-size: 14px; font-weight: 700; }
.tm-dl__upload { font-size: 13.5px; font-weight: 700; }
.tm-dl__desc { margin: 0 0 16px; color: var(--tm-muted); font-size: 15px; }
.tm-dl__desc:empty { display: none; }
.tm-dl--list .tm-dl__head { margin-bottom: 18px; }
.tm-dl__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tm-dl__card {
    display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--tm-line); border-radius: var(--tm-radius);
    box-shadow: var(--tm-shadow); transition: transform .25s var(--tm-ease), box-shadow .25s;
}
.tm-dl__card:hover { transform: translateY(-4px); box-shadow: var(--tm-shadow-lg); }
.tm-dl__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tm-pri-50); }
.tm-dl__img:empty { display: none; }
.tm-dl__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.tm-dl__card:hover .tm-dl__img img { transform: scale(1.04); }
.tm-dl__body { display: flex; flex: 1; flex-direction: column; padding: 14px 16px 16px; }
.tm-dl__name { margin: 0 0 6px; font-size: 15.5px; font-weight: 800; line-height: 1.35; }
.tm-dl__name a { color: var(--tm-deep); }
.tm-dl__name a:hover { color: var(--tm-pri); text-decoration: none; }
.tm-dl__intro { display: -webkit-box; margin: 0 0 14px; overflow: hidden; color: #4a5568; font-size: 14px; line-height: 1.55; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.tm-dl__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.tm-dl__by { min-width: 0; overflow: hidden; color: var(--tm-muted); font-size: 13px; white-space: nowrap; text-overflow: ellipsis; }
.tm-dl__btn { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; padding: 7px 15px; border-radius: 999px; background: var(--tm-pri-50); color: var(--tm-pri) !important; font-size: 13.5px; font-weight: 700; transition: background-color .2s, color .2s; }
.tm-dl__btn:hover, .tm-dl__btn:focus { background: var(--tm-pri); color: #fff !important; text-decoration: none; }
.tm-dl__admin { margin: 8px 0 0; font-size: 13px; text-align: right; }
.tm-dl__listtitle { margin: 26px 0 14px; font-family: var(--tm-display); font-size: 21px; font-weight: 800; color: var(--tm-deep); }
@media (max-width: 767px) { .tm-dl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
    .tm-dl__grid { grid-template-columns: 1fr; }
    .tm-dl__title { font-size: 20px; }
}
