:root {
    --fg-gray: #495057;
    --bg-gray: rgba(0,0,0,0.25);
    --bg-gray-lt: rgba(0,0,0,0.15);
    --gradbar: linear-gradient(to right, #ddd, #666, #ddd);
    --gradbar2: linear-gradient(to right, #ddd, #999, #ddd);
    --gradbar-vert: linear-gradient(to bottom, #ddd, #666, #ddd);
    --holdbar: linear-gradient(to top, rgba(100,100,100,0.1), rgba(255,255,255,1), rgba(100,100,100,0.1));
    --holdbar-dk: linear-gradient(to top, rgba(100,100,100,0.1), rgba(255,255,255,0.25), rgba(100,100,100,0.1));
    --holdbar-sf: linear-gradient(to top, rgba(200,200,200,0.1), rgba(255,255,255,1), rgba(200,200,200,0.1)) !important;
    --highlight: rgba(126,153,183,0.4);
    --main-color: rgba(126,153,183,1);
    --main-color-hover: rgb(96,127,164);
    --row-hover: rgb(126,153,183,0.25);
    --work-area: transparent;
    --header: rgba(126,153,183,0.5);
    --menu: #f0f0f0;
    --menu-text: #222;
    --menu-border: #555;
    --dark-menu-text: #fff;
    --menu-hover: #ddd;
    --blue-00: rgb(31, 48, 66);
    --blue-0: rgb(48, 64, 82);
    --blue-1: rgb(96,127,164);
    --blue-2: rgb(126,153,183);
    --blue-3: rgb(190, 204, 219);
    --blue-4: rgb(221, 228, 234);
    --blue-5: rgb(240, 243, 245);
    --blue-6: rgb(247, 249, 250);
    --slide-bg: rgba(190, 204, 219, 0.5);
    --scroll-bg: transparent;
}

/* surface size configuration and font import */
@font-face {
    font-family: 'Russo One';
    src: url('../moto/russo-one.ttf');
}

html, body {
    position: relative;
    height: 100%;
    margin: 0;
    scrollbar-width: none !important;
    scrollbar-color: var(--blue-2) var(--scroll-bg);
}
/* default element configuration */
a, a:hover, a:visited {
    border: none;
    color: inherit;
    text-decoration: none;
}
div {
    position: relative;
}
button {
    display: flex;
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: #eee;
    padding: 3px 7px 3px 7px;
    margin: 1px 1px 2px;
    cursor: pointer;
    text-transform: capitalize;
    white-space: nowrap;
}
button:not([disabled]):hover {
    background-color: var(--main-color);
    color: white;
}
button[load] {
    width: 100%;
    text-align: left;
}
button[del] {
    margin-left: 5px;
}
button[disabled] {
    color: #999;
}
input {
    margin-top: 1px;
    margin-bottom: 1px;
    padding-top: 0;
    padding-bottom: 0;
    position: relative;
    text-align: right;
}
input:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgb(0 100 255 / 10%);
}
input[type="range"] {
    width: 85px;
    background-color: transparent;
}
input[type=range]::-moz-focus-outer {
    border: 0;
}
input[type="checkbox"] + .color {
    z-index: 10000;
    width: 15px;
    height: 15px;
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 3px;
    display: inline-block;
    pointer-events: none;
    margin: 2px;
}
input[type="checkbox"]:not(:checked) + .color {
    border: 1px solid blue;
    background-color: rgba(255,255,255,0.5) !important;
}
input[type="checkbox"].color {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
}
select, textarea, button, input, a {
    outline: none;
}
textarea {
    overflow: scroll;
}
select {
    border-radius: 3px;
}
th, tr, td, span, div, label, button {
    user-select: none;
}
th, tr, td, label {
    white-space: nowrap;
}
details summary {
    display: flex;
    list-style: none;
    padding-left: 0 !important;
}
details summary::-webkit-details-marker {
    display: none;
}
details summary::before {
    content: "";
}
details summary {
    position: relative;
    cursor: pointer;
}
details summary::after {
    content: "▸";
    position: absolute;
    right: 5px;
    font-size: 1em;
    transform: rotate(-90deg);
    transition: transform 0.2s ease;
}
details[open] summary::after {
    transform: rotate(90deg);
}

.rot90 {
    transform: rotate(90deg);
}

/* for bambu mgr dialog */
.video {
    border: 1px solid #888;
    border-radius: 3px;
}

.nocap {
    text-transform: none !important;
}

/* container for entire page / app */
#app {
    position: fixed;
    font-size: 14px;
    font-weight: normal;
    font-family: sans-serif;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

#app-name .km-font {
    font-size: larger;
}

/** dark conversion */
:root[data-theme="dark"] {
    /* global alerts / labels */
    #alert-border:hover {
        background-color: rgba(255,255,255,0.7);
    }
    #mesh-info label,
    #mesh-info span,
    #oplist div .del {
        color: #aaa;
    }
    /* shared panels */
    .mod-top, .mod-end {
        background-color: var(--blue-00);
    }
    .pop-sep,
    .set-sep {
        background-color: #555 !important;
    }
    .t-body {
        border: 1px solid #555;
    }
    #render-tools .pop,
    #render-tools svg,
    .pop-tics > div,
    #menubar.content,
    #app-name,
    .set2-sep,
    .var-row,
    #layers .var-row,
    #slider-zero,
    #slider-max,
    .mdialog,
    .t-body,
    .cam-pop-op,
    .mod-print,
    .mod-print .header label {
        background-color: #282828;
        color: white;
    }
    /* borders + emphasis */
    #dev-list:hover {
        background-color: var(--blue-1);
    }
    #render-tools .pop,
    #render-tools svg,
    .cam-pop-op {
        border-color: #555;
    }
    .btn-sel,
    .txt-sel button {
        /* color: #fff; */
        background-color: var(--blue-1);
    }
    /* lists / rows */
    .set2-group .var-row:hover,
    .var-row:hover {
        border-right: 3px solid var(--blue-3);
        background-color: var(--blue-1) !important;
    }
    #slider-line {
        background-color: #444;
    }
    .set-header {
        background-color: var(--blue-00);
    }
    #oplist > div,
    .opdiv {
        background-color: #282828;
        border: 1px solid #666;
    }
    #oplist > div:hover,
    #op-add:hover {
        background-color: var(--blue-1);
    }
    #oplist div:hover .del {
        color: #777 !important;
    }
    /* menu states */
    #menubar.content > div:hover {
        background-color: var(--blue-1);
    }
    .top-menu label {
        color: var(--dark-menu-text)
    }
    #render-tools svg:hover {
        background-color: var(--blue-1);
        border-color: var(--blue-3);
    }
    .top-menu > span:hover {
        background-color: var(--blue-1);
    }
    .top-menu > span:hover label,
    .top-menu > span:hover svg {
        color: var(--dark-menu-text) !important;
    }
    .top-menu > span.selected,
    .top-menu > span.selected svg,
    .top-menu-drop div.selected {
        background-color: var(--blue-1);
        color: #fff;
    }
    /* status + side widgets */
    #slider-hold {
        background-color: var(--blue-0);
    }
    #stats {
        color: #888;
    }
    #rnfo {
        color: #aaa;
        border: 1px solid rgba(255,255,255,0.25);
        background-color: rgba(0,0,0,0.75);
    }
    #rnfo label {
        color: #ada;
    }
    #slider-hold .handle {
        background-color: #999;
    }
    #speedbar label {
        color: black;
    }
    .widopt {
        background-color: #222;
    }
    #camops summary {
        background-color: var(--blue-0);
    }
    /* overlays */
    #wassup {
        background-color: rgba(0,255,0,0.2);
    }
    .blurb p:first-child,
    .blurb p:last-child {
        color: #fff;
    }
    #curtain {
        color: white;
        background-color: black;
    }
    /* dialogs + print */
    #op-add-list > div:hover {
        color: black;
        background-color: var(--blue-2) !important;
    }
    .mod-x {
        border-color: #555;
        background-color: rgba(0,0,0,0.15);
    }
    #mod-help a:hover {
        color: #333;
    }
    .mod-print .box {
        background-color: rgba(0,0,0,0.15);
        border-color: #555;
    }
    .mod-print button {
        background-color: #555;
        border-color: #777;
    }
    /* layer controls */
    #layer-animate button {
        border: 1px solid #555;
        background-color: #444;
    }
    #layer-animate button:hover {
        background-color: var(--main-color);
    }
    #layer-animate button svg {
        color: #ddd;
    }
    #layer-animate label {
        border: 1px solid #555;
        background-color: #444;
    }
    #layer-animate input {
        border: 1px solid #444;
    }
}

