
/* /App_Themes/all/allcss/qi-sodo.css */
/* =====================================================================================
   TRANG SƠ ĐỒ WEBSITE  (/sodo · /sitemap)  —  mới 2026-08-11
   User chốt: "dựng cho tôi 1 trang sitemap cho tất cả các giao diện".

   🔑 Trang này chạy TRONG MỌI VỎ (46 mẫu desktop cũ · bản responsive · vỏ landing gdnn*),
      nên CSS phải:
        · gói trong .qisodo, không đụng bất cứ selector chung nào;
        · KHÔNG cố định màu chữ/nền theo một giao diện — lấy màu nhấn của đơn vị qua
          --qi-color-site (token do ThemeStyles sinh từ SiteConfig.ColorSite), có giá trị lui
          khi vỏ đó không sinh token (vỏ mobile/landing đặt ViewData["LaMobileHoacTab"]);
        · tự co giãn: lưới auto-fit, không đặt chiều rộng cứng.
   ===================================================================================== */

.qisodo {
    --sodo-main: var(--qi-color-site, #0071a6);
    --sodo-vien: #e3e8ef;
    --sodo-nhat: #f6f8fb;
    --sodo-chu-nhat: #5a6472;
    max-width: 1200px;
    margin: 0 auto;
    padding: 14px 12px 28px;
    line-height: 1.55;
}

.qisodo *, .qisodo *::before, .qisodo *::after { box-sizing: border-box; }

/* Vỏ cũ khai `a { color: … }` ở nhiều nơi; khai kèm `a.` để đủ độ đặc hiệu mà không cần !important. */
.qisodo a, .qisodo a:link { color: inherit; text-decoration: none; }
.qisodo a:hover { color: var(--sodo-main); text-decoration: underline; }

.qisodo-duongdan { font-size: 13.5px; color: var(--sodo-chu-nhat); margin-bottom: 10px; }
.qisodo-duongdan span { margin: 0 6px; opacity: .6; }
.qisodo a.qisodo-duongdan-lk:hover { color: var(--sodo-main); }

.qisodo-tieude {
    margin: 0 0 6px; font-size: 26px; line-height: 1.25; font-weight: 700; color: var(--sodo-main);
}
.qisodo-mota { margin: 0 0 20px; font-size: 15px; color: var(--sodo-chu-nhat); }

/* ---------- Khối ---------- */
.qisodo-luoi {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-bottom: 18px;
}
.qisodo-khoi {
    background: #fff; border: 1px solid var(--sodo-vien); border-radius: 8px; padding: 16px 18px 18px;
}
.qisodo-khoi-rong { margin-bottom: 18px; }
.qisodo-khoi h2 {
    margin: 0 0 12px; padding-bottom: 9px; font-size: 17px; font-weight: 700; text-transform: uppercase;
    color: var(--sodo-main); border-bottom: 2px solid var(--sodo-vien);
}
.qisodo-khoi h2 i { margin-right: 7px; }

/* ---------- Danh sách ---------- */
.qisodo-ds { list-style: none; margin: 0; padding: 0; }
.qisodo-ds li { position: relative; padding: 6px 0 6px 16px; font-size: 15px; }
.qisodo-ds li::before {
    content: ""; position: absolute; left: 0; top: 14px; width: 6px; height: 6px; border-radius: 50%;
    background: var(--sodo-main); opacity: .75;
}

/* Danh sách dàn ngang (đơn vị trực thuộc · liên kết ngoài): nhiều mục, ít chữ. */
.qisodo-ds-ngang {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 18px;
}

/* ---------- Cây chuyên mục ---------- */
.qisodo-cot3 { columns: 3 260px; column-gap: 26px; }
.qisodo-nhanh { break-inside: avoid; margin-bottom: 16px; }
.qisodo-nhanh h3 {
    margin: 0 0 6px; font-size: 15.5px; font-weight: 700; color: var(--sodo-main);
    padding-bottom: 5px; border-bottom: 1px dashed var(--sodo-vien);
}
.qisodo-ds-con li { font-size: 14.5px; padding-left: 14px; }
.qisodo-ds-con li::before { width: 5px; height: 5px; top: 13px; opacity: .5; }

/* ---------- Khổ hẹp ---------- */
@media (max-width: 760px) {
    .qisodo { padding: 10px 10px 22px; }
    .qisodo-tieude { font-size: 21px; }
    .qisodo-cot3 { columns: 1; }
    .qisodo-ds-ngang { grid-template-columns: minmax(0, 1fr); }
}

/* Nền tối của vài mẫu cũ: khối trắng vẫn đọc được, nhưng bỏ viền cho đỡ chỏi. */
@media (prefers-color-scheme: dark) {
    .qisodo-khoi { border-color: rgba(0,0,0,.12); }
}

/* Dải "Sơ đồ website" dán sau chân trang có kiểu dáng NGAY TRONG
   Partials/_DaiSoDoWeb.cshtml — nó xuất hiện ở mọi trang của mọi mẫu, thêm một tệp CSS
   riêng chỉ vì ~15 dòng là tốn thêm một request cho toàn hệ thống. */

/* /App_Themes/all/allcss/qi-desktop-hep.css */
/* =====================================================================================
   VỎ DESKTOP Ở CỬA SỔ HẸP (< 1200px)  —  thêm 2026-08-11
   User báo giao diện vỡ khi xem ở khổ iPad (ảnh chụp 1024×1366): ba cột 590+295+295 chồng
   lên nhau, sinh một dải trắng giữa cột tin và cột "Tin mới nhất".

   NGUYÊN NHÂN đo được: bộ vỏ desktop bị GHIM KHUNG CỨNG —
     · `.container { min-width: 1200px }` và `#MainContent { min-width: 1200px }`
       (có trong CẢ style2.css LẪN App_Themes/hanoi/css/hanoi.css của tenant Hà Nội);
     · quảng cáo "bay hai bên mép" định vị tuyệt đối theo mép 1275px.
   ⇒ ở khung 1014px trang rộng 1342px, cuộn ngang và vỡ cột.

   PHẠM VI CỐ Ý HẸP — tệp này CHỈ làm ba việc, và chỉ dưới 1200px:
     ① gỡ khoá khung cứng (min-width) để bố cục co được;
     ② ẩn quảng cáo bay hai mép (ở khổ này chúng nằm ngoài vùng nhìn hoặc đè nội dung);
     ③ cho thanh menu ngang cuộn trong chính nó thay vì đẩy cả trang.
   KHÔNG đụng tới lưới, cỡ chữ hay màu của bất kỳ mẫu nào: từ 1200px trở lên tệp này
   không sinh một luật nào, nên 46 mẫu giữ nguyên hiển thị như trước.

   TRANG CHỦ của đơn vị đã bật Is_auto_Responive không cần tới đây: `_MasterAllDesktop`
   đưa cửa sổ hẹp sang thẳng bản "rp" (đã responsive hoàn chỉnh). Tệp này lo phần còn lại —
   các TRANG TRONG và những đơn vị chưa bật cờ.
   ===================================================================================== */

@media (max-width: 1199.98px) {

    /* ① Gỡ khoá khung. Dùng !important vì luật gốc nằm ở style2.css / hanoi.css của tenant,
       nạp sau tệp này trong vài nhánh vỏ. */
    .container,
    #MainContent,
    .content {
        min-width: 0 !important;
    }

    /* ② Quảng cáo bay hai bên mép: định vị theo mép màn hình rộng nên ở khổ này luôn nằm
       ngoài khung hoặc chồng lên nội dung. */
    .ads-wrapper.adsLeft,
    .ads-wrapper.adsRight {
        display: none !important;
    }

    /* ③ Menu ngang dài hơn khung thì cuộn trong chính nó, không đẩy cả trang trượt ngang. */
    .qimenu,
    .menu-main {
        overflow-x: auto;
    }
}

/* /App_Themes/all/allcss/qiUserLogin.css */
.open-chat-btn {
    position: fixed;
    bottom: 150px;
    right: 20px;
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 5px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    z-index: 100000;
}

    .open-chat-btn:hover {
        background-color: #0056b3;
    }

/* Popup chat */
.chat-popup {
    display: none; /* Ẩn popup mặc định */
    position: fixed;
    bottom: 200px; /* Cách nút 60px */
    right: 20px;
    width: 380px;
    height: 450px;
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 1100;
    overflow: hidden;
}

/* Header của popup */
.chat-header {
    background-color: #007bff;
    color: white;
    padding: 10px;
    font-size: 16px;
    font-weight: bold;
    position: relative;
}

/* Nút đóng trong popup */
.close-btn {
    position: absolute;
    top: 5px;
    right: 10px;
    background: none;
    border: none;
    color: white;
    font-size: 16px;
    cursor: pointer;
}

    .close-btn:hover {
        color: #ffdddd;
    }

.login-web {
    position: fixed;
    bottom: 150px;
    right: 20px;
    z-index: 9000;
    background: #006ab0;
    padding: 5px;
    border-radius: 8px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}
a:focus-visible {
    outline: none !important;
}

.qibgmenutop .pt-1 {
    padding-top: 5px !important;
}

.goog-te-combo {
    border: 1px solid #ddd !important;
    padding: 2px 10px;
    border-radius: 5px;
}

select:focus-visible {
    outline: 1px solid #ddd !important;
}

.skiptranslate {
    width: 0px !important;
    height: 0px !important;
}

body {
    top: 0px !important;
}

.VIpgJd-ZVi9od-aZ2wEe-wOHMyf.VIpgJd-ZVi9od-aZ2wEe-wOHMyf-ti6hGc {
    width: 0px !important;
    height: 0px !important;
    display: none !important;
}

#goog-gt-tt {
    display: none !important;
}

#google_translate_element {
    bottom: 0px !important;
    position: fixed;
}

.infoFooter {
    text-wrap: balance;
}

.zalo-chat-widget {
    bottom: 80px !important;
    right: 20px !important;
    /*left: auto !important;*/
    visibility: visible !important;
    /*position: fixed !important;*/
}