@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-Regular.woff2?v=c30bcd14') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-RegularItalic.woff2?v=714e3d72') format('woff2');
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-SemiBold.woff2?v=83d15581') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-SemiBoldItalic.woff2?v=fea77bbd') format('woff2');
  font-style: italic;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-Bold.woff2?v=215dbbb8') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: 'uncavo';
  src: url('/assets/fonts/uncavo-BoldItalic.woff2?v=cff4cb90') format('woff2');
  font-style: italic;
  font-weight: 700;
  font-display: swap;
}
:root {
  --turquoise-darkest: #244747;
  --turquoise-dark: #58b3b3;
  --turquoise: #7bc9c9;
  --turquoise-light: #9dd7d7;
  --turquoise-lightest: #c7e7e7;
  --pink: #f394b9;
  --white: #f4f9f9;
  --black: #000000;
  --light: var(--turquoise-lightest);
  --dark: var(--turquoise-darkest);
  --ink: var(--dark);
  --line: rgba(36, 71, 71, 0.19);
  --muted: rgba(36, 71, 71, 0.78);
  --radius: 20px;
  --control-radius: 8px;
  --control-border: rgba(36, 71, 71, 0.2);
  --brand-width: 161px;
  font-family:
    'uncavo',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    sans-serif;
  font-optical-sizing: auto;
  color: var(--ink);
  background: var(--white);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  color-scheme: light;
}

* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  line-height: 1.55;
}
::selection {
  color: var(--dark);
  background: var(--pink);
}
a {
  color: inherit;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
  min-width: 0;
}
:where(.internal-app, .field) :is(input, select, textarea) {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  background: var(--white);
  font-size: 16px;
  line-height: 1.25;
}
:where(.internal-app, .field)
  :is(
    input:not([type='checkbox'], [type='radio'], [type='range'], [type='hidden']),
    select:not([multiple], [size])
  ) {
  height: 44px;
}
:where(.internal-app, .field) :is(input, textarea)[readonly] {
  background: #f2f6f4;
}
:where(.internal-app, .field) textarea {
  min-height: 100px;
  resize: vertical;
}
:where(.internal-app, .field) :is(input, textarea)::placeholder {
  color: var(--muted);
  opacity: 1;
}
input {
  accent-color: var(--dark);
}
a,
button,
input,
select,
textarea,
summary {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
p:is([role='status'], [role='alert']):empty {
  margin: 0;
}
:is(
  button,
  .button,
  .icon-button,
  .modules-link,
  .account-link,
  .icon-text,
  .tabs a,
  .module-card,
  .order-card,
  .account-list a,
  .key-list a,
  summary
):is(:disabled, [aria-disabled='true']) {
  cursor: not-allowed;
  opacity: 0.4;
}
:focus-visible {
  outline: 2px solid var(--dark);
  outline-offset: 2px;
}

:is(
  button,
  .button,
  .icon-button,
  .modules-link,
  .account-link,
  .icon-text,
  .tabs a,
  .module-card,
  .order-card,
  .account-list a,
  .key-list a,
  summary
),
input[type='file']::file-selector-button {
  transition:
    background-color 140ms ease,
    color 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease;
}
@media (hover: hover) {
  :root
    :is(
      button,
      .button,
      .icon-button,
      .modules-link,
      .account-link,
      .icon-text,
      .tabs a,
      .module-card,
      .order-card,
      .account-list a,
      .key-list a,
      summary
    ):not(:disabled, [aria-disabled='true']):hover,
  input[type='file']:not(:disabled):hover::file-selector-button {
    background-color: var(--pink);
    color: var(--dark);
    border-color: var(--control-border);
  }
}
:root
  :is(
    button,
    .button,
    .icon-button,
    .modules-link,
    .account-link,
    .icon-text,
    .tabs a,
    .module-card,
    .order-card,
    .account-list a,
    .key-list a,
    summary
  ):not(:disabled, [aria-disabled='true']):active,
input[type='file']:not(:disabled):active::file-selector-button {
  background-color: var(--turquoise-light);
  color: var(--dark);
  border-color: var(--control-border);
}
@media (prefers-reduced-motion: reduce) {
  :is(
    button,
    .button,
    .icon-button,
    .modules-link,
    .account-link,
    .icon-text,
    .tabs a,
    .module-card,
    .order-card,
    .account-list a,
    .key-list a,
    summary
  ),
  input[type='file']::file-selector-button {
    transition: none;
  }
}
.modules-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 1px solid var(--dark);
  border-radius: var(--control-radius);
  background: var(--dark);
  color: var(--white);
  text-decoration: none;
}
.modules-link svg {
  width: 22px;
  height: 22px;
}
@media (max-width: 900px) {
  :root {
    --brand-width: 135px;
  }
}
@media (max-width: 600px) {
  :root {
    --brand-width: 140px;
  }
}

