/* Floating chat + install buttons (assets/widgets.js). Colours come from the tokens in style.css. */
.effw{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:var(--font-body);pointer-events:none}
.effw>*{pointer-events:auto}
.effw-fab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;min-width:48px;padding:0 14px;border:0;border-radius:999px;cursor:pointer;color:var(--ink);font:700 .9375rem/1 var(--font-body);box-shadow:0 6px 18px rgba(14,59,70,.28)}
.effw-chat-btn{min-height:58px;min-width:58px;background:var(--sun);box-shadow:0 4px 0 var(--sun-edge),0 8px 20px rgba(14,59,70,.25)}
.effw-install{background:#fff;border:2px solid var(--ink)}
.effw-fab:hover{transform:translateY(-1px)}
.effw-fab:focus-visible,.effw-x:focus-visible,.effw-go:focus-visible,.effw-quick a:focus-visible,.effw-guide:focus-visible{outline:3px solid var(--sea-deep);outline-offset:3px}
.effw-lbl{display:none}
.effw-chatting .effw-install{display:none}   /* more room for the chat window */
.effw-fab[hidden],.effw-chat[hidden],.effw-pop[hidden]{display:none}
.effw-chat,.effw-pop{width:min(360px,calc(100vw - 28px));background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:20px;box-shadow:0 14px 40px rgba(14,59,70,.35);overflow:hidden}
.effw-chat{display:flex;flex-direction:column;max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px)}
.effw-head{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;background:var(--ink);color:#fff}
.effw-head img{width:40px;height:40px;border-radius:12px;background:#fff;flex:none}
.effw-ht b{display:block;font:700 1.125rem/1.1 var(--font-head)}
.effw-ht small{display:block;margin-top:2px;font-size:.8125rem;line-height:1.3;opacity:.9}
.effw-x{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.effw-x:hover{background:rgba(255,255,255,.18)}
.effw-x-dark:hover{background:var(--line)}
.effw-body{overflow:auto;padding:14px;background:var(--foam);display:flex;flex-direction:column;gap:10px}
.effw-msg{margin:0;align-self:flex-start;max-width:90%;padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;font-size:.96875rem;line-height:1.45}
.effw-links{display:flex;flex-direction:column;gap:8px}
.effw-go{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;border-radius:999px;background:var(--sea-deep);color:#fff;font-weight:700;text-align:center;text-decoration:none}
.effw-go:hover{color:#fff;filter:brightness(1.1)}
.effw-go-zalo{background:#0068FF}
.effw-go-messenger,.effw-go-fb{background:#0759D6}
.effw-go-contact{background:var(--sun);color:var(--ink)}
.effw-go-contact:hover{color:var(--ink)}
.effw-quick{display:flex;flex-wrap:wrap;gap:6px}
.effw-quick a{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border:2px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:.875rem;font-weight:600;text-decoration:none}
.effw-quick a:hover{border-color:var(--sea);color:var(--ink)}
.effw-note{margin:0;padding:10px 14px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.78125rem;line-height:1.4}
.effw-pop{padding:6px 16px 16px}
.effw-pophead{display:flex;align-items:center;gap:8px}
.effw-pophead b{font:700 1.0625rem/1.2 var(--font-head)}
.effw-steps{margin:4px 0 10px;padding-left:1.25rem;font-size:.9375rem;line-height:1.5}
.effw-steps li{margin:4px 0}
.effw-guide{font-weight:700;font-size:.9375rem}
body.effw-on .site-footer{padding-bottom:96px}
@media (min-width:700px){.effw-lbl{display:inline}}
@media (prefers-reduced-motion:no-preference){
  .effw-fab{transition:transform .12s}
  .effw-chat,.effw-pop{animation:effw-in .16s ease-out}
  @keyframes effw-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media print{.effw{display:none}}