/* top menu bar, drop menus */
#app-name {
    background-color: #fff;
    text-transform: capitalize;
    font-family: sans-serif;
    z-index: 15;
    color: var(--appname-blue);
    font-weight: bold;
    align-self: center;
    justify-self: stretch;
    height: 100%;
}
.top-menu {
    display: flex;
    gap: 0px;
    white-space: nowrap;
    align-items: stretch;
}
.top-menu > span {
    position: relative;
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 5px 9px 5px 9px;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
}
.top-menu hr {
    width: calc(100% - 3px);
    margin: 0;
    border: 0;
    padding: 0;
    height: 0.5px;
    background-color: var(--menu-border);
}
.top-menu label {
    color: #444;
}
.top-menu svg {
    color: var(--blue-1);
}
.top-menu > span:hover label {
    color: #000;
}
.top-menu > span:hover > svg {
    color: black;
}
.top-menu > span:hover {
    background-color: var(--blue-4);
    border-left: 1px solid var(--blue-2);
    border-right: 1px solid var(--blue-2);
}
.top-menu > span.selected,
.top-menu-drop div.selected
{
    background-color: var(--blue-3);
}
.top-menu > span:hover .top-menu-drop {
    display: flex;
}
/* .top-menu-right .content {
    border-top-right-radius: 4px; 
    align-items: self-end;
} */
.top-menu-left {
    align-items: self-start;
}
.top-menu-center .content > div > label {
    text-align: center !important;
}
.top-menu-left .content {
    border-top-left-radius: 4px; 
}
.top-menu-drop {
    position: absolute;
    display: none;
    top: 100%;
    left: -1px;
    right: -1px;
    flex-direction: column;
    font-family: sans-serif;
}
.top-menu-drop svg {
    width: 15px;
}

#menubar.content {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 2px;
    background-color: #fff;
    border-top: 1px dashed var(--blue-2);
    border-left: 1px solid var(--blue-2);
    border-right: 1px solid var(--blue-2);
    border-bottom: 1px solid var(--blue-2);
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
}
#menubar.content > div {
    display: flex;
    flex-direction: row;
}
#menubar.content > div > span {
    padding: 2px 7px 2px 7px;
    padding-left: 10px;
    text-align: center;
}
#menubar.content > div > label {
    text-align: left;
    flex-grow: 1;
    padding: 2px 7px 2px 7px;
    justify-self: stretch;
    align-self: stretch;
    border-radius: 3px;
}
#menubar.content > div:hover {
    background-color: var(--blue-4);
}

#app,div {
    display: flex;
    padding: 0;
    border: 0;
    margin: 0;
}
#loading {
    width: 40px;
    height: 40px;
    padding-right: 15px;
    position: fixed;
    display: none;
}

