/* Police Help Assistant - colourful launcher + guided chat window */
/* ---- launcher ---- */
.cb-fab{position:fixed;right:18px;bottom:90px;z-index:62;display:flex;align-items:center;gap:10px;padding:7px 18px 7px 8px;border:0;border-radius:999px;cursor:pointer;color:#fff;font:inherit;
  background:linear-gradient(120deg,#ff5f6d,#ffb347 28%,#34d399 55%,#2f80ed 80%,#a855f7);background-size:260% 100%;animation:cbflow 6s linear infinite,cbbob 3.2s ease-in-out infinite;
  box-shadow:0 12px 30px rgba(10,77,162,.4),0 0 0 4px rgba(255,255,255,.85)}
.cb-fab:hover{transform:scale(1.05);animation-play-state:running,paused}
.cb-fab::before{content:"";position:absolute;inset:-4px;border-radius:inherit;border:3px solid rgba(255,255,255,.9);animation:cbring 2.4s ease-out infinite;pointer-events:none}
.cb-face{position:relative;width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;box-shadow:0 3px 10px rgba(0,0,0,.2);animation:cbwave 5s ease-in-out infinite}
.cb-dot{position:absolute;right:1px;bottom:3px;width:13px;height:13px;border-radius:50%;background:#22c55e;border:2.5px solid #fff}
.cb-lbl{display:flex;flex-direction:column;line-height:1.15;text-align:left;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.cb-lbl b{font-size:1rem}.cb-lbl small{font-size:.72rem;opacity:.95}
.cb-fab .i-x{display:none}.cb-fab.open .cb-face,.cb-fab.open .cb-lbl{display:none}.cb-fab.open .i-x{display:block}
.cb-fab.open{padding:15px;background:linear-gradient(135deg,#0a4da2,#14b8d4);animation:none}.cb-fab.open::before{display:none}
@keyframes cbflow{to{background-position:260% 0}}
@keyframes cbbob{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes cbring{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.22,1.45);opacity:0}}
@keyframes cbwave{0%,88%,100%{rotate:0deg}92%{rotate:-12deg}96%{rotate:10deg}}
/* greeting bubble */
.cb-bubble{position:fixed;right:24px;bottom:158px;z-index:62;max-width:230px;background:#fff;color:#10233f;padding:12px 30px 12px 14px;border-radius:18px 18px 4px 18px;box-shadow:0 12px 30px rgba(10,77,162,.3);font-weight:600;font-size:.92rem;cursor:pointer;border:2px solid #2f80ed;animation:cbpop .5s cubic-bezier(.3,1.6,.5,1)}
.cb-bubble[hidden]{display:none}
.cb-bx{position:absolute;top:4px;right:6px;border:0;background:none;font-size:1.2rem;line-height:1;color:#5a6b82;cursor:pointer}
@keyframes cbpop{from{transform:scale(.6) translateY(14px);opacity:0}}
/* ---- window ---- */
.chat.cb{right:18px;bottom:168px;width:min(400px,calc(100vw - 24px));height:min(640px,calc(100dvh - 190px));border-radius:24px;z-index:63;box-shadow:0 28px 70px rgba(7,58,125,.4);border:1px solid rgba(10,77,162,.15)}
.chat.cb header{background:linear-gradient(120deg,#0a4da2,#2f80ed 55%,#14b8d4);padding:14px 14px}
.chat.cb header .bot{background:rgba(255,255,255,.28);font-size:1.5rem;width:46px;height:46px}
.chat.cb header button{margin-left:0}.chat.cb header #chatRestart{margin-left:auto}
.chat.cb .msgs{background:linear-gradient(180deg,#eef5ff,#f8fbff);padding:14px 12px;gap:10px;scroll-behavior:smooth}
.chat.cb .m{max-width:90%;font-size:.95rem;box-shadow:0 2px 8px rgba(10,77,162,.08)}
.chat.cb .m.me{background:linear-gradient(135deg,#0a4da2,#2f80ed)}
.chat.cb .m.typing{padding:12px 16px;display:flex;gap:5px}
.td{width:8px;height:8px;border-radius:50%;background:#2f80ed;animation:cbtd 1s infinite}.td:nth-child(2){animation-delay:.15s;background:#14b8d4}.td:nth-child(3){animation-delay:.3s;background:#a855f7}
@keyframes cbtd{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-6px);opacity:1}}
/* category tiles */
.cb-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;animation:cbpop .35s ease-out}
.cb-grid .cbt{border:0;border-radius:16px;padding:12px 10px;color:#fff;font:inherit;font-weight:700;font-size:.88rem;line-height:1.2;text-align:left;cursor:pointer;display:flex;align-items:center;gap:9px;box-shadow:0 6px 14px rgba(0,0,0,.18);transition:transform .2s,box-shadow .2s;min-height:58px}
.cb-grid .cbt:hover,.cb-grid .cbt:focus-visible{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 22px rgba(0,0,0,.25)}
.cb-grid .cbt i{font-style:normal;font-size:1.5rem;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.25);display:grid;place-items:center;flex:none}
.cb-grid .cbt:last-child:nth-child(odd){grid-column:1/-1}
.k1{background:linear-gradient(135deg,#0a4da2,#2f80ed)}.k2{background:linear-gradient(135deg,#7c3aed,#a855f7)}.k3{background:linear-gradient(135deg,#db2777,#f472b6)}
.k4{background:linear-gradient(135deg,#ea580c,#fbbf24)}.k5{background:linear-gradient(135deg,#059669,#34d399)}.k6{background:linear-gradient(135deg,#0891b2,#22d3ee)}.k7{background:linear-gradient(135deg,#475569,#94a3b8)}
/* question chips */
.chiprow{display:flex;flex-wrap:wrap;gap:7px;animation:cbpop .3s ease-out}
.chiprow.qlist{flex-direction:column;align-items:stretch}
.qc{border:0;border-radius:14px;padding:10px 14px;color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-align:left;line-height:1.3;box-shadow:0 4px 10px rgba(0,0,0,.14);transition:.2s}
.qc:hover:not(:disabled){transform:translateX(4px);filter:brightness(1.07)}
.qc.ghost{background:#fff;color:#0a4da2;border:2px solid #2f80ed;box-shadow:none;text-align:center}
.chiprow:not(.qlist) .qc{border-radius:999px;padding:7px 14px}
/* action buttons inside answers */
.acts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.ab{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:8px 14px;font-size:.86rem;font-weight:700;color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.18);transition:.2s}
.ab:hover{transform:translateY(-2px);text-decoration:none;filter:brightness(1.08)}
.ab-call{background:linear-gradient(135deg,#16a34a,#4ade80)}.ab-link{background:linear-gradient(135deg,#0a4da2,#2f80ed)}.ab-ext{background:linear-gradient(135deg,#7c3aed,#a855f7)}
/* quick bar */
.cb-bar{display:flex;gap:8px;padding:8px 10px;background:#fff;border-top:1px solid var(--line)}
.cb-bar>*{flex:1;text-align:center;border:0;border-radius:12px;padding:8px 6px;font:inherit;font-size:.82rem;font-weight:700;color:#fff;cursor:pointer;transition:.2s;white-space:nowrap}
.cb-bar>*:hover{transform:translateY(-2px);text-decoration:none;filter:brightness(1.08)}
.b-menu{background:linear-gradient(135deg,#0a4da2,#2f80ed)}.b-call{background:linear-gradient(135deg,#e53935,#ff7043)}.b-wa{background:linear-gradient(135deg,#128c7e,#25d366)}
.chat.cb form{padding:8px 10px 6px;border-top:0}
.chat.cb form input{border:2px solid #c9d7ea;font-size:16px}.chat.cb form input:focus{outline:0;border-color:#2f80ed}
.chat.cb form button{background:linear-gradient(135deg,#ff5f6d,#ffb347)}
/* page-specific: engage page has a bottom tab bar on mobile */
body:has(.eg-tabbar) .cb-fab{bottom:150px!important}
body:has(.eg-tabbar) .cb-bubble{bottom:218px}
/* mobile: bottom sheet */
@media(max-width:640px){
  .cb-fab{right:12px;bottom:84px;padding:6px 14px 6px 6px}.cb-face{width:46px;height:46px}.cb-lbl b{font-size:.9rem}
  .cb-bubble{right:14px;bottom:148px}
  .chat.cb{right:0;left:0;bottom:0;width:100%;height:88dvh;border-radius:24px 24px 0 0}
  .cb-grid .cbt{font-size:.82rem;padding:10px 8px}
  body:has(.cb:not([hidden])){overflow:hidden}
  .cb-fab.open{bottom:auto;top:12px;right:12px;padding:10px;z-index:70;position:fixed}
}
@media(prefers-reduced-motion:reduce){.cb-fab,.cb-face,.cb-fab::before{animation:none!important}}

/* header logo */
.chat.cb header .bot img{width:34px;height:auto}
