:root { --vfassist-navy:#091827; --vfassist-panel:#102235; --vfassist-line:#244057; --vfassist-blue:#1689ff; --vfassist-teal:#1bd7a5; --vfassist-muted:#9eb1c4; }
.vfassist { position:fixed; z-index:99997; right:22px; bottom:22px; font-family:inherit; }
.vfassist[dir="rtl"] { left:22px; right:auto; }
.vfassist-launcher { min-height:52px; padding:0 17px 0 8px; border:0; border-radius:999px; color:#fff; background:linear-gradient(135deg,#147cff,#00b897); box-shadow:0 14px 34px rgba(0,45,88,.32); display:flex; align-items:center; gap:8px; cursor:pointer; font:800 13px/1 inherit; white-space:nowrap; }
.vfassist[dir="rtl"] .vfassist-launcher { padding:0 8px 0 17px; }
.vfassist-launcher[hidden] { display:none !important; }
.vfassist-launcher:hover { transform:translateY(-1px); filter:brightness(1.06); }
.vfassist-launcher.is-attention { animation:vfassist-attention .62s ease-in-out 2; }
@keyframes vfassist-attention { 0%,100% { transform:translateX(0); } 30% { transform:translateX(-4px); } 65% { transform:translateX(4px); } }
.vfassist-launcher-icon { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.2); font-size:19px; }
.vfassist-launcher-label { display:block; }
.vfassist-launcher b { position:absolute; top:1px; right:1px; width:9px; height:9px; border-radius:50%; background:#ffcc4a; box-shadow:0 0 0 3px rgba(255,255,255,.35); }
.vfassist-panel { width:min(360px,calc(100vw - 48px)); height:min(460px,calc(100vh - 132px)); background:#f6f9fc; border:1px solid rgba(255,255,255,.12); box-shadow:0 28px 74px rgba(0,20,44,.38); border-radius:18px; overflow:hidden; position:absolute; right:0; bottom:65px; display:flex; flex-direction:column; color:var(--vfassist-navy); }
.vfassist-panel[hidden] { display:none !important; }
.vfassist[dir="rtl"] .vfassist-panel { left:0; right:auto; }
.vfassist-panel header { min-height:62px; padding:11px 13px; color:#fff; background:linear-gradient(115deg,#0b3150,#125579); display:flex; align-items:center; gap:10px; }
.vfassist-avatar { display:grid; place-items:center; width:39px; height:39px; flex:0 0 39px; border-radius:14px; background:linear-gradient(135deg,#1cd7a5,#198af8); color:#fff; font-size:12px; font-weight:900; letter-spacing:.6px; }
.vfassist-panel header strong { display:block; font-size:15px; line-height:1.2; }
.vfassist-panel header small { margin-top:3px; display:block; font-size:11px; color:#c5d7e4; }
.vfassist-panel header small i { display:inline-block; width:7px; height:7px; margin-inline-end:5px; border-radius:50%; background:#35e6a1; }
.vfassist-panel header button { margin-inline-start:auto; width:30px; height:30px; border:0; border-radius:9px; color:#e6f5ff; background:rgba(255,255,255,.12); cursor:pointer; font-size:23px; line-height:1; }
.vfassist-context { margin:10px 12px 0; padding:9px 11px; border:1px solid #d7e4ee; border-radius:12px; background:#fff; max-height:105px; overflow:auto; }
.vfassist-context-row { display:grid; grid-template-columns:112px 1fr; gap:8px; padding:3px 0; font-size:11px; line-height:1.4; }
.vfassist-context-row b { color:#558; }
.vfassist-context-row span { color:#18344a; overflow-wrap:anywhere; }
.vfassist-messages { flex:1; overflow-y:auto; padding:15px 13px 9px; display:flex; flex-direction:column; gap:9px; background:radial-gradient(circle at 100% 0,#e7f5ff 0,transparent 37%),#f6f9fc; }
.vfassist-message { display:flex; flex-direction:column; max-width:86%; align-self:flex-start; }
.vfassist-message.is-user { align-self:flex-end; }
.vfassist-message.is-system { max-width:100%; align-self:center; }
.vfassist-bubble { padding:9px 11px; background:#fff; border:1px solid #e0e9f0; border-radius:4px 15px 15px 15px; box-shadow:0 2px 6px rgba(15,51,77,.04); }
.vfassist-message.is-user .vfassist-bubble { background:linear-gradient(135deg,#127eff,#086ad8); color:#fff; border-color:#127eff; border-radius:15px 4px 15px 15px; }
.vfassist-message.is-admin .vfassist-bubble { background:#e0fff5; border-color:#c4f3e4; }
.vfassist-message.is-system .vfassist-bubble { background:#edf3f7; color:#496070; font-size:12px; border-style:dashed; border-radius:12px; }
.vfassist-bubble p { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; font-size:13px; line-height:1.48; }
.vfassist-message time { padding:3px 4px 0; color:#8a9aaa; font-size:10px; }
.vfassist-message.is-user time { text-align:end; }
.vfassist-file { margin-top:7px; padding:9px; display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.72); color:#0b5fac; border:1px solid rgba(20,112,190,.2); border-radius:9px; text-decoration:none; }
.vfassist-message.is-user .vfassist-file { color:#073d71; }
.vfassist-file:hover { filter:brightness(.97); }
.vfassist-file-icon { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; background:#cfeaff; font-size:18px; }
.vfassist-file strong,.vfassist-file small { display:block; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vfassist-file strong { font-size:12px; }.vfassist-file small { margin-top:2px; color:#668196; font-size:10px; }
.vfassist-compose { padding:10px; gap:8px; display:flex; align-items:end; border-top:1px solid #dfe9ef; background:#fff; }
.vfassist-compose textarea { min-height:38px; max-height:86px; flex:1; resize:vertical; padding:9px 10px; border:1px solid #d7e2ea; border-radius:12px; font:inherit; font-size:13px; outline:none; }
.vfassist-compose textarea:focus { border-color:#2188ef; box-shadow:0 0 0 3px rgba(33,136,239,.13); }
.vfassist-compose button { min-height:38px; border:0; border-radius:11px; padding:0 12px; color:#fff; background:#117ded; font-weight:800; cursor:pointer; }
.vfassist-compose button:disabled { opacity:.6; cursor:wait; }
.vfassist-login { margin:12px; padding:11px; display:block; border-radius:10px; color:#fff; background:#117ded; text-align:center; text-decoration:none; font-weight:800; }
.vfassist-loading,.vfassist-signin-note,.vfassist-error { margin:auto; padding:12px; color:#526b7d; text-align:center; font-size:13px; }.vfassist-error { color:#b42318; }
.vf-history [data-vfassist-open] { margin-top:8px; width:max-content; }

/* WordPress admin inbox */
.vfassist-admin-wrap { max-width:1400px; }.vfassist-admin-wrap>h1 { display:flex; align-items:baseline; gap:12px; }.vfassist-admin-wrap>h1 span { color:#718090; font-size:14px; font-weight:400; }
.vfassist-admin-grid { min-height:660px; border:1px solid #d6e0e8; border-radius:12px; overflow:hidden; display:grid; grid-template-columns:315px minmax(0,1fr); background:#f7fafc; box-shadow:0 8px 22px rgba(17,45,70,.06); }
.vfassist-thread-list { overflow-y:auto; background:#fff; border-right:1px solid #dbe5eb; }.vfassist-thread-list h2 { margin:0; padding:18px; font-size:15px; border-bottom:1px solid #e3ebf0; }.vfassist-thread-list h2 b { float:right; min-width:20px; padding:2px 5px; border-radius:10px; color:#fff; background:#e04f5f; text-align:center; font-size:11px; }
.vfassist-thread-list>a { position:relative; display:block; padding:13px 17px; border-bottom:1px solid #edf1f4; color:#263c4e; text-decoration:none; }.vfassist-thread-list>a:hover,.vfassist-thread-list>a.is-selected { background:#e9f5ff; }.vfassist-thread-list>a.is-selected { box-shadow:inset 3px 0 0 #1385ed; }
.vfassist-thread-list strong,.vfassist-thread-list span,.vfassist-thread-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.vfassist-thread-list strong { margin-bottom:4px; }.vfassist-thread-list span { color:#6f8190; font-size:12px; }.vfassist-thread-list small { margin-top:6px; color:#97a7b4; font-size:10px; }.vfassist-thread-list small b { float:right; padding:1px 6px; color:#fff; background:#e3515e; border-radius:8px; }
.vfassist-admin-chat { min-width:0; display:flex; flex-direction:column; }.vfassist-admin-chat>header { min-height:66px; padding:14px 20px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #dbe5eb; background:#fff; }.vfassist-admin-chat h2 { margin:0; font-size:17px; }.vfassist-admin-chat header p { margin:4px 0 0; color:#71808d; font-size:12px; }.vfassist-admin-chat header>span { padding:5px 9px; border-radius:999px; background:#dcfce7; color:#167642; font-size:11px; font-weight:700; }
.vfassist-job-card { display:flex; align-items:end; flex-wrap:wrap; gap:14px; padding:13px 20px; border-bottom:1px solid #dbe5eb; background:#f0f8ff; }.vfassist-job-card>div { min-width:145px; max-width:260px; }.vfassist-job-card b,.vfassist-job-card span { display:block; }.vfassist-job-card b { margin-bottom:2px; color:#607583; font-size:10px; text-transform:uppercase; }.vfassist-job-card span { overflow-wrap:anywhere; color:#17324a; font-size:12px; }.vfassist-job-card a { margin-left:auto; }
.vfassist-admin-messages { flex:1; max-height:470px; min-height:290px; overflow-y:auto; padding:22px; background:#f6f9fb; }.vfassist-admin-message { max-width:72%; margin:0 0 12px; padding:10px 12px; border:1px solid #dbe5eb; border-radius:4px 13px 13px 13px; background:#fff; }.vfassist-admin-message.is-admin { margin-left:auto; border-color:#b8e8f5; border-radius:13px 4px 13px 13px; background:#e8faff; }.vfassist-admin-message.is-system { max-width:90%; border-style:dashed; background:#f0f4f7; }.vfassist-admin-message small { color:#788b99; font-size:10px; }.vfassist-admin-message p { margin:6px 0; white-space:pre-wrap; overflow-wrap:anywhere; }.vfassist-admin-message .button { margin-top:3px; }
.vfassist-admin-compose { display:grid; grid-template-columns:1fr auto auto; gap:9px; align-items:end; padding:15px 18px; border-top:1px solid #dbe5eb; background:#fff; }.vfassist-admin-compose textarea { min-height:58px; width:100%; resize:vertical; }.vfassist-admin-compose label { min-width:140px; cursor:pointer; color:#166bc0; font-size:12px; }.vfassist-admin-compose label input { display:block; max-width:150px; margin-top:5px; font-size:10px; }.vfassist-admin-compose i { grid-column:1/-1; color:#c22828; font-size:12px; font-style:normal; }.vfassist-empty-admin { margin:auto; color:#7a8a98; }
@media (max-width:782px) { .vfassist-admin-grid { grid-template-columns:1fr; }.vfassist-thread-list { max-height:240px; border-right:0; border-bottom:1px solid #dbe5eb; }.vfassist-admin-compose { grid-template-columns:1fr auto; }.vfassist-admin-compose label { grid-column:1; }.vfassist-admin-compose button { grid-column:2; grid-row:2; }.vfassist-job-card a { margin-left:0; } }
@media (max-width:480px) { .vfassist { right:13px; bottom:13px; }.vfassist[dir="rtl"] { left:13px; }.vfassist-panel { width:min(340px,calc(100vw - 34px)); height:min(430px,calc(100vh - 118px)); bottom:62px; border-radius:17px; }.vfassist-context-row { grid-template-columns:93px 1fr; } }