.hide-scroll {
    scrollbar-color: transparent transparent !important;
}
.nooutline {
    outline: none;
}
.noselect {
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.km-font {
    font-family: 'Russo One', sans-serif;
}
.menu-title {
    font-size: larger;
    font-weight: bold;
}
.b0 {
    border: 0px;
}
.bt1 {
    border: 1px solid transparent;
}
.bt2 {
    border: 2px solid transparent;
}
.bred {
    border-color: red !important;
}
.checker {
    background:
      linear-gradient(135deg, transparent 45%, #555 45%, #555 55%, transparent 55%) !important;
    background-size: 10px 10px;
    background-position: 0 0, 5px 5px;
}
.contents {
    display: contents;
}
.full {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.nope, .nope * {
    pointer-events: none;
}
.allpe {
    pointer-events: auto !important;
}
.hide {
    display: none !important;
}
.noshow {
    display: none;
}
.mono {
    font-family: monospace;
}
.font-smol {
    font-size: smaller;
}
.font-tiny {
    font-size: x-small;
}
.gap1 {
    gap: 1px;
}
.gap2 {
    gap: 2px;
}
.gap3 {
    gap: 3px;
}
.gap4 {
    gap: 4px;
}
.gap5 {
    gap: 5px;
}
.gap10 {
    gap: 10px;
}
.pad3 {
    padding: 3px !important;
}
.pad4 {
    padding: 4px !important;
}
.pad5 {
    padding: 5px !important;
}
.h100 {
    height: 100%;
}
.grid {
    display: grid;
}
.frow, .f-row {
    flex-direction: row;
}
.fcol, .f-col {
    flex-direction: column;
}
.f-grow > * {
    flex: 1;
}
.auto {
    flex-basis: auto;
}
.basis-50 {
    flex-basis: 50%;
}
.grow0 {
    flex-grow: 0 !important;
}
.grow {
    flex-grow: 1;
}
.shrink0 {
    flex-shrink: 0;
}
.a-start {
    align-items: flex-start;
}
.a-center {
    align-items: center;
}
.a-end {
    align-items: flex-end;
}
.a-stretch {
    align-items: stretch;
}
.j-start {
    justify-content: flex-start;
}
.j-center {
    justify-content: center;
}
.j-end {
    justify-content: flex-end;
}
.j-stretch {
    justify-items: stretch;
}
.as-stretch {
    align-self: stretch;
}
.space-around {
    justify-content: space-around;
}
.space-between {
    justify-content: space-between;
}
.center, .t-center {
    text-align: center;
}
.t-left {
    text-align: left;
}
.t-just {
    text-align: justify;
}
.t-right {
    text-align: right;
}
.russo {
    font-family: 'Russo One', sans-serif;
}
.overy {
    overflow-y: auto;
}
.mh0 {
    min-height: 0;
}
.mh35 {
    max-height: 35%;
}
.mh85 {
    max-height: 85%;
}
.mlr10 {
    margin: 0 10px 0 10px;
}
.mt10 {
    margin-top: 5px;
}
#wassup {
    background-color: rgba(0,255,100,0.3);
    border-top: 5px solid rgba(0,255,100,0.5);
    border-bottom: 5px solid rgba(0,255,100,0.5);
}
#wassup:hover {
    border-top: 5px solid rgba(0,255,100,0.5);
    border-bottom: 5px solid rgba(0,255,100,0.5);
}
.blurb {
    max-width: 200px;
    align-items: flex-end;
    justify-content: center;
    text-align: right;
    padding: 10px 0 10px 0;
    color: var(--blue-2);
    gap: 10px;
}
.blurb p {
    margin: 0;
}
.blurb p:first-child, .blurb p:last-child {
    color: #000;
}
.mlr-10 {
    margin: 0 10px 0 10px;
}

#curtain {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    color: black;
    background-color: #fff;
    font-family: 'Russo One', sans-serif;
    z-index: 1000;
}


#tracker {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    display: none;
    z-index: 101;
}

#container {
    border: 0;
    margin: 0;
    padding: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
}
#container canvas {
    overflow: hidden;
    margin: 0;
    border: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

.chonk {
    min-height: 3px;
    max-height: 3px;
    min-width: 100px;
    background-color: var(--bg-gray-lt);
}
.chonk2 {
    min-height: 3px;
    max-height: 3px;
    min-width: 100px;
    background-color: var(--bg-gray-lt);
}

#doit {
    display: none;
    position: absolute;
    white-space: nowrap;
    font-size: smaller;
    font-family: sans-serif;
    margin-top: 5px;
    padding: 5px;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
}
#undo, #redo {
    color: var(--main-color);
    margin: 2px;
    padding: 4px;
}
#undo:disabled, #redo:disabled {
    color: rgba(0,0,0,.1) !important;
    background-color: rgba(0,0,0,0.1) !important;
}
#undo:hover, #redo:hover {
    color: black;
    background-color: rgba(0,0,0,0.2);
}

#mid {
    position: fixed;
    top: 45px;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.mod-print button, #catalogList button, #settingsList button {
    text-transform: none !important;
}

#panel-right {
    overflow: unset;
}
#ws-widgets {
    /* max-height: 250px;
    overflow-y: auto; */
}
#ws-widgets, #camops, #fdm-ranges {
    padding: 0 4px 0 4px;
}
#camops {
    padding-bottom: 2px;
}
#panel-left {
    padding-right: 5px;
}
#panel-right > div.bottom, .set2-group.bottom {
    border-bottom: 1px solid var(--border-gray);
}
.slideshow #panel-slide {
    padding-right: 1px;
    border-right: 20px solid rgba(128,128,128,0.3);
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    transform: translateX(calc(-100% + 20px));
    transition: transform 0.15s ease-in-out, border 0.15s ease-in-out;
}
.slideshow #panel-slide:hover {
    padding-right: 0px;
    transition: transform 0.15s ease-in-out, border 0.15s ease-in-out;
    transform: translateX(0);
    border-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
#panel-left, #panel-right {
    max-height: 100%;
    background-color: var(--work-area);
}
#panel-left, #panel-right, #modal {
    pointer-events: visible;
}
#panel-left label, #panel-left svg, button svg {
    pointer-events: none;
}
#ws-widgets button {
    text-transform: none;
    text-align: left;
    white-space: nowrap;
    align-items: center;
    overflow: hidden;
    max-width: 150px;
}
#ws-widgets button.selected {
    background-color: var(--blue-3);
    color: #000;
}
.widpop:not(:hover) .widopt {
    display: none;
}
.widopt {
    background-color: white;
    border-radius: 3px;
    position: absolute;
    top: 0;
    right: 100%;
    bottom: 0;
}
.widopt button.disabled {
    background-color: var(--blue-3);
}
.line-sep2 {
    z-index: 14;
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    background-image: var(--gradbar2);
}

.closer {
    position: absolute;
    top: 3px;
    right: 6px;
    z-index: 200;
}
.closer:hover {
    color: #555;
}

.tictac {
    margin: 2px 2px 2px 0;
    padding: 4px;
    border-radius: 3px;
    border: 1px solid white;
    background-color: rgba(255,255,255,0.7);
    display: flex;
    align-items: center;
    justify-content: center;
}
.tictac:hover {
    border: 1px solid #ccc;
    background-color: #eee;
}
.tictac.selected {
    background-color: var(--main-color);
    color: #fff;
}

#float-tools {
    position: absolute;
    margin: 0;
    top: 90px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 16;
}
#float-tools button {
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

#float-tools .menu {
    margin-right: 5px;
    border-right: 3px solid var(--main-color);
}
#float-tools .title {
    min-height: 18px;
}

