/* Overlay: shared floating controls */ .tiptap-toolbar { /* z-index needs a positioned element to take effect; the BubbleMenu mounts us inline (not via FloatingPortal), so without this the toolbar stacks below positioned table affordances like .column-resize-handle. */ position: relative; z-index: 40; display: flex; align-items: center; gap: 2px; padding: 4px; /* Clamp to viewport so narrow screens get horizontal scroll instead of clipping trailing buttons. 20px matches the BubbleMenu shift padding. */ max-width: calc(100vw - 20px); overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; background-color: var(--color-overlay-surface); border-radius: 0.75rem; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.4), 0 16px 32px -12px rgba(0, 0, 0, 0.55), 0 4px 8px -4px rgba(0, 0, 0, 0.4); animation: var(--animate-menu); transform-origin: top center; } .tiptap-toolbar::-webkit-scrollbar { display: none; } .tiptap-toolbar button { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 32px; height: 32px; color: var(--color-zinc-300); border-radius: 0.5rem; transition: background-color 75ms; } .tiptap-toolbar button:hover:not(:disabled) { background-color: var(--color-zinc-600); color: var(--color-zinc-100); } .tiptap-toolbar button:disabled { opacity: 0.4; cursor: not-allowed; } .tiptap-toolbar button.is-active { background-color: color-mix(in srgb, var(--color-accent-500) 14%, transparent); color: var(--color-accent-400); } .tiptap-toolbar-sep { width: 1px; height: 20px; background-color: var(--color-zinc-600); margin: 0 2px; flex-shrink: 0; } .tiptap-image-toolbar { width: 256px; flex-direction: column; align-items: stretch; } .tiptap-image-toolbar-actions { display: flex; align-items: center; justify-content: center; gap: 2px; } .tiptap-image-brightness { margin-top: 4px; padding: 4px 8px; border-top: 1px solid var(--color-zinc-600); color: var(--color-zinc-300); font-size: 0.8125rem; } .tiptap-image-brightness-label { display: flex; align-items: center; gap: 8px; } .tiptap-image-brightness-label label { flex: 1; } .tiptap-image-brightness-label output { font-variant-numeric: tabular-nums; } .tiptap-image-brightness input[type="range"] { display: block; width: 100%; height: 24px; accent-color: var(--color-accent-400); cursor: pointer; } .tiptap-link-input { width: 200px; padding: 4px 8px; font-size: 0.8125rem; color: var(--color-zinc-300); background-color: var(--color-zinc-800); border: 1px solid var(--color-zinc-600); border-radius: 0.375rem; outline: none; } .tiptap-link-input:focus { border-color: var(--color-accent-500); } .tiptap-inline-action { display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; color: var(--color-zinc-300); background-color: var(--color-zinc-700); border: 1px solid var(--color-zinc-700); border-radius: 0.375rem; font-size: 0.8125rem; white-space: nowrap; transition: background-color 75ms, border-color 75ms, color 75ms; } .tiptap-inline-action:hover { background-color: var(--color-zinc-700); border-color: var(--color-zinc-600); color: var(--color-zinc-100); }