/* Black River v49 — call join reliability, real call app dock, resizable DM rail, cursor hide. */

/* Desktop DM rail can be resized exactly like the call/chat split. */
@media (min-width:761px){
  html body.river-chat .chat-shell.river-workspace{--dm-sidebar-width:252px!important}
  html body.river-chat .chat-shell.river-workspace .chat-sidebar{
    width:var(--dm-sidebar-width)!important;
    min-width:190px!important;
    max-width:420px!important;
  }
  html body.river-chat .chat-shell.river-workspace .conversation{
    left:var(--dm-sidebar-width)!important;
    inset-inline-start:var(--dm-sidebar-width)!important;
    width:calc(100% - var(--dm-sidebar-width))!important;
  }
  html body.river-chat .chat-sidebar-resize{
    position:absolute!important;
    z-index:60!important;
    top:0!important;
    bottom:0!important;
    left:calc(var(--dm-sidebar-width) - 4px)!important;
    width:8px!important;
    display:block!important;
    cursor:col-resize!important;
    touch-action:none!important;
    background:transparent!important;
  }
  html body.river-chat .chat-sidebar-resize::after{
    content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background:transparent;transition:background .14s ease
  }
  html body.river-chat .chat-sidebar-resize:hover::after,
  html body.river-chat.sidebar-resizing .chat-sidebar-resize::after{background:#5865f2}
  html body.river-chat.sidebar-resizing,html body.river-chat.sidebar-resizing *{cursor:col-resize!important;user-select:none!important}
}
@media (max-width:760px){html body.river-chat .chat-sidebar-resize{display:none!important}}

/* Apps is a real call dock, not just a shortcut to the soundboard. */
html body.river-chat .group-call-app-dock{
  position:absolute!important;
  z-index:90!important;
  left:50%!important;
  bottom:82px!important;
  transform:translateX(-50%)!important;
  width:min(620px,calc(100% - 28px))!important;
  max-height:min(520px,calc(100% - 110px))!important;
  overflow:auto!important;
  padding:14px!important;
  border:1px solid #ffffff18!important;
  border-radius:16px!important;
  background:#111214f7!important;
  box-shadow:0 18px 70px #000b!important;
  backdrop-filter:blur(18px)!important;
}
html body.river-chat .group-call-app-dock[hidden]{display:none!important}
html body.river-chat .group-call-app-dock>header{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:10px!important;padding:0 2px!important}
html body.river-chat .group-call-app-dock>header strong{font-size:13px!important}
html body.river-chat .group-call-app-dock>header button{width:30px!important;height:30px!important;border:0!important;border-radius:9px!important;background:#ffffff0b!important;color:#c7c9ce!important;display:grid!important;place-items:center!important}
html body.river-chat .group-call-app-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
html body.river-chat .group-call-app-grid>button{display:flex!important;align-items:center!important;gap:10px!important;min-height:72px!important;padding:11px 12px!important;text-align:left!important;border:1px solid #ffffff10!important;border-radius:12px!important;background:#1b1d22!important;color:#f2f3f5!important}
html body.river-chat .group-call-app-grid>button:hover{background:#23262d!important;border-color:#5865f277!important;transform:translateY(-1px)}
html body.river-chat .group-call-app-grid>button>svg{width:21px!important;height:21px!important;color:#b5bac1!important;flex:0 0 auto!important}
html body.river-chat .group-call-app-grid>button span{display:grid!important;gap:2px!important}
html body.river-chat .group-call-app-grid>button strong{font-size:12px!important}
html body.river-chat .group-call-app-grid>button small{font-size:9px!important;color:#949ba4!important;font-weight:500!important}
html body.river-chat #groupSounds.active{background:#5865f2!important;color:#fff!important}
@media (max-width:700px){html body.river-chat .group-call-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* In true fullscreen/theater mode the pointer and every descendant cursor vanish after idle. */
html.arnie-cursor-hidden,html.arnie-cursor-hidden body,html.arnie-cursor-hidden body *,
html body.river-chat .arnie-call-tile.cursor-hidden,html body.river-chat .arnie-call-tile.cursor-hidden *{
  cursor:none!important;
}
html body.river-chat .arnie-call-tile.cursor-hidden.arnie-theater .arnie-titlebar,
html body.river-chat .arnie-call-tile.cursor-hidden.arnie-theater .arnie-player-controls,
html body.river-chat .arnie-call-tile.cursor-hidden:fullscreen .arnie-titlebar,
html body.river-chat .arnie-call-tile.cursor-hidden:fullscreen .arnie-player-controls{
  opacity:0!important;pointer-events:none!important
}

/* Joining state stays readable while signaling retries happen. */
html body.river-chat .group-call-status-pill{pointer-events:none!important;max-width:min(70%,440px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* v49 hotfix B — compact typing bubble + coloring quality-of-life */
html body.river-chat #typingIndicator{
  position:absolute!important;
  left:20px!important;
  bottom:104px!important;
  z-index:8!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:max-content!important;
  max-width:min(440px,calc(100% - 40px))!important;
  min-height:0!important;
  height:auto!important;
  padding:6px 11px!important;
  border:1px solid #ffffff14!important;
  border-radius:999px!important;
  background:#111214ef!important;
  box-shadow:0 8px 28px #0006!important;
  backdrop-filter:blur(14px)!important;
  pointer-events:none!important;
}
html body.river-chat #typingIndicator:empty{
  display:none!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  height:0!important;
  min-height:0!important;
}
html body.river-chat #typingIndicator .avatar{width:22px!important;height:22px!important;min-width:22px!important}
html body.river-chat #typingIndicator span{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
html body.river-chat #typingIndicator .typing-dots{margin-left:0!important;letter-spacing:2px!important}
@media (max-width:760px){
  html body.river-chat #typingIndicator{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:calc(100% - 24px)!important;
    bottom:96px!important;
  }
}

.coloring-stage{touch-action:none!important}
.coloring-stage .coloring-paper{transition:transform .08s ease-out}
.coloring-stage.panning .coloring-paper{transition:none}

/* v54 local-only volume popup */
.local-volume-menu{position:fixed!important;z-index:10050!important;width:270px!important;padding:12px!important;border:1px solid #ffffff18!important;border-radius:13px!important;background:#111214f8!important;color:#f2f3f5!important;box-shadow:0 18px 60px #000b!important;backdrop-filter:blur(16px)!important}
.local-volume-menu header{display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center!important;gap:8px!important;margin-bottom:10px!important}.local-volume-menu header svg{width:17px!important;height:17px!important;color:#b5bac1!important}.local-volume-menu header strong{font-size:12px!important}.local-volume-menu output{font-size:10px!important;color:#b5bac1!important}.local-volume-menu input[type=range]{appearance:none!important;-webkit-appearance:none!important;width:100%!important;height:20px!important;background:transparent!important}.local-volume-menu input[type=range]::-webkit-slider-runnable-track{height:6px!important;border-radius:99px!important;background:linear-gradient(90deg,#5865f2 var(--range-progress,100%),#4e5058 var(--range-progress,100%))!important}.local-volume-menu input[type=range]::-webkit-slider-thumb{-webkit-appearance:none!important;width:16px!important;height:16px!important;border-radius:50%!important;background:#fff!important;border:2px solid #5865f2!important;margin-top:-5px!important}.local-volume-menu input[type=range]::-moz-range-track{height:6px!important;border-radius:99px!important;background:#4e5058!important}.local-volume-menu input[type=range]::-moz-range-progress{height:6px!important;border-radius:99px!important;background:#5865f2!important}.local-volume-menu input[type=range]::-moz-range-thumb{width:16px!important;height:16px!important;border-radius:50%!important;background:#fff!important;border:2px solid #5865f2!important}.local-volume-actions{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px!important;margin-top:8px!important}.local-volume-actions button{height:30px!important;border:1px solid #ffffff12!important;border-radius:8px!important;background:#1e1f22!important;color:#ddd!important;font-size:10px!important}.local-volume-menu small{display:block!important;margin-top:8px!important;color:#949ba4!important;font-size:9px!important}

/* v54 group capture tools */
.group-card-capture{position:absolute!important;left:10px!important;top:10px!important;z-index:8!important;display:flex!important;gap:6px!important;opacity:0!important;transition:opacity .15s ease!important}.group-call-card:hover .group-card-capture,.group-call-card:focus-within .group-card-capture{opacity:1!important}.group-card-capture button{width:32px!important;height:32px!important;border:1px solid #ffffff18!important;border-radius:9px!important;background:#111214dc!important;color:#fff!important;display:grid!important;place-items:center!important}.group-card-capture button:hover{background:#2b2d31!important}.group-card-capture svg{width:15px!important;height:15px!important}
.group-call-card:not(.video-connected)>.group-card-capture{display:none!important}
#callPanel .remote-capture-tools{display:flex!important;visibility:visible!important}
