.bob-character-avatar{width:40px;height:40px;object-fit:contain;vertical-align:middle}.bob-character-choice{display:block;width:120px;height:180px;object-fit:contain;margin:auto}.bob-companion{position:fixed;right:18px;bottom:16px;z-index:75;width:190px;pointer-events:none;text-align:left;color:#183348;font-family:system-ui,sans-serif;animation:bob-companion-enter .65s cubic-bezier(.2,.75,.25,1) both;contain:layout style}.bob-companion-character{pointer-events:auto;display:block!important;margin:0 0 0 auto!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer;width:180px;height:270px;position:relative;transform-origin:50% 100%;animation:bob-companion-greet 1.3s ease-in-out .65s 1}.bob-companion-character img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 5px #14374b22)}.bob-companion-character span{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:12px;font-weight:700;color:#fff;border-radius:16px;background:#133b60;padding:3px 12px;opacity:0}.bob-companion-character:focus-visible{outline:3px solid #2189d1;outline-offset:4px;border-radius:18px}.bob-companion-bubble{position:absolute;right:185px;bottom:155px;width:305px;max-height:min(580px,calc(100dvh - 200px));overflow:auto;overscroll-behavior:contain;box-sizing:border-box;padding:22px!important;margin:0!important;border:1px solid #d1dde7!important;border-radius:22px!important;background:#fff!important;box-shadow:0 12px 35px #17395025;pointer-events:auto;animation:bob-companion-bubble .2s ease-out both}.bob-companion-bubble h2{font-size:18px!important;line-height:1.35;margin:0 20px 12px 0!important;font-weight:750;color:#132e46}.bob-companion-bubble p{font-size:14px;line-height:1.5;margin:8px 0 12px;white-space:normal}.bob-companion-bubble strong{display:block;font-size:14px;margin-bottom:12px}.bob-companion-bubble p[role=status]:empty{display:none}.bob-companion-bubble p[role=status]{color:#a53a2a}.bob-companion a.bob-companion-primary,.bob-companion button.bob-companion-control{display:block;box-sizing:border-box;width:100%;font:inherit;font-size:13px;line-height:1.35;padding:10px 12px;margin:7px 0;border:1px solid #d4dce3;border-radius:9px;color:#173248;background:#f0f3f6;text-align:center;cursor:pointer;text-decoration:none}.bob-companion a.bob-companion-primary{background:#1266ce;color:#fff;border-color:#1266ce;font-weight:650}.bob-companion button.bob-companion-control:disabled{opacity:.55;cursor:wait}.bob-companion button.bob-companion-close{position:absolute;top:8px;right:8px;margin:0;padding:0;width:30px;height:30px;border:0;background:transparent;color:#6b7888;font-size:26px;line-height:30px}.bob-companion-bubble footer{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:8px}.bob-companion-bubble footer button.bob-companion-control{flex:1;width:auto;background:transparent;padding:7px 5px}.bob-companion-bubble footer a{color:#185c99;white-space:nowrap}.bob-companion.is-folded{width:78px}.bob-companion.is-folded .bob-companion-character{width:78px;height:115px;animation:none}.bob-companion.is-folded .bob-companion-character span{opacity:1}@keyframes bob-companion-enter{0%{transform:translateX(220px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes bob-companion-greet{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg) translateY(-3px)}65%{transform:rotate(2deg)}}@keyframes bob-companion-bubble{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.bob-companion{right:8px;bottom:calc(75px + env(safe-area-inset-bottom));width:105px}.bob-companion-character{width:105px;height:158px}.bob-companion-bubble{right:5px;bottom:140px;width:min(305px,calc(100vw - 24px));max-height:calc(100dvh - 280px);padding:18px!important}.bob-companion.is-folded .bob-companion-character{width:65px;height:98px}}@media(prefers-reduced-motion:reduce){.bob-companion,.bob-companion-bubble,.bob-companion-character{animation:none!important;transition:none!important}}@media print{.bob-companion{display:none!important}}body:has(.bob-companion) .bob-desktop-launcher:not(.is-active){display:none!important}.bob-companion-character.is-attending{animation:bob-companion-notice 2.4s ease-in-out 1}@keyframes bob-companion-notice{0%,to{transform:translateX(0) rotate(0)}15%,75%{transform:translateX(-30px) rotate(0)}25%,45%,65%{transform:translateX(-30px) translateY(-5px) rotate(-5deg)}35%,55%{transform:translateX(-30px) rotate(4deg)}}.bob-companion-bubble p,.bob-companion-bubble strong{overflow-wrap:anywhere}