/**
 * @package   plg_editors_sismostiptapeditor  v1.0.0
 * @copyright   (C) 2025, SimplySmart-IT - Martina Scholz <https://simplysmart-it.de>. All rights reserved.
 */

@charset "UTF-8";
.js-preset-dnd-zone,
sismos-editor-tiptapeditor {
  --tt-toolbar-height:44px;
  --tt-min-height:200px;
  --tt-radius-sm:3px;
  --tt-radius:4px;
  --tt-radius-lg:6px;
  --tt-radius-dialog:8px;
  --tt-shadow:0 2px 8px rgb(0 0 0 / 8%);
  --tt-shadow-lg:0 4px 12px rgb(0 0 0 / 12%);
  --tt-shadow-dialog:0 8px 30px rgb(0 0 0 / 20%);
  --tt-z-toolbar:10;
  --tt-z-popup:100;
  --tt-z-modal:1055;
  --tt-transition:0.15s;
  --tt-transition-fast:0.1s;
  --tt-line-height:1.6;
  --tt-font-size-ui:0.85rem;
  --tt-font-size-sm:0.75rem;
  --tt-font-size-count:0.78rem;
  --tt-h1:1.75rem;
  --tt-h2:1.4rem;
  --tt-h3:1.15rem;
  --tt-h4:1.0rem;
  --tt-h5:0.9rem;
  --tt-h6:0.8rem;
  --tt-icon-size:18px;
  --tt-icon-size-sm:14px;
  --tt-icon-size-xs:12px;
  --tt-scrollbar-size:4px;
  --tt-content-padding:0.75rem 1rem;
  --tt-grid-gap:1rem;
  --tt-readmore-color:red;
  --tt-pagebreak-color:gray;
  --tt-primary:var(--primary, #132f53);
  --tt-primary-bg-subtle:var(--primary-bg-subtle, #cfe2ff);
  --tt-body-bg:var(--body-bg, #fff);
  --tt-body-color:var(--body-color, #212529);
  --tt-secondary-bg:var(--secondary-bg, #e8e8e8);
  --tt-border-color:var(--border-color, #dee2e6);
  --tt-secondary-color:var(--secondary-color, #6c757d);
  --tt-blockquote-color:var(--secondary-color, rgba(33, 37, 41, .75));
  --tt-placeholder-color:var(--secondary-color, #adb5bd);
  --tt-dark:var(--dark, #212529);
  --tt-light:var(--light, #f8f9fa);
  --tt-danger:var(--bs-danger, var(--danger, #dc3545));
  --tt-danger-bg-subtle:var(--bs-danger-bg-subtle, var(--danger-bg-subtle, #f8d7da));
  --tt-warning:var(--bs-warning, #ffc107);
  --tt-success:var(--bs-success, #198754);
  --tt-secondary:var(--bs-secondary, #6c757d);
  --tt-info-border:var(--bs-info-border-subtle, #9eeaf9);
  --tt-info-bg:var(--bs-info-bg-subtle, #cff4fc);
  --tt-info-text:var(--bs-info-text-emphasis, #055160);
  --tt-purple-border:var(--bs-purple-border-subtle, #d4b0ff);
  --tt-purple-bg:var(--bs-purple-bg-subtle, #e9d5ff);
  --tt-purple-text:var(--bs-purple-text-emphasis, #4a0080);
  display: block;
  position: relative;
}
.tiptap-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  padding: 4px 6px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-bottom: none;
  border-radius: 4px 4px 0 0;
}
.tiptap-toolbar--dialog-open {
  flex-wrap: wrap !important;
}
.tiptap-toolbar--scroll {
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
}
.tiptap-toolbar--scroll::-webkit-scrollbar {
  height: var(--tt-scrollbar-size);
}
.tiptap-toolbar--scroll::-webkit-scrollbar-track {
  background: 0 0;
}
.tiptap-toolbar--scroll::-webkit-scrollbar-thumb {
  background: var(--tt-border-color);
  border-radius: 2px;
}
.tiptap-toolbar-btn {
  padding: 3px 7px;
  background: 0 0;
  border: 1px solid transparent;
  border-radius: var(--tt-radius-sm);
  cursor: pointer;
  font-size: var(--tt-font-size-ui);
  font-weight: 600;
  line-height: 1.4;
  color: var(--tt-body-color);
  transition: background var(--tt-transition), border-color var(--tt-transition);
}
.tiptap-toolbar-btn:hover {
  background: var(--tt-secondary-bg);
  border-color: var(--tt-border-color);
}
.tiptap-toolbar-btn.is-active {
  background: var(--tt-primary);
  border-color: var(--tt-primary);
  color: #fff;
}
.tiptap-toolbar-btn:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: 2px;
}
.tiptap-toolbar-btn svg {
  width: var(--tt-icon-size);
  height: var(--tt-icon-size);
  display: inline-block;
  vertical-align: middle;
  pointer-events: none;
}
.tiptap-toolbar-chevron {
  display: inline-flex;
  align-items: center;
  margin-left: 1px;
}
.tiptap-toolbar-chevron svg {
  width: var(--tt-icon-size-xs);
  height: var(--tt-icon-size-xs);
}
.tiptap-toolbar-separator {
  display: inline-block;
  width: 1px;
  height: 1.4em;
  background: var(--tt-border-color);
  margin: auto 4px;
  vertical-align: middle;
}
.dnd-item {
  cursor: grab;
}
.dnd-item:active {
  cursor: grabbing;
}
.dnd-item.tiptap-toolbar-separator {
  width: auto;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  border: 1px dashed var(--tt-border-color);
  border-radius: var(--tt-radius);
  background: var(--tt-body-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.dnd-item.tiptap-toolbar-separator::before {
  content: "";
  display: block;
  width: 2px;
  height: 14px;
  background: var(--tt-border-color);
  border-radius: 1px;
}
.tiptap-editor-content {
  border: 1px solid var(--tt-border-color);
  border-radius: 0 0 4px 4px;
  min-height: var(--tt-min-height);
  background: var(--tt-body-bg);
  position: relative;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.tiptap-editor-content::-webkit-scrollbar {
  width: var(--tt-scrollbar-size);
}
.tiptap-editor-content::-webkit-scrollbar-track {
  background: 0 0;
}
.tiptap-editor-content::-webkit-scrollbar-thumb {
  background: var(--tt-border-color);
  border-radius: 2px;
}
.tiptap-editor-content .ProseMirror {
  padding: var(--tt-content-padding);
  min-height: var(--tt-min-height);
  outline: 0;
  line-height: var(--tt-line-height);
  font-optical-sizing: auto;
}
.tiptap-editor-content .ProseMirror:focus {
  outline: 0;
}
.tiptap-editor-content .ProseMirror .is-focused,
.tiptap-editor-content .ProseMirror .is-selected {
  outline: 2px solid var(--tt-primary);
  outline-offset: -1px;
  border-radius: 2px;
}
.tiptap-editor-content .ProseMirror > * + * {
  margin-top: .5em;
}
.tiptap-editor-content .ProseMirror h1 {
  font-size: var(--tt-h1);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror h2 {
  font-size: var(--tt-h2);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror h3 {
  font-size: var(--tt-h3);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror h4 {
  font-size: var(--tt-h4);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror h5 {
  font-size: var(--tt-h5);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror h6 {
  font-size: var(--tt-h6);
  font-weight: 700;
}
.tiptap-editor-content .ProseMirror ol,
.tiptap-editor-content .ProseMirror ul {
  padding-left: 1.5rem;
}
.tiptap-editor-content .ProseMirror ol li,
.tiptap-editor-content .ProseMirror ul li {
  margin: .2em 0;
}
.tiptap-editor-content .ProseMirror ul {
  list-style: disc;
}
.tiptap-editor-content .ProseMirror ol {
  list-style: decimal;
}
.tiptap-editor-content .ProseMirror code {
  background: var(--tt-secondary-bg);
  border-radius: var(--tt-radius-sm);
  font-family: monospace;
  font-size: .88em;
  padding: .1em .35em;
}
.tiptap-editor-content .ProseMirror pre {
  background: var(--tt-dark);
  border-radius: var(--tt-radius);
  color: var(--tt-light);
  font-family: monospace;
  padding: var(--tt-content-padding);
  white-space: pre-wrap;
  word-break: break-all;
}
.tiptap-editor-content .ProseMirror pre code {
  background: 0 0;
  color: inherit;
  font-size: .875em;
  padding: 0;
}
.tiptap-editor-content .ProseMirror blockquote {
  border-left: 3px solid var(--tt-primary);
  color: var(--tt-blockquote-color);
  margin-left: 0;
  padding-left: 1rem;
}
.tiptap-editor-content .ProseMirror details {
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-dialog);
  padding: .5rem .75rem;
  margin: .5em 0;
}
.tiptap-editor-content .ProseMirror details > summary {
  font-weight: 700;
  cursor: pointer;
}
.tiptap-editor-content .ProseMirror div[data-type=details] {
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-dialog);
  padding: .5rem .75rem;
  margin: .5em 0;
  display: flex;
  align-items: flex-start;
  gap: .25rem;
}
.tiptap-editor-content .ProseMirror div[data-type=details] > button {
  flex-shrink: 0;
  background: 0 0;
  border: none;
  padding: .3rem 0 0;
  cursor: pointer;
  line-height: 1;
  color: inherit;
}
.tiptap-editor-content .ProseMirror div[data-type=details] > button::before {
  content: "\25b6";
  font-size: .7em;
  display: inline-block;
  transition: transform var(--tt-transition);
}
.tiptap-editor-content .ProseMirror div[data-type=details].is-open > button::before {
  transform: rotate(90deg);
}
.tiptap-editor-content .ProseMirror div[data-type=details] > div {
  flex: 1;
  min-width: 0;
}
.tiptap-editor-content .ProseMirror div[data-type=details] > div > summary {
  display: block;
  font-weight: 700;
  cursor: text;
}
.tiptap-editor-content .ProseMirror div[data-type=details] > div > div[data-type=detailsContent] {
  display: block;
}
.tiptap-editor-content .ProseMirror hr {
  border: none;
  border-top: 2px solid var(--tt-border-color);
  margin: 1rem 0;
}
.tiptap-editor-content .ProseMirror hr[id=system-readmore] {
  color: var(--tt-readmore-color);
  border: 1px dashed var(--tt-readmore-color);
  cursor: default;
  position: relative;
}
.tiptap-editor-content .ProseMirror hr[id=system-readmore]::after {
  content: "Read More";
  display: block;
  text-align: center;
  font-size: var(--tt-font-size-sm);
  color: var(--tt-readmore-color);
  margin-top: .2rem;
}
.tiptap-editor-content .ProseMirror hr.system-pagebreak {
  color: var(--tt-pagebreak-color);
  border: 1px dashed var(--tt-pagebreak-color);
  cursor: default;
  position: relative;
}
.tiptap-editor-content .ProseMirror hr.system-pagebreak::after {
  content: "Page Break";
  display: block;
  text-align: center;
  font-size: var(--tt-font-size-sm);
  color: var(--tt-pagebreak-color);
  margin-top: .2rem;
}
.tiptap-editor-content .ProseMirror img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--tt-radius-sm);
}
.tiptap-editor-content .ProseMirror figure {
  display: inline-block;
  margin: .5em 0;
  border: 1px dashed var(--tt-border-color);
  border-radius: var(--tt-radius);
  padding: .85rem;
}
.tiptap-editor-content .ProseMirror figure img {
  border-radius: 0;
  display: block;
}
.tiptap-editor-content .ProseMirror figure figcaption {
  font-size: .875em;
  color: var(--tt-secondary-color);
  font-style: italic;
  text-align: center;
  padding: .35rem .25rem .1rem;
  border-top: 1px solid var(--tt-border-color);
  min-height: 1.5em;
}
.tiptap-editor-content .ProseMirror figure figcaption:empty::before {
  content: "Caption\2026";
  color: var(--tt-placeholder-color);
  pointer-events: none;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper {
  display: inline-block;
  position: relative;
  line-height: 0;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper .tt-image-resize-handle {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  background: var(--tt-primary);
  border-radius: var(--tt-radius-sm) 0 var(--tt-radius-sm) 0;
  border: 1.5px solid var(--tt-body-bg,#fff);
  cursor: se-resize;
  z-index: 1;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
  opacity: .85;
  transition: opacity var(--tt-transition);
  display: none;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper .tt-image-resize-handle:hover {
  opacity: 1;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper .tt-image-resize-handle:focus {
  outline: 0;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper .tt-image-resize-handle:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: 2px;
  opacity: 1;
}
.tiptap-editor-content .ProseMirror .tt-image-wrapper.ProseMirror-selectednode .tt-image-resize-handle,
.tiptap-editor-content .ProseMirror .tt-image-wrapper:focus-within .tt-image-resize-handle,
.tiptap-editor-content .ProseMirror .tt-image-wrapper:hover .tt-image-resize-handle {
  display: block;
}
.tiptap-editor-content .ProseMirror a {
  color: var(--tt-primary);
  text-decoration: underline;
}
.tiptap-editor-content .ProseMirror a:hover {
  opacity: .8;
}
.tiptap-editor-content .ProseMirror mark {
  background-color: var(--tt-highlight-color,#fef08a);
  color: inherit;
  border-radius: 2px;
  padding: 0 .1em;
}
.tiptap-editor-content .ProseMirror :is(p, h1, h2, h3).is-empty::before,
.tiptap-editor-content .ProseMirror p.is-editor-empty:first-child::before {
  color: var(--tt-placeholder-color);
  content: attr(data-placeholder);
  float: left;
  height: 0;
  pointer-events: none;
}
.tiptap-editor-content .ProseMirror ul[data-type=taskList] {
  list-style: none;
  padding-left: .25rem;
}
.tiptap-editor-content .ProseMirror ul[data-type=taskList] li {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.tiptap-editor-content .ProseMirror ul[data-type=taskList] li > label {
  flex-shrink: 0;
  margin-top: .1em;
}
.tiptap-editor-content .ProseMirror ul[data-type=taskList] li > div {
  flex: 1;
}
.tiptap-editor-content .ProseMirror .tiptap-field-token-hidden {
  font-size: 0;
  line-height: 0;
  color: transparent;
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview {
  display: inline-block;
  vertical-align: middle;
  border: 1px solid var(--tt-info-border);
  border-radius: var(--tt-radius);
  margin: 1px 2px;
  max-width: 100%;
  cursor: default;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview__tag {
  display: block;
  padding: 1px 6px;
  font-size: var(--tt-font-size-ui);
  font-family: monospace;
  background: var(--tt-info-bg);
  color: var(--tt-info-text);
  border-bottom: 1px solid var(--tt-info-border);
  border-radius: 3px 3px 0 0;
  white-space: nowrap;
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview__output {
  display: block;
  padding: 3px 8px;
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview__empty {
  font-style: italic;
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview--group {
  border-color: var(--tt-purple-border);
}
.tiptap-editor-content .ProseMirror .tiptap-field-preview--group .tiptap-field-preview__tag {
  background: var(--tt-purple-bg);
  color: var(--tt-purple-text);
  border-bottom-color: var(--tt-purple-border);
}
.tiptap-editor-content .ProseMirror table {
  border-collapse: collapse;
  margin: .5em 0;
  overflow: hidden;
  width: 100%;
}
.tiptap-editor-content .ProseMirror table td,
.tiptap-editor-content .ProseMirror table th {
  border: 1px solid var(--tt-border-color);
  min-width: 1em;
  padding: .4em .6em;
  position: relative;
  vertical-align: top;
}
.tiptap-editor-content .ProseMirror table td > *,
.tiptap-editor-content .ProseMirror table th > * {
  margin-bottom: 0;
}
.tiptap-editor-content .ProseMirror table th {
  background-color: var(--tt-secondary-bg);
  font-weight: 700;
  text-align: left;
}
.tiptap-editor-content .ProseMirror table .selectedCell::after {
  background: var(--tt-primary);
  content: "";
  inset: 0;
  opacity: .15;
  pointer-events: none;
  position: absolute;
}
.tiptap-editor-content .ProseMirror .sismos-grid {
  display: grid;
  gap: var(--tt-grid-gap);
  margin: .5em 0;
}
.tiptap-editor-content .ProseMirror .sismos-grid[data-columns="2"] {
  grid-template-columns: repeat(2, 1fr);
}
.tiptap-editor-content .ProseMirror .sismos-grid[data-columns="3"] {
  grid-template-columns: repeat(3, 1fr);
}
.tiptap-editor-content .ProseMirror .sismos-grid[data-columns="4"] {
  grid-template-columns: repeat(4, 1fr);
}
.tiptap-editor-content .ProseMirror .sismos-grid[data-columns="5"] {
  grid-template-columns: repeat(5, 1fr);
}
.tiptap-editor-content .ProseMirror .sismos-grid[data-columns="6"] {
  grid-template-columns: repeat(6, 1fr);
}
.tiptap-editor-content .ProseMirror .sismos-grid .sismos-grid-column {
  border: 1px dashed var(--tt-border-color);
  border-radius: var(--tt-radius);
  padding: .5rem;
  min-height: 2em;
}
.tiptap-editor-content .ProseMirror .ProseMirror-gapcursor {
  display: none;
  pointer-events: none;
  position: absolute;
}
.tiptap-editor-content .ProseMirror .ProseMirror-gapcursor::after {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  width: 20px;
  border-top: 1px solid var(--tt-body-color);
  animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}
.tiptap-editor-content .ProseMirror.ProseMirror-focused .ProseMirror-gapcursor {
  display: block;
}
.tiptap-editor-content .tiptap-drop-placeholder--inline {
  display: inline-block;
  vertical-align: text-bottom;
  width: 2px;
  height: 1em;
  background: var(--tt-primary);
  opacity: 1;
  outline: 0;
  border-radius: 1px;
}
.tiptap-editor-content .tiptap-drop-placeholder--line {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--tt-primary);
  border-radius: 1px;
  pointer-events: none;
}
.tiptap-editor-content .tiptap-drop-placeholder--spacer {
  display: block;
  width: 100%;
  pointer-events: none;
  outline: 2px dashed var(--tt-primary);
  outline-offset: -2px;
  border-radius: var(--tt-radius);
  background: rgba(19, 47, 83, .04);
  box-sizing: border-box;
}
.tiptap-editor-content .tiptap-drop-source-hidden {
  display: none !important;
}
@keyframes ProseMirror-cursor-blink {
  to {
    visibility: hidden;
  }
}
.tiptap-save-status {
  margin-inline-start: auto;
  font-size: var(--tt-font-size-sm);
  padding-inline: 0.5rem;
  opacity: .8;
  align-self: center;
}
.tiptap-save-status--dirty {
  color: var(--tt-warning);
}
.tiptap-save-status--saving {
  color: var(--tt-secondary);
}
.tiptap-save-status--saved {
  color: var(--tt-success);
}
.tiptap-save-status--error {
  color: var(--tt-danger);
  font-weight: 700;
}
.tiptap-drag-handle {
  background: 0 0;
  border: 1px solid transparent;
  border-radius: var(--tt-radius-sm);
  color: var(--tt-secondary-color);
  cursor: grab;
  font-size: 1rem;
  line-height: 1;
  padding: 2px 4px;
  transition: background var(--tt-transition);
}
.tiptap-drag-handle:hover {
  background: var(--tt-secondary-bg);
  border-color: var(--tt-border-color);
}
.tiptap-drag-handle:active {
  cursor: grabbing;
}
.tiptap-drag-handle svg {
  width: var(--tt-icon-size);
  height: var(--tt-icon-size);
  display: block;
  pointer-events: none;
}
.tiptap-drag-handle[data-node-type=listItem],
.tiptap-drag-handle[data-node-type=taskItem] {
  margin-left: -1.5rem;
}
.tiptap-block-toolbar {
  position: absolute;
  z-index: var(--tt-z-toolbar);
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 2px 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius);
  box-shadow: var(--tt-shadow);
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: top .12s ease-out;
}
.tiptap-block-toolbar__btn {
  background: 0 0;
  border: 1px solid transparent;
  border-radius: var(--tt-radius-sm);
  color: var(--tt-secondary-color);
  cursor: pointer;
  font-size: .8rem;
  line-height: 1;
  padding: 2px 4px;
  transition: background var(--tt-transition), color var(--tt-transition);
}
.tiptap-block-toolbar__btn:hover:not(:disabled) {
  background: var(--tt-secondary-bg);
  border-color: var(--tt-border-color);
}
.tiptap-block-toolbar__btn:disabled {
  opacity: .35;
  cursor: default;
}
.tiptap-block-toolbar__btn--delete:hover:not(:disabled) {
  background: var(--tt-danger-bg-subtle);
  border-color: var(--tt-danger);
  color: var(--tt-danger);
}
.tiptap-block-toolbar__btn svg {
  width: var(--tt-icon-size-sm);
  height: var(--tt-icon-size-sm);
  display: block;
  pointer-events: none;
}
.tiptap-character-count {
  border: 1px solid var(--tt-border-color);
  border-top: none;
  border-radius: 0 0 4px 4px;
  color: var(--tt-secondary-color);
  font-size: var(--tt-font-size-count);
  padding: 3px 8px;
  text-align: right;
}
.tiptap-source-view {
  border: 1px solid var(--tt-border-color);
  border-top: none;
  border-radius: 0 0 4px 4px;
}
.tiptap-source-view--no-toolbar {
  border-top: 1px solid var(--tt-border-color);
  border-radius: 4px 4px 0 0;
}
.tiptap-source-view {
  min-height: var(--tt-min-height);
  background: var(--tt-body-bg);
  overflow: hidden;
}
.tiptap-source-view .cm-editor {
  height: 100%;
  min-height: inherit;
}
.tiptap-editor-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px 0;
}
.tiptap-highlight-picker {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  gap: 4px;
  padding: 6px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-highlight-swatch {
  width: 22px;
  height: 22px;
  background: var(--swatch-color,#fef08a);
  border: 2px solid transparent;
  border-radius: var(--tt-radius);
  cursor: pointer;
  padding: 0;
  transition: border-color var(--tt-transition-fast), transform var(--tt-transition-fast);
}
.tiptap-highlight-swatch:hover {
  border-color: var(--tt-body-color);
  transform: scale(1.15);
}
.tiptap-highlight-swatch:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: 2px;
}
.tiptap-highlight-swatch--none {
  background: var(--tt-secondary-bg);
  color: var(--tt-body-color);
  font-size: var(--tt-font-size-sm);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tiptap-highlight-swatch--none svg {
  width: var(--tt-icon-size-sm);
  height: var(--tt-icon-size-sm);
}
.tiptap-color-picker {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  gap: 4px;
  padding: 6px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-color-swatch {
  width: 22px;
  height: 22px;
  background: var(--swatch-color,#ccc);
  border: 2px solid transparent;
  border-radius: var(--tt-radius);
  cursor: pointer;
  padding: 0;
  transition: border-color var(--tt-transition-fast), transform var(--tt-transition-fast);
}
.tiptap-color-swatch:hover {
  border-color: var(--tt-body-color);
  transform: scale(1.15);
}
.tiptap-color-swatch:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: 2px;
}
.tiptap-color-swatch--none {
  background: var(--tt-secondary-bg);
  color: var(--tt-body-color);
  font-size: .65rem;
  line-height: 1;
  width: auto;
  padding: 0 4px;
  white-space: nowrap;
}
.tiptap-font-size-picker {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  flex-direction: column;
  min-width: 110px;
  padding: 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-font-size-swatch {
  display: block;
  width: 100%;
  padding: 4px 8px;
  text-align: left;
  background: 0 0;
  border: none;
  border-radius: var(--tt-radius);
  cursor: pointer;
  color: var(--tt-body-color);
  transition: background-color var(--tt-transition-fast);
}
.tiptap-font-size-swatch:hover {
  background: var(--tt-secondary-bg);
}
.tiptap-font-size-swatch:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: 2px;
}
.tiptap-table-menu {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  flex-direction: column;
  min-width: 170px;
  padding: 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-table-menu-item {
  display: block;
  width: 100%;
  padding: 5px 10px;
  text-align: left;
  background: 0 0;
  border: none;
  border-radius: var(--tt-radius);
  font-size: var(--tt-font-size-ui);
  cursor: pointer;
  color: var(--tt-body-color);
}
.tiptap-table-menu-item:hover:not(:disabled) {
  background: var(--tt-secondary-bg);
}
.tiptap-table-menu-item:disabled {
  opacity: .5;
  cursor: not-allowed;
}
.tiptap-table-menu-item:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: -2px;
}
.tiptap-table-menu-sep {
  border: none;
  border-top: 1px solid var(--tt-border-color);
  margin: 4px 0;
}
.tiptap-grid-menu {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  flex-direction: column;
  min-width: 170px;
  padding: 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-grid-menu-item {
  display: block;
  width: 100%;
  padding: 5px 10px;
  text-align: left;
  background: 0 0;
  border: none;
  border-radius: var(--tt-radius);
  font-size: var(--tt-font-size-ui);
  cursor: pointer;
  color: var(--tt-body-color);
}
.tiptap-grid-menu-item:hover:not(:disabled) {
  background: var(--tt-secondary-bg);
}
.tiptap-grid-menu-item:disabled {
  opacity: .5;
  cursor: not-allowed;
}
.tiptap-grid-menu-item:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: -2px;
}
.tiptap-grid-menu-sep {
  border: none;
  border-top: 1px solid var(--tt-border-color);
  margin: 4px 0;
}
.tiptap-xtd-menu {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  flex-direction: column;
  min-width: 170px;
  padding: 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-xtd-menu-item {
  display: block;
  width: 100%;
  padding: 5px 10px;
  text-align: left;
  background: 0 0;
  border: none;
  border-radius: var(--tt-radius);
  font-size: var(--tt-font-size-ui);
  cursor: pointer;
  color: var(--tt-body-color);
}
.tiptap-xtd-menu-item:hover {
  background: var(--tt-secondary-bg);
}
.tiptap-xtd-menu-item:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: -2px;
}
.tiptap-split-btn {
  display: inline-flex;
}
.tiptap-split-main {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: none;
}
.tiptap-split-chevron {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  padding-inline: 3px;
}
.tiptap-split-chevron svg {
  width: var(--tt-icon-size-xs);
  height: var(--tt-icon-size-xs);
}
.tiptap-split-chevron:not(.is-active):not(:hover) {
  border-left-color: var(--tt-border-color);
}
.tiptap-heading-menu {
  position: absolute;
  z-index: var(--tt-z-popup);
  display: flex;
  flex-direction: column;
  min-width: 110px;
  padding: 4px;
  background: var(--tt-body-bg);
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow-lg);
}
.tiptap-heading-menu-item {
  display: block;
  width: 100%;
  padding: 5px 10px;
  text-align: left;
  background: 0 0;
  border: none;
  border-radius: var(--tt-radius);
  font-size: var(--tt-font-size-ui);
  cursor: pointer;
  color: var(--tt-body-color);
}
.tiptap-heading-menu-item:hover {
  background: var(--tt-secondary-bg);
}
.tiptap-heading-menu-item.is-active {
  background: var(--tt-primary);
  color: #fff;
}
.tiptap-heading-menu-item:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: -2px;
}
.tiptap-template-picker-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--tt-z-modal);
  background: rgba(0, 0, 0, .4);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tiptap-template-picker-dialog {
  background: var(--tt-body-bg);
  color: var(--tt-body-color);
  border-radius: var(--tt-radius-dialog);
  box-shadow: var(--tt-shadow-dialog);
  width: min(480px, 95vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.tiptap-template-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--tt-border-color);
}
.tiptap-template-picker-title {
  font-weight: 600;
  font-size: 1rem;
}
.tiptap-template-picker-close {
  background: 0 0;
  border: none;
  cursor: pointer;
  padding: 2px;
  color: var(--tt-body-color);
  border-radius: var(--tt-radius);
  display: flex;
  align-items: center;
}
.tiptap-template-picker-close:hover {
  background: var(--tt-secondary-bg);
}
.tiptap-template-picker-close:focus-visible {
  outline: 2px solid var(--tt-primary);
}
.tiptap-template-picker-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}
.tiptap-template-picker-status {
  padding: 16px;
  text-align: center;
  color: var(--tt-secondary-color);
  font-size: .9rem;
}
.tiptap-template-picker-status--error {
  color: var(--tt-danger);
}
.tiptap-template-picker-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tiptap-template-picker-item {
  padding: 10px 12px;
  border-radius: var(--tt-radius-lg);
  border: 1px solid transparent;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tiptap-template-picker-item:hover {
  background: var(--tt-secondary-bg);
  border-color: var(--tt-border-color);
}
.tiptap-template-picker-item--selected {
  background: var(--tt-primary-bg-subtle);
  border-color: var(--tt-primary);
}
.tiptap-template-picker-item--clear {
  border-top: 1px solid var(--tt-border-color);
  margin-top: 4px;
  padding-top: 14px;
}
.tiptap-template-picker-item--clear strong {
  color: var(--tt-danger);
}
.tiptap-template-picker-item--clear.tiptap-template-picker-item--selected {
  background: var(--tt-danger-bg-subtle);
  border-color: var(--tt-danger);
}
.tiptap-template-picker-item:focus-visible {
  outline: 2px solid var(--tt-primary);
  outline-offset: -2px;
}
.tiptap-template-picker-item strong {
  font-size: .9rem;
}
.tiptap-template-picker-item-desc {
  font-size: .8rem;
  color: var(--tt-secondary-color);
}
.tiptap-template-picker-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--tt-border-color);
}
.tiptap-link-dialog {
  display: flex;
  flex-basis: 100%;
  align-items: center;
  gap: 4px;
  padding: 4px 2px 2px;
  border-top: 1px solid var(--tt-border-color);
  margin-top: 2px;
}
.tiptap-link-dialog__input {
  flex: 1;
  min-width: 180px;
  padding: 3px 6px;
  border: 1px solid var(--tt-border-color);
  border-radius: var(--tt-radius-sm);
  font-size: var(--tt-font-size-ui);
  background: var(--tt-body-bg);
  color: var(--tt-body-color);
}
.tiptap-link-dialog__input:focus {
  outline: 2px solid var(--tt-primary);
  outline-offset: -1px;
}
