@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans[opsz,wght].woff2") format("woff2-variations");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Italic[opsz,wght].woff2") format("woff2-variations");
  font-weight: 100 1000;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Thin.woff2") format("woff2");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-ExtraLight.woff2") format("woff2");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans/DMSans-Black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Thin.woff2") format("woff2");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-ExtraLight.woff2") format("woff2");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inconsolata";
  src: url("/assets/fonts/Inconsolata/Inconsolata-Black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --color-interface-050: #f5f0ed;
  --color-interface-050: #f8f5f4;
  --color-interface-100: #efe9e6;
  --color-interface-200: #e0d5d0;
  --color-interface-300: #cabbb5;
  --color-interface-400: #b2a29c;
  --color-interface-500: #998985;
  --color-interface-600: #7f716e;
  --color-interface-700: #675b58;
  --color-interface-800: #5b4f4c;
  --color-interface-900: #483c39;
  --color-050: #f5f0ed;
  --color-050: #f8f5f4;
  --color-100: #efe9e6;
  --color-200: #e0d5d0;
  --color-300: #cabbb5;
  --color-400: #b2a29c;
  --color-500: #998985;
  --color-600: #7f716e;
  --color-700: #675b58;
  --color-800: #5b4f4c;
  --color-900: #483c39;
}

[data-color-type=page] {
  --color-050: #fff4ec;
  --color-100: #ffe6d6;
  --color-200: #ffd7c2;
  --color-300: #ffc7ac;
  --color-400: #ffb38f;
  --color-500: #ffa06f;
  --color-600: #ff8a50;
  --color-700: #ff8a50;
  --color-800: #ea733c;
  --color-900: #d96a30;
}

[data-color-type=elem] {
  --color-050: #f4f0ff;
  --color-100: #e7e1ff;
  --color-200: #dacfff;
  --color-300: #c7b8ff;
  --color-400: #b19cff;
  --color-500: #9a80ff;
  --color-600: #7136ff;
  --color-700: #6930f5;
  --color-800: #5d28e6;
  --color-900: #5223d6;
}

