/* EvidenceCanvas chatbot widget — Calibre palette tokens
   (dial #0a0b0d, graphite #111316, steel text, chronograph orange #ff5b1f).
   Motion: transform/opacity only, <=200ms, prefers-reduced-motion respected. */
:root { --ecw-lime: #ff5b1f; --ecw-ink: #160700; --ecw-ground: #0a0b0d; --ecw-card: #111316; --ecw-line: #262a30; --ecw-text: #d3d7dd; --ecw-muted: #a3a9b1; --ecw-amber: #ece4c4; }
#ecw-chat-widget { position: fixed; bottom: 18px; right: 18px; z-index: 9999;
  font-family: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
#ecw-chat-toggle { display: flex; align-items: center; gap: 8px; background: var(--ecw-lime);
  color: var(--ecw-ink); border: none; border-radius: 999px; padding: 12px 20px;
  font-size: 14.5px; font-weight: 700; cursor: pointer; box-shadow: 0 4px 15px rgba(0,0,0,.45);
  transition: transform .18s cubic-bezier(.23,1,.32,1), box-shadow .18s cubic-bezier(.23,1,.32,1); }
#ecw-chat-toggle:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.5); }
#ecw-chat-toggle:active { transform: scale(.97); }
#ecw-chat-toggle:focus-visible, #ecw-chat-input:focus-visible, #ecw-chat-send:focus-visible, .ecw-chat-close:focus-visible {
  outline: 2px solid var(--ecw-lime); outline-offset: 2px; }
#ecw-chat-box { width: min(360px, calc(100vw - 36px)); height: min(520px, 72vh);
  background: var(--ecw-card); border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,.55);
  display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ecw-line); }
.ecw-chat-header { background: var(--ecw-ground); color: var(--ecw-text); padding: 12px 16px;
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  border-bottom: 1px solid var(--ecw-line); }
.ecw-chat-title strong { display: block; font-size: 14.5px; color: var(--ecw-text); }
.ecw-chat-status { display: block; font-size: 10.5px; color: var(--ecw-muted); line-height: 1.35; }
.ecw-chat-close { background: none; border: none; color: var(--ecw-text); font-size: 17px; cursor: pointer; padding: 4px; }
.ecw-chat-banner { background: rgba(236, 228, 196, .07); color: var(--ecw-amber); padding: 6px 12px;
  font-size: 11px; text-align: center; border-bottom: 1px solid var(--ecw-line); }
.ecw-chat-banner a { color: var(--ecw-amber); font-weight: 700; }
#ecw-chat-messages { flex: 1; padding: 14px; overflow-y: auto; font-size: 13.5px; line-height: 1.5;
  display: flex; flex-direction: column; gap: 10px; background: var(--ecw-ground); }
.ecw-msg { padding: 10px 13px; border-radius: 9px; max-width: 88%; overflow-wrap: break-word; }
.ecw-assistant { background: var(--ecw-card); border: 1px solid var(--ecw-line); color: var(--ecw-text); align-self: flex-start; }
.ecw-user { background: #1a1d21; color: var(--ecw-text); align-self: flex-end; border: 1px solid #353a41; }
.ecw-typing { color: var(--ecw-muted); align-self: flex-start; }
.ecw-msg strong { color: #ece4c4; }
.ecw-msg a { color: var(--ecw-text); text-decoration: underline; text-decoration-color: var(--ecw-lime); }
#ecw-chat-form { display: flex; padding: 8px 10px; border-top: 1px solid var(--ecw-line); background: var(--ecw-card); }
#ecw-chat-input { flex: 1; min-width: 0; background: var(--ecw-ground); border: 1px solid var(--ecw-line);
  color: var(--ecw-text); padding: 8px 12px; border-radius: 6px; font-size: 13px; outline: none; }
#ecw-chat-input::placeholder { color: var(--ecw-muted); }
#ecw-chat-send { background: var(--ecw-lime); color: var(--ecw-ink); border: none;
  border-radius: 6px; padding: 0 14px; margin-left: 6px; cursor: pointer; font-weight: 700; }
#ecw-chat-send:disabled { opacity: .6; cursor: wait; }
.ecw-chat-disclaimer { font-size: 10px; color: var(--ecw-muted); text-align: center; padding: 4px 10px 6px;
  background: var(--ecw-card); margin: 0; }
.ecw-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 480px) { #ecw-chat-box { position: fixed; inset: auto 12px 12px 12px; width: auto; } }
@media (prefers-reduced-motion: reduce) { #ecw-chat-toggle { transition: none; }
  #ecw-chat-toggle:hover { transform: none; } #ecw-chat-toggle:active { transform: none; } }
