#maestroFloat{display:none}
.maestro-q-btn{cursor:pointer;position:fixed;bottom:20px;right:20px;width:55px;height:55px;z-index:999;display:none}
.maestro-q-btn .mf-ring{position:absolute;inset:-4px;border-radius:50%;border:3px solid transparent;border-top:3px solid #f97316;border-right:3px solid #f97316;animation:mfSpin 1.5s linear infinite}
.maestro-q-btn .mf-ring2{position:absolute;inset:-8px;border-radius:50%;border:2px solid transparent;border-bottom:2px solid #fb923c;border-left:2px solid #fb923c;animation:mfSpin 2.5s linear infinite reverse}
@keyframes mfSpin{to{transform:rotate(360deg)}}
.maestro-q-btn .mf-photo{width:55px;height:55px;border-radius:50%;overflow:hidden;box-shadow:0 4px 20px rgba(249,115,22,0.5)}
.maestro-q-btn .mf-photo img{width:100%;height:100%;object-fit:cover}
.maestro-q-btn .mf-play{position:absolute;bottom:-2px;right:-2px;width:26px;height:26px;background:linear-gradient(135deg,#f97316,#ea580c);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(249,115,22,0.5);border:2px solid rgba(255,255,255,0.2)}
.maestro-q-btn .mf-play svg{width:12px;height:12px;fill:white;margin-left:1px}
.maestro-q-btn .mf-label{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;color:#f97316;font-weight:bold;letter-spacing:0.5px}
.maestro-q-btn .mf-pulse{position:absolute;inset:-12px;border-radius:50%;background:rgba(249,115,22,0.15);animation:mfPulse 2s ease-in-out infinite}
@keyframes mfPulse{0%,100%{transform:scale(1);opacity:0.4}50%{transform:scale(1.15);opacity:0}}
.m-flash{position:fixed;inset:0;background:#040d1a;z-index:1001;opacity:0;pointer-events:none}
.m-flash.active{animation:mFlash .8s ease-out}
@keyframes mFlash{0%{opacity:0}15%{opacity:1}30%{opacity:0}45%{opacity:.7}60%{opacity:0}75%{opacity:.3}100%{opacity:0}}
.m-battle{position:fixed;inset:0;z-index:1002;display:none;flex-direction:column;background:linear-gradient(180deg,#0d1117,#161b28 40%,#1e2640);overflow:hidden;height:100vh;height:100dvh}
.m-battle.active{display:flex}
.m-banner{text-align:center;padding:10px 20px 0;opacity:0}
.m-banner.show{animation:mBanIn .5s ease forwards}
@keyframes mBanIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.m-banner-label{font-family:'Press Start 2P',monospace;font-size:7px;color:#f97316;letter-spacing:2px;text-shadow:0 0 20px rgba(249,115,22,.5)}
.m-banner-title{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:4px;color:#fff}
.m-banner-title span{color:#f97316}
.m-stage{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:5px 20px;height:130px;position:relative}
.m-avatar-wrap{position:relative;transform:translateX(120vw)}
.m-avatar-wrap.slide-in{animation:mSlide .8s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes mSlide{0%{transform:translateX(120vw) scale(.5)}60%{transform:translateX(-10px) scale(1.05)}80%{transform:translateX(5px) scale(.98)}100%{transform:translateX(0) scale(1)}}
.m-avatar-wrap.idle{animation:mBr 3s ease-in-out infinite}
@keyframes mBr{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.m-avatar-wrap.talking{animation:mTk .4s ease-in-out infinite}
@keyframes mTk{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(-.5deg)}75%{transform:translateY(-2px) rotate(.5deg)}}
.m-avatar-img{width:90px;height:90px;border-radius:50%;overflow:hidden;border:3px solid #f97316;box-shadow:0 0 40px rgba(249,115,22,.3)}
.m-avatar-img img{width:100%;height:100%;object-fit:cover}
.m-avatar-img.speaking{box-shadow:0 0 40px rgba(249,115,22,.3),0 0 0 6px rgba(249,115,22,.2)}
.m-nametag{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);border:1.5px solid #f97316;border-radius:6px;padding:3px 10px;white-space:nowrap;font-family:'Press Start 2P',monospace;font-size:7px;color:#f97316}
.m-waves{position:absolute;bottom:-38px;left:50%;transform:translateX(-50%);display:none;gap:3px;align-items:flex-end;height:16px}
.m-waves.active{display:flex}
.m-wave-bar{width:3px;background:#f97316;border-radius:2px;animation:mW .8s ease-in-out infinite}
.m-wave-bar:nth-child(1){height:5px}.m-wave-bar:nth-child(2){height:10px;animation-delay:.1s}.m-wave-bar:nth-child(3){height:16px;animation-delay:.2s}.m-wave-bar:nth-child(4){height:10px;animation-delay:.3s}.m-wave-bar:nth-child(5){height:5px;animation-delay:.4s}
@keyframes mW{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
.m-chat-area{flex:1;overflow-y:auto;padding:10px 16px;display:flex;flex-direction:column;gap:10px}
.m-msg{display:flex;gap:8px;max-width:90%;animation:mMI .3s ease}
@keyframes mMI{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.m-msg.user{align-self:flex-end;flex-direction:row-reverse}
.m-msg-avatar{width:28px;height:28px;border-radius:8px;flex-shrink:0;overflow:hidden}
.m-msg-avatar img{width:100%;height:100%;object-fit:cover}
.m-msg-bubble{padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.5}
.m-msg.assistant .m-msg-bubble{background:#1a1a2e;border:1px solid rgba(249,115,22,.3);color:#f1f3f7;border-bottom-left-radius:4px}
.m-msg.user .m-msg-bubble{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-bottom-right-radius:4px}
.m-msg-bubble strong{color:#f97316}
.m-msg-bubble code{background:rgba(249,115,22,.15);color:#f97316;padding:1px 5px;border-radius:3px;font-size:12px;font-family:monospace}
.m-typing{display:flex;gap:8px;max-width:90%}
.m-typing-dots{background:#1a1a2e;border:1px solid rgba(249,115,22,.3);border-radius:14px;padding:12px 18px;display:flex;gap:4px}
.m-typing-dots span{width:6px;height:6px;border-radius:50%;background:#f97316;animation:mTy 1.4s ease-in-out infinite}
.m-typing-dots span:nth-child(2){animation-delay:.2s}.m-typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes mTy{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-5px);opacity:1}}
.m-input-area{padding:10px 16px 16px;background:rgba(10,12,16,.95);border-top:1px solid rgba(249,115,22,.2);position:sticky;bottom:0;z-index:10}
.m-input-wrap{display:flex;gap:8px;align-items:center}
.m-input{flex:1;background:#1c2130;border:1.5px solid rgba(249,115,22,.3);border-radius:12px;padding:10px 14px;color:#f1f3f7;font-size:14px;resize:none;outline:none;min-height:42px;max-height:100px;line-height:1.4}
.m-input::placeholder{color:#5a6478}
.m-input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.15)}
.m-send{width:42px;height:42px;border-radius:12px;border:none;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.m-send:disabled{opacity:.4}
.m-close-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:rgba(10,12,16,.95)}
.m-close-btn{background:none;border:1px solid rgba(255,255,255,.2);color:#ccc;padding:6px 16px;border-radius:8px;font-size:13px;cursor:pointer}
.m-close-btn:hover{border-color:#f97316;color:#f97316}
.m-powered{font-size:9px;color:#5a6478}.m-powered span{color:#f97316}
@media(max-width:600px){.m-avatar-img{width:70px;height:70px}.m-banner-title{font-size:20px}.m-banner-label{font-size:6px}.m-stage{height:100px;padding:2px 10px}.m-banner{padding:6px 10px 0}.m-close-bar{padding:4px 10px}.maestro-q-btn{width:48px;height:48px;bottom:15px;right:15px}.maestro-q-btn .mf-photo{width:48px;height:48px}.mf-play{width:20px!important;height:20px!important}.mf-play svg{width:10px!important;height:10px!important}.mf-label{font-size:7px!important}.m-input{font-size:16px}}
