/* DeltaSpares Assistant (V115) - floating button under the WhatsApp button + a clean window in the theme colours (navy / amber). */
:root { --ai-navy: #0A2540; --ai-amber: #f0a500; --ai-panel: #ffffff; --ai-body: #f5f7fa; --ai-text: #16202b; --ai-muted: #64748b; --ai-line: #e3e8ef; --ai-bot: #ffffff; --ai-me: #fff4d6; --ai-card: #ffffff; }
html[data-theme="dark"] { --ai-panel: #111a24; --ai-body: #0c141d; --ai-text: #e6edf3; --ai-muted: #8fa3ba; --ai-line: #243245; --ai-bot: #172231; --ai-me: #3a2c08; --ai-card: #172231; }
.ds-ai-float { position: fixed; right: 18px; bottom: 22px; width: 58px; height: 58px; border-radius: 50%; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 8px 22px rgba(10, 37, 64, .35); z-index: 9998; transition: transform .15s ease, box-shadow .15s ease; padding: 0; }
.ds-ai-float:hover, .ds-ai-float:focus-visible { transform: translateY(-2px) scale(1.04); box-shadow: 0 12px 28px rgba(10, 37, 64, .45); outline: none; }
html.ds-has-ai .ds-wa-float { bottom: 92px; }
html.ds-has-ai .ds-chat { bottom: 162px; max-height: calc(100vh - 180px); }
html.ds-ai-open .ds-wa-float { opacity: 0; pointer-events: none; }
.ds-ai { position: fixed; right: 18px; bottom: 92px; width: 384px; max-width: calc(100vw - 24px); height: 610px; max-height: calc(100vh - 110px); display: flex; flex-direction: column;
    background: var(--ai-panel); color: var(--ai-text); border-radius: 18px; box-shadow: 0 18px 50px rgba(10, 37, 64, .35); overflow: hidden; z-index: 9999; font-size: 14px; border: 1px solid var(--ai-line); }
.ds-ai[hidden] { display: none; }
.ds-ai-head { display: flex; align-items: center; gap: 10px; padding: 12px 12px 10px 14px; background: var(--ai-navy); color: #fff; }
.ds-ai-avatar { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ds-ai-title { flex: 1; min-width: 0; line-height: 1.2; } .ds-ai-title b { display: block; font-size: .95rem; } .ds-ai-title small { color: #b9c7d8; font-size: .74rem; }
.ds-ai-close { background: rgba(255, 255, 255, .1); border: none; color: #fff; width: 32px; height: 32px; border-radius: 50%; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.ds-ai-close:hover { background: rgba(255, 255, 255, .22); }
.ds-ai-tools { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 8px 10px; background: var(--ai-navy); border-top: 1px solid rgba(255, 255, 255, .08); }
.ds-ai-tool { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 6px 4px; border-radius: 10px; background: rgba(255, 255, 255, .07); color: #e7eef6;
    text-decoration: none; border: 1px solid rgba(255, 255, 255, .08); cursor: pointer; font: inherit; font-size: .66rem; line-height: 1.1; transition: background .15s, color .15s; }
.ds-ai-tool b { font-size: .8rem; letter-spacing: .06em; color: var(--ai-amber); line-height: 17px; }
.ds-ai-tool:hover, .ds-ai-tool:focus-visible, .ds-ai-tool[aria-expanded="true"] { background: var(--ai-amber); color: var(--ai-navy); outline: none; }
.ds-ai-tool:hover b, .ds-ai-tool[aria-expanded="true"] b { color: var(--ai-navy); }
.ds-ai-tool-wa svg { color: #25D366; } .ds-ai-tool-wa:hover svg { color: var(--ai-navy); }
.ds-ai-info { background: var(--ai-me); color: var(--ai-text); padding: 10px 14px; font-size: .78rem; border-bottom: 1px solid var(--ai-line); max-height: 45%; overflow: auto; }
.ds-ai-info[hidden] { display: none; } .ds-ai-info ul { margin: 6px 0 0; padding-left: 18px; } .ds-ai-info li { margin: 3px 0; }
.ds-ai-body { flex: 1; overflow-y: auto; padding: 14px 12px; background: var(--ai-body); display: flex; flex-direction: column; gap: 8px; scroll-behavior: smooth; }
.ds-ai-msg { max-width: 88%; padding: 9px 12px; border-radius: 14px; line-height: 1.45; white-space: pre-line; word-wrap: break-word; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.ds-ai-msg.bot { align-self: flex-start; background: var(--ai-bot); border: 1px solid var(--ai-line); border-top-left-radius: 4px; }
.ds-ai-msg.me { align-self: flex-end; background: var(--ai-me); border-top-right-radius: 4px; }
.ds-ai-msg.err { border-color: #f3b4b0; background: #fff1f0; color: #9b1c13; }
.ds-ai-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; white-space: normal; }
.ds-ai-links a { font-size: .75rem; font-weight: 700; padding: 5px 10px; border-radius: 999px; background: var(--ai-navy); color: #fff; text-decoration: none; }
.ds-ai-links a:hover { background: var(--ai-amber); color: var(--ai-navy); }
.ds-ai-typing { align-self: flex-start; display: flex; gap: 4px; padding: 10px 12px; background: var(--ai-bot); border: 1px solid var(--ai-line); border-radius: 14px; }
.ds-ai-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--ai-muted); animation: dsAiDot 1s infinite ease-in-out; } .ds-ai-typing i:nth-child(2) { animation-delay: .15s; } .ds-ai-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes dsAiDot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.ds-ai-card { align-self: stretch; background: var(--ai-card); border: 1px solid var(--ai-line); border-radius: 14px; padding: 10px; display: grid; grid-template-columns: 64px 1fr; gap: 10px; }
.ds-ai-card img, .ds-ai-card .ph { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; background: var(--ai-body); }
.ds-ai-card h4 { margin: 0; font-size: .85rem; line-height: 1.3; } .ds-ai-card h4 a { color: inherit; text-decoration: none; } .ds-ai-card h4 a:hover { color: #b37a00; }
.ds-ai-card .meta { font-size: .72rem; color: var(--ai-muted); margin-top: 2px; } .ds-ai-card .cat { font-size: .7rem; color: var(--ai-muted); margin-top: 2px; }
.ds-ai-card .sum { grid-column: 1 / -1; font-size: .76rem; color: var(--ai-text); opacity: .9; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ds-ai-card dl { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin: 0; font-size: .72rem; }
.ds-ai-card dt { color: var(--ai-muted); } .ds-ai-card dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.ds-ai-card .row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ds-ai-card .price { font-size: .74rem; font-weight: 800; } .ds-ai-card .stock { font-size: .68rem; color: #15803d; font-weight: 700; }
.ds-ai-card .btns { display: flex; gap: 6px; } .ds-ai-card .btns a { font-size: .72rem; font-weight: 800; padding: 6px 10px; border-radius: 8px; text-decoration: none; }
.ds-ai-card .btns .view { border: 1px solid var(--ai-line); color: var(--ai-text); } .ds-ai-card .btns .quote { background: var(--ai-amber); color: var(--ai-navy); }
.ds-ai-chips { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 12px 8px; background: var(--ai-body); max-height: 104px; overflow-y: auto; }
.ds-ai-chips:empty { display: none; }
.ds-ai-chips button { font: inherit; font-size: .74rem; font-weight: 700; padding: 6px 11px; border-radius: 999px; border: 1px solid var(--ai-amber); background: transparent; color: var(--ai-text); cursor: pointer; }
.ds-ai-chips button:hover { background: var(--ai-amber); color: var(--ai-navy); }
.ds-ai-compose { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--ai-line); background: var(--ai-panel); }
.ds-ai-compose input { flex: 1; min-width: 0; border: 1px solid var(--ai-line); background: var(--ai-body); color: var(--ai-text); border-radius: 999px; padding: 10px 14px; font: inherit; font-size: .86rem; }
.ds-ai-compose input:focus { outline: 2px solid var(--ai-amber); outline-offset: 0; border-color: transparent; }
.ds-ai-compose button { width: 42px; height: 42px; border-radius: 50%; border: none; background: var(--ai-amber); color: var(--ai-navy); cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ds-ai-compose button:disabled { opacity: .5; cursor: default; }
.ds-ai-foot { text-align: center; font-size: .66rem; color: var(--ai-muted); padding: 0 10px 8px; background: var(--ai-panel); }
@media (max-width: 640px) {
    .ds-ai-float { bottom: 78px; right: 14px; width: 54px; height: 54px; }
    html.ds-has-ai .ds-wa-float { bottom: 142px; }
    .ds-ai { right: 8px; left: 8px; width: auto; max-width: none; bottom: 8px; height: calc(100vh - 16px); max-height: none; }
}
@media (prefers-reduced-motion: reduce) { .ds-ai-typing i { animation: none; } .ds-ai-float { transition: none; } }
/* the site's general link colours must not dim the links inside the assistant */
.ds-ai .ds-ai-tools a.ds-ai-tool, .ds-ai .ds-ai-tools a.ds-ai-tool:visited { color: #e7eef6; }
.ds-ai .ds-ai-tools a.ds-ai-tool:hover, .ds-ai .ds-ai-tools a.ds-ai-tool:focus-visible { color: var(--ai-navy); }
.ds-ai .ds-ai-links a, .ds-ai .ds-ai-links a:visited { color: #fff; } .ds-ai .ds-ai-links a:hover { color: var(--ai-navy); }
.ds-ai .ds-ai-card .btns a.view, .ds-ai .ds-ai-card .btns a.view:visited { color: var(--ai-text); } .ds-ai .ds-ai-card .btns a.quote, .ds-ai .ds-ai-card .btns a.quote:visited { color: var(--ai-navy); }
.ds-ai .ds-ai-card h4 a, .ds-ai .ds-ai-card h4 a:visited { color: var(--ai-text); }

/* V143 - the "searching" moment before a found product appears */
.ds-ai-searching { align-self: flex-start; display: flex; align-items: center; gap: 10px; padding: 11px 14px; background: var(--ai-bot); border: 1px solid var(--ai-line); border-radius: 14px; color: var(--ai-muted); font-size: .86rem; max-width: 92%; }
.ds-ai-searching::before { content: ""; width: 16px; height: 16px; flex: none; border-radius: 50%; border: 2px solid var(--ai-line); border-top-color: var(--ai-amber); animation: dsAiSpin .8s linear infinite; }
.ds-ai-searching .dots { display: inline-flex; gap: 3px; } .ds-ai-searching .dots i { width: 5px; height: 5px; border-radius: 50%; background: var(--ai-muted); animation: dsAiDot 1s infinite ease-in-out; } .ds-ai-searching .dots i:nth-child(2) { animation-delay: .15s; } .ds-ai-searching .dots i:nth-child(3) { animation-delay: .3s; }
@keyframes dsAiSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ds-ai-searching::before, .ds-ai-searching .dots i { animation: none; } }

/* V151: send this chat as a quote request */
.ds-ai-qchip { background: var(--ai-amber) !important; color: var(--ai-navy) !important; border-color: var(--ai-amber) !important; font-weight: 800 !important; }
.ds-ai-rfq { display: flex; flex-direction: column; gap: 7px; width: 94%; max-width: 94%; white-space: normal; }
.ds-ai-rfq label { display: block; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; opacity: .75; }
.ds-ai-rfq input, .ds-ai-rfq textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 3px; padding: 7px 9px; border-radius: 9px; border: 1px solid var(--ai-line); background: transparent; color: inherit; font: inherit; font-size: .85rem; text-transform: none; letter-spacing: 0; }
.ds-ai-rfq-err { color: #b42318; font-size: .78rem; font-weight: 700; min-height: 0; }
.ds-ai-rfq-row { display: flex; gap: 8px; }
.ds-ai-rfq-go { flex: 1; padding: 9px; border: 0; border-radius: 999px; background: var(--ai-navy); color: #fff; font-weight: 800; cursor: pointer; }
.ds-ai-rfq-go:disabled { opacity: .6; }
.ds-ai-rfq-no { padding: 9px 14px; border: 1px solid var(--ai-line); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
html[data-theme="dark"] .ds-ai-rfq-go { background: var(--ai-amber); color: var(--ai-navy); }