#lab-axis, #lab-scale, #lab-size {
    border-radius: 3px;
    padding: 2px;
    border: 1px solid white;
}
#lab-axis:hover, #lab-scale:hover {
    background-color: var(--main-color);
    color: white;
}
/* mode toolbar  */
#mode-tools {
    pointer-events: all;
    gap: 3px;
    top: 0;
    left: 0;
    right: 0;
    align-items: center;
    justify-content: center;
    flex-direction: row;
}
#mode-tools > span {
    text-transform: capitalize;
    display: flex;
    flex-direction: row;
    align-items: center;
    color: var(--menubar-fore);
    background-color: var(--menubar-back);
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    border-left: 1px solid var(--border-gray);
    border-right: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);
    padding: 4px 8px 4px 8px;
}
#mode-tools svg {
    aspect-ratio: 1/1;
    font-size: 20px;
    padding: 0 5px 0 0;
}
#mode-tools > span:hover {
    border-color: var(--appname-blue);
    background-color: var(--menu-hover-bg);
}
#mode-tools > span.selected {
    border-color: var(--appname-blue);
    background-color: var(--menu-active-bg);
}
/** fdm extruder drop-down */
#ft-nozzle .splat {
    width: 10px;
    height: 10px;
    margin: 3px;
    border-radius: 3px;
    border: 1px solid #555;
}
#ft-nozzle > div {
    flex-direction: row;
    align-items: center;
}

/* draggable selection transform panels */
.selection-panel {
    position: fixed;
    display: flex;
    flex-direction: column;
    z-index: 80;
    min-width: 230px;
    border: 1px solid var(--border-gray);
    border-radius: 6px;
    background-color: var(--menubar-back);
    color: var(--menubar-fore);
    box-shadow: 0 8px 22px rgba(0,0,0,0.25);
    pointer-events: all;
}
#panel-rotate {
    top: 92px;
    right: 26px;
}
#panel-scale {
    top: 270px;
    right: 26px;
}
.selection-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 10px;
    border-bottom: 1px solid var(--border-gray);
    cursor: move;
    user-select: none;
}
.selection-panel-head-title {
    display: flex;
    align-items: center;
    gap: 8px;
}
.selection-panel-head label {
    font-weight: 600;
}
.selection-panel-close {
    border: none;
    background: transparent;
    color: inherit;
    border-radius: 4px;
    padding: 2px 6px;
    cursor: pointer;
}
.selection-panel-close:hover {
    background-color: var(--menu-hover-bg);
}
.selection-panel-body {
    padding: 8px;
}

/** selection rotation */
#ft-rotate {
    gap: 2px;
    grid-template-rows: auto auto auto 1fr;
    grid-template-columns: auto auto auto auto;
}
#ft-rotate label {
    padding: 0 5px 0 5px;
}
#ft-rotate label,
#ft-rotate svg,
#fr-rotate div
{
    margin: 0;
    text-align: center;
    align-self: center;
}
#ft-rotate svg {
    padding: 2px;
    margin-top: 2px;
    aspect-ratio: 2/1;
    border-radius: 3px;
    border: 1px solid transparent;
}
#ft-rotate > div:hover > svg {
    background-color: var(--main-color);
    color: white;
}
#ft-rotate > div {
    display: flex;
    align-items: center;
    justify-content: center;
}
#ft-rotate .buttons {
    align-items: stretch;
    grid-column: 1/4;
    min-width: 100px;
}
#ft-rotate button {
    justify-content: center;
}
/** selection scaling */
#ft-scale {
    gap: 3px;
    grid-template-rows: auto auto auto 1fr;
    grid-template-columns: auto auto auto 1fr;
    justify-content: stretch;
    align-items: stretch;
}
#ft-scale > div {
    align-items: center;
    flex-direction: row;
}
#ft-scale > input {
    margin: 0;
}
#ft-scale > div > label {
    flex-grow: 1;
    text-align: center;
}
#ft-scale > div > input {
    position: absolute;
    right: 0;
}
#ft-scale .buttons {
    grid-column: 1/4 !important;
}
/** selection mesh actions */
#ft-mesh-btn {
    display: grid;
    grid-auto-flow: row;
    grid-template-rows: 1fr;
}
#ft-mesh-btn button {
    justify-content: center;
    flex-grow: 1;
}
#ft-mesh label {
    font-size: smaller;
}
#ft-mesh .value {
    font-family: monospace;
    padding-left: 4px;
}
#mesh-info {
    margin: 2px 1px 1px 1px;
}
#mesh-info label, #mesh-info span {
    align-self: unset !important;
    margin: 0;
}
#mesh-info span {
    display: inline-flex;
    align-items: center;
}
#mesh-info .em1 span {
    min-width: 1em;
}
#mesh-info .em3 span {
    min-width: 3.5em;
}
#lay-flat.selected {
    background-color: var(--main-color);
}

#act-animate.disabled {
    color: #aaa !important;
}

.dev-buttons {
    margin: 1px -1px 0 -1px;
}
.dev-buttons button {
    margin-left: 2px;
    margin-right: 2px;
    padding-bottom: 2px;
}
#dg .ext-buttons button {
    cursor: pointer;
}
.ext-buttons button {
    display: inline-flex;
    line-height: 1;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex: 1 1 0;   /* equal width */
    margin-top: 3px;
    height: 75%;
}
.ext-buttons label {
    font-size: smaller;
    margin: 3px 0 3px 0;
}
.txt-sel {
    background-color: #eee;
}
.txt-sel button, .btn-sel {
    background-color: var(--highlight);
}

#end {
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    text-align: center;
    font-size: smaller;
}

