:root {
    --safe-area-inset-top:    env(safe-area-inset-top);
    --safe-area-inset-right:  env(safe-area-inset-right);
    --safe-area-inset-bottom: env(safe-area-inset-bottom);
    --safe-area-inset-left:   env(safe-area-inset-left);
    --fx-border-color: #c0c0c0;
    --fx-border-radius: 5px;
    --fx-border-style: solid;
    --fx-border-width: 1px;
    --fx-border-color-focus: #0096D6;
    --fx-svg-path-fill: black;
}

/* Mocking some basic JavaFX behaviours */
body {
    overflow: hidden; /* Disabling browser horizontal and vertical scroll bars */
    margin: 0; /* Removing the default margin around the body */
    /* Disabling user selection by default */
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Making disabled nodes semi-transparent */
.disabled {
    opacity: 50%;
}

.fx-border > fx-border {
    border-color: var(--fx-border-color);
    border-style: var(--fx-border-style);
    border-width: var(--fx-border-width);
    border-radius: var(--fx-border-radius);
}

/* Applying the default JavaFX behaviour for SVGPath */
fx-svgpath svg path:not([fill]):not([stroke]) { /* if the application code didn't set neither fill nor stroke */
    fill: var(--fx-svg-path-fill);  /* then the fill is black */
}

fx-svgpath svg path:not([fill])[stroke] { /* if the application code set the stroke but not the fill */
    --fx-svg-path-fill: transparent; /* then the fill is transparent */
    fill: var(--fx-svg-path-fill);
}