.mira-root{
  --mira-primary:#061f4b;
  --mira-accent:#6ca125;
  --mira-navy:var(--mira-primary);
  --mira-navy-2:#0b315f;
  --mira-gold:var(--mira-accent);
  --mira-gold-soft:#91bd55;
  --mira-cream:#ffffff;
  --mira-text:#061f4b;
  font-family:"Poppins",Arial,sans-serif;
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:99999;
  color:var(--mira-text)
}
.mira-root *{box-sizing:border-box}
.mira-panel[hidden],.mira-launch[hidden]{display:none!important}
.mira-launch{
  width:72px;height:72px;border-radius:50%;border:2px solid var(--mira-gold);
  background:var(--mira-navy);color:#fff;display:grid;place-items:center;
  box-shadow:0 18px 42px rgba(8,20,34,.34);cursor:pointer;position:relative;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease
}
.mira-launch:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 48px rgba(8,20,34,.42);background:var(--mira-navy-2)}
.mira-launch:focus-visible,.mira-close:focus-visible,.mira-form button:focus-visible,.mira-quick button:focus-visible,.mira-speak:focus-visible,.mira-contact-btn:focus-visible{outline:3px solid rgba(108,161,37,.34);outline-offset:3px}
.mira-launch-mark{font-size:14px;font-weight:700;letter-spacing:.09em}
.mira-launch::after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.22);border-radius:50%}
.mira-panel{
  width:min(410px,calc(100vw - 24px));height:min(690px,calc(100vh - 48px));
  background:var(--mira-cream);border-radius:18px;border:1px solid rgba(108,161,37,.6);
  box-shadow:0 28px 80px rgba(7,19,33,.34);overflow:hidden;display:flex;flex-direction:column;
  animation:miraOpen .24s ease-out
}
@keyframes miraOpen{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.mira-panel header{
  background:linear-gradient(135deg,var(--mira-navy),#0b315f);color:#fff;padding:15px 16px;
  display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--mira-gold)
}
.mira-brand{display:flex;align-items:center;gap:12px;min-width:0}
.mira-brand-mark{width:42px;height:42px;border:2px solid var(--mira-gold);border-radius:50%;display:grid;place-items:center;color:var(--mira-gold-soft);font-weight:700;font-size:14px;letter-spacing:.05em;flex:0 0 auto}
.mira-brand-copy{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.mira-brand-copy strong{font-size:15px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mira-brand-copy span{font-size:12px;color:rgba(255,255,255,.76);margin-top:2px}
.mira-close{background:none;border:0;color:#fff;font-size:25px;cursor:pointer;width:38px;height:38px;border-radius:50%;transition:background .18s ease}
.mira-close:hover{background:rgba(255,255,255,.09)}
.mira-messages{padding:16px;overflow:auto;flex:1;min-height:0;background:linear-gradient(180deg,#fff 0%,#f5f7f2 100%);scrollbar-width:thin;scrollbar-color:rgba(108,161,37,.45) transparent}
.mira-msg{margin:0 0 13px;display:flex;flex-direction:column;align-items:flex-start}
.mira-msg>div,.mira-msg.waiting{padding:11px 13px;border-radius:15px;max-width:88%;line-height:1.5;font-size:14px;white-space:pre-line;box-shadow:0 5px 15px rgba(9,25,43,.06)}
.mira-msg.assistant>div,.mira-msg.waiting{background:#fff;border:1px solid rgba(108,161,37,.32);border-left:3px solid var(--mira-gold);border-radius:5px 15px 15px 15px}
.mira-msg.user{align-items:flex-end}.mira-msg.user>div{background:var(--mira-navy);color:#fff;border:1px solid var(--mira-gold);border-radius:15px 5px 15px 15px}
.mira-msg.waiting{color:#6c7480;position:relative;padding-left:34px}.mira-msg.waiting::before{content:"";position:absolute;left:13px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--mira-gold);animation:miraPulse 1s infinite ease-in-out}
@keyframes miraPulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
.mira-speak{font-size:12px;border:0;background:none;color:var(--mira-navy);cursor:pointer;margin-top:5px;padding:3px 4px;font-weight:600}
.mira-speak:hover{color:var(--mira-gold)}
.mira-quick{padding:12px 14px 8px;display:grid;grid-template-columns:1fr 1fr;gap:7px;background:var(--mira-cream);border-top:1px solid rgba(108,161,37,.22);max-height:190px;overflow-y:auto}
.mira-quick button,.mira-contact-btn{border:1px solid var(--mira-gold);background:#fff;color:var(--mira-navy);border-radius:11px;padding:10px 12px;cursor:pointer;font-size:12.5px;line-height:1.4;text-align:left;white-space:normal;overflow-wrap:anywhere;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.mira-quick button:hover,.mira-contact-btn:hover{background:var(--mira-navy);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px rgba(9,25,43,.13)}
.mira-contact-btn{margin:0 0 12px 0;align-self:flex-start;font-weight:600}
.mira-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(108,161,37,.25);background:#fff;align-items:center}
.mira-form textarea{flex:1;resize:none;border:1px solid #d7deea;border-radius:22px;padding:11px 15px;min-height:44px;max-height:92px;font:inherit;font-size:14px;background:#fff;color:var(--mira-text);outline:none;transition:border-color .18s ease,box-shadow .18s ease}
.mira-form textarea:focus{border-color:var(--mira-gold);box-shadow:0 0 0 3px rgba(108,161,37,.14)}
.mira-form button,.mira-contact button{border:0;background:var(--mira-gold);color:#fff;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;padding:0;cursor:pointer;font-size:19px;font-weight:700;transition:background .18s ease,transform .18s ease}
.mira-form button:hover,.mira-contact button:hover{background:#5c8d1c;transform:translateY(-1px)}
.mira-form button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.mira-panel>small{padding:0 14px 12px;color:#7b7d81;background:#fff;font-size:10.5px;line-height:1.45}
.mira-contact{background:#fff;border:1px solid rgba(108,161,37,.34);border-left:3px solid var(--mira-gold);border-radius:12px;padding:12px;display:grid;gap:8px;max-width:94%;box-shadow:0 8px 20px rgba(9,25,43,.07)}
.mira-contact input,.mira-contact textarea{padding:9px 10px;border:1px solid #d7deea;border-radius:8px;font:inherit;font-size:13px}.mira-contact textarea{min-height:72px;resize:vertical}.mira-contact label{font-size:11px;line-height:1.4}.mira-contact button{width:auto;height:auto;border-radius:8px;padding:9px 13px;font-size:13px}
@media(max-width:500px){
  .mira-root{
    right:max(12px,env(safe-area-inset-right));
    bottom:max(12px,env(safe-area-inset-bottom))
  }
  .mira-panel{
    position:fixed;
    inset:0;
    width:100%;
    max-width:none;
    height:100vh;
    height:100dvh;
    max-height:none;
    border:0;
    border-radius:0
  }
  .mira-panel header{
    flex:0 0 auto;
    padding:calc(11px + env(safe-area-inset-top)) 12px 11px
  }
  .mira-brand{gap:9px}
  .mira-brand-mark{width:38px;height:38px;font-size:12px}
  .mira-brand-copy strong{font-size:14px}
  .mira-brand-copy span{font-size:11px}
  .mira-close{width:44px;height:44px;flex:0 0 auto}
  .mira-messages{padding:12px}
  .mira-msg{margin-bottom:10px}
  .mira-msg>div,.mira-msg.waiting{max-width:94%;font-size:13.5px}
  .mira-quick{
    grid-template-columns:1fr;
    max-height:142px;
    padding:8px 10px 6px;
    gap:6px;
    flex:0 0 auto
  }
  .mira-quick button{padding:8px 10px;font-size:12px}
  .mira-form{padding:9px 10px;flex:0 0 auto}
  .mira-form textarea{font-size:16px;min-height:44px;padding:10px 14px}
  .mira-panel>small{
    padding:0 10px calc(8px + env(safe-area-inset-bottom));
    font-size:9.5px;
    flex:0 0 auto
  }
  .mira-launch{width:64px;height:64px}
}
@media(max-width:500px) and (max-height:560px){
  .mira-quick{max-height:98px}
  .mira-panel>small{display:none}
}
@media(prefers-reduced-motion:reduce){.mira-panel,.mira-launch,.mira-quick button,.mira-contact-btn{animation:none;transition:none}}