body,
html {
  padding: 0;
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

input,
select {
  border: none;
  outline: none;
  border-radius: var(--border-radius);
}

button {
  background-color: transparent;
  border: none;
}

img {
  width: 100%;
}

:root {
  --color-browngray-050: #f5f3f0;
  --color-browngray-200: #d0c4ba;
  --color-txt: var(--color-interface-900);
  --color-panel-bg: var(--color-interface-050);
  --color-page-highlight: #ff8a50;
  --color-purple: #7136ff;
  --border-radius: 0.2rem;
  --space-xs: 0.5rem;
  --space-s: 1rem;
  --space: 1.5rem;
  --space-m: 2rem;
  --space-big: 3em;
  --curve: cubic-bezier(0.86, 0, 0.07, 1);
  --sans-serif: "DM Sans", sans-serif;
  --mono: "Inconsolata", monospace;
  --input-h: 26px;
  --input-w: 160px;
  --input-w-small: 45px;
  --label-w: 18ch;
  font-size: 14px;
  --panel-w: 540px;
  --panel-nav-h: 60px;
}

body {
  font-family: var(--sans-serif);
  color: var(--color-txt);
}

/* PagedJS print styles */
@page {
  size: A4;
  margin: 20mm 15mm 26mm 15mm;
}
h2 {
  -moz-column-break-before: page;
       break-before: page;
}

@page {
  @bottom-center {
    content: string(title);
  }
}
.chapter > h2 {
  string-set: title content(text);
}

select,
input[type=text],
input[type=number] {
  height: var(--input-h);
  border: 1px solid var(--color-interface-200);
  background-color: var(--color-interface-100);
  font-family: var(--sans-serif);
  color: var(--color-txt);
  font-size: 1rem;
  padding-left: 0.5ch;
}

.field {
  display: flex;
}
.field label {
  font-weight: 600;
  color: var(--color-800);
}
.field .input-with-unit {
  display: flex;
  gap: 0.3rem;
}
.field .unit-toggle {
  height: var(--input-h);
  display: flex;
  gap: 0.3rem;
  align-items: center;
}
.field .input-with-color {
  width: 100%;
}
.field .input-with-color .clr-field {
  width: 100%;
  display: grid;
  grid-template-columns: var(--input-h) 1fr;
  grid-gap: 1ch;
}
.field .input-with-color .clr-field button {
  grid-column: 1;
  position: relative;
  border-radius: var(--border-radius);
  cursor: pointer;
  pointer-events: auto;
}
.field .input-with-color .clr-field input {
  grid-column: 2;
}

.field {
  display: grid;
  grid-template-columns: var(--label-w) 1fr;
}
.field label {
  align-self: center;
}

.field-font {
  display: grid;
  grid-template-columns: var(--label-w) 1fr;
  grid-template-rows: var(--input-h) var(--input-h);
}
.field-font select {
  width: 100%;
}
.field-font .field-checkbox {
  grid-column: 2;
  padding-top: var(--space-xs);
}
.field-font .field-checkbox label {
  font-weight: 400;
  margin-left: 0.75ch;
  color: var(--color-txt);
}

.field-text-size input[type=number] {
  width: var(--input-w-small);
  padding-left: 0.75ch;
}
.field-text-size input[type=range] {
  flex-grow: 2;
  flex-shrink: 2;
}

.field-margin,
.field-size {
  display: inline-grid;
  width: calc(50% - 1ch);
  grid-template-columns: 6.5ch var(--input-w-small) 1fr;
  margin-bottom: var(--space-xs);
}
.field-margin input,
.field-size input {
  width: var(--input-w-small);
  padding-left: 0.75ch;
}
.field-margin:nth-of-type(odd),
.field-size:nth-of-type(odd) {
  margin-right: 2ch;
}

.checkbox-field {
  margin: calc(var(--space-xs) * 2) 0;
  grid-template-columns: 3ch 1fr;
}
.checkbox-field input {
  justify-self: left;
  margin: 0;
}

.field--view-only {
  opacity: 0.3;
}

/* Label with CSS tooltip */
.label-with-tooltip {
  -webkit-text-decoration: underline dotted 1px var(--color-200);
          text-decoration: underline dotted 1px var(--color-200);
  text-underline-offset: 2px;
  cursor: help;
  position: relative;
}
.label-with-tooltip::after {
  content: attr(data-css);
  position: absolute;
  bottom: 100%;
  left: 0;
  margin-bottom: 4px;
  padding: 0.25rem 0.5rem;
  background: var(--color-interface-700);
  color: var(--color-interface-050);
  font-family: var(--mono);
  font-size: 0.75rem;
  border-radius: 4px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, visibility 0.15s ease;
  z-index: 10;
}
.label-with-tooltip:hover::after {
  opacity: 1;
  visibility: visible;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

.number-input {
  position: relative;
}
.number-input input {
  padding-top: 0;
  padding-bottom: 0;
}
.number-input .spinner-buttons {
  height: var(--input-h);
  width: var(--input-h);
  display: flex;
  flex-direction: column;
  position: absolute;
  right: 0;
  top: 0;
}
.number-input .spinner-buttons button {
  height: calc(var(--input-h) * 0.5);
  cursor: pointer;
  padding: 0;
}
.number-input .spinner-buttons button svg {
  width: 10px;
  height: auto;
}
.number-input .spinner-buttons button svg path {
  fill: var(--color-interface-600);
}
.number-input .spinner-buttons button:hover svg path {
  fill: var(--color-interface-900);
}
.settings-section {
  margin: var(--space-m) 0;
}
.settings-section h2 {
  margin-bottom: var(--space);
  font-weight: 600;
  font-size: 1.4rem;
  border-bottom: 1px solid var(--color-200);
  color: var(--color-800);
}
.settings-section .infos {
  font-size: 0.8rem;
  color: var(--color-interface-400);
}

.settings-subsection:not(:last-child) {
  border-bottom: 1px solid var(--color-interface-100);
}

.settings-subsection {
  padding: var(--space-xs) 0;
}
.settings-subsection h3 {
  margin-top: calc(var(--space-xs) * 1.5);
  margin-bottom: calc(var(--space-xs) * 2);
  font-size: 1rem;
  font-weight: 600;
}

.unit-toggle button:not(.spinner-btn) {
  cursor: pointer;
  border: 1px solid var(--color-interface-400);
  color: var(--color-interface-400);
  background-color: var(--color-panel-bg);
  border-radius: var(--border-radius);
  padding: 0.1rem 0.3rem;
  height: calc(var(--input-h) * 0.75);
}
.unit-toggle button:not(.spinner-btn):not(.active):hover {
  background-color: var(--color-interface-100);
}
.unit-toggle button:not(.spinner-btn).active {
  color: var(--color-interface-050);
  background-color: var(--color-interface-500);
  cursor: auto;
}

#editor-panel .tabs .tab {
  color: var(--color-interface-600);
  font-size: 1rem;
  font-family: var(--sans-serif);
  height: var(--input-h);
  padding: 0 1ch;
  border: 1px solid currentColor;
  border-radius: calc(var(--input-h));
  font-weight: 500;
  background-color: var(--color-panel-bg);
}
#editor-panel .tabs .tab.active {
  background-color: var(--color-interface-400);
  border-color: var(--color-interface-400);
  color: var(--color-panel-bg);
}
#editor-panel .tabs .tab:not(.active):hover {
  cursor: pointer;
  background-color: var(--color-interface-100);
}

