.slate-body{outline:none;min-height:60vh;font-family:inherit;font-size:16px;line-height:1.8;color:#212529;white-space:pre-wrap;overflow-wrap:break-word}
.slate-body p{margin:.5em 0}
.slate-body> * + *{margin-top:.75em}
.slate-body h1,.slate-body h2,.slate-body h3{letter-spacing:-.01em;line-height:1.2;font-weight:600;margin-bottom:0}
.slate-body h1{font-size:1.875rem;margin-top:1.875rem}
.slate-body h2{font-size:1.5rem;margin-top:1.5rem}
.slate-body h3{font-size:1.25rem;margin-top:1.25rem}
.slate-body .is-empty::before{content:attr(data-placeholder);float:left;color:#adb5bd;pointer-events:none;height:0}
.slate-body ul,.slate-body ol{padding:0 1rem;margin:.25rem 0}
.slate-body li p{margin:0}
.slate-body blockquote{border-left:3px solid #ced4da;padding-left:1rem;margin:0}
.slate-body code{background:#f1f3f5;border-radius:3px;padding:2px 4px;font-family:Consolas,monospace;font-size:.9em}
.slate-body pre{background:#f6f7f9;padding:16px;border-radius:6px;white-space:pre-wrap}
.slate-body pre code{background:none;padding:0}
.slate-body a{color:#495057;text-decoration:underline;cursor:pointer}
.slate-body hr{border:0;border-top:1px solid #ced4da;margin:20px 0}
.slate-body img{max-width:100%;height:auto}
.slate-body .ProseMirror-selectednode{outline:2px solid #70cff8}
.slate-body ul[data-type="taskList"]{list-style:none;padding:0}
.slate-body li[data-type="taskItem"]{display:flex;gap:8px;align-items:flex-start}
.slate-body li[data-type="taskItem"]>label{flex:0 0 auto;margin-top:3px}
.slate-body li[data-type="taskItem"]>div{flex:1}
.slate-body input[type="checkbox"]{width:auto;min-height:0;cursor:pointer}
.slate-body table{border-collapse:collapse;width:100%;table-layout:fixed}
.slate-body th,.slate-body td{border:1px solid #dee2e6;padding:6px 10px;vertical-align:top;position:relative;min-width:1em}
.slate-body th{background:#f1f3f5}
.slate-body .selectedCell:after{content:'';position:absolute;inset:0;background:#b3d4fc66;pointer-events:none}
.slate-body .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:#adf}
.slate-body.resize-cursor{cursor:col-resize}
.editor-slash-menu{position:fixed;z-index:1000;width:260px;max-height:320px;overflow:auto;background:white;border:1px solid #dee2e6;box-shadow:0 4px 20px #0002;border-radius:6px;padding:5px}
.editor-slash-menu[hidden]{display:none}
.editor-slash-menu button{display:block;width:100%;text-align:left;border:0;background:white;padding:8px 12px;font:inherit}
.editor-slash-menu button[aria-selected="true"],.editor-slash-menu button:hover{background:#f1f3f5}
.editor-selection-menu{position:fixed;z-index:1000;display:flex;padding:4px;background:white;box-shadow:0 2px 12px #0002;border:1px solid #dee2e6;border-radius:5px}
.editor-selection-menu[hidden]{display:none}
.editor-selection-menu button{background:none;border:0;padding:6px 9px}
.editor-selection-menu button[aria-pressed="true"]{background:#e9ecef}
.editor-slash-menu{width:286px;max-height:366px;padding:8px;overscroll-behavior:contain;scrollbar-width:thin}
.editor-slash-menu .slash-group-title{font-size:14px;color:#868e96;font-weight:500;margin:0 0 4px}
.editor-slash-menu button{display:flex;align-items:center;gap:12px;padding:4px;margin-bottom:2px;border-radius:4px;min-height:48px}
.editor-slash-menu button[aria-selected="true"]{background:#e9ecef}
.slash-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid #ced4da;border-radius:4px;font-size:16px;background:white;color:#495057}
.slash-label{display:block;min-width:0;text-align:left}
.slash-label strong{display:block;font-size:14px;font-weight:500;line-height:1.5}
.slash-label small{display:block;font-size:12px;color:#868e96;font-weight:400;line-height:1.45}
.slate-body .callout-block{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:6px;background:#e7f5ff;border:1px solid #a5d8ff;margin:12px 0}
.slate-body .callout-block[data-callout="note"]{background:#f3f0ff;border-color:#d0bfff}
.slate-body .callout-block[data-callout="success"]{background:#ebfbee;border-color:#b2f2bb}
.slate-body .callout-block[data-callout="warning"]{background:#fff9db;border-color:#ffec99}
.slate-body .callout-block[data-callout="danger"]{background:#fff5f5;border-color:#ffc9c9}
.callout-icon-control{position:relative;display:block;width:24px;height:24px;flex:0 0 24px;margin-top:3px;color:#228be6;border-radius:4px}
.callout-icon{display:block;width:24px;height:24px;line-height:1}
.callout-icon-control:focus-within{outline:2px solid currentColor;outline-offset:2px}
.callout-icon-control .callout-kind{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;opacity:0;cursor:pointer}
[data-callout="note"]>.callout-icon-control{color:#be4bdb}
[data-callout="success"]>.callout-icon-control{color:#40c057}
[data-callout="warning"]>.callout-icon-control{color:#fd7e14}
[data-callout="danger"]>.callout-icon-control{color:#fa5252}
.callout-content{flex:1;min-width:0}.callout-content>p:first-child{margin-top:0}.callout-content>p:last-child{margin-bottom:0}

.slate-body .callout-block{position:relative}
.callout-icon-control{border:0;background:transparent;padding:0;min-height:0;cursor:pointer}
.callout-toolbar{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);z-index:99;display:flex;gap:2px;padding:4px;background:white;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 8px #0002}
.callout-toolbar[hidden]{display:none}
.callout-toolbar button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;padding:0;border:0;background:transparent;border-radius:4px;cursor:pointer}
.callout-toolbar button:hover,.callout-toolbar button[aria-pressed="true"]{background:#f1f3f5}

/* Tiptap core styles (MIT), served externally for the existing CSP. */
.ProseMirror {
  position: relative;
}

.ProseMirror {
  word-wrap: break-word;
  white-space: pre-wrap;
  white-space: break-spaces;
  -webkit-font-variant-ligatures: none;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}

.ProseMirror [contenteditable="false"] {
  white-space: normal;
}

.ProseMirror [contenteditable="false"] [contenteditable="true"] {
  white-space: pre-wrap;
}

.ProseMirror pre {
  white-space: pre-wrap;
}

img.ProseMirror-separator {
  display: inline !important;
  border: none !important;
  margin: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.ProseMirror-gapcursor {
  display: none;
  pointer-events: none;
  position: absolute;
  margin: 0;
}

.ProseMirror-gapcursor:after {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  width: 20px;
  border-top: 1px solid black;
  animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}

@keyframes ProseMirror-cursor-blink {
  to {
    visibility: hidden;
  }
}

.ProseMirror-hideselection *::selection {
  background: transparent;
}

.ProseMirror-hideselection *::-moz-selection {
  background: transparent;
}

.ProseMirror-hideselection * {
  caret-color: transparent;
}

.ProseMirror-focused .ProseMirror-gapcursor {
  display: block;
}
