.grimoni-chat{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:900;
  font-family:var(--sans,"Manrope",sans-serif);
  color:var(--ink,#f3f7fb);
}
.grimoni-chat button,.grimoni-chat textarea{font:inherit}
.grimoni-chat__toggle{
  min-width:60px;
  height:60px;
  padding:0 18px 0 10px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line-bright,#3b5d7d);
  background:var(--panel,#0c1825);
  color:var(--ink,#f3f7fb);
  box-shadow:0 18px 52px rgba(0,0,0,.34);
  cursor:pointer;
  transition:border-color .2s,transform .2s,background .2s;
}
.grimoni-chat__toggle:hover,.grimoni-chat__toggle:focus-visible{border-color:var(--acid,#3bb7ff);transform:translateY(-2px)}
.grimoni-chat__toggle-mark{
  width:40px;height:40px;display:grid;place-items:center;
  background:var(--acid,#3bb7ff);color:#061423;font-weight:800;font-size:21px;
}
.grimoni-chat__toggle-label{font-size:13px;font-weight:700;white-space:nowrap}
.grimoni-chat.is-open .grimoni-chat__toggle-label{display:none}
.grimoni-chat.is-open .grimoni-chat__toggle{min-width:60px;padding-right:10px}
.grimoni-chat__panel{
  position:absolute;
  right:0;
  bottom:72px;
  width:min(390px,calc(100vw - 32px));
  height:min(650px,calc(100svh - 120px));
  min-height:430px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto auto auto;
  border:1px solid var(--line-bright,#3b5d7d);
  background:rgba(7,14,25,.98);
  box-shadow:0 28px 90px rgba(0,0,0,.48);
  overflow:hidden;
}
.grimoni-chat__panel[hidden]{display:none}
.grimoni-chat__header{
  min-height:72px;padding:14px 15px 13px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--line,#22364c);background:var(--panel,#0c1825)
}
.grimoni-chat__header h2{font-size:16px;line-height:1.2;letter-spacing:-.01em;margin:0}
.grimoni-chat__header p{margin:4px 0 0;color:var(--muted,#a7b6c6);font:400 9px/1.2 var(--mono,"IBM Plex Mono",monospace);letter-spacing:.06em;text-transform:uppercase}
.grimoni-chat__header-actions{display:flex;gap:5px}
.grimoni-chat__icon-button{
  width:36px;height:36px;border:1px solid var(--line,#22364c);background:transparent;color:var(--ink,#f3f7fb);cursor:pointer;font-size:20px;line-height:1
}
.grimoni-chat__icon-button:hover,.grimoni-chat__icon-button:focus-visible{border-color:var(--acid,#3bb7ff);color:var(--acid,#3bb7ff)}
.grimoni-chat__messages{overflow-y:auto;overscroll-behavior:contain;padding:18px;scrollbar-color:var(--line-bright,#3b5d7d) transparent}
.grimoni-chat__message{max-width:88%;margin:0 0 15px}
.grimoni-chat__message--user{margin-left:auto}
.grimoni-chat__speaker{display:block;margin-bottom:5px;color:var(--acid,#3bb7ff);font:500 9px/1 var(--mono,"IBM Plex Mono",monospace);letter-spacing:.1em;text-transform:uppercase}
.grimoni-chat__message--user .grimoni-chat__speaker{text-align:right;color:var(--muted,#a7b6c6)}
.grimoni-chat__content{
  margin:0;padding:11px 13px;border:1px solid var(--line,#22364c);background:var(--panel,#0c1825);color:#dce7f1;
  font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere
}
.grimoni-chat__message--user .grimoni-chat__content{background:#102a3f;border-color:#27567a;color:#f1f7fb}
.grimoni-chat__content:empty:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acid,#3bb7ff);box-shadow:12px 0 var(--acid,#3bb7ff),24px 0 var(--acid,#3bb7ff);animation:grimoni-chat-thinking 1s infinite ease-in-out;margin:0 24px 2px 0}
.grimoni-chat__content a{color:var(--acid-soft,#a6ddff);text-decoration:underline;text-underline-offset:3px}
.grimoni-chat__status{min-height:20px;margin:0;padding:0 18px 8px;color:var(--muted,#a7b6c6);font:400 10px/1.35 var(--mono,"IBM Plex Mono",monospace)}
.grimoni-chat__turnstile:empty{display:none}
.grimoni-chat__turnstile:not(:empty){padding:0 18px 8px;display:flex;justify-content:center}
.grimoni-chat__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-top:1px solid var(--line,#22364c)}
.grimoni-chat__human{border:0;background:transparent;color:var(--acid,#3bb7ff);padding:4px 0;cursor:pointer;font-size:12px;font-weight:700;text-align:left}
.grimoni-chat__actions a{color:var(--muted,#a7b6c6);font-size:10px;text-decoration:underline;text-underline-offset:3px}
.grimoni-chat__form{padding:12px;border-top:1px solid var(--line,#22364c);background:#08111c}
.grimoni-chat__input{width:100%;min-height:62px;max-height:140px;resize:vertical;border:1px solid var(--line-bright,#3b5d7d);background:#060d16;color:var(--ink,#f3f7fb);padding:10px 11px;font-size:13px;line-height:1.45;outline:none}
.grimoni-chat__input:focus{border-color:var(--acid,#3bb7ff);box-shadow:0 0 0 2px rgba(59,183,255,.12)}
.grimoni-chat__input::placeholder{color:#708499}
.grimoni-chat__form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.grimoni-chat__send,.grimoni-chat__stop{min-height:36px;padding:8px 13px;border:1px solid var(--acid,#3bb7ff);cursor:pointer;font-size:11px;font-weight:800}
.grimoni-chat__send{background:var(--acid,#3bb7ff);color:#061423}
.grimoni-chat__stop{background:transparent;color:var(--acid,#3bb7ff)}
.grimoni-chat button:disabled,.grimoni-chat textarea:disabled{opacity:.55;cursor:not-allowed}
.grimoni-chat button:focus-visible,.grimoni-chat a:focus-visible,.grimoni-chat textarea:focus-visible{outline:2px solid var(--acid-soft,#a6ddff);outline-offset:2px}
@keyframes grimoni-chat-thinking{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
@media(max-width:620px){
  .grimoni-chat{right:14px;bottom:14px}
  .grimoni-chat__toggle{height:56px;min-width:56px;padding-left:8px;padding-right:14px}
  .grimoni-chat__toggle-mark{width:38px;height:38px}
  .grimoni-chat__panel{position:fixed;inset:12px 12px 80px;width:auto;height:auto;min-height:0}
}
@media(prefers-reduced-motion:reduce){.grimoni-chat__toggle,.grimoni-chat__content:empty:after{transition:none;animation:none}}