.settings-popup {
  position: fixed;
  background: white;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  z-index: 10;
  width: 860px;
  max-height: 600px;
  display: flex;
  flex-direction: column;
}

.popup-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e0e0e0;
  background: #f9f9f9;
}

.header-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.close-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  padding: 0;
  color: #666;
}

.popup-body {
  display: flex;
  flex: 1;
  overflow: hidden;
}

.popup-controls {
  flex: 1;
  padding: 1rem;
  overflow-y: auto;
  background-color: var(--color-panel-bg);
}

.settings-subsection h4 {
  margin: 0 0 0.5rem 0;
  font-size: 0.875rem;
  font-weight: 600;
}

.inheritance-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 0.875rem;
  color: #666;
  transition: color 0.2s;
}
.inheritance-btn:hover {
  color: #333;
}
.inheritance-btn svg {
  width: 1.25rem;
  height: 1.25rem;
}

.popup-css {
  flex: 1;
  background: #f5f5f5;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #e0e0e0;
}

.css-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0.75rem;
  background: #e8e8e8;
  border-bottom: 1px solid #d0d0d0;
  font-size: 0.875rem;
  font-weight: 600;
}

.toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: normal;
  color: #666;
}
.toggle input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 18px;
  background: #ccc;
  border-radius: 18px;
  transition: background 0.2s ease;
}
.toggle-switch::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  background: white;
  border-radius: 50%;
  transition: transform 0.2s ease;
}

.toggle input[type=checkbox]:checked + .toggle-switch {
  background: #61afef;
}
.toggle input[type=checkbox]:checked + .toggle-switch::after {
  transform: translateX(18px);
}

.readonly {
  flex: 1;
  margin: 0;
  padding: 0.75rem;
  background: #1e1e1e;
  color: #abb2bf;
  font-family: "Courier New", Courier, monospace;
  font-size: 0.75rem;
  line-height: 1.5;
  overflow-y: auto;
  white-space: pre-wrap;
}

.popup-css textarea {
  flex: 1;
  width: 100%;
  background: #1e1e1e;
  color: #abb2bf;
  border: none;
  padding: 0.75rem;
  font-family: "Courier New", Courier, monospace;
  font-size: 0.75rem;
  line-height: 1.5;
  resize: none;
  outline: none;
}/*# sourceMappingURL=style.css.map */