#camop_dialog {
    flex-direction: column;
}
#camop_dialog textarea {
    border: 1px solid gray;
    margin: 5px 1px 5px 1px;
}
#camop_dialog button,
#camop_dialog label
{
    text-align: center;
    display: block;
}
#camops {
    display: flex;
}
#oplist {
    max-height: calc(70vh - 200px);
    min-height: 0;
    overflow-y: auto;
    padding-top: 1px;
}
.cam-pop-op {
    top: 0;
    right: calc(100% - 4px);
    text-align: left;
    position: absolute;
    white-space: nowrap;
    flex-direction: column;
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 5px;
    margin-right: 6px;
    padding: 5px 3px 5px 3px;
    gap: 1.5px;
}
.pop-tics {
    position: absolute;
    left: -1px;
    right: -1px;
    bottom: 100%;
    margin: 0 0 2px 0;
}
.pop-tics > div {
    gap: 3px;
    padding: 5px;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    font-size: 11px;
    flex-direction: row;
    background-color: rgba(255,255,255,0.6);
    border: 1px solid rgba(0,0,0,0.25);
    border-radius: 5px;
    word-break: break-word;
    white-space: normal;
}
.z-select {
    aspect-ratio: 1;
    border-radius: 50%;
    border-color: rgba(128,128,128,0.5) !important;
}
#oplist {
    gap: 3px;
    margin-bottom: 3px;
}
#oplist .clock {
    border: 0;
    background-color: var(--blue-3);
}
#camops .set-sep {
    margin-bottom: 4px;
}
#camops summary {
    background-color: var(--blue-4);
}
#oplist .clock:hover {
    background-color: var(--blue-2);
}
#oplist .loop:hover {
    background-color: rgba(100, 150, 255, 0.35);
}
#oplist .in-loop {
    margin-left: 10px;
}
#oplist .in-loop::before {
    content: "";
    border: 1px solid var(--blue-2);
    border-radius: 3px;
    width: 2px;
    height: 80%;
    position: absolute;
    left: -10px;
}
#oplist > div {
    padding: 4px 20px 4px 7px !important;
}
#oplist > div, .opdiv {
    display: flex;
    flex-direction: column;
    align-items: left;
    justify-content: center;
    border: 1px solid rgba(0,0,0,0.25);
    border-radius: 3px;
    padding: 5px 10px 5px 10px;
    background-color: rgba(255,255,255,0.75);
    white-space: nowrap;
    font-size: smaller;
}
#oplist > div:hover, #op-add:hover {
    background-color: var(--blue-4);
}
#oplist > div.editing, #lzr-surface button.editing {
    background-color: rgba(190,230,190,0.85);
}
#oplist .drag {
    background-color: var(--highlight) !important;
}
#oplist .notime {
    background-color: rgba(150,150,150,0.5) !important;
}
#oplist .disabled {
    background-color: rgba(125,125,125,0.5) !important;
}
#oplist div .label {
    pointer-events: none;
}
#oplist div .del {
    position: absolute;
    right: 6px;
    font-size: 14px;
    color: rgba(0,0,0,0.25);
}
#oplist div:hover .del {
    color: #888;
    z-index: 103;
}
#oplist div .del:hover {
    color: #000;
}
#oplist div .opop {
    position: absolute;
    bottom: 100%;
    white-space: pre;
    font-family: monospace;
    font-size: smaller;
    text-align: left;
    margin: 2px;
    padding: 5px;
    display: none;
}
#oplist div:hover .opop {
    display: flex;
}
.mobile #oplist {
    font-size: larger;
}
.mobile #op-add-pop {
    font-size: larger;
}
#op-add-pop {
    pointer-events: all !important;
    position: absolute;
    display: none;
    top: 50%;
    right: calc(100% - 4px);
    transform: translateY(-50%);
    isolation: isolate;
}
#op-add-pop::before {
    content: "";
    position: absolute;
    top: -50px;
    left: -50px;
    right: 0;
    bottom: -50px;
    /* background-color: red; */
}
#op-add-pop::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -50px;
    right: -100px;
    bottom: -50px;
    /* background-color: green; */
    z-index: -1;
}
#op-add:hover #op-add-pop {
    display: flex;
}
.op-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto;
    align-items: center;
    gap: 5px;
}
#op-add-list {
    margin-right: 10px;
    padding: 4px;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    text-transform: none !important;
}
#op-add-list > div {
    padding: 3px 5px 3px 5px;
    display: flex;
    font-size: 14px;
    flex-direction: column;
    border: 1px dashed gray;
    border-radius: 3px;
    text-align: center;
}
#op-add-list > div:hover {
    background-color: var(--blue-4);
}
#op-add-contour-menu, #op-add-register-menu {
    position: absolute;
    right: 0;
    top: 0;
}

#progress-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
    background: rgba(0,0,0,0.08);
}

#progress-indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 120px;
    padding: 14px 18px 12px;
    border: 1px solid var(--border-gray);
    border-radius: 10px;
    background: var(--menubar-back);
    color: var(--menubar-fore);
    box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}

#progress-ring {
    --progress-deg: 0deg;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, transparent 58%, var(--menubar-back) 59%),
        conic-gradient(var(--appname-blue) var(--progress-deg), rgba(128,128,128,0.25) 0);
}

#progress-ring.indeterminate {
    background: none;
    border: 5px solid rgba(128,128,128,0.3);
    border-top-color: var(--appname-blue);
    animation: progress-spin 0.9s linear infinite;
}

#progress-pct {
    min-height: 16px;
    font-size: 12px;
    font-weight: 600;
    color: var(--menubar-fore);
}

#progtxt {
    min-height: 16px;
    max-width: 280px;
    text-align: center;
    font-size: 12px;
    color: var(--menubar-fore);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@keyframes progress-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

#dialog {
    position: fixed;
    z-index: 310;
    outline: none;
    color: black;
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
    background-color: rgba(255,255,255,0.85);
    border: 0;
    border-top: 8px solid rgba(180,180,180,1);
    border-bottom: 7px solid rgba(180,180,180,1);
    border-radius: 5px;
    overflow: hidden;
    margin: 0;
    padding: 5px;
}

#modal {
    display: none;
    position: fixed;
    z-index: 300;
    top: 50%;
    left: 0px;
    right: 0px;
    bottom: 0px;
    height: 300px;
    transform: translateY(-50%);
    background-color: var(--bg-gray);
    border-bottom: 1px solid black;
    border-top: 1px solid black;
    overflow: hidden;
}
#modal > div {
    position: absolute;
    transform: translateX(50%) translateY(-50%);
    right: 50%;
    top: 50%;
    max-height: 80%;
}

.mdialog {
    display: none;
    padding: 10px 20px 10px 20px;
    min-height: 20px;
    background-color: #fff;
}
.mod-top {
    height: 10px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    background-color: var(--main-color);
}

