/* Nhãn Mác VDK — nút liên hệ nổi Zalo / Viber / Gọi / Facebook (dùng chung cho trang báo giá và công cụ thiết kế). */
.appic { width: 22px; height: 22px; flex: none; }
.btn.app { gap: 8px; }
.fab { position: fixed; right: 18px; bottom: 22px; z-index: 55; display: flex; flex-direction: column; gap: 12px; align-items: flex-end; font-family: Arial, Helvetica, sans-serif; }
.fab-btn { position: relative; display: block; width: 56px; height: 56px; border-radius: 50%; box-shadow: 0 6px 18px rgba(20, 41, 74, .28); transition: transform .15s; }
.fab-btn .appic { width: 56px; height: 56px; display: block; }
.fab-btn:hover, .fab-btn:focus-visible { transform: scale(1.07); }
.fab-btn .tip { position: absolute; right: 66px; top: 50%; transform: translateY(-50%); background: #0d1f3c; color: #fff; font-size: 14px; font-weight: 700; white-space: nowrap; padding: 7px 12px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .15s; }
.fab-btn:hover .tip, .fab-btn:focus-visible .tip { opacity: 1; }
.fab-btn.ring::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 3px solid rgba(22, 163, 74, .55); animation: vdkring 1.8s ease-out infinite; }
@keyframes vdkring { 0% { transform: scale(.85); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }
/* Kiểu gọn (công cụ thiết kế): 1 bong bóng, bấm mới xổ ra */
.fab.compact .fab-btn:not(.fab-toggle) { display: none; }
.fab.compact.open .fab-btn { display: block; }
.fab-toggle { border: 0; padding: 0; cursor: pointer; background: #0d1f3c; color: #fff; }
.fab-toggle svg { width: 56px; height: 56px; display: block; }
.fab.compact.open .fab-toggle .open-ic, .fab.compact:not(.open) .fab-toggle .close-ic { display: none; }
.mobile-bar a .appic { width: 26px; height: 26px; }
.appdlg { position: fixed; inset: 0; z-index: 9999; background: rgba(10, 20, 35, .55); display: flex; align-items: center; justify-content: center; padding: 16px; font-family: Arial, Helvetica, sans-serif; }
.appdlg[hidden] { display: none; }
.appbox { position: relative; background: #fff; color: #1b2433; border-radius: 16px; padding: 22px; max-width: 420px; width: 100%; box-shadow: 0 20px 50px rgba(0, 0, 0, .3); }
.appbox h2 { font-size: 20px; margin: 0 30px 8px 0; color: #0d1f3c; }
.appbox p { margin: 0 0 8px; }
.appbox .x { position: absolute; right: 10px; top: 10px; width: 40px; height: 40px; border: 0; background: #f4f6f9; border-radius: 50%; font-size: 18px; cursor: pointer; }
.appacts { display: grid; gap: 8px; margin-top: 12px; }
.appacts a, .appacts button { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border-radius: 10px; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; border: 1.5px solid #dfe5ec; background: #fff; color: #0d1f3c; }
.appacts .primary { background: #c8402e; border-color: #c8402e; color: #fff; }
.bignum { font-size: 30px; font-weight: 800; color: #0d1f3c; letter-spacing: .03em; margin: 6px 0; }
/* Trang báo giá: điện thoại dùng thanh liên hệ dưới đáy thay cho nút nổi */
@media (max-width: 760px) { .fab:not(.compact) { display: none; } .fab.compact { right: 12px; bottom: 76px; } .fab-btn, .fab-btn .appic, .fab-toggle svg { width: 50px; height: 50px; } }
@media (prefers-reduced-motion: reduce) { .fab-btn.ring::after { animation: none; } }
@media print { .fab, .appdlg { display: none !important; } }
