/* WS11 support chat widget (signed-in app pages and public pages). Tokens only. Bottom-right; full screen under 480px. */
.oc-btn{position:fixed;right:18px;bottom:18px;z-index:80;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:11px 16px;
  background:var(--brand);color:var(--on-brand);font:600 14px var(--font);box-shadow:var(--shadow-lg);cursor:pointer}
.oc-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.oc-btn .oc-badge{min-width:18px;height:18px;border-radius:999px;background:var(--neg);color:var(--on-brand);font-size:11px;display:grid;place-items:center;padding:0 5px}
.oc-panel{position:fixed;right:18px;bottom:76px;z-index:81;width:370px;max-width:calc(100vw - 24px);height:min(600px,calc(100vh - 100px));display:flex;flex-direction:column;
  background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.oc-panel[hidden]{display:none}
.oc-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.oc-head .t{font:700 15px var(--title)}.oc-head .s{font-size:12px;color:var(--muted)}
.oc-head .grow{flex:1;min-width:0}
.oc-x{border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer;width:32px;height:32px;border-radius:8px}
.oc-x:hover{background:var(--surface-inset)}
.oc-bar{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.oc-bar button{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:4px 10px;font:600 12px var(--font);cursor:pointer}
.oc-bar button:disabled{opacity:.5;cursor:default}
.oc-msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.oc-m{max-width:86%;border-radius:12px;padding:8px 11px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--border)}
.oc-m .who{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:2px}
.oc-m.customer{align-self:flex-end;background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.oc-m.customer .who{color:color-mix(in srgb,var(--on-brand) 75%,transparent)}
.oc-m.ai{align-self:flex-start}
.oc-m.ai .who::after{content:"AI";margin-left:6px;padding:0 5px;border-radius:5px;background:var(--brand-tint);color:var(--brand-strong);font-size:10px}
html[data-theme="dark"] .oc-m.ai .who::after{color:var(--brand-bright)}
.oc-m.staff{align-self:flex-start;border-color:color-mix(in srgb,var(--pos) 40%,var(--border))}
.oc-m.system{align-self:center;background:none;border:0;color:var(--muted);font-size:12.5px;text-align:center}
.oc-cite{margin-top:6px;font-size:12px;color:var(--muted)}
.oc-typing{font-size:12px;color:var(--muted);padding:0 12px;min-height:18px}
.oc-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface)}
.oc-form textarea{flex:1;resize:none;height:42px;max-height:120px;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:9px 11px;font:14px var(--font);background:var(--surface);color:var(--ink)}
.oc-form button,.oc-start button{border:0;border-radius:var(--r-sm);background:var(--brand);color:var(--on-brand);font:600 14px var(--font);padding:0 14px;cursor:pointer}
.oc-start{padding:16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
.oc-start input{border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:9px 11px;font:14px var(--font);background:var(--surface);color:var(--ink)}
.oc-start button{padding:10px 14px}
.oc-rate{padding:10px 12px;border-top:1px solid var(--border);display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px}
.oc-rate button{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--faint);padding:0 2px}
.oc-rate button.on{color:var(--st-warn)}
.oc-err{color:var(--neg);font-size:12.5px;padding:0 12px}
.oc-note{font-size:12px;color:var(--muted);padding:6px 12px 0}
@media (max-width:480px){
  .oc-panel{right:0;bottom:0;width:100vw;max-width:100vw;height:100vh;height:100dvh;border-radius:0}
  .oc-btn{right:12px;bottom:12px}
  body.oc-open .oc-btn{display:none}
}
@media print{.oc-btn,.oc-panel{display:none}}
