/** @format */
/**
 * /* http://meyerweb.com/eric/tools/css/reset/ 
 *    v2.0 | 20110126
 *    License: none (public domain)
 *
 * @format
 */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
body {
  line-height: 1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/**
 * /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
 *
 * @format
 */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/* Sections
     ========================================================================== */
/**
   * Remove the margin in all browsers.
   */
body {
  margin: 0;
}
/**
   * Render the `main` element consistently in IE.
   */
main {
  display: block;
}
/**
   * Correct the font size and margin on `h1` elements within `section` and
   * `article` contexts in Chrome, Firefox, and Safari.
   */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
     ========================================================================== */
/**
   * 1. Add the correct box sizing in Firefox.
   * 2. Show the overflow in Edge and IE.
   */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}
/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/* Text-level semantics
     ========================================================================== */
/**
   * Remove the gray background on active links in IE 10.
   */
a {
  background-color: transparent;
}
/**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
   */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}
/**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */
b,
strong {
  font-weight: bolder;
}
/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/**
   * Add the correct font size in all browsers.
   */
small {
  font-size: 80%;
}
/**
   * Prevent `sub` and `sup` elements from affecting the line height in
   * all browsers.
   */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
     ========================================================================== */
/**
   * Remove the border on images inside links in IE 10.
   */
img {
  border-style: none;
}
/* Forms
     ========================================================================== */
/**
   * 1. Change the font styles in all browsers.
   * 2. Remove the margin in Firefox and Safari.
   */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}
/**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.
   */
button,
input {
  /* 1 */
  overflow: visible;
}
/**
   * Remove the inheritance of text transform in Edge, Firefox, and IE.
   * 1. Remove the inheritance of text transform in Firefox.
   */
button,
select {
  /* 1 */
  text-transform: none;
}
/**
   * Correct the inability to style clickable types in iOS and Safari.
   */
button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
  appearance: button;
}
/**
   * Remove the inner border and padding in Firefox.
   */
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
   * Restore the focus styles unset by the previous rule.
   */
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
   * Correct the padding in Firefox.
   */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
   * 1. Correct the text wrapping in Edge and IE.
   * 2. Correct the color inheritance from `fieldset` elements in IE.
   * 3. Remove the padding so developers are not caught out when they zero out
   *    `fieldset` elements in all browsers.
   */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}
/**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */
progress {
  vertical-align: baseline;
}
/**
   * Remove the default vertical scrollbar in IE 10+.
   */
textarea {
  overflow: auto;
}
/**
   * 1. Add the correct box sizing in IE 10.
   * 2. Remove the padding in IE 10.
   */
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
/**
   * 1. Correct the odd appearance in Chrome and Safari.
   * 2. Correct the outline style in Safari.
   */
[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}
/**
   * Remove the inner padding in Chrome and Safari on macOS.
   */
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}
/* Interactive
     ========================================================================== */
/*
   * Add the correct display in Edge, IE 10+, and Firefox.
   */
details {
  display: block;
}
/*
   * Add the correct display in all browsers.
   */
summary {
  display: list-item;
}
/* Misc
     ========================================================================== */
/**
   * Add the correct display in IE 10+.
   */
template {
  display: none;
}
/**
   * Add the correct display in IE 10.
   */
[hidden] {
  display: none;
}
select {
  padding: 5px 10px;
  border-radius: 40px;
  border: none;
  background-color: var(--lightGrey);
  font-size: 14px;
  cursor: pointer;
}
:root {
  --light: #ffffff;
  --darkerLight: #f5f5f9;
  --dark: #1c283f;
  --grey: #8c909a;
  --lightGrey: #e8ecee;
  --darkGrey: #2d3446;
  --primary: #0076ef;
  --lightPrimary: #377ded;
  --secondary: #ed6237;
  --lightSecondary: #f58d70;
  --boxShadow: #dbdbdd;
  --success: #00c882;
  --warning: #cf415e;
  --svg: #0a2e67;
  --svgHover: #1258c5;
  --price: #6e50ff;
  font-family: 'Raleway';
}
:root {
  interpolate-size: allow-keywords;
}
*:focus {
  outline: none;
}
*:focus-visible {
  outline: none;
}
html,
body,
#app {
  height: 100%;
  width: 100%;
  font-family: 'Raleway', sans-serif;
}

.notifications {
  position: absolute;
  top: 75px;
  right: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 1000;
}
.notifications__notif {
  position: relative;
  width: 420px;
  max-width: 90vw;
  box-sizing: border-box;
  border-radius: 8px;
  border: 1px solid var(--lightGrey);
  background-color: aliceblue;
  overflow: hidden;
}
.notifications__notif.error {
  background-color: lightcoral;
}
.notifications__notif.spotlight {
  border-color: var(--primary);
  background-color: var(--primary);
  color: var(--light);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}
.notifications__notif.spotlight .notifications__notif-button {
  border-color: var(--light);
  color: var(--primary);
  font-weight: 600;
}
.notifications__notif.spotlight .notifications__notif-progress span {
  background-color: var(--light);
}
.notifications__notif-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 10px;
  height: 10px;
  cursor: pointer;
}
.notifications__notif-close:after {
  content: '\2715';
}
.notifications__notif-progress {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 2px;
}
@keyframes notif-progress {
  from {
    width: 100%;
  }
  to {
    width: 0%;
  }
}
.notifications__notif-progress span {
  display: block;
  height: 100%;
  width: 100%;
  position: absolute;
  right: 0px;
  top: 0px;
  background-color: var(--primary);
  animation-name: notif-progress;
  animation-timing-function: linear;
  animation-iteration-count: 1;
}
.notifications__notif-content {
  padding: 20px 30px;
  display: flex;
  gap: 20px;
  align-items: center;
}
.notifications__notif-content--link {
  cursor: pointer;
}
.notifications__notif-icon {
  width: 50px;
}
.notifications__notif-text {
  flex-grow: 1;
  font-size: 14px;
  white-space: pre-wrap;
}
.notifications__notif-button {
  border: 1px solid var(--lightGrey);
  background: var(--light);
  padding: 8px 15px;
  border-radius: 5px;
  font-size: 15px;
  cursor: pointer;
  white-space: nowrap;
}
.builder .notifications {
  right: 90px;
}
@media (max-width: 650px) {
  .notifications {
    right: 10px;
    left: 10px;
    width: auto;
  }
  .notifications__notif {
    width: 100%;
    max-width: none;
  }
  .builder .notifications {
    right: 10px;
  }
}