#tool-cols {
    max-height: 350px;
}
.mod-x {
    border-radius: 5px;
    border: 2px solid rgba(255,255,255,0.5);
    background-color: rgba(255,255,255,0.5);
    position: absolute;
    z-index: 30;
    bottom: calc(-4px - 1em);
    right: 0;
    height: 1em;
    aspect-ratio: 1 / 1 !important;
}
.mod-x svg {
    aspect-ratio: 1 / 1 !important;
}
#mod-setup {
    min-height: 550px;
    max-height: 60%;
    min-width: 725px;
    max-width: 70%;
    padding-bottom: 5px;
}
#mod-setup textarea {
    border-radius: 3px;
}
#mod-setup .header {
    text-align: center;
    border-bottom: 1px solid rgba(126,153,183,1);
    padding-bottom: 5px;
    margin-bottom: 5px;
    font-weight: bold;
}
#mod-setup .header.sub {
    padding-top: 10px;
}
#mod-setup .left {
    width: 180px;
    padding-right: 10px;
    margin-right: 10px;
    border-right: 1px solid #ddd;
}
#mod-tools .set-header {
    margin: 0;
}
#mod-help svg {
    width: 36px;
    height: 36px;
    padding-right: 10px;
    color: var(--main-color);
}
#mod-help a {
    border-radius: 5px;
    padding: 3px 10px 3px 5px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
#mod-help a:hover {
    background-color: #eee;
}
#mod-help a:hover svg {
    color: #123;
}
#mod-help .title {
    font-weight: bold;
    font-size: larger;
    padding-bottom: 10px;
}
#export-support {
    padding-top: 10px;
    text-align: center;
}
#export-support a {
    padding: 5px;
    border-radius: 2px;
}
.mod-print {
    background-color: rgba(255,255,255,0.85);
}
.mod-print .grow button {
    margin-left: 5px;
}
.mod-print .hint {
    color: #345;
    font-size: 12px;
    font-style: italic;
    text-align: center;
    font-weight: normal;
    padding-top: 5px;
}
.mod-print .box {
    background-color: rgba(255,255,255,0.5);
    border: 1px solid #bbb;
    border-radius: 3px;
    padding: 12px 10px 10px 10px;
}
.mod-print .box select {
    min-width: 10em;
}
.mod-print .header {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transform: translateY(50%);
    z-index: 10;
}
.mod-print .header label {
    background-color: white;
    padding: 0 10px 0 10px;
    border-radius: 5px;
    border-right: 1px solid #bbb;
    border-left: 1px solid #bbb;
}
.mod-print a {
    text-decoration: underline;
}
.mod-print a:hover {
    color: #567;
    background-color: #ddd;
}
.mod-print label {
    flex-grow: 1;
    font-weight: bold;
    padding-right: 10px;
}
.mod-print button {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 2em;
}
#print-canvas {
    width: 180px;
    height: 320px;
    border: 1px solid #ccc;
    background-color: #f5f5f5;
    transform: scale(-1, 1);
}
#print-layer {
    font-family: 'Russo One', sans-serif;
    font-size: small;
    width: 5em;
    padding: 0 !important;
    text-align: right;
}
#print-download {
    min-height: 4em !important;
}
#print-palette {
    display: none;
}
#code-preview-textarea {
    min-width: 50em;
    width: 100%;
    height: 7em;
    font-size: x-small;
    font-family: Courier,monospace;
    white-space: nowrap;
    resize: none;
}
.mod-end {
    height: 10px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    background-color: var(--main-color);
}
#settingsNew {
    margin-top: 5px;
    padding-top: 5px;
    border-top: 1px solid var(--main-color);
}
#settingsName {
    margin-right: 4px;
    padding-right: 4px;
    padding-left: 4px;
    text-align: center;
}
#settingsList {
    max-height: 450px;
    overflow-y: auto;
}
#settingsList button.selected {
    font-weight: bold;
    background-color: #ccc;
}
#settingsList button.selected:hover {
    background-color: #aaa;
}
#settingsList svg {
    pointer-events: none;
}

#help p {
    margin: 2px;
}
#help a {
    font-weight: bold;
    text-decoration: underline;
}
@supports (-moz-appearance:none) {
    #help li {
        margin-left: 20px;
    }
    .content br {
        margin: 10px;
    }
}
#help li {
    list-style-type: circle;
    margin-left: 10px;
}
#help .header {
    border: 1px solid rgba(0,0,0,0.75);
    background-color: rgba(0,0,0,0.05);
    border-radius: 2px;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    margin-bottom: 5px;
    padding: 1px 0 2px 0;
    font-family: monospace;
    font-size: larger;
    font-weight: bold;
}
#help .header2 {
    border: 1px solid rgba(0,0,0,0.25);
    background-color: rgba(0,0,0,0.03);
    border-radius: 2px;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    margin-bottom: 5px;
    padding: 1px 0 2px 0;
    font-family: monospace;
}
#help .title {
    text-align: center;
    font-size: larger;
    font-weight: bold;
    padding: 10px 0 5px 50px;
}
#help .title label {
    display: inline-flex;
}
#help #kiri-version {
    position: absolute;
    right: 10px;
    bottom: 5px;
    font-family: monospace;
    font-weight: normal;
    font-size: smaller;
    color: #333;
}
#help .content {
    flex-direction: column;
    margin: 3px 0 8px 0;
    line-height: 1.5em;
}
#help .content p {
    text-align: justify;
}
#help .content li {
    line-height: 1.75em;
    padding-left: 22px ;
    text-indent: -22px ;
}
#help .footer {
    font-family: monospace;
    align-items: center;
    white-space: nowrap;
    flex-direction: column;
    padding: 8px 0 3px 0;
    border-top: 1px dashed #aaa;
}
#help th, #help td {
    font-family: monospace;
}
#help td label {
    font-weight: bold;
}
#help button {
    display: inline-flex;
}
.help-label {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    border: 1px solid rgba(0,0,0,0);
    border-right: 0;
    padding: 12px 10px 12px 8px;
    z-index: 1000;
}
.help-label.sel {
    background-color: white;
    border: 1px solid #888;
    border-right: 0;
}
#help-tabs {
    width: 550px;
    height: 450px;
    transform: translateX(-1px);
}
#help-tabs p, #help-tabs li, #help-tabs table {
    color: #035;
}
#help-tab-support a:hover, #help-tab-start a:hover {
    background-color: rgba(61,133,198,0.25);
    border-radius: 5px;
}
#help-start {
    margin: 5px 0 5px 0;
}
#help-start a {
    padding: 5px;
}
.help-tab {
    flex-grow: 1;
    display: none;
    overflow-y: auto;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border: 1px solid #888;
    padding: 10px;
    background-color: white;
    white-space: normal;
}
.confirm {
    padding-top: 15px;
}
.confirm > div {
    padding-top: 10px;
}
.confirm label {
    text-align: center;
    line-height: 1.5em;
    padding: 0 10px 0 10px;
}
.confirm button {
    margin-left: 4px;
}
.confirm input {
    padding: 3px;
    margin: 0 10px 0 10px;
    text-align: left;
}
.image-convert-dialog {
    gap: 8px;
    padding: 10px 14px 6px;
    min-width: 360px;
}
.image-convert-title {
    margin: 0;
    text-align: center;
}
.image-convert-copy {
    width: 320px;
    line-height: 1.5em;
    padding: 5px 0 5px 0;
    margin: 0;
}
.image-convert-fields {
    justify-content: center;
}
.image-convert-fields table {
    border-collapse: collapse;
}
.image-convert-fields th,
.image-convert-fields td {
    padding: 3px 6px;
    vertical-align: middle;
}
.image-convert-fields th {
    font-weight: 600;
}
.image-convert-fields input[type="checkbox"] {
    margin: 0;
}
.image-convert-actions {
    width: 100%;
    margin-top: 4px;
}

