.ff-assistant { --chat-navy: #181d38; --chat-teal: #007f8b; --chat-gold: #f4cf45; font-family: 'Heebo', Arial, sans-serif; color: #26364c; font-size: 15px; line-height: 1.55; }
.ff-assistant [hidden] { display: none !important; }
.ff-assistant button, .ff-assistant input, .ff-assistant select { font: inherit; }
.ff-assistant button { cursor: pointer; }
.ff-assistant button:disabled { cursor: wait; opacity: .65; }
.ff-assistant button:focus-visible, .ff-assistant a:focus-visible, .ff-assistant summary:focus-visible, .ff-assistant-messages:focus-visible { outline: 3px solid #007f8b; outline-offset: 3px; }
.ff-assistant-launcher { position: fixed; bottom: 22px; right: 24px; z-index: 1090; display: flex; align-items: center; gap: 10px; border: 2px solid #fff; border-radius: 30px; padding: 13px 19px; background: var(--chat-teal); color: #fff; box-shadow: 0 5px 24px rgb(16 24 49 / 24%); font-weight: 700 !important; }
.ff-assistant-panel { position: fixed; bottom: 94px; right: 24px; z-index: 1091; display: flex; flex-direction: column; width: min(420px, calc(100% - 32px)); height: min(680px, calc(100vh - 112px)); height: min(680px, calc(100dvh - 112px)); overflow: hidden; border: 1px solid #d2e3e8; border-radius: 22px; background: #f4fbfc; box-shadow: 0 16px 55px rgb(16 24 49 / 25%); }
.ff-assistant-header { display: flex; align-items: center; gap: 12px; padding: 17px 18px; background: var(--chat-navy); color: #fff; }
.ff-assistant-avatar { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 13px; color: var(--chat-gold); background: rgb(255 255 255 / 9%); }
.ff-assistant-header h2 { margin: 0 !important; color: #fff !important; font-size: 1.03rem !important; font-weight: 800; line-height: 1.3; }
.ff-assistant-header p { margin: 2px 0 0 !important; color: #d1e0ec; font-size: .82rem; }
.ff-assistant-close { margin-left: auto; flex: none; background: transparent; border: 0; color: #fff; font-size: 28px !important; padding: 0 6px; line-height: 1; min-width: 32px; min-height: 36px; }
.ff-assistant-campus { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: #fff; border-bottom: 1px solid #dfecef; }
.ff-assistant-campus label { margin: 0; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.ff-assistant-campus select { min-width: 0; flex: 1; background: #f4fbfc; color: #26364c; border: 1px solid #c6dde2; border-radius: 7px; padding: 5px 8px; font-size: .85rem; }
.ff-assistant-messages { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px 14px; scrollbar-width: thin; }
.ff-assistant-message { width: fit-content; max-width: 94%; margin: 0 0 14px; padding: 13px 15px; border: 1px solid #d5e7eb; border-radius: 17px 17px 17px 5px; background: #fff; overflow-wrap: anywhere; box-shadow: 0 1px 2px rgb(16 24 49 / 5%); }
.ff-assistant-message p { white-space: pre-wrap; margin: 0 !important; font-size: .92rem; line-height: 1.65; }
.ff-assistant-message-user { margin-left: auto; border-color: var(--chat-teal); border-radius: 17px 17px 5px 17px; background: var(--chat-teal); color: #fff; }
.ff-assistant-message-user p { color: #fff !important; }
.ff-assistant-answer-label { display: block; margin-bottom: 7px; color: #526873; font-size: .7rem; font-weight: 700; letter-spacing: .02em; }
.ff-assistant-source-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.ff-assistant-source-links a { display: inline-block; border-radius: 14px; background: #fff7da; padding: 4px 10px; color: #26364c !important; font-size: .75rem; font-weight: 700; line-height: 1.4; text-decoration: underline; text-underline-offset: 2px; }
.ff-assistant-suggestions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ff-assistant-suggestions button { padding: 7px 11px; border: 1px solid #c7dfe5; border-radius: 20px; background: #fff; color: #006975; font-size: .77rem; line-height: 1.4; font-weight: 700; text-align: left; }
.ff-assistant-bottom { flex: none; padding: 11px 12px 10px; background: #fff; border-top: 1px solid #dce8eb; }
.ff-assistant-topics { display: flex; gap: 7px; padding: 0 0 9px; overflow-x: auto; scrollbar-width: thin; }
.ff-assistant-topics button { padding: 5px 10px; flex: none; border: 0; border-radius: 20px; background: #eef8fa; color: #006975; font-size: .75rem; font-weight: 700; }
.ff-assistant-form { display: flex; align-items: stretch; gap: 8px; }
.ff-assistant-form input { flex: 1; width: 0; min-width: 0; border: 1px solid #a3c3cc; border-radius: 11px; padding: 11px; color: #26364c; background: #fff; font-size: 16px; }
.ff-assistant-form input:focus { outline: 2px solid #007f8b; outline-offset: 1px; }
.ff-assistant-send { display: grid; place-items: center; flex: 0 0 47px; border: 0; border-radius: 12px; background: var(--chat-gold); color: var(--chat-navy); }
.ff-assistant-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 7px; color: #526873; font-size: .66rem; }
.ff-assistant-reset { border: 0; background: transparent; padding: 3px 0 3px 8px; color: #006975; font-size: .7rem !important; text-decoration: underline; }
.ff-assistant-privacy { margin-top: 3px; color: #526873; font-size: .68rem; }
.ff-assistant-privacy summary { cursor: pointer; width: fit-content; }
.ff-assistant-privacy p { max-height: 100px; overflow-y: auto; margin: 6px 0 0 !important; font-size: .72rem; line-height: 1.5; }
.ff-assistant-pending { color: #526873; font-style: italic; }
.ff-assistant-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ff-assistant-noscript { position: fixed; right: 20px; bottom: 20px; z-index: 1090; padding: 12px 18px; border-radius: 25px; background: #007f8b; color: #fff; }
body.public-site .back-to-top { bottom: 100px; }
@media (max-width: 575.98px) {
    .ff-assistant-launcher { right: 14px; bottom: 14px; padding: 11px 16px; }
    .ff-assistant-panel { left: 8px; right: 8px; bottom: 82px; width: auto; height: min(680px, calc(100vh - 94px)); height: min(680px, calc(100dvh - 94px)); border-radius: 17px; }
    .ff-assistant-header { gap: 9px; padding: 13px 12px; }
    .ff-assistant-avatar { flex-basis: 34px; height: 36px; }
    .ff-assistant-header h2 { font-size: .92rem !important; }
    .ff-assistant-messages { padding: 12px 10px; }
}
