/* t223 (anh Tân 09/11): thanh tiêu đề dính trên cùng ở mọi trang quản trị / hệ thống (điện thoại + máy tính),
   logo + tên cân đối một hàng; khung ứng dụng khi mở từ màn hình chính (standalone): thanh trên Quay lại · Trang chủ · Thoát,
   tab dưới, chừa tai thỏ (safe-area). Không đổi quyền, menu hay dữ liệu. */
:root{--tt-stick:0px}
html body header.top,html body>header.topbar,html body header.topbar,html.pwa-sa body header.top{position:-webkit-sticky!important;position:sticky!important;top:var(--tt-stick,0px)!important;z-index:45}
html body header.top{background:rgba(246,247,249,.97)}
html body header.topbar{background:rgba(255,255,255,.97)}
html{scroll-padding-top:calc(var(--tt-head,64px) + var(--tt-stick,0px) + 8px)}
/* logo + tên trên một hàng, giữa theo chiều dọc; tên dài thì "…" thay vì xuống nhiều dòng */
html body header.top .top-brand,html body .topbar .brand,html body .topbar .brand>.school-brand{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}
html body header.top .top-brand .tb-text,html body header.top .school-brand-copy,html body .topbar .brand-text,html body .topbar .school-brand-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;overflow:hidden}
html body header.top .top-brand b.school,html body header.top .school-brand-title,html body .topbar .brand-text strong,html body .topbar .school-brand-title{display:block;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%}
html body header.top .tb-sub,html body header.top .school-brand-subtitle,html body .topbar .school-brand-subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body header.top .top-logo,html body header.top .school-brand-logo,html body .topbar .school-brand-logo{flex:0 0 auto;align-self:center}
/* menu tài khoản luôn nổi trên nội dung khi thanh tiêu đề dính */
html body header.top .acct-menu,html body .topbar .m-acct-menu{z-index:60}

/* ---------- standalone (mở từ màn hình chính) ---------- */
.sa-bar,.sa-tabs{display:none}
html.pwa-sa .sa-bar{display:flex;gap:6px;align-items:center;padding:calc(6px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 6px max(10px,env(safe-area-inset-left));border-bottom:1px solid var(--line,#e3e8ea);background:inherit}
html.pwa-sa .sa-bar .sa-b{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:0 12px;border-radius:20px!important;border:1px solid #d5dde0!important;background:#fff!important;box-shadow:none!important;outline-offset:2px;color:#0e6b5c!important;font-weight:600;font-size:15px;line-height:1;font-family:inherit;text-decoration:none;cursor:pointer;width:auto!important}
html.pwa-sa .sa-bar form{margin:0;padding:0;background:none;border:0}
html.pwa-sa .sa-bar .sa-out{margin:0 0 0 auto}
html.pwa-sa .sa-bar .sa-exit{color:#a33a00!important;border-color:#e3b08f!important}
.sa-ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
html.pwa-sa header.top,html.pwa-sa header.topbar{padding-top:0!important}
html.pwa-sa .sa-tabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:46;background:rgba(255,255,255,.98);border-top:1px solid var(--line,#e3e8ea);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-shadow:0 -2px 10px rgba(0,0,0,.06)}
html.pwa-sa .sa-tabs a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;color:var(--muted,#5b6b70);text-decoration:none;font-size:12.5px;font-weight:600}
html.pwa-sa .sa-tabs a span{max-width:100%;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.pwa-sa .sa-tabs a .sa-ic{width:22px;height:22px}
html.pwa-sa .sa-tabs a.on{color:#0e6b5c}
html.pwa-sa body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
html.pwa-sa .chat-fab{bottom:calc(76px + env(safe-area-inset-bottom))!important}
/* tab dưới đã có đủ mục chính => ẩn hàng nút trùng lặp ở đầu trang cho gọn */
html.pwa-sa header.top .pills-calm,html.pwa-sa body.sa-has-tabs .pills.g4,html.pwa-sa body.sa-has-tabs .mainnav-g4{display:none!important}
/* hướng dẫn "Thêm vào màn hình chính" không bao giờ hiện khi đã mở từ màn hình chính */
html.pwa-sa #sa-install,html.pwa-sa .sa-install-login,html.pwa-sa .sa-install,html.pwa-sa [data-install-guide]{display:none!important}
@media print{.sa-bar,.sa-tabs{display:none!important}html body header.top,html body header.topbar{position:static!important}}
/* t223: tiện ích mặc định + thẻ Tâm Vàng Hub trên trang chủ người dùng cuối */
.tt-util-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:4px 16px 16px}
.tt-util-i{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;border:1px solid var(--line,#e3e8ea);border-radius:14px;background:#fff;color:var(--text,#1d2939);text-decoration:none;font-weight:600;font-size:15px;line-height:1.3}
.tt-util-i .ic{flex:0 0 auto;width:22px;height:22px;color:var(--accent,#0e6b5c)}
.tt-util-i:hover,.tt-util-i:focus-visible{border-color:var(--accent,#0e6b5c)}
.tt-hub{border:1.5px solid #d9c27a;background:linear-gradient(180deg,#fffaf0,#fff)}
.tt-hub-t{margin:0;padding:0 16px 10px;font-size:14px;color:var(--muted,#456)}
.tt-hub-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;margin:0 16px 16px;border-radius:25px;background:#b8860b;color:#fff;font-weight:700;font-size:16px;text-decoration:none}
.tt-hub-btn.off{background:#eef0f2;color:#667085;cursor:not-allowed}
.tt-hub-btn em{font-style:normal;font-size:13px;padding:2px 10px;border-radius:12px;background:#fff;color:#8a6d00;border:1px solid #e5d49a}
@media (max-width:430px){.tt-util-grid{grid-template-columns:1fr 1fr;padding:4px 12px 14px;gap:8px}.tt-util-i{font-size:14px;min-height:52px;padding:8px 10px}}