.loader-component {
  position: relative;
  width: 100%;
  height: 100%;
}
.loader-component__boxes-wrapper {
  height: calc(32px * 2);
  width: calc(32px * 3);
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: calc(32px * -1.5);
  margin-left: -32px;
  transform-origin: 50% 50%;
}
.loader-component__boxes {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform-origin: 50% 50%;
  transform: rotateX(60deg) rotateZ(45deg) rotateY(0deg) translateZ(0px);
}
.loader-component__box {
  width: 32px;
  height: 32px;
  top: 0;
  left: 0;
  position: absolute;
  transform-style: preserve-3d;
  transition-timing-function: linear;
  animation-duration: 800ms;
  animation-iteration-count: infinite;
}
@keyframes loader-box1-animation {
  0% {
    transform: translate(100%, 0);
  }
  50% {
    transform: translate(100%, 0);
  }
  100% {
    transform: translate(200%, 0);
  }
}
@keyframes loader-box2-animation {
  0% {
    transform: translate(0, 100%);
  }
  50% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(100%, 0);
  }
}
@keyframes loader-box3-animation {
  0% {
    transform: translate(100%, 100%);
  }
  50% {
    transform: translate(100%, 100%);
  }
  100% {
    transform: translate(0, 100%);
  }
}
@keyframes loader-box4-animation {
  0% {
    transform: translate(200%, 0);
  }
  50% {
    transform: translate(200%, 100%);
  }
  100% {
    transform: translate(100%, 100%);
  }
}
.loader-component__box.box1 {
  transform: translate(100%, 0);
  animation-name: loader-box1-animation;
}
.loader-component__box.box2 {
  transform: translate(0, 100%);
  animation-name: loader-box2-animation;
}
.loader-component__box.box3 {
  transform: translate(100%, 100%);
  animation-name: loader-box3-animation;
}
.loader-component__box.box4 {
  transform: translate(200%, 0);
  animation-name: loader-box4-animation;
}
.loader-component__face {
  position: absolute;
  width: 100%;
  height: 100%;
  background: #377ded;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  transform: rotateY(0deg) rotateX(0deg) translateZ(calc(32px / 2));
}
.loader-component__face.face1 {
  top: 0;
  left: 0;
}
.loader-component__face.face2 {
  right: 0;
  transform: rotateY(90deg) rotateX(0deg) translateZ(calc(32px / 2));
}
.loader-component__face.face3 {
  background: #206eeb;
  transform: rotateY(0deg) rotateX(-90deg) translateZ(calc(32px / 2));
}
.loader-component__face.face4 {
  background: #dbe3f4;
  top: 0;
  left: 0;
  transform: rotateY(0deg) rotateX(0deg) translateZ(calc(32px * 3 * -1));
}
.loader-component__dots {
  display: inline-block;
  position: relative;
  width: 76px;
  height: 13px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -6.5px;
  margin-left: -38px;
  transform-origin: 50% 50%;
}
.loader-component__dot {
  position: absolute;
  top: 0;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #377ded;
  transition-timing-function: cubic-bezier(0, 1, 1, 0);
}
@keyframes dot-anim1 {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes dot-anim2 {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(24px, 0);
  }
}
@keyframes dot-anim3 {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}
.loader-component__dot.dot1 {
  left: 8px;
  animation: dot-anim1 0.6s infinite;
}
.loader-component__dot.dot2 {
  left: 8px;
  animation: dot-anim2 0.6s infinite;
}
.loader-component__dot.dot3 {
  left: 32px;
  animation: dot-anim2 0.6s infinite;
}
.loader-component__dot.dot4 {
  left: 56px;
  animation: dot-anim3 0.6s infinite;
}
.loader-component__wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 300px;
  margin: -150px;
  animation: fade-in 300ms ease-in-out;
}
.loader-component__wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--primary);
  mix-blend-mode: screen;
}
.loader-component__wrap .metaballs {
  width: 100%;
  height: 100%;
  filter: contrast(25);
  background: white;
}
.loader-component__wrap .meta {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  margin: -50px;
  transform: scale(0.3) rotateZ(-20deg) rotateX(-10deg);
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  perspective: 330px;
  animation: wobble 40s infinite linear;
}
.loader-component__wrap .ball,
.loader-component__wrap .meta:before,
.loader-component__wrap .meta:after {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  margin: -50px;
  background: black;
  border-radius: 50%;
  filter: blur(10px);
  animation: move 4.2s infinite linear;
}
.loader-component__wrap .meta:before {
  animation-delay: -1.4s;
}
.loader-component__wrap .meta:after {
  animation-delay: -2.8s;
}
@keyframes move {
  from {
    transform: translateZ(100px) rotateY(360deg) translateZ(-100px) rotateY(0deg);
  }
  to {
    transform: translateZ(100px) rotateY(0deg) translateZ(-100px) rotateY(360deg);
  }
}
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes wobble {
  from {
    transform: scale(0.3) rotateZ(0deg) rotateX(-10deg);
  }
  to {
    transform: scale(0.3) rotateZ(360deg) rotateX(-10deg);
  }
}

/** @format */
.catalog-page {
  position: relative;
  height: 100%;
  box-sizing: border-box;
  overflow: auto;
}
.catalog-page__head {
  position: sticky;
  left: 0px;
  padding: 24px 32px 0px;
  z-index: 2;
}
.catalog-page__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.catalog-page__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 16px;
}
.catalog-page__brand .thumbnail-component {
  width: 32px;
  height: 32px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.catalog-page__settings {
  display: flex;
  align-items: center;
  gap: 8px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 14px;
}
.catalog-page__settings svg {
  width: 18px;
  height: 18px;
}
.catalog-page__header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas: 'left search right';
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
  position: relative;
}
.catalog-page__header .segmented-button {
  width: 80px;
}
.catalog-page__header .catalog-search {
  grid-area: search;
}
.catalog-page__header-left {
  grid-area: left;
  width: 150px;
}
.catalog-page__header-right {
  grid-area: right;
  width: 150px;
  display: flex;
  gap: 10px;
}
.catalog-page__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  justify-content: center;
}
.catalog-page__filters .dropdown.multi-select .dropdown__button {
  padding: 10px 20px;
  background-color: var(--lightGrey);
  border-radius: 50px;
}
.catalog-page__filters .dropdown.multi-select .dropdown__button .multi-select__value {
  font-size: 13px;
}
.catalog-page__body {
  padding: 24px 32px 20px;
  width: fit-content;
  min-width: 100%;
  box-sizing: border-box;
}
.catalog-page__error {
  padding: 12px;
  color: var(--warning);
}
.catalog-page__footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: sticky;
  left: 0;
  padding: 24px 32px 120px;
}
.catalog-page__footer button {
  border: none;
  background: var(--lightGrey);
  border-radius: 4px;
  padding: 6px 12px;
  cursor: pointer;
}
.catalog-page__footer button:disabled {
  opacity: 0.5;
  cursor: default;
}
.catalog-page__footer select {
  border-radius: 4px;
  border: 1px solid var(--lightGrey);
  padding: 6px;
}
.catalog-page__page-switcher {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
}
.catalog-page__page-switcher .svg {
  cursor: pointer;
}
.catalog-page__page-switcher .svg.disabled {
  opacity: 0.2;
  cursor: default;
}
.catalog-page__create {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  height: 52px;
  padding: 0 50px;
  border: none;
  border-radius: 26px;
  background: var(--primary);
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  white-space: nowrap;
}
@media (max-width: 650px) {
  .catalog-page__header {
    grid-template-columns: auto auto;
    grid-template-areas: 'left right' 'search search';
    justify-content: space-between;
  }
}

/** @format */
.tree-picker {
  display: inline-block;
}
.tree-picker__trigger {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  border: none;
  border-radius: 18px;
  background: var(--lightGrey);
  padding: 8px 16px;
  font-size: 13px;
}
.tree-picker__trigger svg {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.tree-picker__trigger > svg:last-child {
  width: 10px;
  height: 10px;
  margin-left: auto;
}
.tree-picker__panel {
  position: fixed;
  margin: 0;
  width: 280px;
  max-height: 340px;
  display: none;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 0;
}
.tree-picker__panel:popover-open {
  display: flex;
}
.tree-picker__search {
  margin: 10px;
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  padding: 6px 10px;
  font-size: 13px;
}
.tree-picker__clear {
  margin: 0 10px 10px;
  border: none;
  background: none;
  color: var(--primary);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  padding: 0;
}
.tree-picker__select-all {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--lightGrey);
  font-size: 13px;
  cursor: pointer;
}
.tree-picker__tree {
  flex: 1;
  overflow-y: auto;
  padding: 10px;
}
.tree-picker__group-label {
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  color: var(--grey);
  padding: 8px 10px 4px;
}
.tree-picker__group-label.selected {
  color: var(--primary);
}
.tree-picker__group-label--checkable,
.tree-picker__group-label--collapsible {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.tree-picker__chevron {
  display: block;
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  transition: transform 0.15s ease;
  transform: rotate(-90deg);
}
.tree-picker__chevron--expanded {
  transform: rotate(0deg);
}
.tree-picker__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  font-size: 13px;
  cursor: pointer;
}
.tree-picker__item:hover {
  background: var(--lightGrey);
}
.tree-picker__item.selected {
  font-weight: 600;
}
.tree-picker__item svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/** @format */
label.checkbox {
  cursor: pointer;
}
label.checkbox input {
  display: none;
}
label.checkbox .checkmark {
  height: 18px;
  width: 18px;
  display: inline-block;
  position: relative;
  box-sizing: border-box;
  border-radius: 3px;
  border: 2px solid #e9ecee;
  text-align: center;
  color: transparent;
  font-size: 12px;
  line-height: 14px;
}
label.checkbox .checkmark:before {
  content: '\2714';
}
label.checkbox input[type='checkbox']:checked + .checkmark {
  background-color: #2d3446;
  border-color: #2d3446;
  color: white;
}
label.checkbox input[type='checkbox']:indeterminate + .checkmark {
  background-color: #2d3446;
  border-color: #2d3446;
  color: white;
}
label.checkbox input[type='checkbox']:indeterminate + .checkmark:before {
  content: '\2013';
}
label.checkbox .label {
  font-size: 13px;
  margin: 10px;
}

