/* Nhavesinh – Menu bong bóng 8 chuyên mục */
.nvs-dock{
  --am:#e0a95c; --ink:#e9e6df; --line:#263044; --panel:rgba(14,19,29,.9);
  position:fixed; z-index:99990; right:20px; top:50%; transform:translateY(-50%);
  display:block !important; width:64px; height:64px;
  font-family:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-font-smoothing:antialiased;
}
.nvs-dock *,.nvs-dock *::before,.nvs-dock *::after{box-sizing:border-box}

@keyframes nvsDockPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,169,92,.35),0 8px 28px rgba(0,0,0,.5)}50%{box-shadow:0 0 0 8px rgba(224,169,92,0),0 8px 28px rgba(0,0,0,.5)}}
.nvs-dock__bubble{appearance:none;-webkit-appearance:none;margin:4px;padding:0;cursor:pointer;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:rgba(18,24,36,.85);border:1px solid rgba(224,169,92,.42);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:nvsDockPulse 3.2s ease-in-out infinite;
  transition:opacity .2s ease .3s,transform .25s ease .3s}
.nvs-dock__bubble:focus-visible{outline:2px solid var(--am);outline-offset:4px}
.nvs-dock__x{display:none}

.nvs-dock__panel{position:absolute;top:50%;right:0;transform:translateY(-50%) scale(.55);transform-origin:right center;
  opacity:0;visibility:hidden;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;border-radius:40px;
  background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 18px 48px rgba(0,0,0,.55);
  transition:opacity .2s ease .3s,transform .25s ease .3s,visibility 0s linear .55s}

.nvs-dock__item{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  text-decoration:none !important;color:var(--ink) !important;border:0;box-shadow:none}
.nvs-dock__item:focus-visible{outline:2px solid var(--am);outline-offset:2px}
.nvs-dock__orb{display:block;width:32px;height:32px;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,var(--c1) 0%,var(--c2) 46%,var(--c3) 100%);
  box-shadow:0 0 14px var(--g),inset -4px -5px 9px rgba(0,0,0,.45);transition:transform .2s ease}