.dev-type {
    font-family: 'Russo One', sans-serif;
    flex-direction: column;
    align-items: center;
    background-color: rgba(255,255,255,0.75);
    border-radius: 5px;
    margin: 5px;
    cursor: pointer;
}
.dev-type svg {
    width: 60px;
    height: 30px;
}
.dev-sel {
    background-color: var(--highlight);
}

.t-head {
    font-weight: bold;
}
.t-33 {
    width: 33%;
}
.flex {
    display: flex;
}
.fat5 {
    display: inline-block;
    min-width: 5px !important;
}
.t-group {
    background-image: var(--gradbar);
    white-space: nowrap;
    text-align: center;
    justify-content: center;
    border-radius: 2px;
    padding: 1px 0 2px 0;
    margin: 5px 0 5px 0;
    color: white;
}
.t-body {
    background-color: rgba(255,255,255,1);
    border: 1px solid #bbb;
    border-radius: 3px;
}
.t-inset {
    padding: 3px;
}

#devices {
    width: 225px;
}
/* #device1, #device2, #palette3 {
    width: 225px;
} */
#palette3 {
    display: none;
}
#dev-gcode textarea {
    font-family: monospace;
    overflow: auto;
    padding: 5px;
    width: 100%;
    /* background-color: #f8f8f8; */
}
#device-action {
    align-items: center;
}
#device-action a {
    right: 0;
    position: absolute;
    border-bottom: 1px dotted;
}
#device-action a:hover {
    color: #888;
    border-bottom: 1px transparent;
}
#device-action button, #tool-action button {
    flex-direction: column;
    justify-content: center;
}
#catalogList {
    min-width: 150px;
    height: 350px;
    overflow-y: scroll;
}
#catalogList .label {
    width: 12em;
    justify-content: flex-end;
}
#catalogList .rename {
    font-style: italic;
    color: #335;
}

#layer-animate {
    pointer-events: all;
    position: absolute;
    z-index: 200;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 4px;
}
#layer-animate svg {
    color: #333;
    font-size: 30px;
}
#layer-animate .padleft {
    margin-left: 8px !important;
}
#layer-animate button {
    width: 45px;
    align-items: center;
    justify-content: center;
}
#layer-animate label {
    display: inline-flex;
    border-radius: 3px;
    margin: 1px 2px 2px 1px;
    padding: 2px;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    border: 1px solid #ddd;
    background-color: #eee;
}
#layer-animate input {
    border-radius: 4px;
}

#layer-slider {
    position: absolute;
    font-size: smaller;
    gap: 2px;
    left: 15px;
    right: 15px;
    bottom: max(3px, env(safe-area-inset-bottom));
    pointer-events: all;
}
#slider.slider-mobile {
    height: 40px !important;
}
#slider {
    display: none;
    height: 25px;
    z-index: 100;
}
.mobile .sli-drag-el {
    background-color: rgba(200,0,0,0.8) !important;
}
#slider-hi-val, #slider-lo-val {
    display: none;
    position: absolute;
    font-family: monospace;
    transform: translateY(-50%);
    border: 1px solid #ddd;
    bottom: 110%;
    left: 50%;
}
#slider > div {
    justify-content: center;
    flex-direction: row;
    align-items: center;
}
#slider-line {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(50%-1.5px);
    height: 3px;
    min-height: 3px;
    max-height: 3px;
    background-color: #bbb;
}
#slider-zero {
    z-index: 10;
    min-width: 3em;
    background-color: #bbb;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}
#slider-max {
    min-width: 3em;
    background-color: #bbb;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}
#slider-hold {
    background-color: var(--blue-3);
    position: absolute;
    bottom: 0;
    right: 0;
    top: 0;
}
#slider-hold .slider-mobile {
    width: 40px !important;
}
#slider-hold .handle {
    width: 15px;
    height: 100%;
    background-color: var(--blue-1);
}
#slider-mid {
    width: 20px;
}

#top-slider {
    position: absolute;
    display: none;
    top: 10px;
    left: 35px;
    right: 50px;
    z-index: 1000;
    pointer-events: all;
}
#anim-slider {
    width: 100%;
}

#alert-area {
    display: none;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 90px;
    right: 0;
    left: 0;
}
#alert-border {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 50%;
    background-color: rgba(255,255,255,0.5);
    border: 3px solid var(--bg-gray);
    border-radius: 5px;
}
#alert-border:hover {
    background-color: rgba(0,0,0,0.1);
}
#alert-text {
    display: flex;
    text-align: left;
    font-weight: normal;
    flex-direction: column;
    margin: 3px 5px 3px 5px;
    color: black;
}
#alert-text p {
    margin: 5px;
    text-align: center;
}

#speeds {
    display: none;
    position: absolute;
    height: 100%;
    top: 0;
    right: 100%;
    bottom: 0;
    border: 0;
    margin: 0;
    padding: 0;
}
#speedbar {
    position: absolute;
    top: 3px;
    right: 3px;
    background-color: transparent;
}
#speedbar label {
    flex-grow: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-family: monospace;
    font-size: 12px;
    padding: 0 5px 0 5px;
    color: #fff;
    margin: 0.5px;
    border-radius: 3px;
}