.icon-button {
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  background: var(--white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  vertical-align: middle;
}
.action-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 8px;
  vertical-align: middle;
}
.icon-button::before,
.action-icon::before {
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  flex: none;
  background: currentColor;
  -webkit-mask: var(--action-icon) center / contain no-repeat;
  mask: var(--action-icon) center / contain no-repeat;
  forced-color-adjust: none;
}
.icon-edit {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%203%2021%208%208%2021%203%2021%203%2016%20Z%20M13%206%2018%2011%22%2F%3E%3C%2Fsvg%3E');
}
.icon-add,
input[type='file'] {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%2F%3E%3C%2Fsvg%3E');
}
.icon-remove {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%207h16M9%207V4h6v3M6%207l1%2013h10l1-13M10%2010v7M14%2010v7%22%2F%3E%3C%2Fsvg%3E');
}
.icon-download {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203v12m-5-5%205%205%205-5M4%2016v5h16v-5%22%2F%3E%3C%2Fsvg%3E');
}
.icon-upload {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2016V3M7%208l5-5%205%205M4%2016v5h16v-5%22%2F%3E%3C%2Fsvg%3E');
}
.icon-print {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%208V3h10v5M7%2017H3V8h18v9h-4M7%2013h10v8H7Z%22%2F%3E%3C%2Fsvg%3E');
}

.icon-save {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203h12l4%204v14H3V3ZM7%203v6h10V3M7%2021v-8h10v8%22%2F%3E%3C%2Fsvg%3E');
}

.icon-close {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%206%2012%2012M6%2018%2018%206%22%2F%3E%3C%2Fsvg%3E');
}

.icon-retry {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%207v5h-5M20%2012a8%208%200%201%200-2%205%22%2F%3E%3C%2Fsvg%3E');
}

.icon-preview {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012ZM15%2012a3%203%200%201%201-6%200%203%203%200%200%201%206%200%22%2F%3E%3C%2Fsvg%3E');
}

.icon-left,
.icon-up {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%2012H5m6-7-7%207%207%207%22%2F%3E%3C%2Fsvg%3E');
}

.icon-right,
.icon-down {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14m-6-7%207%207-7%207%22%2F%3E%3C%2Fsvg%3E');
}

.icon-up::before,
.icon-down::before {
  transform: rotate(90deg);
}

.icon-copy {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%209h12v12H9ZM15%209V3H3v12h6%22%2F%3E%3C%2Fsvg%3E');
}

.icon-external {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%203h7v7M21%203%2011%2013M10%203H3v18h18v-7%22%2F%3E%3C%2Fsvg%3E');
}

.icon-button[hidden] {
  display: none;
}
.button.icon-button {
  min-height: 44px;
  padding: 0;
}
.icon-button svg {
  width: 20px;
  height: 20px;
}

.icon-button:has(svg)::before {
  display: none;
}

.icon-button[data-format] {
  flex-direction: column;
  gap: 2px;
}
.icon-button[data-format]::after {
  content: attr(data-format);
  font-size: 9px;
  line-height: 1;
  font-weight: 600;
}

