/* One self-contained messenger on public, client and owner screens. */
.sva-launcher{position:fixed;z-index:2147483000;right:24px;bottom:24px;display:grid;place-items:center;width:60px;height:60px;padding:0;border:1px solid #506b88;border-radius:50%;background:linear-gradient(145deg,#284c70,#102943);color:#eaf2ff;box-shadow:0 8px 28px #020b1c66;font:600 15px/1.3 system-ui;cursor:pointer;isolation:isolate}
.sva-mark{display:block;width:19px;height:19px;border-radius:0 65% 65% 65%;transform:rotate(45deg);background:linear-gradient(145deg,var(--sv-theme-text,#e8f8ff),var(--sv-theme-link,#72b6c6));box-shadow:inset 2px 1px 2px #fff8;pointer-events:none}
.sva-badge{position:absolute;right:-1px;top:-2px;min-width:21px;height:21px;padding:2px 5px;border:2px solid #0b1829;border-radius:15px;background:#b7e2d5;color:#0b2931;font:700 12px/15px system-ui}
.sva-working::after{content:'';position:absolute;inset:-5px;border:1px solid #9cccd766;border-radius:50%;animation:sva-ring 1.8s ease-in-out infinite}
.sva-dialog{--sva-bg:#0b1829;--sva-panel:#11263e;--sva-border:#344d68;--sva-text:#edf4ff;--sva-muted:#abc0d6;box-sizing:border-box;position:fixed;inset:auto 24px 96px auto;width:min(400px,calc(100vw - 32px));height:min(600px,calc(100dvh - 128px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 128px);margin:0;padding:0;border:1px solid var(--sva-border);border-radius:24px;color:var(--sva-text);background:var(--sva-bg);box-shadow:0 24px 70px #0005;font:15px/1.6 system-ui;overflow:hidden;z-index:2147483001;color-scheme:dark}
.sva-dialog[open]{display:flex;flex-direction:column;animation:sva-enter .18s ease-out}.sva-dialog *{box-sizing:border-box}.sva-dialog [hidden],.sva-launcher [hidden]{display:none!important}
.sva-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--sva-panel);color:var(--sva-text);border-bottom:1px solid var(--sva-border);flex-shrink:0}.sva-identity{display:flex;align-items:center;gap:12px}.sva-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #7195ae55;border-radius:50%;background:#203e59}.sva-avatar .sva-mark{width:12px;height:12px}.sva-head h2{margin:0;color:inherit;font-size:17px;font-weight:650;line-height:1.3}.sva-close{display:grid;place-items:center;background:transparent;color:var(--sva-text);border:0;border-radius:12px;font:26px/1 system-ui;width:44px;height:44px;cursor:pointer}.sva-close:hover{background:#ffffff0c}
.sva-log{display:flex;flex-direction:column;gap:12px;padding:20px 16px;overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#45617d transparent}.sva-bubble{flex-shrink:0;max-width:90%;align-self:flex-start;margin:0;padding:12px 15px;border:1px solid #49637b33;border-radius:5px 18px 18px;background:#152d46;color:var(--sva-text);overflow-wrap:anywhere;white-space:pre-wrap}.sva-user{align-self:flex-end;margin-left:22px;border-radius:18px 5px 18px 18px;background:#254766;color:#f5f9ff;border-color:#6384a14d}.sva-link,.sva-inline-link{color:#b8e0e8;font-weight:600;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.sva-link{display:inline-block;padding-top:8px;min-height:36px}
.sva-typing{display:flex;align-items:center;gap:10px;align-self:flex-start;flex-shrink:0;min-height:42px;padding:9px 14px;border-radius:5px 18px 18px;background:#152d46;color:var(--sva-muted)}.sva-typing-text{font-size:12px}.sva-dots{display:flex;gap:4px;align-items:center;height:16px}.sva-dots i{width:5px;height:5px;border-radius:50%;background:var(--sv-theme-text,#c0dae7);animation:sva-dot 1.2s ease-in-out infinite}.sva-dots i:nth-child(2){animation-delay:.15s}.sva-dots i:nth-child(3){animation-delay:.3s}
.sva-form{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:end;gap:8px;margin:0;padding:12px 14px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--sva-border);background:var(--sva-bg);flex-shrink:0}.sva-input{display:block;width:100%;min-width:0;min-height:44px;max-height:112px;margin:0;padding:10px 12px;border:1px solid #48647e;border-radius:16px;background:#0d2035;color:var(--sva-text);font:inherit;line-height:22px;resize:none;overflow-y:auto;box-shadow:none}.sva-input::placeholder{color:#a4bad0;opacity:1}.sva-send{display:grid;place-items:center;align-self:end;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:1px solid #8ab3c180;border-radius:50%;background:#badfe7;color:#112c40;font:500 26px/1 system-ui;cursor:pointer}.sva-send:disabled{background:#223b53;color:#728aa3;border-color:#35516b;cursor:default}.sva-status{grid-column:1/-1;margin:0;color:var(--sva-muted);font-size:12px;overflow-wrap:anywhere}.sva-status:empty{display:none}.sva-retry{grid-column:1/-1;min-height:44px;padding:8px 12px;border:1px solid #69849e;border-radius:12px;background:#17334e;color:var(--sva-text);font:inherit;cursor:pointer}.sva-dialog button:focus-visible,.sva-launcher:focus-visible,.sva-dialog a:focus-visible,.sva-input:focus-visible{outline:2px solid #9bdad5;outline-offset:3px}.sva-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes sva-dot{0%,65%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}@keyframes sva-ring{50%{opacity:.35;transform:scale(1.05)}}@keyframes sva-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.sva-launcher{right:16px;bottom:calc(82px + env(safe-area-inset-bottom));width:56px;height:56px}.sva-dialog{inset:auto 10px calc(148px + env(safe-area-inset-bottom)) auto;left:10px;width:auto;max-width:none;height:min(560px,calc(100dvh - 166px));max-height:calc(100dvh - 166px);border-radius:20px}.sva-head{padding:10px 12px}.sva-log{padding:16px 12px}.sva-form{padding:10px}.sva-input{font-size:16px}}
@media(max-height:520px){.sva-dialog{inset:8px 10px 8px auto;max-height:calc(100dvh - 16px);height:calc(100dvh - 16px)}.sva-head{padding:4px 12px}.sva-log{padding-block:10px}.sva-form{padding-block:8px}}
@media(prefers-reduced-motion:reduce){.sva-dialog,.sva-dots i,.sva-working::after{animation:none!important}.sva-dialog *{scroll-behavior:auto}}
