/* Live chat pembeli */
.help-badge{position:absolute;top:-4px;right:-4px;background:var(--err);color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:99px;display:grid;place-items:center;padding:0 5px}
.help>button{position:relative}
.chat-panel{position:fixed;z-index:1000;inset:0;width:100%;height:100vh;height:100dvh;background:var(--bg);display:none;flex-direction:column;overflow:hidden;border:0;border-radius:0}
.chat-panel.on{display:flex;animation:chatin .18s ease}@keyframes chatin{from{opacity:0}to{opacity:1}}
html.chat-full,html.chat-full body{overflow:hidden}
/* isi dibatasi lebar nyaman di layar besar, header dan area ketik tetap selebar layar */
.chat-hd{padding-inline:max(16px,calc((100% - 880px)/2))!important}
.chat-body{padding-inline:max(14px,calc((100% - 880px)/2 + 14px))!important}
.chat-in,.chat-chips,.chat-prev{padding-inline:max(10px,calc((100% - 880px)/2 + 10px))}
.chat-ft{padding-inline:max(10px,calc((100% - 880px)/2 + 10px))}
.chat-form{padding-inline:max(16px,calc((100% - 560px)/2))}
.chat-hd .tutup-penuh{margin-left:auto}
.chat-hd{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(120deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#7c3aed));color:#fff}
.chat-hd .ic{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:18px;flex:none}
.chat-hd b{display:block;font-size:15px}.chat-hd small{opacity:.92;font-size:12px;display:flex;gap:6px;align-items:center}
.chat-hd .dot{width:8px;height:8px;border-radius:50%;background:#4ade80}.chat-hd .dot.off{background:#fbbf24}
.chat-hd button{margin-left:auto;background:rgba(255,255,255,.18);border:0;color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:16px}
.chat-body{flex:1;overflow-y:auto;padding:14px;background:var(--bg);display:flex;flex-direction:column;gap:8px}
.chat-form{padding:16px;overflow-y:auto;flex:1}.chat-form label:first-child{margin-top:0}
.cm{max-width:82%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap}
.cm small{display:block;font-size:10.5px;opacity:.65;margin-top:3px}
.cm.b{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}
.cm.s{align-self:flex-start;background:var(--card);border:1px solid var(--border);border-bottom-left-radius:5px}.cm.s .nm{display:block;font-size:11px;font-weight:700;color:var(--accent-text);margin-bottom:2px}
.cm.x{align-self:center;background:var(--tert);color:var(--muted);font-size:12px;text-align:center;border-radius:99px;padding:6px 14px;max-width:92%}
.cm-tgl{align-self:center;font-size:11px;color:var(--faint);margin:6px 0}
.chat-in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--card);align-items:flex-end}
.chat-in textarea{flex:1;min-height:42px;max-height:110px;resize:none;border-radius:14px;padding:10px 12px;margin:0}
.chat-in button{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:#fff;cursor:pointer;font-size:16px;flex:none}.chat-in button:disabled{opacity:.5}
.chat-ft{text-align:center;padding:4px 0 8px;font-size:12px;background:var(--card)}.chat-ft a{color:var(--faint);cursor:pointer}
.chat-ketik{align-self:flex-start;font-size:12px;color:var(--faint)}

/* ---- v3.4: status, lampiran foto/video, jeda ---- */
.chat-stat{display:flex;gap:8px;align-items:flex-start;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.45;margin-bottom:6px;font-weight:600}
.chat-stat.on{background:var(--ok-bg);color:var(--ok)}.chat-stat.off{background:var(--warn-bg);color:var(--warn)}.chat-stat .ik{flex:none;margin-top:2px}
.chat-clip{width:44px;height:44px;border-radius:50%;background:var(--tert);color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none;font-size:20px;border:1px solid var(--border)}.chat-clip:hover{color:var(--accent-text);border-color:var(--accent)}
.chat-prev{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--info-bg);border-top:1px solid var(--border);position:relative}.chat-prev[hidden]{display:none}
.chat-prev img,.chat-prev .vid{width:46px;height:46px;border-radius:10px;object-fit:cover;flex:none;background:var(--tert);display:grid;place-items:center;font-size:22px;color:var(--accent-text)}
.chat-prev .nm{flex:1;min-width:0}.chat-prev .nm b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-prev .nm small{color:var(--muted);font-size:12px}
.chat-prev button{border:0;background:var(--card);width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--muted);flex:none}
.chat-prev .bar{position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:0}.chat-prev .bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}
.cm-media{display:block;max-width:100%;width:240px;max-height:260px;border-radius:12px;object-fit:cover;margin:2px 0 6px;background:#000}video.cm-media{object-fit:contain}
.cm.b .cm-media{margin-left:auto}
.chat-ft{display:flex;justify-content:center;gap:10px}

.tik{width:13px;height:13px;vertical-align:-2px;margin-left:3px;opacity:.75}.tik.baca{color:#7fe3ff;opacity:1}.ib-th .tik.baca{color:#b3ecff}

/* v4.2: asisten AI */
.cm.s.ai{background:color-mix(in srgb,var(--accent) 7%,var(--card));border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}
.aitag{display:inline-block;background:var(--accent);color:#fff;border-radius:6px;padding:0 6px;font-size:9.5px;font-weight:900;letter-spacing:.04em;margin-left:4px;vertical-align:1px}
.cm .dots{display:inline-flex;gap:4px;padding:4px 0}.cm .dots i{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.35;animation:aidot 1.1s infinite}.cm .dots i:nth-child(2){animation-delay:.18s}.cm .dots i:nth-child(3){animation-delay:.36s}
@keyframes aidot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.cm .dots i{animation:none;opacity:.7}}

.chat-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 10px 2px;scrollbar-width:none}.chat-chips::-webkit-scrollbar{display:none}.chat-chips button{flex:none;border:1px solid var(--line,#d9e2ef);background:var(--card,#fff);color:inherit;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.chat-chips button:hover{border-color:var(--pri,#2196f3);color:var(--pri,#2196f3)}
.cm.s.ai a{color:inherit;text-decoration:underline;word-break:break-all}

/* kartu kaya dari bot */
.cm.rich{max-width:min(94%,600px);width:100%;white-space:normal}.cm.rich .kartu-w{display:flex;flex-direction:column;gap:8px;margin-top:8px}.cm.rich>.nm+*{margin-top:0}
.rcd{border:1px solid var(--border);background:var(--bg);border-radius:14px;padding:11px 12px;font-size:13.5px;line-height:1.4}.rcd b{font-weight:700}.rcd p{margin:4px 0 0;color:var(--muted);font-size:12.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rcd.produk{display:flex;gap:11px;padding:9px}.rcd .rimg{flex:none;width:76px;height:76px;border-radius:11px;overflow:hidden;background:var(--tert);display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:24px}.rcd .rimg img{width:100%;height:100%;object-fit:cover;display:block}
.rcd .rbd{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.rcd .rbd b{font-size:14px;overflow-wrap:anywhere}.rbadge{align-self:flex-start;font-size:10.5px;font-weight:700;background:var(--info-bg);color:var(--accent-text);border-radius:99px;padding:1px 8px}
.rharga{font-weight:800;color:var(--accent-text);font-size:14.5px}.rstok{font-size:11.5px;color:var(--muted)}
.rcd.video{padding:0;overflow:hidden}.rcd.video .rvid{position:relative;display:block;aspect-ratio:16/9;background:#000}.rcd.video .rvid img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}.rcd.video .rvid i{position:absolute;inset:0;margin:auto;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}.rcd.video .rbd{padding:9px 11px 11px}
.rh{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.rsub{font-size:12px;color:var(--muted);margin-top:2px}
.rpil{flex:none;font-size:11px;font-weight:700;border-radius:99px;padding:2px 9px;background:var(--info-bg);color:var(--accent-text)}.rpil.ok{background:var(--ok-bg);color:var(--ok)}.rpil.warn{background:var(--warn-bg);color:var(--warn)}.rpil.err{background:var(--err-bg);color:var(--err)}
.rcd.pesanan{border-left:4px solid var(--accent)}.rcd.pesanan.t-ok{border-left-color:var(--ok)}.rcd.pesanan.t-warn{border-left-color:var(--warn)}.rcd.pesanan.t-err{border-left-color:var(--err)}
.rcd.saldo{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#000));color:#fff;border:0}.rcd.saldo .rsub{color:rgba(255,255,255,.8)}.rcd.saldo .rbig{font-size:26px;font-weight:800;margin:2px 0 4px}.rcd.saldo dt,.rcd.saldo dd{color:#fff}.rcd.saldo .rrow{border-top-color:rgba(255,255,255,.25)}.rcd.saldo .rbtn{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.35)}
.rrow{margin:8px 0 0;padding-top:6px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:5px}.rrow div{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}.rrow dt{color:var(--muted);flex:none;max-width:48%}.rrow dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.rtb{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.rtb.menu{margin-top:0}
.rbtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:99px;padding:6px 13px;font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:none!important;line-height:1.2}.rbtn.ghost{background:transparent;color:var(--accent-text)}
.rtb.menu .rbtn{background:var(--card);color:var(--accent-text);border-color:var(--border)}.rtb.menu .rbtn:hover,.rbtn.ghost:hover{border-color:var(--accent)}.rbtn:active{transform:scale(.97)}
.cm.s.ai a.rbtn{color:#fff;text-decoration:none;word-break:normal}.cm.s.ai .rtb.menu .rbtn,.cm.s.ai .rbtn.ghost{color:var(--accent-text)}.cm.s.ai .rcd.saldo .rbtn{color:#fff}
.cm.s.ai a.rimg,.cm.s.ai a.rvid{text-decoration:none}
.rcd.jawab{border-left:4px solid var(--accent)}.rcd.jawab .risi{margin-top:6px;white-space:pre-wrap;font-size:13.5px;line-height:1.5}
.rbtn{font:inherit;font-size:12.5px;font-weight:700}
.chat-chips{flex-wrap:wrap;max-height:92px;overflow-y:auto}.cm.welcome{max-width:min(94%,600px);width:100%}
.form-topik{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.form-topik button{border:1px solid var(--border);background:var(--card);color:var(--accent-text);border-radius:99px;padding:5px 11px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.chat-chips button{background:var(--tert)!important;color:var(--accent-text)!important;border:1px solid var(--border)!important;font:inherit;font-size:12.5px;font-weight:700}.chat-chips button:hover{border-color:var(--accent)!important}
/* v6.60: pilihan dilayani Asisten atau Admin */
.chat-mode{display:flex;gap:4px;margin:8px 10px 0;padding:4px;border-radius:14px;background:var(--tert);border:1px solid var(--border)}
.chat-mode button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:13px;font-weight:800;border:0;background:transparent;color:var(--muted);border-radius:10px;padding:8px 6px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.chat-mode button.on{background:var(--card);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.chat-mode button[data-m="asisten"].on{color:#7c4dff}.chat-mode button[data-m="admin"].on{color:var(--accent)}
.chat-mode-ket{margin:6px 10px 0;font-size:12px;line-height:1.45;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chat-mode-ket span{display:flex;gap:6px;align-items:flex-start;flex:1;min-width:180px;color:var(--muted)}.chat-mode-ket span.warn{color:var(--warn,#b26a00)}
.chat-mode-ket button{font:inherit;font-size:12px;font-weight:800;border:1px solid #7c4dff;color:#7c4dff;background:transparent;border-radius:99px;padding:5px 12px;cursor:pointer}
.chat-mode-ket button:hover{background:color-mix(in srgb,#7c4dff 10%,transparent)}
/* kartu produk di gelembung pembeli (mis. dari tombol Tanya admin): teks tetap terbaca */
.cm.b .rcd{color:var(--text,#0f172a);background:var(--card,#fff)}.cm.b .rcd b,.cm.b .rcd p,.cm.b .rcd .rsub,.cm.b .rcd .rstok{color:var(--text,#0f172a)}.cm.b .rcd .rharga{color:var(--accent,#2563eb)}.cm.b .rcd .rbadge{color:var(--accent,#2563eb)}
