/* Original vector companion; inherits the account's Cyber, Midnight or Daylight palette. */
.ai-assistant-launcher.has-hologram{position:relative;inset:auto;z-index:auto;width:100%;min-height:0;display:flex;flex-direction:column;gap:0;padding:0 6px 10px;background:transparent;border:0;box-shadow:none;border-radius:24px;isolation:isolate}
.ai-assistant-launcher.has-hologram:hover{background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 0 24px var(--accent-soft)}
.ai-assistant-launcher.has-hologram:focus-visible{outline:2px solid var(--accent);outline-offset:4px;background:var(--surface)}
#syntra-companion[data-slot^=left]{left:18px;right:auto}
#syntra-companion[data-slot^=right]{right:18px;left:auto}
#syntra-companion[data-slot$=top]{top:115px;bottom:auto}
#syntra-companion[data-slot$=bottom]{bottom:108px;top:auto}
.syntra-hologram{width:100%;height:auto;display:block;color:var(--accent);stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;overflow:visible;filter:drop-shadow(0 0 5px var(--accent-soft))}
.companion-beam{fill:currentColor;opacity:.07;stroke:none}
.companion-shell{fill:var(--surface);fill-opacity:.95;stroke-width:2}
.companion-visor{fill:var(--surface-raised);stroke-opacity:.65}
.companion-eyes{stroke-width:4}
.companion-smile{stroke-width:2}
.companion-detail,.companion-projector{opacity:.65}
.companion-orbit{opacity:.4;transform-origin:110px 90px;transform:rotate(-20deg) scaleY(.65)}
.companion-wing{stroke-width:4;stroke-opacity:.5}
.companion-chest{fill:currentColor;stroke:none}
.companion-scan{opacity:0;stroke-width:2}
.companion-caption{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:9px 10px;width:100%;text-align:center}
.ai-assistant-launcher .companion-caption strong{font-size:14px;letter-spacing:.08em;color:var(--text)}
.ai-assistant-launcher .companion-caption small{font-size:14px;line-height:1.4;color:var(--text-secondary);white-space:normal}
.ai-hologram-avatar{width:76px;flex:0 0 76px;align-self:center}
#mascot-settings-form{display:grid;gap:12px}
#mascot-settings-form>label:not(.check-row){display:grid;gap:6px}
#mascot-settings-form>.button{justify-self:start}
[data-motion=true] .companion-body{animation:companion-hover 5s ease-in-out infinite;transform-origin:center}
[data-motion=true] .companion-beam{animation:companion-project 5s ease-in-out infinite}
[data-motion=true] .companion-eyes{animation:companion-blink 7s infinite;transform-origin:110px 88px}
[data-motion=true] .companion-sparks{animation:companion-project 4s ease-in-out infinite reverse}
[data-motion=true][data-mascot-state=thinking] .companion-orbit{animation:companion-orbit 3s linear infinite}
[data-motion=true][data-mascot-state=thinking] .companion-scan{opacity:.7;animation:companion-scan 1.6s ease-in-out infinite alternate}
[data-mascot-state=thinking] .companion-smile{opacity:0}
.companion-happy{display:none;stroke-width:3}
[data-mascot-state=reply] .companion-eyes,[data-mascot-state=saved] .companion-eyes{display:none}
[data-mascot-state=reply] .companion-happy,[data-mascot-state=saved] .companion-happy{display:inline}
[data-mascot-state=error] .companion-eyes{transform:rotate(-12deg);transform-origin:110px 88px}
[data-mascot-state=error] .companion-orbit{stroke-dasharray:3 10}
@keyframes companion-hover{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@keyframes companion-project{0%,100%{opacity:.12}50%{opacity:.3}}
@keyframes companion-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}
@keyframes companion-orbit{to{stroke-dashoffset:-164}}
@keyframes companion-scan{to{transform:translateY(26px)}}
@media(max-width:600px){
 #syntra-companion{width:106px}
 .ai-assistant-launcher.has-hologram{padding:0 3px 5px}
 #syntra-companion[data-slot$=bottom]{bottom:98px}
 #syntra-companion[data-slot^=right]{right:8px}
 #syntra-companion[data-slot^=left]{left:8px}
 .ai-assistant-launcher .companion-caption{padding:6px 3px}
 .ai-assistant-launcher .companion-caption strong{font-size:12px;letter-spacing:0}
 .ai-assistant-launcher .companion-caption small{display:none}
 .ai-hologram-avatar{width:52px;flex-basis:52px}
}
html[data-intensity=off] .syntra-hologram *,html[data-intensity=calm] .syntra-hologram *{animation:none!important}
@media(prefers-reduced-motion:reduce){.syntra-hologram *{animation:none!important}}

