/* A compact, transparent mascot launcher. Styles stay inside the assistant. */
#omni-assistant{--mascot-size:144px;--mascot-hit:96px;position:fixed;z-index:80;right:max(18px,env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));font:400 14px/1.5 var(--sans);color:#1B1D4A}
#omni-assistant[hidden],#omni-assistant [hidden]{display:none!important}
#omni-chat-launcher{all:unset;display:flex;align-items:center;gap:8px;cursor:pointer;touch-action:manipulation;border-radius:20px;--shadow-scale:1;--shadow-opacity:.72;--shadow-blur:3px;--shadow-core-opacity:.7}
#omni-chat-launcher:focus-visible{outline:2px solid #4F46E5;outline-offset:4px}
.omni-assistant-label{position:relative;display:block;padding:10px 15px;border:1px solid #E4E1F3;border-radius:14px;background:#FFFFFF;box-shadow:0 5px 20px #1B1D4A12;font-size:13px;font-weight:600;line-height:1.2}
.omni-assistant-label small{display:block;margin-top:4px;font-size:12px;font-weight:400;color:#62658C}
.omni-assistant-label::after{content:'';position:absolute;right:-5px;top:21px;width:8px;height:8px;background:#FFFFFF;border-top:1px solid #E4E1F3;border-right:1px solid #E4E1F3;transform:rotate(45deg)}
#omni-assistant[data-open="true"] .omni-assistant-label{visibility:hidden}
.omni-mascot-slot{position:relative;display:block;width:var(--mascot-hit);height:var(--mascot-hit);flex:none;isolation:isolate;pointer-events:none}
.omni-mascot-art{position:absolute;display:block;width:var(--mascot-size);height:var(--mascot-size);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.omni-mascot-art canvas{position:absolute;inset:0;width:100%;height:100%;visibility:hidden;pointer-events:none}
#omni-chat-launcher.has-webgl canvas{visibility:visible}
#omni-chat-launcher.has-webgl .omni-mascot-fallback{display:none}
.omni-mascot-shadow{position:absolute;left:28%;top:79%;width:44%;height:7%;border-radius:50%;background:radial-gradient(ellipse,rgba(60,43,117,.13),rgba(79,70,169,.07) 40%,rgba(110,104,210,.025) 62%,transparent 78%);filter:blur(var(--shadow-blur));transform:scale(var(--shadow-scale));opacity:var(--shadow-opacity)}
.omni-mascot-shadow::after{content:'';position:absolute;inset:25% 23%;border-radius:50%;background:radial-gradient(ellipse,rgba(34,23,78,.24),rgba(58,42,120,.10) 40%,transparent 74%);opacity:var(--shadow-core-opacity)}
.omni-mascot-fallback{position:absolute;width:50%;height:55%;left:25%;top:19%;border-radius:47% 49% 48% 48% / 50% 51% 45% 46%;background:radial-gradient(ellipse at 28% 22%,#f2efff 0%,#c6c9ff 10%,transparent 28%),radial-gradient(ellipse at 85% 70%,#9994ef80,transparent 45%),linear-gradient(155deg,#5A5CEA 0%,#4F46E5 45%,#4A31C8 100%);box-shadow:inset -2px -3px 6px #c5bdff80}
.omni-mascot-fallback::before,.omni-mascot-fallback::after{content:'';position:absolute;width:29%;height:17%;top:66%;z-index:-1;border-radius:50%;background:linear-gradient(155deg,#5A5CEA,#4F46E5 45%,#4A31C8)}
.omni-mascot-fallback::before{left:-18%;transform:rotate(-28deg)}
.omni-mascot-fallback::after{right:-18%;transform:rotate(28deg)}
.omni-mascot-eye{position:absolute;width:10%;height:15%;top:37%;border-radius:50%;background:radial-gradient(circle at 34% 26%,#fff 0 10%,#665875 15%,#251b39 38%,#1b142b)}
.omni-mascot-eye.left{left:31%}.omni-mascot-eye.right{right:31%}
.omni-mascot-smile{position:absolute;width:15%;height:9%;left:42.5%;top:58%;border:1.5px solid #322143;border-top:0;border-radius:0 0 50% 50%}
#omni-chat-launcher[data-state="greeting"] .omni-mascot-eye{height:8%;top:41%}
.omni-chat-panel{position:absolute;right:0;bottom:calc(var(--mascot-hit) + 12px);width:min(368px,calc(100vw - 32px));max-height:calc(100dvh - var(--mascot-hit) - 42px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;border:1px solid #E4E1F3;border-radius:24px;background:#FFFFFF;box-shadow:0 18px 60px #1B1D4A26}
.omni-chat-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #E4E1F3;background:#FFFFFF}
.omni-chat-head h2{font-size:17px;line-height:1.2;font-weight:600;letter-spacing:-.02em}
.omni-chat-head p{margin-top:5px;font:500 12px/1.4 var(--mono);color:#62658C}
.omni-chat-close{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid #E4E1F3;border-radius:50%;background:#F5F5FD;color:#1B1D4A;font:400 25px/1 var(--sans);cursor:pointer}
.omni-chat-body{padding:24px 20px 20px}
.omni-chat-greeting{font-size:29px;font-weight:500;letter-spacing:-.04em;line-height:1.1}
.omni-chat-intro{margin-top:14px;font-size:16px;color:#62658C}
.omni-chat-actions{display:grid;gap:8px;margin-top:22px}
.omni-chat-actions :is(a,button){display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;padding:12px 14px;border:1px solid #E4E1F3;border-radius:12px;background:#F5F5FD;color:#1B1D4A;text-align:left;font:500 14px/1.4 var(--sans);cursor:pointer}
.omni-chat-actions a:first-child{background:#4F46E5;color:#FFFFFF;border-color:#4F46E5}
.omni-chat-actions :is(a,button):hover{filter:brightness(.97)}
#omni-assistant :is(button,a,textarea):focus-visible{outline:2px solid #4F46E5;outline-offset:3px}
.omni-chat-draft label{display:block;margin:18px 0 7px;font-size:14px;font-weight:600}
.omni-chat-draft textarea{display:block;width:100%;min-height:80px;resize:vertical;padding:12px;border:1px solid #D5D2EC;border-radius:12px;background:#F5F5FD;color:#1B1D4A;font:400 16px/1.5 var(--sans)}
.omni-chat-note{margin-top:20px;font-size:12px;line-height:1.5;color:#62658C}
.omni-chat-scrim{display:none}
@media(max-width:700px),(max-width:1100px) and (pointer:coarse){
  #omni-assistant{--mascot-size:112px;--mascot-hit:70px;position:fixed;display:block;margin:0;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom))}
  #omni-chat-launcher{gap:0;width:70px;height:70px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none}
  .omni-assistant-label{display:none}
}
@media(max-width:700px){
  #omni-assistant[data-open="true"] #omni-chat-launcher{visibility:hidden}
  .omni-chat-scrim{display:block;position:fixed;inset:0;background:rgba(27,29,74,.42);touch-action:none;animation:omni-scrim-in .25s ease}
  /* Bottom sheet. Its bottom edge is pinned to the bottom of the visual viewport (the --chat-view vars come from
     visualViewport in omni-assistant.js), so it rides above the keyboard, and it slides up from the mascot's corner. */
  .omni-chat-panel{position:fixed;z-index:1;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:calc(var(--chat-view-top,0px) + var(--chat-view-height,100dvh) - max(8px,env(safe-area-inset-bottom)));bottom:auto;width:auto;max-height:calc(var(--chat-view-height,100dvh) - max(8px,env(safe-area-inset-bottom)) - max(16px,env(safe-area-inset-top)));border-radius:22px;transform:translateY(-100%);scroll-padding-block:92px 20px;-webkit-overflow-scrolling:touch;animation:omni-sheet-in .32s cubic-bezier(.2,.8,.2,1)}
  .omni-chat-head{padding:14px 16px}
  .omni-chat-body{padding:22px 18px calc(18px + env(safe-area-inset-bottom))}
  .omni-chat-greeting{font-size:28px}
}
@keyframes omni-sheet-in{from{transform:translateY(calc(-100% + 32px));opacity:0}to{transform:translateY(-100%);opacity:1}}
@keyframes omni-scrim-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.omni-chat-panel,.omni-chat-scrim{animation:none}}
@media(max-height:480px){.omni-chat-panel{position:fixed;top:12px;bottom:12px;right:16px;max-height:none}}
@media(max-width:700px) and (max-height:480px){.omni-chat-panel{top:calc(var(--chat-view-top,0px) + var(--chat-view-height,100dvh) - 8px);right:max(8px,env(safe-area-inset-right));bottom:auto;max-height:calc(var(--chat-view-height,100dvh) - 16px)}}
/* No mascot or chat preview on phones. */
@media(max-width:700px){#omni-assistant{display:none!important}}
