.cj-service-dock {
  position: fixed;
  right: env(safe-area-inset-right, 0px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 80;
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  border-radius: 8px 0 0 8px;
  background: #292d2b;
  color: #faf9f6;
  box-shadow: 0 5px 18px rgb(0 0 0 / 14%);
  font-family: var(--cj-sans, sans-serif);
  font-size: 12px;
  line-height: 1.35;
  letter-spacing: 0;
}
.cj-service-dock__details { margin: 0; border: 0; padding: 0; }
.cj-service-dock__details summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 44px;
  width: 84px;
  box-sizing: border-box;
  padding: 10px 6px;
  list-style: none;
  cursor: pointer;
  color: inherit;
  font-weight: 600;
}
.cj-service-dock__details summary::-webkit-details-marker { display: none; }
.cj-service-dock__toggle-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background: currentColor;
  mask: url('../icons/lucide/plus.svg') center / contain no-repeat;
}
.cj-service-dock__details[open] .cj-service-dock__toggle-icon { mask-image: url('../icons/lucide/minus.svg'); }
.cj-service-dock__links a {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 84px;
  min-height: 64px;
  padding: 10px 5px;
  border-top: 1px solid #4b504c;
  color: #faf9f6;
  text-decoration: none;
  text-align: center;
  overflow-wrap: anywhere;
  transition: color 200ms ease-out, background-color 200ms ease-out;
}
.cj-service-dock__links a img { display: block; width: 22px; height: 22px; filter: brightness(0) invert(1); }
.cj-service-dock a:hover,
.cj-service-dock summary:hover { background: #3b403c; color: #f0c077; }
.cj-service-dock a:focus-visible,
.cj-service-dock summary:focus-visible { outline: 2px solid #f0c077; outline-offset: -4px; background: #3b403c; }
.cj-service-dock__details[open] .cj-service-dock__links { animation: cj-dock-reveal 220ms ease-out; }
.cj-service-dock.is-editing { visibility: hidden; }
@keyframes cj-dock-reveal { from { opacity: 0; transform: translateX(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
  .cj-service-dock__details:not([open]) summary { width: 48px; flex-direction: column; font-size: 10px; padding: 8px 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .cj-service-dock__details[open] .cj-service-dock__links { animation: none; }
  .cj-service-dock__links a { transition: none; }
}
@media print { .cj-service-dock { display: none; } }