/* Dock, independent controls and a local command pocket. No controls inside the chat button. */
#syntra-companion{position:fixed;width:180px;z-index:1100;right:18px;bottom:108px;isolation:isolate}
#syntra-companion[hidden],.companion-menu[hidden],.companion-speech[hidden]{display:none!important}
#syntra-companion::before{content:'';position:absolute;inset:25px -10px 30px;border-radius:50%;background:radial-gradient(ellipse,var(--accent-soft),transparent 68%);pointer-events:none;opacity:.4}
.companion-controls{position:relative;display:flex;justify-content:flex-end;gap:4px;z-index:2;padding:0 6px}
.companion-controls button{border:1px solid var(--border-soft);background:var(--surface);color:var(--text-secondary);border-radius:10px;width:32px;height:32px;min-width:32px;padding:0;display:grid;place-items:center;font-size:21px;line-height:1;cursor:pointer;box-shadow:0 2px 10px #0002}
.companion-controls button:hover,.companion-controls button:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--surface-raised);outline:2px solid var(--accent-soft);outline-offset:2px}
.companion-controls .companion-grip{margin-right:auto;cursor:grab;touch-action:none}
#syntra-companion[data-dragging=true]{cursor:grabbing}
#syntra-companion[data-dragging=true] .companion-grip{cursor:grabbing;border-color:var(--accent)}
#syntra-companion[data-dragging=true] .companion-body{animation:none;transform:rotate(-8deg)}
.companion-menu,.companion-speech{position:absolute;right:calc(100% + 12px);bottom:6px;width:270px;max-width:calc(100vw - 32px);box-sizing:border-box;background:var(--surface);color:var(--text);border:1px solid var(--accent);border-radius:18px;padding:16px;box-shadow:0 12px 45px #0005;z-index:3}
.companion-menu{max-height:calc(100dvh - 230px);overflow:auto;overscroll-behavior:contain}
#syntra-companion[data-slot^=left] :is(.companion-menu,.companion-speech){left:calc(100% + 12px);right:auto}
#syntra-companion[data-slot$=top] :is(.companion-menu,.companion-speech){top:0;bottom:auto}
.companion-menu-eyebrow{font:11px/1.4 var(--font-display);letter-spacing:.12em;color:var(--accent);margin:0 0 6px}
.companion-menu>strong{display:block;font-size:19px;margin-bottom:12px}
.companion-menu button{display:block;width:100%;text-align:left;background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;color:var(--text);font:inherit;font-size:15px;line-height:1.5;margin-top:7px;cursor:pointer}
.companion-menu button:hover,.companion-menu button:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:2px solid var(--accent-soft);outline-offset:2px}
.companion-menu small{display:block;font-size:12px;color:var(--text-secondary)}
.companion-speech{margin:0;line-height:1.55;font-size:15px;pointer-events:none}
.companion-speech::before{content:'HOLOGRAM // LOKALNIE';display:block;font-size:10px;letter-spacing:.1em;color:var(--accent);margin-bottom:6px}
.companion-attitude{transform-origin:110px 90px;transform:rotate(var(--companion-lean,0deg))}
.companion-gaze{transform:translate(var(--companion-gaze-x,0px),var(--companion-gaze-y,0px))}
.companion-heart,.companion-burst{display:none}
.companion-heart{fill:var(--accent-soft);stroke-width:2}
.companion-burst{stroke-width:2;transform-origin:110px 90px;pointer-events:none}
.has-hologram:hover .companion-visor{stroke-opacity:1;stroke-width:2}
.has-hologram:hover .companion-antenna{stroke-width:2.5}
[data-motion=true] .companion-attitude,[data-motion=true] .companion-gaze{transition:transform .16s ease-out}
[data-trick=heart] .companion-heart,[data-trick=wave] .companion-happy,[data-trick=spin] .companion-happy{display:inline}
[data-trick=heart] :is(.companion-eyes,.companion-happy),[data-trick=wave] .companion-eyes,[data-trick=spin] .companion-eyes{display:none}
[data-trick=scan] .companion-scan{opacity:.8}
[data-motion=true][data-trick=wave] .companion-body{animation:companion-wave 1.4s ease-in-out 2}
[data-motion=true][data-trick=spin] .companion-body{animation:companion-flip 1.8s cubic-bezier(.35,0,.2,1) 1}
[data-motion=true][data-trick=heart] .companion-heart{animation:companion-heartbeat 1.2s ease-in-out 3;transform-origin:110px 88px}
[data-motion=true][data-trick=scan] .companion-scan{animation:companion-scan 1.2s ease-in-out 3 alternate}
[data-motion=true][data-trick=spin] .companion-burst,[data-motion=true][data-mascot-state=saved] .companion-burst{display:inline;animation:companion-celebrate 1.4s ease-out 2 both}
@keyframes companion-wave{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-9px) rotate(12deg)}65%{transform:translateY(-9px) rotate(-10deg)}}
@keyframes companion-flip{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-22px) rotate(-30deg)}75%{transform:translateY(-12px) rotate(370deg)}100%{transform:translateY(0) rotate(360deg)}}
@keyframes companion-heartbeat{0%,100%{transform:scale(1)}40%{transform:scale(1.2)}60%{transform:scale(1.05)}}
@keyframes companion-celebrate{0%{opacity:0;transform:scale(.65)}30%{opacity:.8}100%{opacity:0;transform:scale(1.2)}}
@media(max-width:600px){
 #syntra-companion{width:106px}
 .companion-controls{padding:0;gap:3px}
 .companion-controls button{width:33px;min-width:33px;height:40px;font-size:20px}
 #syntra-companion[data-slot] :is(.companion-menu,.companion-speech){bottom:calc(100% + 10px);top:auto;right:0;left:auto;width:280px;max-height:calc(100dvh - 300px)}
 #syntra-companion[data-slot^=left] :is(.companion-menu,.companion-speech){left:0;right:auto}
 .companion-menu{padding:12px}
}
html[data-intensity=off] .syntra-hologram *,html[data-intensity=calm] .syntra-hologram *{transition:none!important}
@media(prefers-reduced-motion:reduce){.syntra-hologram *{transition:none!important}}
@media(max-height:600px){
 #syntra-companion{width:120px}
 #syntra-companion[data-slot$=top]{top:82px}
 #syntra-companion[data-slot$=bottom]{bottom:88px}
 .ai-assistant-launcher .companion-caption small{display:none}
 .companion-menu{max-height:calc(100dvh - 185px)}
}

