/* FardVisor — site assistant "Ask FardVisor" (decision Ali, 18 Mehr 1405; claude/site-assistant.md).
   Markup: layouts/partials/assistant.blade.php · behaviour: assets/js/assistant.js. Colours and fonts only from --fv-* (main.css). */
.fv-asst{font-family:var(--fv-font-body);line-height:1.6;-webkit-font-smoothing:antialiased;color:var(--fv-ink)}
[dir=rtl] .fv-asst,[dir=rtl] .fv-asst input,[dir=rtl] .fv-asst button{font-family:var(--fv-font-fa)}

.fv-asst__launch{position:fixed;inset-block-end:20px;inset-inline-end:20px;z-index:65;display:inline-flex;align-items:center;gap:10px;padding:14px 18px;border:0;border-radius:var(--fv-radius);background:var(--fv-ink);color:var(--fv-on-ink);font:inherit;font-size:14px;font-weight:600;line-height:1;cursor:pointer;box-shadow:0 18px 48px rgba(21,32,27,.18),0 2px 6px rgba(21,32,27,.1);transition:transform var(--fv-ease),background var(--fv-ease)}
.fv-asst__launch:hover{background:#0d1511;transform:translateY(-1px)}
.fv-asst__pulse{width:7px;height:7px;border-radius:50%;background:var(--fv-green-soft)}
.fv-asst.is-open .fv-asst__launch{display:none}
body:has(#cookieBanner:not([hidden])) .fv-asst__launch{inset-block-end:120px}

.fv-asst__panel{position:fixed;inset-block-end:20px;inset-inline-end:20px;z-index:66;width:min(384px,calc(100vw - 32px));height:min(560px,calc(100vh - 110px));height:min(560px,calc(100dvh - 110px));display:flex;flex-direction:column;background:var(--fv-white);border-top:3px solid var(--fv-green);border-radius:var(--fv-radius);box-shadow:0 24px 60px rgba(21,32,27,.22),0 2px 8px rgba(21,32,27,.1);overflow:hidden}
.fv-asst__panel[hidden]{display:none}

.fv-asst__hd{display:flex;align-items:center;gap:8px;padding:14px 12px 14px 16px;background:var(--fv-ink);color:var(--fv-on-ink)}
[dir=rtl] .fv-asst__hd{padding:14px 16px 14px 12px}
.fv-asst__ttl{display:grid;gap:2px;flex:1;min-width:0}
.fv-asst__ttl strong{font-family:var(--fv-font-display);font-weight:500;font-size:19px;line-height:1.2}
[dir=rtl] .fv-asst__ttl strong{font-family:var(--fv-font-fa);font-weight:700;font-size:16px;line-height:1.5}
.fv-asst__ttl small{font-size:12.5px;line-height:1.4;color:var(--fv-on-ink-muted)}
.fv-asst__icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--fv-line-ink);border-radius:var(--fv-radius);background:transparent;color:var(--fv-on-ink);cursor:pointer}
.fv-asst__icon:hover{background:rgba(247,246,242,.08)}

.fv-asst__log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--fv-paper)}
.fv-asst__m{max-width:88%;padding:10px 13px;border-radius:var(--fv-radius);font-size:14.5px;line-height:1.6;overflow-wrap:anywhere}
[dir=rtl] .fv-asst__m{line-height:1.9}
.fv-asst__m p{margin:0}
.fv-asst__m p+p{margin-top:8px}
.fv-asst__m--bot{align-self:flex-start;background:var(--fv-white);border:1px solid var(--fv-line)}
.fv-asst__m--me{align-self:flex-end;background:var(--fv-green);color:var(--fv-white)}
.fv-asst__m--err{align-self:flex-start;background:#FBF3F2;color:#9B2C2C;border:1px solid #F0D9D7}
.fv-asst__acts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:10px}
.fv-asst__acts .fv-btn{font-size:13.5px}
.fv-asst__link{color:var(--fv-green);font-weight:600;font-size:13.5px;text-decoration:none}
.fv-asst__link:hover{text-decoration:underline}
.fv-asst__typing{display:flex;gap:4px;padding:14px}
.fv-asst__typing i{width:6px;height:6px;border-radius:50%;background:var(--fv-muted);opacity:.35;animation:fvAsstDot 1s infinite}
.fv-asst__typing i:nth-child(2){animation-delay:.15s}
.fv-asst__typing i:nth-child(3){animation-delay:.3s}
@keyframes fvAsstDot{50%{opacity:1}}

.fv-asst__chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 0;border-top:1px solid var(--fv-line)}
.fv-asst__chips:empty{display:none}
.fv-asst__chip{padding:7px 10px;border:1px solid var(--fv-line);border-radius:var(--fv-radius);background:var(--fv-white);color:var(--fv-ink);font:inherit;font-size:12.5px;line-height:1.35;text-align:start;cursor:pointer}
.fv-asst__chip:hover{background:var(--fv-surface)}

.fv-asst__form{display:flex;gap:8px;padding:10px 16px}
.fv-asst__chips:empty+.fv-asst__form{border-top:1px solid var(--fv-line)}
.fv-asst__in{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--fv-line);border-radius:var(--fv-radius);background:var(--fv-white);color:var(--fv-ink);font:inherit;font-size:14px;line-height:1.4}
.fv-asst__in:focus{border-color:var(--fv-green);outline:none}
.fv-asst__send{width:42px;flex:none;display:grid;place-items:center;border:0;border-radius:var(--fv-radius);background:var(--fv-green);color:var(--fv-white);cursor:pointer}
.fv-asst__send:hover{background:var(--fv-green-hover)}
.fv-asst__send:disabled{opacity:.5;cursor:default}
[dir=rtl] .fv-asst__send svg{transform:scaleX(-1)}

.fv-asst__ft{display:grid;gap:4px;padding:0 16px 12px;font-size:11.5px;line-height:1.55;color:var(--fv-muted)}
[dir=rtl] .fv-asst__ft{font-size:12px;line-height:1.8}
.fv-asst__ft a{color:var(--fv-green);font-weight:600;text-decoration:none}
.fv-asst__ft a:hover{text-decoration:underline}

.fv-asst :focus-visible{outline:2px solid var(--fv-green);outline-offset:2px}
.fv-asst__hd :focus-visible{outline-color:var(--fv-green-soft)}

@media (max-width:600px){
  .fv-asst__launch{inset-block-end:16px;inset-inline-end:16px;padding:13px 15px}
  body:has(#cookieBanner:not([hidden])) .fv-asst__launch{inset-block-end:200px}
  .fv-asst__panel{inset:0;width:100%;height:100%;border-radius:0}
  .fv-asst__in{font-size:16px} /* no zoom on iOS */
}
@media (prefers-reduced-motion:reduce){
  .fv-asst__typing i{animation:none;opacity:.7}
  .fv-asst__launch{transition:none}
}
@media print{.fv-asst{display:none}}
