:root {
  /* V1 Variables */
  --primary-color: #323f4f;
  --primary-color-light: #d6dbe5;
  --primary-color-dark: #354b5f;
  --accent-color: #c42026;
  --hover-color: #c4202624;
  --error-color: #c42026;
  --gray-darker: #252934;
  --gray-dark: #313f50;
  --gray-medium: #8795b2;
  --gray-light: #acb8d0;
  --border-color: #d5dde45e;
  --selected-color: #d6dbe5;
  --modal-background-color: rgba(0, 0, 0, 0.6);
  /* Common properties */
  --font-size-xs: 0.7rem;
  --font-size-sm: 0.8rem;
  --font-size: 1rem;
  --font-size-lg: 1.2rem;
  --font-size-xl: 1.5rem;
  --round-sm: 0.25rem;
  --round: 0.5rem;
  --round-lg: 1rem;
  --disabled-opacity: 0.5;
}

* {
  box-sizing: border-box;
  touch-action: manipulation;
}

html {
  width: 100%;
  height: 100%;
}

body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-size: 16px;
  font-family: 'Roboto', sans-serif;
  padding-bottom: env(safe-area-inset-bottom, 10px);
}

label {
  font-size: var(--font-size-sm);
  font-weight: bold;
  color: var(--gray-medium);
}

input[type=text],
input[type=email],
input[type=password] {
  width: 100%;
  background: white;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.25rem;
  font-size: 1rem;
  font-family: 'Roboto', sans serif;
}

textarea {
  resize: none;
  width: 100%;
  padding: 0.25rem;
  font-family: 'Roboto', sans-serif;
  border: 1px solid var(--border-color);
  border-radius: 4px;
}

a,
.link {
  color: var(--primary-color);
  cursor: pointer;
  text-decoration: underline;
}

svg {
  width: 100%;
  height: 100%;
}

.relative {
  position: relative;
}

.flex {
  display: flex;
}

.center {
  text-align: center;
}

.center-v {
  display: flex;
  align-items: center;
}

.right {
  text-align: right;
}

.left {
  text-align: left;
}

.thin {
  font-weight: 300;
}

.bold {
  font-weight: 600;
}

.underline {
  text-decoration: underline;
}

.colspan2 {
  grid-column: span 2;
}

.colspan3 {
  grid-column: span 3;
}

.colspan4 {
  grid-column: span 4;
}

.colspan5 {
  grid-column: span 5;
}

.colspan6 {
  grid-column: span 6;
}

.colspan7 {
  grid-column: span 7;
}

.colspan8 {
  grid-column: span 8;
}

.colspan9 {
  grid-column: span 9;
}

.colspan10 {
  grid-column: span 10;
}

.colspan11 {
  grid-column: span 11;
}

.colspan12 {
  grid-column: span 12;
}

.flex-grow,
.grow {
  flex-grow: 1;
}

.gap1 {
  gap: 1rem;
}

.pointer {
  cursor: pointer;
}

.shadow {
  box-shadow: 0px 3px 6px #00000052;
}

.dialog-container {
  background: #f6f5f5;
  box-shadow: inset 0px 3px 6px #00000029, 0px 3px 6px #00000052;
  border-radius: 6px;
  padding: 1rem;
  color: var(--gray-dark);
}

.tag-pending {
  color: magenta;
  background-color: rgba(255, 0, 255, 0.15);
  padding: 0.25rem 0.5rem;
  cursor: pointer;
  white-space: nowrap;
}

.tag-autosave {
  color: red;
  background-color: rgba(255, 0, 0, 0.15);
  padding: 0.25rem 0.5rem;
  cursor: pointer;
  white-space: nowrap;
}

.color-primary {
  color: var(--primary-color);
}

.fill-white {
  fill: white;
}

.fill-black {
  fill: black,
}

.fill-gray-dark {
  fill: var(--gray-dark);
}

.fill-gray-light {
  fill: var(--gray-light);
}

.fill-primary {
  fill: var(--primary-color);
}

.fill-orange {
  fill: orange;
}

.apex-thumbnail>path[data-area-id]:hover {
  fill: rgba(119, 136, 153, 0.5);
}

/* ----- Hover Effect ----- */
@media (hover: hover) and (pointer: fine) {
  .hover:hover {
    background-color: var(--hover-color);
  }
}

/* ----- Animations ----- */

.rotate {
  animation: rotation 2s infinite linear;
}

.rotate-slow {
  animation: rotation 5s infinite linear;
}

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(359deg);
  }
}

.selection-fade {
  animation: selectionFade 2s ease-out;
}

@keyframes selectionFade {
  0% {
    fill: rgba(119, 136, 153, 0);
  }

  50% {
    fill: rgba(119, 136, 153, 0.5);
  }

  100% {
    fill: rgba(119, 136, 153, 0);
  }
}