/* Companion v2: twin rotors, layered armour and readable facial expressions. */
.companion-v2{--drone-light:var(--accent);--drone-plate:var(--surface);filter:drop-shadow(0 0 7px var(--accent-soft))}
.companion-v2 .companion-shell{fill:var(--drone-plate);fill-opacity:1;stroke-width:1.8}
.companion-armour{fill:var(--surface-raised);stroke-opacity:.8}.companion-v2 .companion-detail{opacity:.8;stroke-width:.9}
.companion-v2 .companion-visor{fill:var(--surface);stroke-width:1.8;stroke-opacity:1}
.visor-reflection{fill:currentColor;fill-opacity:.09;stroke:none}
.companion-pod{stroke-width:1.1}.pod-shell{fill:var(--surface-raised)}.companion-pod ellipse{fill:var(--surface);stroke-width:1.5}.rotor{stroke-width:1.5;opacity:.8}.rotor-left{transform-origin:37px 65px}.rotor-right{transform-origin:183px 65px}
.pod-thrust{fill:currentColor;fill-opacity:.08;stroke-dasharray:2 4;stroke-opacity:.7;transform-origin:center top}
.companion-v2 .companion-wing{stroke-width:2;stroke-opacity:.9}.companion-v2 .companion-eyes{stroke-width:0}
.companion-v2 .eye-left,.companion-v2 .eye-right{fill:currentColor}.companion-v2 .companion-smile{stroke-width:2;stroke:currentColor}
.companion-v2 .companion-happy,.companion-alert{stroke-width:3}.companion-thinking,.companion-alert{display:none}.companion-thinking{fill:currentColor;stroke:none}
.companion-reactor{stroke-width:1.6;filter:drop-shadow(0 0 3px var(--accent-soft))}.companion-hull-light{stroke-width:3;opacity:.8}
[data-mascot-state=thinking] .companion-v2 :is(.companion-eyes,.companion-happy,.companion-heart){display:none}
[data-mascot-state=thinking] .companion-thinking{display:inline}
[data-mascot-state=error] .companion-v2 :is(.companion-eyes,.companion-happy,.companion-heart){display:none}
[data-mascot-state=error] .companion-alert{display:inline}
[data-mascot-state=error] .companion-v2 .companion-orbit{opacity:.8}
[data-motion=true] .companion-v2 .rotor{animation:companion-rotors 1.6s linear infinite}
[data-motion=true] .companion-v2 .rotor-right{animation-direction:reverse}
[data-motion=true] .companion-v2 .pod-thrust{animation:companion-thrust 2.5s ease-in-out infinite alternate}
[data-motion=true] .companion-v2 .companion-reactor{animation:companion-reactor 3s ease-in-out infinite}
[data-motion=true][data-mascot-state=thinking] .companion-thinking circle{animation:companion-dot 1.4s ease-in-out infinite}
[data-motion=true][data-mascot-state=thinking] .companion-thinking circle:nth-child(2){animation-delay:.2s}
[data-motion=true][data-mascot-state=thinking] .companion-thinking circle:nth-child(3){animation-delay:.4s}
[data-motion=true][data-mascot-state=reply] .companion-body{animation:companion-answer 1.2s ease-in-out 2}
[data-trick=wink] .companion-v2 .eye-right{transform:translateY(40px) scaleY(.55);transform-origin:135px 0}
[data-motion=true][data-trick=wink] .companion-v2 .companion-body{animation:companion-nod 1.6s ease-in-out 2}
[data-motion=true][data-trick=salute] .companion-v2 .pod-right{animation:companion-salute 1.6s ease-in-out 2;transform-origin:167px 84px}
[data-motion=true][data-trick=salute] .companion-v2 .companion-body{animation:companion-nod 1.6s ease-in-out 2}
[data-trick=salute] .companion-happy{display:inline}[data-trick=salute] .companion-eyes{display:none}
.ai-hologram-avatar{width:90px;flex-basis:90px}.ai-hologram-avatar .companion-projector,.ai-hologram-avatar .companion-beam,.ai-hologram-avatar .companion-sparks{opacity:.2}
.companion-controls button{width:36px;min-width:36px;height:36px}.companion-controls [data-companion-hide]{font-size:22px}
.companion-caption{border-radius:4px 4px 14px 14px;border-top-color:var(--accent);box-shadow:0 5px 25px #0001}
.companion-caption:before{content:"";width:24px;height:2px;background:var(--accent);opacity:.7}
.ai-assistant-launcher.has-hologram:hover .companion-v2 .companion-antenna{filter:drop-shadow(0 0 4px currentColor)}
@keyframes companion-rotors{to{transform:rotate(360deg)}}
@keyframes companion-thrust{to{opacity:.4;transform:translateY(3px)}}
@keyframes companion-reactor{50%{opacity:.5}}
@keyframes companion-dot{50%{opacity:.3;transform:translateY(-3px)}}
@keyframes companion-answer{50%{transform:translateY(-11px) rotate(4deg)}}
@keyframes companion-nod{30%{transform:translateY(3px) rotate(-5deg)}65%{transform:translateY(-5px) rotate(4deg)}}
@keyframes companion-salute{35%,65%{transform:rotate(-24deg) translateY(-8px)}}
@media(max-width:600px){.companion-controls button{width:33px;min-width:33px;height:40px}.ai-hologram-avatar{width:66px;flex-basis:66px}}
/* Decorative signal distortion touches the hologram only, never connection status or text. */
[data-motion=true] .companion-visor{animation:companion-signal 19s linear infinite}
@keyframes companion-signal{0%,94%,97%,100%{translate:0 0}95%{translate:2px 0}96%{translate:-2px 0}}
[data-motion=false] .syntra-hologram *{animation:none!important}

.companion-lab-link{display:block;color:var(--text);text-decoration:none;padding:12px;border:1px solid var(--border-soft);border-radius:10px;font-size:15px;min-height:44px}.companion-lab-link small{display:block;color:var(--text-secondary);font-size:13px}.companion-lab-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Shared holographic companion, enhanced progressively with a local 3D renderer. */
.syntra-ghost{position:relative;display:block;width:100%;aspect-ratio:220/240;color:#63fff4;isolation:isolate}
.syntra-ghost canvas,.ghost-fallback{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.syntra-ghost.ghost-ready>.ghost-fallback{visibility:hidden}
.ghost-smile{display:none}
[data-ghost-state="saved"] .ghost-smile,[data-ghost-state="reply"] .ghost-smile{display:block}
[data-ghost-state="thinking"] .ghost-eyes{opacity:.6}
[data-theme="midnight"] .syntra-ghost{color:#8cb8ff}
[data-theme="daylight"] .syntra-ghost{color:#007f87}
.companion-launcher>.syntra-ghost{width:100%;flex:none}
.ai-hologram-avatar>.syntra-ghost{width:76px;height:76px}
.guide-drone>.syntra-ghost{max-height:180px}
.public-drone>.syntra-ghost{max-width:360px;margin-inline:auto}
.hero-drone>.syntra-ghost{max-height:100%;height:100%}

/* A free-standing companion: the figure is the control, without a card or label. */
#syntra-companion{width:154px}
#syntra-companion::before{display:none}
#syntra-companion #ai-assistant-launcher.has-hologram,
#syntra-companion #ai-assistant-launcher.has-hologram:is(:hover,:active,:focus-visible){padding:0;gap:0;background:transparent;border:0;box-shadow:none;filter:none;clip-path:none;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}
#syntra-companion #ai-assistant-launcher.has-hologram:focus-visible{outline:2px dashed var(--accent);outline-offset:-12px}
#syntra-companion[data-dragging=true] #ai-assistant-launcher{cursor:grabbing}
#syntra-companion .companion-speech{width:260px;right:calc(100% - 8px);bottom:46%;padding:14px 17px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border-soft));border-radius:22px 22px 5px 22px;box-shadow:0 8px 28px #0003;font-size:16px;line-height:1.5}
#syntra-companion .companion-speech::before{display:none}
#syntra-companion .companion-speech::after{content:'';position:absolute;width:12px;height:12px;right:-7px;bottom:14px;background:var(--surface);border-right:1px solid var(--accent);border-top:1px solid var(--accent);transform:rotate(45deg)}
#syntra-companion[data-slot^=left] .companion-speech{left:calc(100% - 8px);right:auto;border-radius:22px 22px 22px 5px}
#syntra-companion[data-slot^=left] .companion-speech::after{left:-7px;right:auto;transform:rotate(-135deg)}
#syntra-companion .companion-menu{bottom:0;max-height:calc(100dvh - 180px);width:280px}
#syntra-companion[data-slot$=top] .companion-speech{top:28%;bottom:auto}
@media(max-width:600px){
 #syntra-companion{width:82px}
 #syntra-companion[data-slot$=bottom]{bottom:94px}
 #syntra-companion[data-slot] .companion-menu{bottom:calc(100% + 8px);top:auto;left:auto;right:0;width:min(280px,calc(100vw - 24px));max-height:calc(100dvh - 205px)}
 #syntra-companion[data-slot^=left] .companion-menu{left:0;right:auto}
 #syntra-companion[data-slot] .companion-speech{bottom:calc(100% - 4px);top:auto;right:0;left:auto;width:min(245px,calc(100vw - 24px));max-height:none;font-size:15px;border-radius:19px 19px 5px 19px}
 #syntra-companion[data-slot^=left] .companion-speech{left:0;right:auto;border-radius:19px 19px 19px 5px}
 #syntra-companion .companion-speech::after{right:25px;left:auto;bottom:-7px;border-top:0;border-bottom:1px solid var(--accent);transform:rotate(45deg)}
 #syntra-companion[data-slot^=left] .companion-speech::after{left:25px;right:auto;transform:rotate(45deg)}
}

@media(max-width:600px){#syntra-companion .companion-speech[data-bubble-side=below]::after{top:-7px;bottom:auto;border-bottom:0;border-top:1px solid var(--accent)}}

#syntra-companion .companion-menu>.companion-menu-hide{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:36px;min-width:36px;min-height:36px;height:36px;margin:0;padding:0;border-radius:50%;font-size:23px;text-align:center}
#syntra-companion .companion-menu-eyebrow,#syntra-companion .companion-menu>strong{padding-right:40px}
#syntra-companion .companion-menu button:not(.companion-menu-hide){padding:8px 12px;line-height:1.35}
#syntra-companion .companion-menu small{font-size:13px;margin-top:3px}

/* Only the face catches pointer input; transparent projection cannot cover app actions. */
#syntra-companion{pointer-events:none}
#syntra-companion .ai-assistant-launcher{pointer-events:none}
#syntra-companion .syntra-ghost{pointer-events:none}
#syntra-companion .companion-hit-target{position:absolute;inset:18% 22% 46%;border-radius:50%;pointer-events:auto;cursor:grab}
#syntra-companion :is(.companion-menu,[data-companion-drag]){pointer-events:auto}
#syntra-companion[data-dragging=true] .companion-hit-target{cursor:grabbing}