/** @format */
.popup-component.confirm-popup {
  z-index: 200000;
}
.confirm-popup .popup-component__content {
  width: 300px;
  height: auto;
  display: flex;
  flex-direction: column;
}
.confirm-popup__title {
  font-weight: 600;
  padding-bottom: 10px;
}
.confirm-popup__text {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 30px 36px;
  font-size: 15px;
  line-height: 19px;
  text-align: center;
  cursor: default;
}
.confirm-popup__buttons {
  box-shadow: 0px 0px 10px #0001;
  display: flex;
}
.confirm-popup__no-btn {
  width: 50%;
  text-align: center;
  height: 50px;
  line-height: 52px;
  font-weight: 500;
  cursor: pointer;
}
.confirm-popup__no-btn:hover {
  background-color: var(--boxShadow);
}
.confirm-popup__yes-btn {
  width: 50%;
  text-align: center;
  height: 50px;
  line-height: 52px;
  background-color: var(--warning);
  color: white;
  font-weight: 600;
  cursor: pointer;
}
.confirm-popup__yes-btn:hover {
  opacity: 0.9;
}

/** @format */
.popup-component {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #0005;
}
.popup-component__content {
  background-color: var(--light);
  height: 70%;
  max-width: 880px;
  max-height: 700px;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media (max-width: 650px) {
  .popup-component__fullscreen-on-mobile .popup-component__content {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
  }
}

/** @format */
.multi-select__value {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 11px;
}
.multi-select__value .svg {
  width: 10px;
  height: 13px;
  flex-shrink: 0;
}
.multi-select__value .svg svg {
  width: 100%;
  height: 100%;
}
.multi-select label.checkbox {
  display: flex;
  align-items: center;
  padding: 5px 10px;
  margin-top: 0px !important;
}
.multi-select label.checkbox:hover {
  background-color: #00000008;
}
.multi-select label.checkbox span {
  white-space: nowrap;
  margin: 0px 5px;
}
.multi-select .dropdown__content {
  left: 0px;
  right: auto;
  top: calc(100% + 10px);
  max-height: 40vh;
  overflow: auto;
}

/** @format */
.dropdown {
  position: relative;
  z-index: 100;
}
.dropdown.open {
  z-index: 200;
}
.dropdown__button {
  cursor: pointer;
}
.dropdown__content {
  position: absolute;
  top: 100%;
  right: 5px;
  padding: 10px 0px;
  background-color: var(--light);
  box-shadow: 0px 0px 10px #0002;
  border-radius: 5px;
  overflow: hidden;
}
.dropdown__separator {
  border-top: 2px solid #dfe1e6;
  padding-top: 15px;
  margin: 20px 10px;
  text-transform: uppercase;
  color: var(--grey);
  text-align: center;
  font-size: 12px;
}
.dropdown__list {
  max-height: 400px;
  overflow-y: auto;
}
.dropdown__list-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--dark);
  padding: 10px 30px;
  cursor: pointer;
  text-decoration: none;
  background-color: transparent;
  white-space: nowrap;
  font-weight: 500;
  border-radius: 0px;
  width: 100%;
  box-sizing: border-box;
}
.dropdown__list-item .svg {
  height: 23px;
  width: 23px;
  margin: -5px 0px;
}
.dropdown__list-item .svg svg {
  width: 100%;
  height: 100%;
}
.dropdown__list-item .svg svg path {
  fill: var(--dark);
}
.dropdown__list-item:hover {
  background-color: var(--lightGrey);
}
.dropdown__list-item.selected {
  color: var(--primary);
  font-weight: 600;
}
.dropdown__list-item.selected:hover {
  background-color: var(--light);
}

/** @format */
.segmented-button {
  width: 320px;
}
.segmented-button__btn {
  display: flex;
  width: 100%;
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid var(--lightGrey);
}
.segmented-button__label {
  text-align: left;
  margin-bottom: 10px;
}
.segmented-button__segment {
  cursor: pointer;
  padding: 10px;
  color: var(--dark);
  background-color: var(--light);
  text-align: center;
  flex-grow: 1;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.segmented-button__segment .svg {
  width: 20px;
  height: 20px;
  pointer-events: none;
}
.segmented-button__segment .svg svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.segmented-button__segment.selected {
  color: var(--light);
  background-color: var(--dark);
}

/** @format */
.tag-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.tag-filter__placeholder {
  cursor: pointer;
  border: none;
  border-radius: 18px;
  background: var(--lightGrey);
  padding: 8px 16px;
  font-size: 13px;
  color: inherit;
}
.tag-filter__group-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tag-filter__and,
.tag-filter__or {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--grey);
}
.tag-filter__group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--grey);
  border-radius: 6px;
  padding: 6px 8px;
}
.tag-filter__term-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.tag-filter__term {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 14px;
  background: var(--grey);
  padding: 4px 6px 4px 8px;
  font-size: 13px;
  white-space: nowrap;
}
.tag-filter__term--negated {
  text-decoration: line-through;
  background: #f4d3d3;
}
.tag-filter__term--global {
  background: var(--primary-light);
  color: var(--primary);
}
.tag-filter__negate,
.tag-filter__remove,
.tag-filter__remove-group {
  border: none;
  background: none;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 2px;
  color: inherit;
  opacity: 0.6;
}
.tag-filter__negate:hover,
.tag-filter__remove:hover,
.tag-filter__remove-group:hover {
  opacity: 1;
}
.tag-filter__input {
  width: 60px;
  border: none;
  outline: none;
  font-size: 13px;
  padding: 4px 2px;
}
.tag-filter__suggestions {
  position: fixed;
  margin: 0;
  min-width: 200px;
  max-height: 260px;
  overflow-y: auto;
  display: none;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--grey);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 4px 0;
}
.tag-filter__suggestions:popover-open {
  display: flex;
}
.tag-filter__suggestion {
  padding: 6px 12px;
  font-size: 13px;
  cursor: pointer;
}
.tag-filter__suggestion.active {
  background: var(--grey);
}
.tag-filter__suggestion--global {
  color: var(--primary);
}
.tag-filter__add-group {
  border: none;
  background: none;
  cursor: pointer;
  color: var(--primary);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  padding: 4px;
}

/** @format */
.dropzone {
  position: relative;
}
.dropzone__overlay {
  display: none;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #ffffffc7;
  z-index: 10;
}
.dropzone__overlay .svg {
  border: 2px dashed var(--grey);
  border-radius: 10px;
  width: 50%;
  height: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffffc7;
}
.dropzone__overlay .svg svg path {
  fill: var(--grey);
}
body.dragging .dropzone__overlay {
  display: flex;
}

