/* BCH «أزرار التواصل» 2.57.0 — the five channel styles (bch-contacts.js). Shared by the store chat and Central's preview. Every rule is scoped `.bct:not(#bct-x)` so it beats the chat's own `:not(#bc3-x) :where(...)` reset. */
.bct:not(#bct-x){--bct-ink:#0f172a;--bct-mute:#64748b;--bct-line:#e2e8f0;--bct-soft:#f1f5f9;display:flex;flex-direction:column;gap:12px;margin-top:10px;font-family:inherit;color:var(--bct-ink);direction:rtl;text-align:right}
.bct:not(#bct-x),.bct:not(#bct-x) *{box-sizing:border-box}
.bct:not(#bct-x) a,.bct:not(#bct-x) button{font-family:inherit;max-width:100%;-webkit-tap-highlight-color:transparent;cursor:pointer}
.bct:not(#bct-x) a{text-decoration:none}
.bct:not(#bct-x) img{display:block;object-fit:contain;border-radius:6px}
.bct:not(#bct-x) svg{display:block;flex:none}
.bct:not(#bct-x) .bct-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bct:not(#bct-x) :focus-visible{outline:2px solid var(--b,#0b5cff);outline-offset:3px}

/* the picked channel (dock + «اختيار ثم فتح») */
.bct:not(#bct-x) .bct-slot:empty{display:none}
.bct:not(#bct-x) .bct-sel{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;border-radius:14px;background:var(--bct-soft);animation:bct-in .22s cubic-bezier(.2,.8,.2,1)}
.bct:not(#bct-x) .bct-sel__ic{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(160deg,var(--c1),var(--c2));color:var(--ci);flex:none}
.bct:not(#bct-x) .bct-sel__tx{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.bct:not(#bct-x) .bct-sel__tx b{font-size:13.5px;font-weight:800}
.bct:not(#bct-x) .bct-sel__tx small{font-size:12px;font-weight:700;color:var(--bct-mute);text-align:right;unicode-bidi:isolate;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bct:not(#bct-x) .bct-copy{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;border:1px solid var(--bct-line);background:#fff;color:var(--bct-ink);flex:none}
.bct:not(#bct-x) .bct-copy.is-done{border-color:#16a34a;color:#16a34a}
.bct:not(#bct-x) .bct-open{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:11px;background:var(--c2);color:var(--ci)!important;font-size:13px;font-weight:800;white-space:nowrap;flex:none;box-shadow:0 8px 14px -10px var(--c2)}

/* 1 — keys: dark keyboard panel, 3D keycaps that press down */
.bct:not(#bct-x) .bct-keys{display:flex;flex-direction:column;gap:14px;padding:4px 2px 10px;width:100%;color:var(--bct-ink)} /* 2.57.2 his ask: no dark panel behind the keys */
.bct:not(#bct-x) .bct-keys__t b{display:block;font-size:17px;font-weight:900}
.bct:not(#bct-x) .bct-keys__t small{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--bct-mute)}
.bct:not(#bct-x) .bct-keys__g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;padding-bottom:8px}
.bct:not(#bct-x) .bct-k{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:88px;padding:8px 6px;border:0;border-radius:20px;color:var(--ci)!important;background:radial-gradient(120% 90% at 30% 15%,var(--c1) 0%,var(--c2) 70%);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(0,0,0,.18),0 1px 0 var(--cd),0 2px 0 var(--cd),0 3px 0 var(--cd),0 4px 0 var(--cd),0 5px 0 var(--cd),0 6px 0 var(--cd),0 7px 0 var(--cd),0 8px 0 var(--cd),0 16px 20px -8px rgba(15,23,42,.35);transition:transform .1s ease,box-shadow .1s ease}
.bct:not(#bct-x) .bct-k:active,.bct:not(#bct-x) .bct-k.is-on{transform:translateY(6px);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(0,0,0,.18),0 1px 0 var(--cd),0 2px 0 var(--cd),0 8px 12px -6px rgba(15,23,42,.35)}
.bct:not(#bct-x) .bct-k b{font-size:12.5px;font-weight:800}
.bct:not(#bct-x) .bct-k__ic{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.bct:not(#bct-x) .bct-k.is-wide{flex-direction:row;justify-content:flex-start;gap:14px;height:84px;padding:0 16px;width:100%;text-align:right}
.bct:not(#bct-x) .bct-k.is-wide .bct-k__ic{width:52px;height:52px;border-radius:17px}
.bct:not(#bct-x) .bct-k__t{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;line-height:1.3}
.bct:not(#bct-x) .bct-k__t b{font-size:17px;font-weight:900}
.bct:not(#bct-x) .bct-k__t small{font-size:12px;font-weight:700;opacity:.9;text-align:right}
.bct:not(#bct-x) .bct-k__go{height:34px;padding:0 16px;border-radius:999px;background:#fff;color:var(--c2);display:inline-flex;align-items:center;font-size:13px;font-weight:900;box-shadow:0 4px 0 rgba(0,0,0,.18);white-space:nowrap}

/* 2 — dock: big confirmation card, floating pill of channels under it */
.bct:not(#bct-x) .bct-big{display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:24px;background:#fff;box-shadow:0 24px 50px -24px rgba(15,23,42,.5);animation:bct-in .22s cubic-bezier(.2,.8,.2,1)}
.bct:not(#bct-x) .bct-big__h{display:flex;align-items:center;gap:14px}
.bct:not(#bct-x) .bct-big__ic{display:grid;place-items:center;width:58px;height:58px;border-radius:19px;flex:none;color:var(--ci);background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 12px 22px -10px var(--c2)}
.bct:not(#bct-x) .bct-big__t{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.3}
.bct:not(#bct-x) .bct-big__t b{font-size:18px;font-weight:900}
.bct:not(#bct-x) .bct-big__t span{font-size:13.5px;font-weight:700;color:#334155;text-align:right;unicode-bidi:isolate;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bct:not(#bct-x) .bct-big__t small{font-size:11.5px;color:#059669;font-weight:700}
.bct:not(#bct-x) .bct-big__a{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.bct:not(#bct-x) .bct-big__go{height:48px;border-radius:15px;background:var(--c2);color:var(--ci)!important;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14.5px;font-weight:800;box-shadow:0 10px 18px -10px var(--c2)}
.bct:not(#bct-x) .bct-big__cp{height:48px;padding:0 16px;border-radius:15px;border:1px solid #cbd5e1;background:#fff;color:var(--bct-ink);font-size:13px;font-weight:800}
.bct:not(#bct-x) .bct-dockw{display:flex;flex-direction:column;align-items:center;gap:6px}
.bct:not(#bct-x) .bct-dockw small{font-size:11.5px;color:var(--bct-mute);font-weight:700}
.bct:not(#bct-x) .bct-dock{display:flex;align-items:flex-end;justify-content:center;gap:5px;height:56px;padding:8px 11px;box-sizing:border-box;border-radius:999px;background:rgba(255,255,255,.8);backdrop-filter:blur(12px);box-shadow:0 10px 30px -14px rgba(15,23,42,.45),inset 0 1px 0 #fff;max-width:100%}
.bct:not(#bct-x) .bct-d{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:0;padding:0;flex:none;color:var(--ci);background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 12px -6px rgba(15,23,42,.5);transition:transform .2s cubic-bezier(.2,.8,.2,1),width .2s,height .2s}
.bct:not(#bct-x) .bct-d{width:32px;height:32px}
.bct:not(#bct-x) .bct-d.is-on{width:42px;height:42px;transform:translateY(-8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 14px 20px -8px var(--c2),0 0 0 4px #fff}
.bct:not(#bct-x) .bct-d i{position:absolute;bottom:-14px;width:5px;height:5px;border-radius:50%;background:var(--c2)}

/* 3 — list: calm grouped list like phone settings */
.bct:not(#bct-x) .bct-list{display:flex;flex-direction:column;gap:12px}
.bct:not(#bct-x) .bct-lg h4{margin:0 6px 6px;font-size:12px;font-weight:800;color:var(--bct-mute)}
.bct:not(#bct-x) .bct-lb{display:flex;flex-direction:column;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.06),0 10px 24px -20px rgba(15,23,42,.35)}
.bct:not(#bct-x) .bct-l{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px;border:0;border-bottom:1px solid #eef1f5;background:#fff;color:var(--bct-ink)!important;text-align:right;width:100%;box-sizing:border-box}
.bct:not(#bct-x) .bct-l:last-child{border-bottom:0}
.bct:not(#bct-x) .bct-l:hover,.bct:not(#bct-x) .bct-l.is-on{background:#f8fafc}
.bct:not(#bct-x) .bct-l__ic{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;flex:none;color:var(--ci);background:var(--c2)}
.bct:not(#bct-x) .bct-l__t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.bct:not(#bct-x) .bct-l__t b{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800}
.bct:not(#bct-x) .bct-l__t i{font-style:normal;font-size:10.5px;font-weight:800;color:#047857;background:#d1fae5;border-radius:999px;padding:0 8px;line-height:18px}
.bct:not(#bct-x) .bct-l__t small{font-size:12px;font-weight:600;color:var(--bct-mute);text-align:right;unicode-bidi:isolate;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bct:not(#bct-x) .bct-l__go{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:999px;background:var(--bct-soft);color:var(--bct-ink);font-size:12.5px;font-weight:800;flex:none}

/* 4 — fan: the main button in the centre, channels branch out around it (no panel, the chat's own background) */
.bct:not(#bct-x) .bct-fanw{display:flex;flex-direction:column}
.bct:not(#bct-x) .bct-fan__t{margin:0 2px 6px;text-align:right;color:var(--bct-ink)}
.bct:not(#bct-x) .bct-fan__t b{display:block;font-size:16px;font-weight:900}
.bct:not(#bct-x) .bct-fan__t small{display:block;margin-top:2px;font-size:11.5px;font-weight:600;color:var(--bct-mute);line-height:1.45}
.bct:not(#bct-x) .bct-fan{position:relative;width:100%;height:calc(var(--r) * 2 + var(--s) + 34px);display:grid;place-items:center}
.bct:not(#bct-x) .bct-fan__r{position:absolute;left:50%;top:50%;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);border-radius:50%;border:1.5px dashed var(--bct-line);opacity:0;transform:scale(.6);transition:opacity .3s,transform .4s cubic-bezier(.2,.9,.25,1.1);pointer-events:none}
.bct:not(#bct-x) .bct-fan.is-open .bct-fan__r{opacity:1;transform:none}
.bct:not(#bct-x) .bct-f0{position:relative;z-index:2;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;border:0;background:var(--b,#0b5cff);color:var(--bt,#fff);box-shadow:0 14px 28px -10px var(--b,#0b5cff);transition:transform .25s,background .25s}
.bct:not(#bct-x) .bct-fan.is-open .bct-f0{transform:rotate(90deg);background:var(--bct-ink)}
.bct:not(#bct-x) .bct-f0__x{display:none}
.bct:not(#bct-x) .bct-fan.is-open .bct-f0__o{display:none}.bct:not(#bct-x) .bct-fan.is-open .bct-f0__x{display:block}
.bct:not(#bct-x) .bct-fan:not(.is-open)::after{content:"اضغط وتتفرّع التطبيقات";position:absolute;top:calc(50% + 44px);left:0;right:0;text-align:center;font-size:11.5px;font-weight:700;color:var(--bct-mute)}
.bct:not(#bct-x) .bct-f{position:absolute;left:calc(50% - var(--s) / 2);top:calc(50% - var(--s) / 2);width:var(--s);height:var(--s);display:grid;place-items:center;border-radius:50%;color:var(--ci)!important;background:radial-gradient(100% 100% at 30% 20%,var(--c1),var(--c2));box-shadow:inset 0 2px 0 rgba(255,255,255,.45),0 12px 22px -8px var(--c2);opacity:0;transform:translate(0,0) scale(.3);pointer-events:none;transition:transform .36s cubic-bezier(.2,.9,.25,1.15),opacity .2s ease;transition-delay:calc(var(--i) * 30ms)}
.bct:not(#bct-x) .bct-fan.is-open .bct-f{opacity:1;transform:translate(var(--x),var(--y)) scale(1);pointer-events:auto}
.bct:not(#bct-x) .bct-f__ln{position:absolute;left:50%;top:50%;width:calc(var(--r) - var(--s) / 2 - 30px);height:1.5px;margin-top:-1px;background:var(--bct-line);transform-origin:0 50%;transform:translateX(30px) rotate(var(--a)) scaleX(0);transform-origin:-30px 50%;opacity:0;transition:transform .36s cubic-bezier(.2,.9,.25,1),opacity .2s;transition-delay:calc(var(--i) * 30ms)}
.bct:not(#bct-x) .bct-fan.is-open .bct-f__ln{opacity:1;transform:translateX(30px) rotate(var(--a)) scaleX(1)}
.bct:not(#bct-x) .bct-f__l{position:absolute;top:100%;margin-top:3px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10.5px;font-weight:800;color:var(--bct-ink);background:#fff;padding:0 7px;border-radius:999px;line-height:17px;box-shadow:0 1px 2px rgba(15,23,42,.12)}

/* 5 — app icons (approved): squares like a phone home screen, the name under each */
.bct:not(#bct-x) .bct-apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 4px}
.bct:not(#bct-x) .bct-a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;background:none;color:var(--bct-ink)!important}
.bct:not(#bct-x) .bct-a__sq{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;color:var(--ci);background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.1),0 6px 12px -7px rgba(15,23,42,.55);transition:transform .15s ease}
.bct:not(#bct-x) .bct-a:hover .bct-a__sq{transform:translateY(-2px)}
.bct:not(#bct-x) .bct-a:active .bct-a__sq{transform:scale(.94)}
.bct:not(#bct-x) .bct-a.is-on .bct-a__sq{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c2)}
.bct:not(#bct-x) .bct-a__n{font-size:11px;font-weight:800;color:#334155;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* animated icons (Central «حركة الأيقونات»): each channel's glyph moves on its own, staggered, paused on hover */
.bct:not(#bct-x).is-anim .bct-g{overflow:visible}
.bct:not(#bct-x).is-anim .bct-g *{transform-box:fill-box;transform-origin:center}
.bct:not(#bct-x).is-anim .g-ring{animation:bct-ring 2.4s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-bub{animation:bct-breathe 2.4s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-flap{animation:bct-flap 2.8s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-fly{animation:bct-fly 2.6s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-bolt{stroke-dasharray:14;animation:bct-dash 2.2s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-lens{animation:bct-breathe 2.6s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-dot{animation:bct-blink 2.6s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-ghost{animation:bct-float 2.8s ease-in-out infinite}
.bct:not(#bct-x).is-anim .bct-g--x{animation:bct-ring 2.6s ease-in-out infinite;transform-origin:center}
.bct:not(#bct-x).is-anim .g-d1,.bct:not(#bct-x).is-anim .g-d2,.bct:not(#bct-x).is-anim .g-d3{animation:bct-blink 1.6s ease-in-out infinite}
.bct:not(#bct-x).is-anim .g-d2{animation-delay:.25s}.bct:not(#bct-x).is-anim .g-d3{animation-delay:.5s}
.bct:not(#bct-x).is-anim .bct-g--custom{animation:bct-breathe 2.6s ease-in-out infinite}
.bct:not(#bct-x).is-anim .bct-k:nth-child(2n) .bct-g *,.bct:not(#bct-x).is-anim .bct-a:nth-child(2n) .bct-g *,.bct:not(#bct-x).is-anim .bct-d:nth-child(2n) .bct-g *{animation-delay:.6s}
.bct:not(#bct-x).is-anim .bct-k:nth-child(3n) .bct-g *,.bct:not(#bct-x).is-anim .bct-a:nth-child(3n) .bct-g *,.bct:not(#bct-x).is-anim .bct-d:nth-child(3n) .bct-g *{animation-delay:1.2s}
.bct:not(#bct-x).is-anim a:hover .bct-g *,.bct:not(#bct-x).is-anim button:hover .bct-g *{animation-play-state:paused}
@keyframes bct-ring{0%,70%,100%{transform:rotate(0)}74%{transform:rotate(-14deg)}78%{transform:rotate(12deg)}82%{transform:rotate(-10deg)}86%{transform:rotate(8deg)}90%{transform:rotate(-4deg)}}
@keyframes bct-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes bct-flap{0%,55%,100%{transform:scaleY(1)}65%{transform:scaleY(-.6) translateY(-6px)}80%{transform:scaleY(1)}}
@keyframes bct-fly{0%,60%,100%{transform:translate(0,0) rotate(0)}70%{transform:translate(2px,-2px) rotate(-8deg)}80%{transform:translate(-1px,1px) rotate(4deg)}}
@keyframes bct-dash{0%,55%,100%{stroke-dashoffset:0}60%{stroke-dashoffset:24}}
@keyframes bct-blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}
@keyframes bct-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) rotate(-4deg)}}
@keyframes bct-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.bct:not(#bct-x) *,.bct:not(#bct-x) *::before{transition:none!important;animation:none!important}}