.icon-minus {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14%22%2F%3E%3C%2Fsvg%3E');
}

input[type='file']::file-selector-button {
  width: 44px;
  height: 44px;
  margin-right: 12px;
  border: 1px solid var(--line);
  border-radius: var(--control-radius);
  background: var(--white) var(--action-icon) center / 20px no-repeat;
  font-size: 0;
  cursor: pointer;
  vertical-align: middle;
}
.runtime-notice {
  padding: 0.5rem 0;
  background: var(--light);
  color: var(--dark);
  overflow: hidden;
  white-space: nowrap;
  letter-spacing: 0.12em;
  line-height: 1.5;
}
@media (forced-colors: active) {
  input[type='file']::file-selector-button {
    width: auto;
    background: ButtonFace;
    color: ButtonText;
    border-color: ButtonText;
    font-size: inherit;
  }
}

.icon-settings {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpolygon%20points%3D%2218.93%2C9.13%2021.78%2C9.92%2021.78%2C14.08%2018.93%2C14.87%2018.93%2C14.87%2020.39%2C17.45%2017.45%2C20.39%2014.87%2C18.93%2014.87%2C18.93%2014.08%2C21.78%209.92%2C21.78%209.13%2C18.93%209.13%2C18.93%206.55%2C20.39%203.61%2C17.45%205.07%2C14.87%205.07%2C14.87%202.22%2C14.08%202.22%2C9.92%205.07%2C9.13%205.07%2C9.13%203.61%2C6.55%206.55%2C3.61%209.13%2C5.07%209.13%2C5.07%209.92%2C2.22%2014.08%2C2.22%2014.87%2C5.07%2014.87%2C5.07%2017.45%2C3.61%2020.39%2C6.55%2018.93%2C9.13%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E');
}

.icon-check {
  --action-icon: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23244747%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2012%204%204%2010-10%22%2F%3E%3C%2Fsvg%3E');
}

dialog {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--dark);
  box-shadow: 0 24px 70px rgb(36 71 71 / 28%);
}
dialog::backdrop {
  background: rgb(36 71 71 / 48%);
}
.request-error-dialog {
  width: min(520px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  padding: 0;
}
.dialog-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex-shrink: 0;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.dialog-header > :is(h2, .dialog-heading) {
  flex: 1 1 0;
  min-width: 0;
}
.dialog-header h2 {
  margin: 0;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.dialog-header .dialog-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  min-width: 44px;
  max-width: 100%;
  padding: 0;
  margin: 0;
  margin-inline-start: auto;
}
.dialog-header .dialog-actions > button {
  flex-shrink: 0;
  width: 44px;
  min-height: 44px;
}
.dialog-body {
  min-width: 0;
  padding: 20px;
}
.action-confirmation {
  width: min(520px, 96vw);
}
.action-confirmation .dialog-body {
  display: grid;
  gap: 20px;
}
.action-confirmation p {
  margin: 0;
  overflow-wrap: anywhere;
}
.confirmation-action {
  display: flex;
  justify-content: flex-end;
}
.confirmation-action button {
  max-width: 100%;
  overflow-wrap: anywhere;
}
@media (max-width: 480px) {
  .dialog-header {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px;
  }
  .dialog-header > :is(h2, .dialog-heading) {
    flex-basis: 12ch;
  }
  .dialog-body {
    padding: 16px;
  }
}

.loading-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 64px;
}
.loading-indicator::before {
  content: '';
  width: 32px;
  height: 32px;
  border: 3px solid var(--line);
  border-top-color: var(--dark);
  border-radius: 50%;
  animation: loading-spin 0.8s linear infinite;
}
@keyframes loading-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .loading-indicator::before {
    animation: none;
  }
}

.field-error {
  display: block;
  grid-column: 1 / -1;
  margin-top: 6px;
  color: #9f2847;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(input, select, textarea)[aria-invalid='true'],
.editor-file-choice:has(input[aria-invalid='true']) {
  border-color: #9f2847 !important;
}