/** @format */
.product-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 750px;
  max-width: 100vw;
  background: #fff;
  box-shadow: -2px 0 12px rgba(0, 0, 0, 0.12);
  z-index: 150;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  animation: product-panel-slide-in-right 300ms ease forwards;
  font-size: 14px;
}
.product-panel__header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--lightGrey);
  flex-shrink: 0;
}
.product-panel__icon-btn {
  width: 18px;
  height: 18px;
  cursor: pointer;
}
.product-panel__header-spacer {
  flex: 1;
}
.product-panel__preview-btn {
  height: 36px;
  padding: 0 16px;
  border: 1px solid var(--lightGrey);
  border-radius: 5px;
  background: #fff;
  cursor: pointer;
}
.product-panel__save-btn {
  height: 36px;
  padding: 0 20px;
  border: none;
  border-radius: 5px;
  background: var(--primary);
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}
.product-panel__save-btn:disabled {
  opacity: 0.5;
  cursor: default;
}
.product-panel__tabs {
  flex-shrink: 0;
  border-bottom: 1px solid var(--lightGrey);
  text-align: center;
}
.product-panel__tabs-trigger {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 14px 0;
  font-weight: 600;
  border: none;
  background: none;
}
.product-panel__tabs-trigger svg {
  width: 12px;
  height: 12px;
}
.product-panel__tabs-list {
  position: fixed;
  width: 220px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  display: none;
}
.product-panel__tabs-list:popover-open {
  display: block;
}
.product-panel__tabs-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  cursor: pointer;
}
.product-panel__tabs-list li.active {
  font-weight: 600;
}
.product-panel__tabs-list li.disabled {
  color: var(--grey);
  cursor: default;
}
.product-panel__tabs-list li svg {
  width: 14px;
  height: 14px;
}
.product-panel__body {
  flex: 1;
  overflow-y: auto;
}
.product-panel__general {
  padding: 20px;
}
.product-panel__media {
  width: 100%;
  height: 220px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--lightGrey);
  padding-bottom: 20px;
}
.product-panel__media .thumbnail-component {
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.product-panel__cat-symbol {
  display: flex;
  align-items: stretch;
  margin-bottom: 20px;
  gap: 10px;
}
.product-panel__cat-symbol.category-symbol {
  gap: 0px;
}
.product-panel__cat-symbol.category-symbol .product-panel__unlink-badge {
  display: none;
}
.product-panel__cat-symbol.category-symbol .product-panel__box--left {
  display: none;
}
.product-panel__cat-symbol.category-symbol .product-panel__box.category {
  border-radius: 6px 0px 0px 6px;
  border-right: none;
}
.product-panel__cat-symbol.category-symbol .product-panel__box.symbol {
  flex-direction: row-reverse;
  border-radius: 0px 6px 6px 0px;
  border-left: none;
}
.product-panel__unlink-badge {
  background: #fff;
  border-radius: 50%;
  padding: 1px;
  display: flex;
  align-items: center;
}
.product-panel__unlink-badge svg {
  display: block;
  width: 20px;
  height: 20px;
}
.product-panel__box {
  flex: 1;
  border: 1px solid var(--lightGrey);
  padding: 10px 14px;
  position: relative;
  box-sizing: border-box;
  padding: 10px 15px;
}
.product-panel__box label {
  display: block;
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
}
.product-panel__box--left {
  height: 100%;
}
.product-panel__box.symbol {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.product-panel__symbol-slot {
  position: relative;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
}
.product-panel__row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.product-panel__field {
  margin-bottom: 20px;
  flex: 1;
}
.product-panel__field.available {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.product-panel__field label {
  display: block;
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 6px;
}
.product-panel__name-row {
  align-items: flex-end;
}
.product-panel__name-row .product-panel__field {
  margin-bottom: 0;
  flex: 1;
}
.product-panel__family-tags {
  align-items: flex-start;
}
.product-panel__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 16px;
  background: var(--lightGrey);
  padding: 6px 14px;
}
.product-panel__pill svg {
  width: 10px;
  height: 10px;
}
.product-panel__price-row {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 20px;
}
.product-panel__price-box {
  flex: 1;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  padding: 6px 10px;
  color: var(--primary);
}
.product-panel__price-box label {
  display: block;
  font-size: 11px;
  color: var(--grey);
}
.product-panel__price-value {
  margin: 0;
}
.product-panel__tax {
  text-align: center;
}
.product-panel__tax label {
  display: block;
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
}
.product-panel__tax input {
  width: 20px;
}
.product-panel__datasheet {
  margin-bottom: 20px;
}
.product-panel__placeholder {
  height: 100%;
}
@keyframes product-panel-slide-in-right {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes product-panel-slide-in-bottom {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
@media (max-width: 650px) {
  .product-panel {
    left: 0;
    width: 100%;
    animation-name: product-panel-slide-in-bottom;
    border-radius: 10px 10px 0px 0px;
    height: 95%;
    top: auto;
  }
}

/** @format */
.bulk-product-panel__count {
  font-weight: 600;
  color: var(--grey-dark, #8a8f99);
}

/** @format */
.editable-select {
  margin: -10px 0px;
}
.editable-text {
  display: inline-block;
  min-height: 14px;
  min-width: 30px;
  cursor: pointer;
  border-radius: 5px;
}
.editable-text.empty {
  background-color: var(--lightGrey);
}
.editable-text.mixed {
  font-style: italic;
  color: var(--grey-dark, #8a8f99);
}
.editable-text.price-value {
  font-family: sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #377ded;
}
.editable-text input {
  margin: -10px 0px;
  z-index: 10;
  position: relative;
}
.price-input {
  position: relative;
}
.price-input__inherit,
.price-input__unknown,
.price-input__included {
  cursor: pointer;
  position: absolute;
  left: -10px;
  top: 16px;
  width: 50px;
  background-color: white;
  border: 1px solid #dfdede;
  padding: 3px 8px;
  border-top-color: #ddd;
  z-index: 10;
  white-space: nowrap;
}
.price-input__inherit:hover,
.price-input__unknown:hover,
.price-input__included:hover {
  background-color: #eee;
}
.price-input__included {
  top: 35px;
}
.price-input__inherit {
  top: 54px;
  border-radius: 0px 0px 5px 5px;
}
.price-input input {
  width: 50px;
  z-index: 10;
  position: relative;
}
.price-input__subtext {
  color: var(--grey);
  font-weight: 500;
}
.price-input__default {
  color: var(--grey);
}
.editable-thumbnail-component {
  position: relative;
  background-color: #dfdfdf;
  cursor: cell;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.editable-thumbnail-component.editing {
  cursor: move;
}
.editable-thumbnail-component.editing canvas {
  border-color: var(--primary);
}
.editable-thumbnail-component canvas {
  display: block;
  border: 2px solid transparent;
  border-radius: 5px;
}
.editable-thumbnail-component__select {
  padding: 10px 20px;
  border: 1px solid var(--dark);
  background-color: var(--light);
  margin-top: 10px;
  font-size: 13px;
}
.select-unit {
  position: relative;
  display: inline-block;
  font-size: 12px;
  margin: 0px 10px;
  color: var(--grey);
  text-transform: none;
}
.select-unit.open .select-unit__options {
  display: block;
}
.select-unit__value {
  cursor: pointer;
}
.select-unit__options {
  display: none;
  position: absolute;
  background-color: var(--light);
  padding: 5px 0px;
  border-radius: 5px;
  box-shadow: 0px 0px 10px #0001;
  z-index: 100;
  top: 150%;
}
.select-unit__option {
  padding: 4px 10px;
  cursor: pointer;
}
.select-unit__option:hover {
  background-color: #979797;
  color: white;
}

/** @format */
.tag-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  padding: 6px 8px;
  min-height: 26px;
  position: relative;
}
.tag-list--disabled {
  background: var(--lightGrey);
}
.tag-list__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 14px;
  background: var(--lightGrey);
  padding: 4px 6px 4px 12px;
  font-size: 13px;
  white-space: nowrap;
  border: 1px solid var(--lightGrey);
}
.tag-list__pill--global {
  border-color: var(--primary);
  color: var(--primary);
}
.tag-list__remove {
  border: none;
  background: none;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 2px;
  color: inherit;
  opacity: 0.6;
}
.tag-list__remove:hover {
  opacity: 1;
}
.tag-list__input {
  flex: 1;
  min-width: 80px;
  border: none;
  outline: none;
  font-size: 13px;
  padding: 4px 2px;
}
.tag-list__suggestions {
  position: fixed;
  margin: 0;
  min-width: 200px;
  max-height: 260px;
  overflow-y: auto;
  display: none;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 4px 0;
}
.tag-list__suggestions:popover-open {
  display: flex;
}
.tag-list__suggestion {
  padding: 6px 12px;
  font-size: 13px;
  cursor: pointer;
}
.tag-list__suggestion.active {
  background: var(--lightGrey);
}
.tag-list__suggestion--global {
  color: var(--primary);
}

/** @format */
.toggleSwitch {
  position: relative;
  width: 28px;
  min-width: 28px;
  display: inline-block;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  text-align: left;
}
.toggleSwitch__input {
  display: none;
}
.toggleSwitch__label {
  display: block;
  overflow: hidden;
  cursor: pointer;
  border: 0 solid var(--dark);
  border-radius: 20px;
  margin: 0;
}
.toggleSwitch__label:focus {
  outline: none;
}
.toggleSwitch__label:focus > span {
  box-shadow: 0 0 2px 5px red;
}
.toggleSwitch__label > span:focus {
  outline: none;
}
.toggleSwitch__inner {
  display: block;
  width: 200%;
  margin-left: -100%;
  transition: margin 0.3s ease-in 0s;
}
.toggleSwitch__inner:before,
.toggleSwitch__inner:after {
  content: '';
  display: block;
  float: left;
  width: 50%;
  height: 15px;
  padding: 0;
  box-sizing: border-box;
}
.toggleSwitch__inner:before {
  background-color: var(--darkGrey);
}
.toggleSwitch__inner:after {
  background-color: #dce2f1;
}
.toggleSwitch-disabled {
  background-color: #e7ebed;
  cursor: not-allowed;
}
.toggleSwitch-disabled:before {
  background-color: #e7ebed;
  cursor: not-allowed;
}
.toggleSwitch__switch {
  display: block;
  width: 10px;
  height: 10px;
  margin: 2px;
  background: var(--light);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 50%;
  border-radius: 20px;
  transition: all 0.3s ease-in 0s;
}
.toggleSwitch__input:checked + .toggleSwitch__label .toggleSwitch__inner {
  margin-left: 0;
}
.toggleSwitch__input:checked + .toggleSwitch__label .toggleSwitch__switch {
  right: 0px;
}
.toggleSwitch__input:indeterminate + .toggleSwitch__label .toggleSwitch__inner {
  margin-left: -50%;
}
.toggleSwitch__input:indeterminate + .toggleSwitch__label .toggleSwitch__switch {
  right: 25%;
  background: var(--darkGrey);
}

/** @format */
.catalog-picker__trigger {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--light);
  border: 1px solid var(--lightGrey);
  border-radius: 5px;
  padding: 8px;
  cursor: pointer;
}
.catalog-picker__trigger svg {
  display: block;
  width: 18px;
  height: 18px;
}
.catalog-picker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 8px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.catalog-picker__header h3 {
  margin: 0;
  font-size: 14px;
}
.catalog-picker__header svg {
  cursor: pointer;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.catalog-picker__list {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.catalog-picker__item {
  padding: 6px 8px;
  cursor: pointer;
}
.catalog-picker__item:hover {
  background: rgba(0, 0, 0, 0.05);
}
.catalog-picker__manual {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.catalog-picker-popup .popup-component__content {
  width: 260px;
  height: auto;
  max-width: 260px;
  max-height: 320px;
  padding: 8px;
}

/** @format */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}
.product-grid__tile {
  position: relative;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  cursor: pointer;
}
.product-grid__tile .product-grid__favourite {
  position: absolute;
  top: -5px;
  right: 3px;
  z-index: 1;
  width: 20px;
  height: 20px;
}
.product-grid__thumbnail {
  border-radius: 6px 6px 0px 0px;
  overflow: hidden;
  aspect-ratio: 1;
  border-bottom: 1px solid var(--lightGrey);
}
.product-grid__thumbnail .thumbnail-component {
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.product-grid__footer {
  padding: 10px;
}
.product-grid__category {
  font-size: 11px;
  text-transform: uppercase;
  color: var(--grey);
  margin-bottom: 5px;
}
.product-grid__name {
  font-size: 14px;
  font-weight: 600;
}
.product-grid__skeleton-thumbnail.skeleton {
  border-radius: 6px 6px 0px 0px;
}
.product-grid__skeleton-category.skeleton {
  width: 40%;
  height: 11px;
  margin: 2px 0 7px;
}
.product-grid__skeleton-name.skeleton {
  width: 70%;
  height: 14px;
  margin: 2px 0;
}

.skeleton {
  display: block;
  border-radius: 4px;
  background-color: #e6e8ea;
  background-image: linear-gradient(90deg, #e6e8ea 0%, #f3f4f5 50%, #e6e8ea 100%);
  background-size: 200% 100%;
  background-repeat: no-repeat;
  animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
@keyframes skeleton-shimmer {
  0% {
    background-position: 150% 0;
  }
  100% {
    background-position: -50% 0;
  }
}

/** @format */
.bookmark {
  cursor: pointer;
  width: 16px;
  height: 16px;
}
.bookmark svg {
  width: 100%;
  height: 100%;
}
.bookmark.active svg path {
  fill: var(--warning);
}

/** @format */
.form__row {
  padding: 10px 0px;
}
.form__row.error input,
.form__row.error textarea {
  border-color: red;
}
.form__row input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--lightGrey);
  border-radius: 5px;
  padding: 8px 10px;
  font-size: 13px;
}
.form__row input:focus,
.form__row input:active {
  outline: none;
}
.form__row textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--lightGrey);
  border-radius: 5px;
  padding: 8px 10px;
  font-size: 14px;
  height: 100px;
  font-family: sans-serif;
}
.form__row textarea:focus,
.form__row textarea:active {
  outline: none;
}
.form__row.vec3 {
  padding-bottom: 0px;
}
.form__row.vec3 .form__row-body {
  display: flex;
  gap: 15px;
}
.form__row.range {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.form__row.range .form__row-body {
  display: flex;
  gap: 20px;
  width: 65%;
}
.form__row.range .form__row.number {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 0px;
}
.form__row-label {
  font-size: 13px;
  margin-bottom: 5px;
  color: #626262;
  font-weight: 600;
}
.form__row-label input {
  display: inline-block;
  width: 45px;
  height: 23px;
  margin-left: 10px;
}
.form__row-description {
  font-size: 12px;
  margin-top: 20px;
  color: #626262;
}
.form__row-button {
  display: inline-block;
  padding: 7px 20px;
  background-color: #d3d3d3;
  color: white;
  border-radius: 5px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.form__row-link {
  display: block;
  font-size: 14px;
  margin: 10px 0px;
  color: #5a5a5a;
  font-weight: 600;
}
.form-slider {
  position: relative;
  height: 8px;
  background-color: #eee;
  border-radius: 5px;
  margin: 10px 7px;
  cursor: pointer;
}
.form-slider__progress {
  height: 100%;
  background-color: var(--primary);
  border-radius: 5px;
  width: 0%;
}
.form-slider__handle {
  position: absolute;
  top: 50%;
  width: 14px;
  height: 14px;
  border-radius: 10px;
  background-color: var(--primary);
  margin: -7px 0px 0px -7px;
}

/** @format */
.advanced-settings-tab {
  padding: 20px;
}
.advanced-settings-tab__toggles {
  margin: 16px 0;
}
.advanced-settings-tab__toggles-label {
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 8px;
}
.advanced-settings-tab__placeholder-material {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
}
.advanced-settings-tab__json textarea {
  font-family: monospace;
  min-height: 200px;
}
.advanced-settings-tab__set-json-btn {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 4px;
  cursor: pointer;
  margin-top: 10px;
}
.advanced-settings-tab__set-json-btn.success {
  border-color: var(--green, #2e9e5b);
  color: var(--green, #2e9e5b);
}
.advanced-settings-tab__set-json-btn.error {
  border-color: var(--red, #cf415e);
  color: var(--red, #cf415e);
}

.combined-products-tab {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 16px;
}
.combined-products-tab--empty {
  color: var(--gray);
  text-align: center;
  padding: 40px 16px;
}
.combined-products-tab__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.combined-products-tab__slot-header {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.combined-products-tab__slot-name {
  font-weight: 600;
}
.combined-products-tab__slot-kind {
  font-size: 12px;
  color: var(--gray);
  text-transform: uppercase;
}
.combined-products-tab__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.combined-products-tab__field label {
  font-size: 12px;
  color: var(--gray);
}

.product-picker {
  position: relative;
  display: inline-block;
}
.product-picker__trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--white);
  cursor: pointer;
  min-width: 200px;
}
.product-picker__trigger img,
.product-picker__trigger .thumbnail-component {
  width: 28px;
  height: 28px;
  border-radius: 4px;
  object-fit: cover;
}
.product-picker__trigger span {
  flex: 1;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-picker__placeholder {
  color: var(--gray);
}
.product-picker__clear {
  width: 14px;
  height: 14px;
  flex: none;
}
.product-picker__panel {
  width: 360px;
  max-height: 420px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.product-picker__search {
  width: 100%;
  padding: 6px 10px;
  margin-bottom: 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
}
.product-picker__scroller {
  max-height: 340px;
  overflow-y: auto;
}
.product-picker__scroller .product-grid + .product-grid {
  margin-top: 16px;
}

.infinite-list__error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 60px 20px;
  text-align: center;
  color: var(--dark);
  font-weight: 500;
}
.infinite-list__error--small {
  padding: 20px;
}
.infinite-list__retry {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid var(--grey);
  border-radius: 4px;
  background-color: var(--light);
  color: var(--dark);
  font-weight: 600;
  cursor: pointer;
}
.infinite-list__retry .svg {
  width: 14px;
  height: 14px;
}
.infinite-list__retry .svg svg {
  width: 100%;
  height: 100%;
}
.infinite-list__retry:hover {
  border-color: var(--primary);
  color: var(--primary);
}
.infinite-list__retry:hover .svg svg path {
  fill: var(--primary);
}
.infinite-list__sentinel {
  height: 1px;
}

/** @format */
.model3d-tab {
  position: relative;
  height: 100%;
}
.model3d-tab__file-input {
  display: none;
}
.model3d-tab__upload-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  margin-bottom: 16px;
  border: none;
  border-radius: 24px;
  background: var(--blue, #2f6fed);
  color: #fff;
  font-weight: 600;
  position: absolute;
  top: 10px;
  left: 50%;
  width: 300px;
  margin-left: -150px;
  z-index: 10;
  cursor: pointer;
}
.model3d-tab__upload-btn .svg {
  width: 24px;
  height: 24px;
}
.model3d-tab__upload-btn .svg svg {
  width: 100%;
  height: 100%;
}
.model3d-tab__upload-btn .svg svg path {
  fill: var(--light);
}
.model3d-tab__body {
  padding: 20px;
  position: absolute;
  left: 0px;
  top: 35vh;
  right: 0px;
  overflow: auto;
  bottom: 0px;
}
.model3d-tab__body .form__row.slider {
  display: flex;
  gap: 20px;
  padding: 0px;
}
.model3d-tab__body .form__row.slider .form-slider {
  flex: 1;
}
.model3d-tab__body .form__row-label {
  width: 120px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.model3d-tab__downloads {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 16px 0;
}
.model3d-tab__blend-download {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 20px;
  background: none;
  color: var(--grey, #9297a3);
}
.model3d-tab__blend-download .svg {
  width: 14px;
  height: 14px;
}
.model3d-tab__blend-download .svg svg {
  width: 100%;
  height: 100%;
}
.model3d-tab__glb-download {
  border: none;
  background: none;
  text-decoration: underline;
  color: var(--blue, #2f6fed);
}
.model3d-tab__section {
  margin-bottom: 20px;
}
.model3d-tab__section > label {
  display: block;
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 8px;
}
.model3d-tab__dimensions-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.model3d-tab__dimensions-row .svg {
  width: 14px;
  height: 14px;
  cursor: pointer;
}
.model3d-tab__dimensions-row .svg svg {
  width: 100%;
  height: 100%;
}
.model3d-tab__meshes {
  border: 1px solid var(--lightGrey);
  padding: 5px 0px;
  border-radius: 10px;
}
.model3d-tab__mesh-name {
  flex: 1;
  max-width: calc(100% - 100px);
  overflow-wrap: break-word;
}
.model3d-tab__mesh-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 5px 20px;
}
.model3d-tab__mesh-row:nth-child(even) {
  background-color: #f0f0f0;
}
.model3d-tab__mesh-row.hidden {
  opacity: 0.3;
}
.model3d-tab__mesh-row.isolated {
  opacity: 1;
  background-color: #c9e4ff;
}
.model3d-tab__mesh-row .svg {
  width: 16px;
  height: 16px;
  min-width: 16px;
  cursor: pointer;
  color: var(--grey, #9297a3);
}
.model3d-tab__mesh-row .svg svg {
  width: 100%;
  height: 100%;
}
.model3d-tab__mesh-row .svg.active {
  color: var(--blue, #2f6fed);
}
.model3d-tab__slot-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  font-size: 13px;
}
.model3d-tab__slot-name {
  font-weight: 600;
}
.model3d-tab__slot-source {
  color: var(--gray);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.model3d-tab__mesh-toggle-spacer {
  display: inline-block;
  width: 16px;
  min-width: 16px;
  height: 16px;
}
.model3d-tab__mesh-toggle {
  width: 16px;
  height: 16px;
  cursor: pointer;
  color: var(--grey, #9297a3);
  transition: transform 0.15s ease;
}
.model3d-tab__mesh-toggle svg {
  width: 100%;
  height: 100%;
}
.model3d-tab__mesh-toggle.expanded {
  transform: rotate(90deg);
}
.model3d-tab__modified-by-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.model3d-tab__modified-by-date {
  font-size: 12px;
  color: var(--grey, #9297a3);
}
.model3d-tab__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--light-grey, #f2f3f5);
}

.vpa-inputs {
  padding: 8px;
}
.vpa-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px;
  border-bottom: 1px solid #f0f0f0;
  font-size: 13px;
}
.vpa-input span {
  color: #555;
  flex-shrink: 0;
  margin-right: 8px;
}
.vpa-input input,
.vpa-input select {
  border: 1px solid #ddd;
  border-radius: 3px;
  padding: 3px 6px;
  font-size: 13px;
  width: 75px;
  box-sizing: border-box;
}
.vpa-input--bool {
  flex-direction: row-reverse;
}
.vpa-input--bool input {
  width: 20px;
}
.vpa-input--canvas {
  flex-direction: column;
  align-items: flex-start;
}
.vpa-input__canvas-hint {
  color: #aaa;
  font-size: 11px;
  margin-top: 2px;
}
.vpa-input--list {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.vpa-input__list-item {
  border: 1px solid #eee;
  border-radius: 3px;
  padding: 4px;
}
.vpa-input__list-item--add {
  background: var(--dark);
  color: var(--light);
  font-weight: 500;
  font-size: 12px;
  padding: 8px;
}
.vpa-input__list-item-actions {
  display: flex;
  justify-content: end;
  padding: 0px 15px;
}
.vpa-input__list-item-action {
  background: none;
}
.vpa-input__list-item-action .svg {
  width: 20px;
}
.vpa-preset-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  padding: 8px;
  border-bottom: 1px solid #f0f0f0;
}
.vpa-preset-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6px 4px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  transition: border-color 0.1s;
}
.vpa-preset-tile:hover:not(:disabled) {
  border-color: #999;
}
.vpa-preset-tile:disabled,
.vpa-preset-tile.vpa-preset-tile--disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.vpa-preset-icon {
  width: 28px;
  height: 28px;
  color: #555;
}
.vpa-preset-icon svg {
  width: 100%;
  height: 100%;
}
.vpa-preset-label {
  font-size: 9px;
  color: #777;
  margin-top: 2px;
  text-align: center;
}
.vpa-polyline {
  padding: 8px;
  border-bottom: 1px solid #f0f0f0;
}
.vpa-polyline__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.vpa-polyline__label {
  font-size: 12px;
  font-weight: 600;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.vpa-polyline__auto-height {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #777;
  cursor: pointer;
}
.vpa-polyline__points {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}
.vpa-polyline__point {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 4px;
  padding: 6px 8px;
}
.vpa-polyline__point--origin {
  opacity: 0.55;
}
.vpa-polyline__point-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3px;
}
.vpa-polyline__point-num {
  font-size: 11px;
  color: #999;
  display: flex;
  align-items: center;
  gap: 3px;
}
.vpa-polyline__origin-badge {
  font-size: 9px;
  background: #eee;
  color: #999;
  padding: 1px 4px;
  border-radius: 2px;
}
.vpa-polyline__remove {
  background: none;
  border: none;
  color: #ccc;
  cursor: pointer;
  font-size: 14px;
  padding: 0;
}
.vpa-polyline__remove:hover {
  color: #e44;
}
.vpa-polyline__pos {
  font-size: 11px;
  color: #4a9eff;
  margin-bottom: 3px;
}
.vpa-polyline__height {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}
.vpa-polyline__auto-val {
  color: #3a3;
}
.vpa-polyline__auto-badge {
  font-size: 9px;
  background: #e8f5e9;
  color: #3a3;
  padding: 1px 4px;
  border-radius: 2px;
}
.vpa-polyline__h-input {
  width: 64px;
  border: 1px solid #ddd;
  border-radius: 3px;
  padding: 2px 5px;
  font-size: 12px;
}
.vpa-polyline__add {
  width: 100%;
  background: none;
  border: 1px dashed #ddd;
  border-radius: 4px;
  color: #aaa;
  font-size: 12px;
  padding: 5px;
  cursor: pointer;
  margin-bottom: 8px;
}
.vpa-polyline__add:hover {
  border-color: #aaa;
  color: #666;
}

.asset-library-view {
  display: flex;
  flex-direction: column;
  padding: 20px;
  gap: 20px;
}
.asset-library-view__header {
  display: flex;
  align-items: center;
}
.asset-library-view__back {
  cursor: pointer;
  width: 20px;
  height: 20px;
}
.asset-library-view__file-input {
  display: none;
}
.asset-library-view__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.asset-library-view__tile {
  position: relative;
  aspect-ratio: 1;
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
  background: #f2f2f2;
}
.asset-library-view__tile--upload {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed #ccc;
  background: white;
}
.asset-library-view__tile-date {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  font-size: 11px;
  padding: 2px 4px;
  background: rgba(0, 0, 0, 0.5);
  color: white;
}
.asset-library-view__caption {
  font-size: 12px;
  color: #666;
}
.asset-library-view__error {
  font-size: 11px;
  color: #c0392b;
  padding: 4px;
  text-align: center;
}

/** @format */
.asset-preview3d {
  position: absolute;
  top: 0px;
  left: 0px;
  right: 0px;
  height: 35vh;
  border-bottom: 1px solid var(--lightGrey);
}
.asset-preview3d canvas {
  display: block;
}
.asset-preview3d__empty {
  width: 100%;
  height: 260px;
  background: var(--light-grey, #f2f3f5);
  border-radius: 8px;
}

/** @format */
.options-tab {
  padding: 20px;
}
.options-tab__display {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.options-tab__display label {
  font-weight: 600;
  font-size: 13px;
}
.options-tab__display select {
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  padding: 4px 8px;
}
.options-tab__actions {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.options-tab__actions button {
  flex: 1;
  height: 40px;
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
}
.option-section {
  margin-bottom: 24px;
}
.option-section__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 13px;
  margin-bottom: 6px;
}
.option-section__remove {
  width: 14px;
  height: 14px;
  margin-left: auto;
  cursor: pointer;
  color: var(--grey);
}
.option-section__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.option-section__add-choice {
  width: 140px;
  border: 1px dashed var(--lightGrey);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: var(--grey);
  cursor: pointer;
}
.choice-card {
  position: relative;
  width: 140px;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  overflow: hidden;
}
.choice-card__remove,
.choice-card__gear {
  position: absolute;
  top: 6px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  z-index: 1;
}
.choice-card__remove svg,
.choice-card__gear svg {
  width: 100%;
  height: 100%;
}
.choice-card__remove {
  left: 6px;
  color: var(--grey);
}
.choice-card__gear {
  right: 6px;
  color: var(--grey);
}
.choice-card__thumbnail {
  position: relative;
  width: 100%;
  height: 90px;
  background: var(--lightGrey);
  cursor: pointer;
}
.choice-card__thumbnail .thumbnail-component {
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.choice-card__colour-input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  opacity: 0;
  cursor: pointer;
}
.choice-card__3d-badge {
  position: absolute;
  bottom: 4px;
  left: 6px;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
}
.choice-card__body {
  padding: 8px;
}
.choice-card__price {
  display: flex;
  flex-direction: column;
  font-size: 11px;
  color: var(--grey);
  margin-top: 4px;
}
.choice-card__price-value {
  margin: 0;
  font-weight: 600;
  color: var(--primary);
}
.choice-config {
  padding: 20px;
}
.choice-config__header {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 20px;
}
.choice-config__back {
  width: 18px;
  height: 18px;
  cursor: pointer;
}
.choice-config__section {
  margin-bottom: 24px;
}
.choice-config__section label {
  display: block;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 12px;
  margin-bottom: 10px;
}
.choice-config__price-section {
  background: var(--lightGrey);
  padding: 10px 14px;
  border-radius: 6px;
}
.choice-config__price-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  padding: 4px 0;
}
.choice-config__price-value {
  margin: 0;
  font-weight: 600;
}
.choice-config__row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.choice-config__row select {
  flex: 1;
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  padding: 8px 10px;
}
.choice-config__row svg {
  width: 16px;
  height: 16px;
  cursor: pointer;
  color: var(--grey);
  flex-shrink: 0;
}
.choice-config button {
  width: 100%;
  height: 40px;
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
}

/** @format */
.settings-tab {
  padding: 20px;
}
.settings-tab__toggle-shape-opts,
.settings-tab__toggle-measure {
  margin: 10px 0;
}
.settings-tab__shape-opts {
  margin-bottom: 16px;
}
.inwall-options {
  margin: 16px 0;
}
.inwall-options__title {
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 8px;
}
.inwall-options__align {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.inwall-options__align select {
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 4px;
  padding: 4px 8px;
}

/** @format */
.symbol-picker {
  display: inline-block;
}
.symbol-picker__trigger {
  cursor: pointer;
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  padding: 0;
}
.symbol-picker__popover {
  position: fixed;
  margin: 0;
  width: 260px;
  display: none;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--lightGrey);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.symbol-picker__popover:popover-open {
  display: block;
}
.symbol-picker__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.symbol-picker__grid {
  max-height: 260px;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.symbol-picker__item {
  position: relative;
  width: 75px;
  height: 75px;
  border: 1px solid var(--lightGrey);
  border-radius: 4px;
  padding: 10px;
  box-sizing: border-box;
  cursor: pointer;
}
.symbol-picker__item.selected {
  border-color: var(--primary);
}
.symbol-picker__configure {
  position: absolute;
  top: 3px;
  right: -10px;
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  font-size: 14px;
  background: #fff;
  border: 1px solid var(--lightGrey);
  border-radius: 3px;
  text-decoration: none;
  color: inherit;
}
.symbol-picker__add {
  align-self: center;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  border: 1px solid var(--lightGrey);
  border-radius: 50%;
  text-decoration: none;
  color: inherit;
  font-size: 18px;
}

/** @format */
.symbol-icon {
  width: 100%;
  height: 100%;
  display: block;
}

/** @format */
.product-table {
  width: 100%;
  border: 1px solid var(--lightGrey);
  border-radius: 8px;
  font-size: 14px;
  min-width: 1200px;
}
.product-table__head {
  background: var(--lightGrey);
  font-weight: 600;
  font-size: 13px;
  position: sticky;
  top: 0;
  z-index: 1;
  border-radius: 8px 8px 0px 0px;
}
.product-table__row {
  display: grid;
  grid-template-columns: 48px 2fr 1fr 1fr 100px 120px 120px 48px;
  align-items: center;
  cursor: pointer;
}
.product-table__body .product-table__row:nth-child(odd) {
  background: #fafafa;
}
.product-table__body .product-table__row:hover {
  background: #f5fcff;
}
.product-table__col {
  padding: 10px 12px;
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.product-table__col--check {
  display: flex;
  justify-content: center;
}
.product-table__col--sortable {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
}
.product-table__col--sortable svg {
  width: 10px;
  height: 10px;
}
.product-table__col--sortable .flip {
  transform: rotate(180deg);
}
.product-table__col.active {
  color: var(--primary);
}
.product-table__body .product-table__col--price {
  color: var(--primary);
}
.product-table__col--favourite {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: none;
}
.product-table__name--fallback {
  color: #999;
  font-style: italic;
}

/** @format */
.catalog-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  max-width: 420px;
  min-width: 0;
  margin: 0 auto;
  height: 44px;
  padding: 0 18px;
  border-radius: 22px;
  border: 1px solid var(--lightGrey);
  background: #fff;
  box-sizing: border-box;
}
.catalog-search svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.catalog-search input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  font-size: 14px;
  background: transparent;
}
@media (max-width: 650px) {
  .catalog-search {
    max-width: none;
  }
}

/** @format */
.catalog-settings {
  width: 420px;
  max-width: 90vw;
  padding: 24px;
  background: #fff;
  border-radius: 8px;
}
.catalog-settings__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.catalog-settings__header svg {
  width: 14px;
  height: 14px;
  cursor: pointer;
}
.catalog-settings__field {
  margin-bottom: 16px;
}
.catalog-settings__field label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}
.catalog-settings__field input,
.catalog-settings__field textarea {
  width: 100%;
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 4px;
  padding: 8px 10px;
  font-size: 14px;
  box-sizing: border-box;
}
.catalog-settings__field textarea {
  min-height: 70px;
  resize: vertical;
}
.catalog-settings__logo {
  display: flex;
  align-items: center;
  gap: 12px;
}
.catalog-settings__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  font-size: 14px;
}
.catalog-settings__save {
  width: 100%;
  height: 44px;
  border: none;
  border-radius: 22px;
  background: var(--primary, #1e73f0);
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}
.catalog-settings__save:disabled {
  opacity: 0.6;
  cursor: default;
}

/** @format */
.families-admin-page {
  display: flex;
  flex-direction: column;
  height: 100vh;
}
.families-admin-page--denied {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  color: var(--grey-dark, #8a8f99);
}
.families-admin-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid var(--grey, #d5d7dd);
}
.families-admin-page__header h1 {
  font-size: 18px;
  margin: 0;
}
.families-admin-page__save {
  border: none;
  border-radius: 4px;
  background: var(--primary, #1e73f0);
  color: #fff;
  padding: 8px 20px;
  font-size: 13px;
  cursor: pointer;
}
.families-admin-page__save:disabled {
  background: var(--grey, #d5d7dd);
  color: var(--grey-dark, #8a8f99);
  cursor: default;
}

/** @format */
.family-tree-editor {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 16px 24px;
}
.family-tree-editor__header-row,
.family-tree-editor__row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.family-tree-editor__header-row {
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  color: var(--grey-dark, #8a8f99);
  padding: 8px 0;
  border-bottom: 1px solid var(--grey, #d5d7dd);
}
.family-tree-editor__col-drag {
  width: 16px;
  flex-shrink: 0;
}
.family-tree-editor__col-icon {
  width: 32px;
  flex-shrink: 0;
}
.family-tree-editor__col-slug,
.family-tree-editor__col-name {
  flex: 1;
}
.family-tree-editor__col-actions {
  width: 60px;
  flex-shrink: 0;
}
.family-tree-editor__body {
  flex: 1;
  overflow-y: auto;
}
.family-tree-editor__row {
  border-bottom: 1px solid var(--grey-light, #eef0f3);
  padding: 4px 0;
}
.family-tree-editor__row--drop-before {
  border-top: 2px solid var(--primary, #1e73f0);
}
.family-tree-editor__row--drop-after {
  border-bottom: 2px solid var(--primary, #1e73f0);
}
.family-tree-editor__row--drop-onto {
  background: var(--grey-light, #eef0f3);
}
.family-tree-editor__row--drop-invalid {
  background: rgba(207, 65, 94, 0.1);
  border-color: #cf415e;
}
.family-tree-editor__collapse {
  width: 16px;
  flex-shrink: 0;
  text-align: center;
  cursor: pointer;
  font-size: 10px;
}
.family-tree-editor__collapse--empty {
  cursor: default;
}
.family-tree-editor__icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.family-tree-editor__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.family-tree-editor__icon-placeholder {
  width: 100%;
  height: 100%;
  background: var(--grey, #d5d7dd);
  display: block;
}
.family-tree-editor__slug,
.family-tree-editor__name {
  flex: 1;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 6px 8px;
  font-size: 13px;
}
.family-tree-editor__slug:focus,
.family-tree-editor__name:focus {
  border-color: var(--grey, #d5d7dd);
  outline: none;
}
.family-tree-editor__slug:disabled,
.family-tree-editor__name:disabled {
  color: var(--grey-dark, #8a8f99);
  background: none;
}
.family-tree-editor__actions {
  width: 60px;
  flex-shrink: 0;
  display: flex;
  gap: 4px;
}
.family-tree-editor__actions button {
  border: none;
  background: none;
  cursor: pointer;
  font-size: 16px;
  color: var(--grey-dark, #8a8f99);
}
.family-tree-editor__actions button:hover {
  color: var(--text, #1a1c21);
}
.family-tree-editor__add-root {
  align-self: flex-start;
  margin-top: 12px;
  border: none;
  background: none;
  color: var(--primary, #1e73f0);
  cursor: pointer;
  font-size: 13px;
  padding: 0;
}

/** @format */
.symbol-editor-page {
  padding: 18px;
}
.symbol-editor-page__topbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}
.symbol-editor-page__save {
  width: 40px;
  height: 40px;
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.symbol-editor-page__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.symbol-editor-page__upload {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}
.symbol-editor-page__upload-input {
  display: none;
}
.symbol-editor-page__upload-button {
  background: var(--primary, #1e73f0);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 16px 40px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}
.symbol-editor-page__upload-button:hover {
  background: #1a63d1;
}

/** @format */
.dxf-preview-panel {
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 8px;
  padding: 16px;
}
.dxf-preview-panel__label {
  font-weight: bold;
  font-size: 13px;
  margin-bottom: 8px;
}

/** @format */
.nine-slice-editor {
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 8px;
  padding: 16px;
}
.nine-slice-editor__canvas {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 280px;
  background: #f5f5f5;
}
.nine-slice-editor__fitted {
  position: relative;
}
.nine-slice-editor__fitted svg {
  display: block;
  width: 100%;
  height: 100%;
}
.nine-slice-editor__fitted svg * {
  cursor: pointer;
}
.nine-slice-editor__fitted svg *:hover {
  opacity: 0.8;
}
.nine-slice-editor__fitted .symbol-editor-rigid {
  filter: drop-shadow(0 0 2px #1e73f0);
}
.nine-slice-editor__guide {
  position: absolute;
  background: rgba(255, 0, 0, 0.6);
  cursor: ns-resize;
}
.nine-slice-editor__guide--top,
.nine-slice-editor__guide--bottom {
  left: 0;
  right: 0;
  height: 2px;
}
.nine-slice-editor__guide--left,
.nine-slice-editor__guide--right {
  top: 0;
  bottom: 0;
  width: 2px;
  cursor: ew-resize;
}
.nine-slice-editor__hint {
  font-size: 11px;
  color: #666;
  margin-top: 8px;
}
.nine-slice-editor__inputs {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}
.nine-slice-editor__inputs label {
  display: flex;
  flex-direction: column;
  font-size: 12px;
}
.nine-slice-editor__inputs input {
  width: 60px;
}

/** @format */
.options-panel {
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 8px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.options-panel__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
}
.options-panel__group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.options-panel__group-label {
  font-weight: bold;
  font-size: 13px;
}
.options-panel__group label {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}
.options-panel__group input {
  width: 80px;
}

/** @format */
.svg-preview-panel {
  border: 1px solid var(--grey, #d5d7dd);
  border-radius: 8px;
  padding: 16px;
  display: flex;
  gap: 16px;
}
.svg-preview-panel__controls {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 160px;
}
.svg-preview-panel__controls label {
  display: flex;
  flex-direction: column;
  font-size: 12px;
}
.svg-preview-panel__tints {
  display: flex;
  gap: 6px;
}
.svg-preview-panel__tint {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 1px solid var(--grey, #d5d7dd);
  cursor: pointer;
}
.svg-preview-panel__svg {
  flex: 1;
  max-height: 220px;
}

