/* nxct-css */

        .nxct {
            position: fixed; bottom: 20px; z-index: 9995;
            display: flex; flex-direction: column; align-items: center; gap: 10px;
        }
        .nxct--right { right: 18px; align-items: flex-end; }
        .nxct--left  { left: 18px;  align-items: flex-start; }

        .nxct-list { display: flex; flex-direction: column; gap: 10px; }
        .nxct--left .nxct-list { align-items: flex-start; }
        .nxct--right .nxct-list { align-items: flex-end; }

        .nxct-item {
            position: relative; display: inline-flex; align-items: center; justify-content: center;
            height: 48px; width: 48px; padding: 0; border-radius: 999px;
            color: #fff !important; text-decoration: none !important;
            box-shadow: 0 6px 18px rgba(47, 34, 24, .22);
            transition: filter .15s ease, transform .12s ease;
        }
        .nxct-item:hover { filter: brightness(1.06); color: #fff !important; }
        .nxct-item:active { transform: scale(.95); }

        .nxct-ico { display: flex; align-items: center; justify-content: center; }
        .nxct-word { font-size: 14.5px; font-weight: 800; letter-spacing: .2px; }

        /* Tên kênh là một thẻ riêng nằm NGOÀI nút, không làm nút co giãn.
           Trước đây nút nở ngang bằng width:auto, khi rời chuột thì chữ thu lại chồng lên biểu
           tượng mất khoảng một giây — bỏ hẳn cách đó là hết. */
        .nxct-label {
            position: absolute; top: 50%; white-space: nowrap; pointer-events: none;
            padding: 7px 12px; border-radius: 8px;
            background: #342A22; color: #fff; font-size: 13px; font-weight: 600; line-height: 1;
            box-shadow: 0 4px 14px rgba(47, 34, 24, .2);
            opacity: 0; transition: opacity .16s ease, transform .16s ease;
        }
        .nxct--right .nxct-label { right: calc(100% + 12px); transform: translate(6px, -50%); }
        .nxct--left  .nxct-label { left:  calc(100% + 12px); transform: translate(-6px, -50%); }

        /* Mũi nhọn nhỏ chỉ về phía nút */
        .nxct-label::after {
            content: ''; position: absolute; top: 50%; margin-top: -4px;
            border: 4px solid transparent;
        }
        .nxct--right .nxct-label::after { left: 100%; border-left-color: #342A22; }
        .nxct--left  .nxct-label::after { right: 100%; border-right-color: #342A22; }

        .nxct.has-labels .nxct-item:hover .nxct-label { opacity: 1; transform: translate(0, -50%); }


        /* Màn hình cảm ứng không có trạng thái rê chuột, giữ chữ ẩn hẳn cho khỏi dính lại sau khi bấm */
        @media (hover: none) { .nxct-label { display: none !important; } }

        .nxct-phone { background: #17A34A; }
        .nxct-zalo  { background: #0068FF; }
        .nxct-mess  { background: #A95830; }
        .nxct-mess  { background: linear-gradient(140deg, #C3772F 0%, #C3772F 38%, #AD6B58 70%, #B75F34 100%); }

        /* Nút chính */
        .nxct-main {
            position: relative; display: flex; align-items: center; justify-content: center;
            width: 54px; height: 54px; padding: 0; margin: 0;
            background: var(--nhatdx-primary, #C67930) !important; border: 0 !important;
            border-radius: 50% !important; color: #fff !important; min-height: 0 !important;
            box-shadow: 0 8px 22px rgba(198, 121, 48, .38);
            transition: transform .2s ease;
        }
        .nxct-main:active { transform: scale(.94); }
        .nxct-main-ico { position: relative; display: flex; }
        .nxct-main-close { position: absolute; inset: 0; margin: auto; opacity: 0; transform: rotate(-45deg); transition: opacity .2s ease, transform .2s ease; }
        .nxct-main-open  { transition: opacity .2s ease, transform .2s ease; }
        .nxct.is-open .nxct-main-open  { opacity: 0; transform: rotate(45deg); }
        .nxct.is-open .nxct-main-close { opacity: 1; transform: rotate(0); }

        /* Vòng sóng lan, chỉ một lớp mảnh chứ không nhấp nháy liên tục gây rối mắt */
        .nxct.has-ring .nxct-main::after {
            content: ''; position: absolute; inset: 0; border-radius: 50%;
            border: 2px solid var(--nhatdx-primary, #C67930);
            animation: nxctRing 2.4s cubic-bezier(.25,.6,.35,1) infinite;
        }
        @keyframes nxctRing {
            0%   { transform: scale(1); opacity: .55; }
            70%  { transform: scale(1.55); opacity: 0; }
            100% { transform: scale(1.55); opacity: 0; }
        }

        /* Thu gọn: các nút kênh nằm im, bấm nút chính mới bung lên, lệch nhau một nhịp nhỏ */
        .nxct.is-collapsible .nxct-list {
            pointer-events: none; opacity: 0;
            transform: translateY(12px) scale(.9); transform-origin: bottom center;
            transition: opacity .2s ease, transform .24s cubic-bezier(.3,.8,.35,1);
        }
        .nxct.is-collapsible.is-open .nxct-list { pointer-events: auto; opacity: 1; transform: none; }
        .nxct.is-collapsible .nxct-item {
            transform: translateY(10px); opacity: 0;
            transition: transform .26s cubic-bezier(.3,.8,.35,1) calc(var(--nxct-i) * .05s),
                        opacity .22s ease calc(var(--nxct-i) * .05s), filter .15s ease;
        }
        .nxct.is-collapsible.is-open .nxct-item { transform: none; opacity: 1; }

        @media (max-width: 849px) {
            .nxct { bottom: 14px; gap: 8px; }
            .nxct--right { right: 12px; }
            .nxct--left  { left: 12px; }
            .nxct-item { width: 44px; height: 44px; }
            .nxct-main { width: 50px; height: 50px; }
            .nxct.hide-mobile { display: none; }
        }
        @media (prefers-reduced-motion: reduce) {
            .nxct.has-ring .nxct-main::after { animation: none; opacity: .35; }
            .nxct *, .nxct *::after { transition-duration: .01ms !important; }
        }

