/* src/tabs/useDocuments.css */
.processing-status-icon {
  animation: practal-processing-spin 1.1s linear infinite;
}
@keyframes practal-processing-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* src/editor/DocumentEditor.css */
.practal-editor-container {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 200px;
}
.practal-editor-loading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-fg2);
  font-family: "stixtwotext", serif;
  background-color: var(--text-bg1);
}
.practal-editor-hidden {
  visibility: hidden;
}
.practal-editor-error {
  padding: 20px;
  color: var(--error-color, #c00);
  font-family: "stixtwotext", serif;
  background-color: var(--text-bg1);
}
.practal-editor-error-message {
  padding: 10px;
  border: 1px solid var(--error-color, #c00);
  border-radius: 4px;
  background-color: var(--error-bg, rgba(255, 0, 0, 0.1));
}
.practal-editor {
  padding: 10px;
  margin: 0;
  max-width: 100%;
  min-height: 100%;
  color: var(--text-fg1);
  font-family: "stixtwotext", serif;
  line-height: 1.6;
  background-color: var(--block-background);
  white-space: pre-wrap;
  --block-margin: 3px;
  --min-height: 0.9em;
  --paragraph-padding: 3px;
  --block-indent: 20px;
  --border-color: var(--text-bg4);
  --empty-border-color: var(--text-bg2);
  --block-background: var(--text-bg1);
  --paragraph-background: var(--text-bg0);
  --primary-keyword-color: var(--text-purple);
  --primary-border-color: var(--border-color);
  --primary-text-color: var(--text-fg1);
  --primary-background-color: var(--block-background);
  --secondary-keyword-color: var(--text-green);
  --secondary-block-prefix-color: var(--text-cyan-dimmed);
  --theorem-expression-punctuation-color: var(--secondary-block-prefix-color);
  --tool-color: var(--text-blue);
  --script-color: var(--text-blue);
  --theory-identifier-color: var(--syntax-abstraction-color);
  --header-text-color: var(--text-fg0);
  --symbolic-keyword-color: var(--border-color);
  --error-border-color: var(--text-red);
  --error-background-color: var(--block-background);
  --error-text-color: var(--text-red);
  --status-clean-color: var(--text-green);
  --status-warning-color: var(--text-yellow);
  --status-direct-error-color: var(--text-red);
  --syntax-abstraction-color: var(--text-brown);
  --syntax-variable-color: var(--text-blue);
  --syntax-bound-variable-color: var(--text-green);
  --syntax-punctuation-color: var(--text-gray);
  --syntax-label-color: var(--text-brown-dimmed);
}
.practal-editor .ProseMirror {
  outline: none;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.practal-editor .ProseMirror-focused {
  outline: none;
}
.practal-editor .practal-block {
  padding: 0px;
  margin-left: var(--block-indent);
  margin-top: var(--block-margin);
  margin-bottom: var(--block-margin);
  margin-right: 0px;
  border-left: 3px solid var(--border-color);
  border-radius: 2px;
  min-height: var(--min-height);
  background-color: var(--block-background);
  display: block;
}
.practal-editor .ProseMirror > .practal-block {
  margin-left: 0px;
}
.practal-editor .practal-paragraph > .practal-block {
  border-left: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  border-radius: 2px;
  margin-left: calc(var(--block-indent) - var(--paragraph-padding));
}
.practal-editor .practal-paragraph {
  padding: var(--paragraph-padding);
  margin-top: var(--block-margin);
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  min-height: var(--min-height);
  background-color: var(--paragraph-background);
  display: block;
}
.practal-editor .practal-paragraph:first-child {
  margin-top: 0px;
}
.practal-editor .practal-text-paragraph {
  display: block;
}
.practal-editor .practal-empty-block {
  border-color: var(--empty-border-color);
}
.practal-editor .practal-empty-block > .practal-paragraph {
  background-color: var(--block-background);
}
.practal-editor .ProseMirror-cursor {
  border-left: 1px solid var(--text-fg1);
}
.practal-editor .ProseMirror ::selection {
  background-color: var(--selection-bg, rgba(74, 144, 217, 0.3));
}
.practal-context-menu {
  position: fixed;
  z-index: 1000;
  min-width: 200px;
  background-color: var(--text-bg1);
  border: 1px solid var(--text-bg4);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  padding: 4px 0;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    sans-serif;
  font-size: 13px;
}
.practal-context-menu-title {
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-fg2);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid var(--text-bg3);
  margin-bottom: 4px;
}
.practal-context-menu-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 12px;
  cursor: pointer;
  color: var(--text-fg1);
}
.practal-context-menu-item:hover {
  background-color: var(--text-bg2);
}
.practal-context-menu-label {
  flex: 1;
}
.practal-context-menu-shortcut {
  margin-left: 24px;
  color: var(--text-fg2);
  font-size: 12px;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    sans-serif;
}
.practal-editor .comment-block,
.practal-editor .comment-child-block {
  font-style: italic;
  background-color: var(--background-color);
  color: var(--text-fg3);
  border-color: var(--empty-border-color);
}
.practal-editor .declare-block,
.practal-editor .define-block,
.practal-editor .axiom-block,
.practal-editor .premise-block,
.practal-editor .conclusion-block,
.practal-editor .include-block,
.practal-editor .use-block,
.practal-editor .print-block,
.practal-editor .quoted-term-block {
  background-color: var(--primary-background-color);
  color: var(--primary-text-color);
  border-color: var(--primary-border-color);
  font-style: normal;
}
.practal-editor .name-block {
  background-color: var(--block-background);
  color: var(--primary-text-color);
  font-size: 1rem;
  font-weight: normal;
  font-style: normal;
}
.practal-editor .expand-block {
}
.practal-editor .narrate-block {
}
.practal-editor .empty-block {
  border-color: var(--empty-border-color);
}
.practal-editor .empty-block > .practal-paragraph {
  background-color: var(--block-background);
}
.practal-editor .error-block,
.practal-editor .ignored-block {
  border-color: var(--error-border-color);
  background-color: var(--error-background-color);
  color: var(--error-text-color);
  font-size: 1rem;
  font-weight: normal;
  font-style: normal;
}
.practal-editor .processing-block-status {
  border-left-color: var(--text-cyan);
}
.practal-editor .annotation-block-status-warning {
  border-left-color: var(--status-warning-color);
}
.practal-editor .annotation-block-status-error {
  border-left-color: var(--error-border-color);
}
.practal-editor .header-1-block {
  position: relative;
  font-weight: bold;
  font-size: 1.4rem;
  color: var(--header-text-color);
}
.practal-editor .header-1-block > .practal-paragraph:first-child {
  padding-right: min(18rem, 42%);
}
.practal-editor .header-2-block {
  font-weight: bold;
  font-size: 1.2rem;
  color: var(--header-text-color);
}
.practal-editor .header-3-block {
  font-weight: bold;
  font-size: 1.1rem;
  color: var(--header-text-color);
}
.practal-editor .header-4-block {
  font-weight: bold;
  font-size: 1rem;
  color: var(--header-text-color);
}
.practal-editor .header-theory-badge {
  position: absolute;
  top: calc(var(--paragraph-padding) + 0.05rem);
  right: 0.45rem;
  display: inline-flex;
  gap: 0.18em;
  align-items: baseline;
  box-sizing: border-box;
  max-width: min(18rem, 40%);
  padding: 0 0.45em;
  border: 1px solid var(--border-color);
  border-radius: 2px;
  color: var(--text-fg2);
  background-color: var(--block-background);
  font-size: 0.72em;
  font-weight: normal;
  font-style: normal;
  line-height: 1.35;
  vertical-align: 0.12em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.practal-editor .header-theory-badge-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-style: italic;
  font-weight: 600;
  color: var(--theory-identifier-color);
}
.practal-editor .header-theory-badge-status {
  font-weight: 600;
}
.practal-editor .header-theory-badge-clean .header-theory-badge-status {
  color: var(--status-clean-color);
}
.practal-editor .header-theory-badge-syntax-clean .header-theory-badge-status {
  color: var(--status-warning-color);
}
.practal-editor .header-theory-badge-warning .header-theory-badge-status {
  color: var(--status-warning-color);
}
.practal-editor .header-theory-badge-error .header-theory-badge-status {
  color: var(--status-direct-error-color);
}
.practal-editor .declare-keyword-phrase,
.practal-editor .define-keyword-phrase,
.practal-editor .definition-relation-keyword-phrase,
.practal-editor .axiom-keyword-phrase,
.practal-editor .theorem-keyword-phrase,
.practal-editor .include-keyword-phrase,
.practal-editor .use-keyword-phrase,
.practal-editor .print-keyword-phrase,
.practal-editor .tool-keyword-phrase,
.practal-editor .proof-tool-keyword-phrase,
.practal-editor .proof-keyword-phrase {
  font-weight: bold;
  color: var(--primary-keyword-color);
}
.practal-editor .name-keyword-phrase,
.practal-editor .premise-keyword-phrase,
.practal-editor .conclusion-keyword-phrase,
.practal-editor .proof-tool-parameter-phrase {
  font-weight: bold;
  color: var(--secondary-block-prefix-color);
}
.practal-editor .proof-control-keyword-phrase {
  font-weight: bold;
  color: var(--symbolic-keyword-color);
}
.practal-editor .theorem-operator-keyword-phrase,
.practal-editor .proof-step-keyword-phrase {
  font-weight: bold;
  color: var(--secondary-block-prefix-color);
}
.practal-editor .theorem-expression-punctuation-phrase {
  font-weight: bold;
  color: var(--theorem-expression-punctuation-color);
}
.practal-editor .tool-phrase {
  font-weight: bold;
  color: var(--tool-color);
}
.practal-editor .script-phrase {
  font-style: italic;
  font-weight: bold;
  color: var(--script-color);
}
.practal-editor .theory-identifier-phrase {
  font-style: italic;
  font-weight: 600;
  color: var(--theory-identifier-color);
}
.practal-editor .axiom-label-phrase,
.practal-editor .define-label-phrase,
.practal-editor .theorem-label-phrase,
.practal-editor .labeled-term-label-phrase,
.practal-editor .proof-step-label-phrase,
.practal-editor .proof-step-reference-phrase {
  font-variant: small-caps;
  font-style: normal;
  font-weight: normal;
  font-size: inherit;
  color: inherit;
}
.practal-editor .quoted-term-prefix-phrase,
.practal-editor .quoted-term-quote-phrase {
  color: var(--symbolic-keyword-color);
}
.practal-editor .term-identifier-phrase,
.practal-editor .definition-relation-phrase {
  color: var(--syntax-abstraction-color);
  font-style: normal;
}
.practal-editor .term-variable-phrase {
  color: var(--syntax-variable-color);
  font-style: italic;
}
.practal-editor .term-binder-phrase {
  color: var(--syntax-bound-variable-color);
  font-style: italic;
}
.practal-editor .term-label-phrase {
  color: var(--syntax-label-color);
}
.practal-editor .term-variadic-marker-phrase {
  font-weight: bold;
  color: var(--syntax-punctuation-color);
}
.practal-editor .term-plural-marker-phrase {
  color: inherit;
  font-style: inherit;
}
.practal-editor .term-plural-marker-phrase:has(+ .term-variable-phrase) {
  color: var(--syntax-variable-color);
  font-style: italic;
}
.practal-editor .term-plural-marker-phrase:has(+ .term-binder-phrase) {
  color: var(--syntax-bound-variable-color);
  font-style: italic;
}
.practal-editor .term-plural-marker-phrase:has(+ .term-identifier-phrase) {
  color: var(--syntax-abstraction-color);
  font-style: normal;
}
.practal-editor .term-punctuation-phrase {
  color: var(--syntax-punctuation-color);
}
.practal-editor .annotation-severity-error {
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: var(--error-text-color);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-skip-ink: none;
}
.practal-editor .annotation-severity-info {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--text-blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-skip-ink: none;
}
.practal-editor .annotation-severity-warning {
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: var(--text-yellow);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-skip-ink: none;
}
.practal-editor .calc-block {
}
.practal-editor .calc-prefix-phrase {
  font-weight: bold;
  font-style: normal;
  font-size: 1.2em;
  color: var(--symbolic-keyword-color);
  padding: 1px;
  vertical-align: middle;
}
.practal-editor .calc-op-phrase {
  font-weight: bold;
  color: var(--primary-keyword-color);
}
.practal-editor .calc-bracket-phrase {
  color: var(--text-fg2);
}
.practal-editor .calc-int-phrase {
  color: var(--secondary-keyword-color);
}
.practal-editor .calc-result-phrase {
  border-bottom: 1px solid var(--secondary-keyword-color);
}
.practal-editor .header-prefix-phrase,
.practal-editor .comment-prefix-phrase,
.practal-editor .expand-prefix-phrase {
  font-weight: bold;
  font-style: normal;
  font-size: 1.2em;
  color: var(--symbolic-keyword-color);
  padding: 1px;
  vertical-align: middle;
}
