/* NVideo Bookshelf v0.2.7: collapsed until the pointer touches viewport top. */
.nvideo-hover-toolbar {
  position: sticky;
  /* .main has a top padding (24px desktop / 18px mobile).
   * A sticky child otherwise sticks BELOW that padding, exposing cover art
   * as a horizontal strip above the revealed toolbar.
   * JS reads the real computed padding to handle user/custom themes. */
  top: calc(-1 * var(--nvideo-toolbar-main-pad, 24px));
  z-index: 600;
  display: flow-root;
  background: #0c1018;
  transform: translateY(0);
  transition: transform .18s ease, box-shadow .18s ease;
  will-change: transform;
}
.nvideo-hover-toolbar.nvideo-toolbar-detached {
  transform: translateY(calc(-100% - 3px));
  pointer-events: none;
}
.nvideo-hover-toolbar.nvideo-toolbar-detached.nvideo-toolbar-revealed {
  transform: translateY(0);
  pointer-events: auto;
  box-shadow: 0 16px 26px rgba(0,0,0,.66), 0 1px 0 #34445a;
  border-radius: 0 0 10px 10px;
}
.nvideo-toolbar-edge[hidden],
.nvideo-toolbar-handle[hidden] { display: none !important; }
.nvideo-toolbar-edge {
  position: fixed;
  top: 0;
  right: 0;
  height: 13px;
  z-index: 601;
  background: transparent;
}
.nvideo-toolbar-handle {
  position: fixed;
  top: 0;
  right: 28px;
  z-index: 602;
  background: #28528a;
  color: #fff;
  border: 1px solid #6d9ed1;
  border-top: 0;
  border-radius: 0 0 9px 9px;
  padding: 4px 14px 6px;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
}
.nvideo-toolbar-handle:hover { background: #3969a6; }
@media (max-width:700px) {
  .nvideo-toolbar-handle {right: 12px; font-size: 12px; padding: 5px 12px;}
  .nvideo-hover-toolbar.nvideo-toolbar-revealed { max-height: min(84dvh, 580px); overflow-y: auto; overscroll-behavior: contain; }
}
@media (prefers-reduced-motion: reduce) {
  .nvideo-hover-toolbar { transition: none; }
}