.settings {
    gap: 3px;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    align-items: stretch;
    text-transform: capitalize;
}
.settings .set-header a {
    font-size: smaller;
}
#dev-sel, .dev-sel {
    margin-bottom: 0 !important;
}
#dev-list, .dev-list {
    align-self: stretch;
    padding: 0 5px 0 5px;
}
#dev-list:hover {
    background-color: var(--blue-4);
}
#panel-left .set2-group {
    border-right: 1px solid var(--border-gray);
}
#panel-right .set2-group {
    border-left: 1px solid var(--border-gray);
}
.set2-group {
    background-color: var(--menubar-back);
    flex-flow: column;
    padding: 0 0 2px 0;
    /* border-bottom: 1px solid var(--border-gray); */
}
.set2-group .var-row, .var-row {
    background: var(--menubar-back);
    padding: 1px 4px 1px 4px;
    margin: 0 !important;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
}
.set2-group .var-row:hover, .var-row:hover {
    border-right: 3px solid var(--blue-1);
    background-color: var(--blue-4) !important;
}
.set2-group .var-row label, #mod-setup .var-row label {
    margin-right: 25px;
}
.set2-sep {
    background: #fff;
    flex-shrink: 0;
    flex-direction: column;
    margin: 0 0 3px 0;
}
.pop-sep, .set-sep {
    border: 0 !important;
    padding: 0 !important;
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    margin-top: 2px;
    margin-bottom: 2px;
    background-color: #bbb !important;
}
.set-header {
    overflow: hidden;
    white-space: nowrap;
    justify-content: left;
    background-color: var(--blue-3);
    border-left: 3px solid transparent;
    border-bottom: 0.5px solid var(--main-color-hover);
    padding: 4px;
    margin: 0 0 4px 0;
}
.set-header.hidden {
    margin-bottom: 0 !important;
}
.set-header > span {
    color: var(--blue-2);
    font-size: smaller;
}
.set-header-line {
    margin-left: 5px;
    width: 100%;
}
.set-pop {
    top: 50%;
    left: calc(100% + 6px);
    position: absolute;
    white-space: nowrap;
    flex-direction: column;
    transform: translateY(-50%);
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 5px;
    margin-right: 5px;
    padding: 5px;
}
.settings .ext-buttons {
    margin: 0 4px 0 4px;
    gap: 2px;
}
#layers .var-row {
    border-radius: 10px;
    background-color: #ddd;
    padding: 2px 5px 2px 5px;
    margin: 0 2px 3px 2px;
}
#layers button {
    margin-left: 4px;
    margin-top: 0;
    margin-bottom: 3px;
    padding-left: 9px;
    padding-right: 9px;
    border-radius: 10px;
    font-weight: bold;
    background-color: var(--highlight);
}
#layers button:hover {
    background-color: var(--main-color);
}

.tiny.var-row select {
    width: 10em;
    max-width: 10em;
    font-size: smaller;
}
.var-row {
    white-space: nowrap;
    align-items: center;
    gap: 4px;
}
.var-row label {
    padding: 2px 4px 2px 0;
    flex-grow: 1;
    font-size: smaller;
    text-align: left;
}
.var-row .dim {
    text-align: right;
    font-size: smaller;
    align-self: center;
    justify-self: center;
}
.var-row input {
    min-width: 0;
    max-width: 7ch;
    margin-right: 0;
    margin-bottom: 1px;
    padding-bottom: 1px;
    padding-top: 1px;
}
.var-row select {
    border: 0;
    border-radius: 0;
    text-align: right;
}
.var-row #tool-name {
    max-width: 15ch;
}
.var-row button {
    margin-right: 0;
    margin-bottom: 1px;
}
.table-row {
    flex-direction: row;
    align-items: stretch;
}
.nounderline a {
    text-decoration: none !important;
    line-height: 2em;
}
.nounderline svg {
    width: 30px !important;
}
.mono {
    font-family: monospace;
}

#fs-edit {
    text-transform: none;
    padding: 1px 3px 1px 3px;
    margin: 0 3px 0 0 !important;
}
#gdpr {
    position: absolute;
    display: none;
    bottom: 10px;
    right: 10px;
    z-index: 1000;
    padding: 20px;
    border-radius: 5px;
    border: 1px solid black;
    background-color: white;
}
#gdpr a {
    text-decoration: underline;
}
#gotit {
    font-weight: bold;
    font-size: larger;
    padding: 5px 20px 5px 20px;
    margin-left: 10px;
}
#stats {
    position: fixed;
    font-size: 10px;
    bottom: 5px;
    right: 5px;
    color: #000;
    flex-direction: column;
    align-items: flex-end;
    white-space: nowrap;
}
#stats hr {
    width: 100%;
}
#stats:hover #rnfo {
    display: grid;
}
#rnfo {
    display: none;
    grid-template-columns: min-content 1fr;
    position: absolute;
    bottom: 100%;
    gap: 3px;
    right: 0;
    background-color: rgba(255,255,255,0.75);
    border: 1px solid rgba(0,0,0,0.5);
    border-radius: 3px;
    padding: 5px;
}
#rnfo label {
    text-align: right;
}
#context-menu {
    display: none;
    position: absolute;
    flex-direction: column;
    padding: 4px 1px 4px 1px;
    border: 1px solid #bbb;
    border-radius: 3px;
    background-color: rgba(255,255,255,0.85);
}
#context-menu button {
    margin: 0;
    padding: 10px;
    border-radius: 0;
    border: 1px solid rgba(255,255,255,0);
    background-color: rgba(255,255,255,0);
}
#context-menu button:hover {
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    background-color: #eee;
    color: black;
}
#context-menu .sep {
    border-top: 1px solid #ddd;
    margin: 5px 0 5px 0;
}

.range-info {
    position: relative;
}
.range-info:hover .range-detail {
    display: flex;
}
.range-detail {
    position: absolute;
    display: none;
    flex-direction: column;
    bottom: 50%;
    right: 100%;
    padding: 5px;
    margin: 0 10px 0 10px;
    font-size: smaller;
    font-family: monospace;
    transform: translateY(50%);
    background-color: rgba(255,255,255,0.8);
    border: 1px solid #aaa;
    border-radius: 5px;
}
.range-detail label.pad {
    padding-right: 8px;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}
.range-detail label.val {
    font-weight: bold;
}
.range-detail span {
    flex-grow: 1;
}

.devel #modal-box {
    height: 80%;
}
.devel #mod-x-any {
    height: 100%;
}
.devel #code-preview {
    flex-grow: 1;
}
.devel #code-preview > div,
.devel #code-preview-textarea {
    height: 100%;
}

.em20 {
    max-width: 20em;
}