.nvs-dock__item:hover .nvs-dock__orb,.nvs-dock__item:focus-visible .nvs-dock__orb{transform:scale(1.18)}
.nvs-dock__ico{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid #3a4560;color:#b9b4aa;transition:transform .2s,color .2s,border-color .2s}
.nvs-dock__item:hover .nvs-dock__ico,.nvs-dock__item:focus-visible .nvs-dock__ico{transform:scale(1.12);color:var(--am);border-color:var(--am)}
.nvs-dock__lbl{position:absolute;right:calc(100% + 14px);top:50%;transform:translate(8px,-50%);opacity:0;white-space:nowrap;
  padding:7px 12px;border-radius:999px;background:rgba(14,19,29,.95);border:1px solid var(--line);
  font-size:13px;font-weight:500;line-height:1.2;color:var(--ink);transition:opacity .2s ease,transform .2s ease,background .15s,color .15s;pointer-events:none}
.nvs-dock__item:hover .nvs-dock__lbl,.nvs-dock__item:focus-visible .nvs-dock__lbl{background:var(--am);border-color:var(--am);color:#1a1408}
.nvs-dock__item.is-cur .nvs-dock__orb{box-shadow:0 0 0 2px #0e131d,0 0 0 4px var(--am)}
.nvs-dock__item.is-cur .nvs-dock__lbl{color:var(--am);border-color:rgba(224,169,92,.5)}
.nvs-dock__item.is-cur:hover .nvs-dock__lbl{color:#1a1408}
.nvs-dock__sep{width:26px;height:1px;background:var(--line);margin:2px 0}

.nvs-dock__item--thien-van  {--c1:#c9d6ff;--c2:#4b5fb5;--c3:#0f1638;--g:rgba(90,120,230,.45)}
.nvs-dock__item--phuong-dong{--c1:#ffd9a8;--c2:#c2562e;--c3:#3a1209;--g:rgba(214,100,50,.45)}
.nvs-dock__item--phuong-tay {--c1:#dff3f2;--c2:#4d8f99;--c3:#0d2a30;--g:rgba(80,160,170,.4)}
.nvs-dock__item--the-gioi   {--c1:#f6e3b4;--c2:#a9813a;--c3:#2e2108;--g:rgba(190,150,70,.4)}
.nvs-dock__item--tre-em     {--c1:#fff6b8;--c2:#5dc46f;--c3:#0f4a2a;--g:rgba(110,210,120,.5)}
.nvs-dock__item--kinh-dien  {--c1:#f5c9c9;--c2:#8e2f3c;--c3:#2a0b10;--g:rgba(170,60,75,.45)}
.nvs-dock__item--tuong-lai  {--c1:#d4fbff;--c2:#3aa7c4;--c3:#06283a;--g:rgba(70,190,220,.45)}
.nvs-dock__item--khac       {--c1:#eceae5;--c2:#7b7f88;--c3:#1c1e23;--g:rgba(160,165,175,.3)}

/* Mở: rê chuột (máy tính) hoặc bấm/Tab (lớp is-open, :focus-within) */
.nvs-dock.is-open .nvs-dock__panel,.nvs-dock:focus-within .nvs-dock__panel{opacity:1;visibility:visible;transform:translateY(-50%) scale(1);transition-delay:0s}
.nvs-dock.is-open .nvs-dock__bubble,.nvs-dock:focus-within .nvs-dock__bubble{opacity:0;transform:scale(.6);transition-delay:0s}
.nvs-dock.is-open .nvs-dock__lbl,.nvs-dock:focus-within .nvs-dock__lbl{opacity:1;transform:translate(0,-50%)}
@media (hover:hover) and (pointer:fine){
  .nvs-dock:hover .nvs-dock__panel{opacity:1;visibility:visible;transform:translateY(-50%) scale(1);transition-delay:0s}
  .nvs-dock:hover .nvs-dock__bubble{opacity:0;transform:scale(.6);transition-delay:0s}
  .nvs-dock:hover .nvs-dock__lbl{opacity:1;transform:translate(0,-50%)}
}

.nvs-dock-scrim{display:none}

/* Điện thoại / màn chạm: nút tròn góc phải dưới, mở lên trên khi chạm */
@media (hover:none),(max-width:760px){
  .nvs-dock{top:auto;bottom:20px;right:16px;transform:none}
  .nvs-dock__bubble{position:relative;z-index:2;transition:transform .25s ease}
  .nvs-dock.is-open .nvs-dock__bubble{opacity:1;transform:rotate(90deg)}
  .nvs-dock.is-open .nvs-dock__logo{display:none}
  .nvs-dock.is-open .nvs-dock__x{display:block}
  .nvs-dock__panel{top:auto;bottom:72px;right:4px;transform:translateY(16px) scale(.9);transform-origin:bottom right;
    background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;gap:8px;align-items:flex-end;
    transition:opacity .2s ease,transform .25s ease,visibility 0s linear .25s}
  .nvs-dock.is-open .nvs-dock__panel{transform:none}
  .nvs-dock:focus-within:not(.is-open) .nvs-dock__panel{opacity:0;visibility:hidden}
  .nvs-dock__item{width:48px;height:48px}
  .nvs-dock__orb,.nvs-dock__ico{width:40px;height:40px;background-color:rgba(14,19,29,.95)}
  .nvs-dock__ico{background-color:rgba(14,19,29,.95)}
  .nvs-dock__sep{display:none}
  .nvs-dock-scrim{position:fixed;inset:0;z-index:99980;background:rgba(5,8,13,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
  .nvs-dock-scrim:not([hidden]){display:block !important}
}

@media (prefers-reduced-motion:reduce){
  .nvs-dock__bubble{animation:none}
  .nvs-dock__panel,.nvs-dock__lbl,.nvs-dock__orb{transition:none}
}
@media print{.nvs-dock,.nvs-dock-scrim{display:none !important}}
