grid-apps-cmms/web/kiri/index.css
2025-12-09 18:31:41 -05:00

2574 lines
48 KiB
CSS

: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');
}
@media only screen and (max-width : 1000px) {
.top-menu > span > label {
display: none;
}
}
@media only screen and (max-width : 1200px) {
body {
font-size: smaller;
}
}
@media only screen and (max-width : 900px) {
body {
font-size: x-small;
}
}
@media only screen and (max-height : 1024px) {
body {
font-size: smaller;
}
}
@media only screen and (max-height : 750px) {
.lt-menu, .pop-lcol {
font-size: 16px !important;
}
.lt-menu svg {
font-size: 30px !important;
}
.pop-lcol svg {
font-size: 20px !important;
}
.mod-x {
position: absolute;
font-size: 30px;
top: 8px;
}
}
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.yellow {
background-color: #eda;
border: 1px solid rgba(0,0,255,0.5);
}
button.yellow:hover {
background-color: #eea;
}
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 {
background-color: #f8f8ff;
margin-bottom: 1px;
text-align: right;
border: 0.5px solid #bbb;
padding-top: 0;
padding-bottom: 0;
margin-top: 1px;
position: relative;
}
input:focus {
outline: 0;
box-shadow: 0 0 0 0.2rem rgb(0 100 255 / 10%);
}
input[disabled] {
background-color: #ddd;
color: #000;
}
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: 1px solid #bbb;
background-color: rgba(255,255,255,0.5);
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-weight: normal;
font-family: sans-serif;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#app-name .km-font {
font-size: larger;
}
/** dark conversion */
.dark button[disabled] {
color: #888;
}
.dark input[disabled] {
border-color: #666;
background-color: #444;
color: #888;
}
.dark input,
.dark select,
.dark option
{
border-color: #888;
background-color: #333;
color: #fff;
}
.dark option:checked {
background-color: var(--blue-1);
}
.dark hr {
border-color: #555;
}
.dark textarea {
background-color: #333;
color: #fff;
}
.dark button {
color: #fff;
background-color: #555;
border: 1px solid #777;
}
.dark button:not([disabled]):hover {
background-color: var(--blue-2);
color: black;
}
.dark #progress {
background-color: #333;
border-top: 1px solid #555;
border-bottom: 1px solid #555;
}
.dark #mesh-info label,
.dark #mode-info label
{
color: #fff;
border-color: #888;
background-color: var(--blue-0);
}
.dark #mesh-info span,
.dark #mode-info span
{
color: #fff;
border-color: #888;
background-color: #333;
}
.dark #oplist div .del {
color: #aaa;
}
.dark #oplist div:hover .del {
color: #333 !important;
}
.dark .mod-top, .dark .mod-end {
background-color: var(--blue-00);
}
.dark .pop-sep,
.dark .set-sep
{
background-color: #555 !important;
}
.dark #render-tools .pop,
.dark #render-tools svg,
.dark .pop-tics > div,
.dark #top,
.dark #top .content,
.dark #app-name,
.dark .set2-group,
.dark .set2-group .var-row,
.dark .set2-sep,
.dark .var-row,
.dark #layers .var-row,
.dark #slider-zero,
.dark #slider-max,
.dark .mdialog,
.dark .t-body,
.dark .cam-pop-op,
.dark .mod-print,
.dark .mod-print .header label
{
background-color: #282828;
color: white;
}
.dark #dev-list:hover {
background-color: var(--blue-1);
}
.dark #render-tools .pop,
.dark #render-tools svg,
.dark .cam-pop-op {
border-color: #555;
}
.dark .btn-sel,
.dark .txt-sel button {
/* color: #fff; */
background-color: var(--blue-1);
}
.dark #dialog {
background-color: rgba(60,60,60,0.85);
border-top: 8px solid rgba(100,100,100,1);
border-bottom: 7px solid rgba(100,100,100,1);
}
.dark #modal, .dark #dialog {
color: #fff !important;
}
.dark #modal select, .dark #dialog select {
color: #fff !important;
}
.dark .t-body,
.dark .set2-group {
border: 1px solid #444 !important;
}
.dark .set2-group .var-row:hover,
.dark .var-row:hover
{
border-right: 3px solid var(--blue-3);
background-color: var(--blue-1) !important;
}
.dark #slider-line {
background-color: #444;
}
.dark .set-header {
background-color: var(--blue-00);
}
.dark #oplist > div,
.dark .opdiv
{
background-color: #333;
border: 1px solid #888;
}
.dark #oplist > div:hover,
.dark #op-add:hover {
background-color: var(--blue-1);
}
.dark #oplist div:hover .del {
color: #777;
}
.dark #top .content > div:hover {
background-color: var(--blue-1);
}
.dark .top-menu label {
color: var(--dark-menu-text)
}
.dark #render-tools svg:hover {
background-color: var(--blue-1);
border-color: var(--blue-3);
}
.dark .top-menu > span:hover {
background-color: var(--blue-1);
}
.dark .top-menu > span:hover label,
.dark .top-menu > span:hover svg
{
color: var(--dark-menu-text) !important;
}
.dark .top-menu > span.selected,
.dark .top-menu > span.selected svg,
.dark .top-menu-drop div.selected
{
background-color: var(--blue-1);
color: #fff;
}
.dark #slider-hold {
background-color: var(--blue-0);
}
.dark #stats {
color: #888;
}
.dark #rnfo {
color: #aaa;
}
.dark #rnfo label {
color: #ada;
}
.dark #slider-center {
/* background-color: rgba(255,255,255,0.15); */
}
#slider-center {
/* background-color: rgba(255,255,255,0.5); */
}
.dark #slider-hold .handle {
background-color: #999;
}
.dark #speedbar label {
color: black;
}
.dark .widopt {
background-color: #222;
}
.dark #camops summary {
background-color: var(--blue-0);
}
/* top menu bar, drop menus */
#top, #app-name {
background-color: #fff;
text-transform: capitalize;
font-family: sans-serif;
z-index: 15;
height: 36px;
}
.top-menu {
display: flex;
gap: 0px;
align-items: center;
white-space: nowrap;
align-items: stretch;
}
.top-menu > span {
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 {
position: relative;
display: flex;
gap: 5px;
align-items: center;
}
.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-left .content {
border-top-right-radius: 4px;
}
.top-menu-right {
align-items: self-end;
}
.top-menu-center .content > div > label {
text-align: center !important;
}
.top-menu-right .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;
}
#top .content {
gap: 2px;
display: flex;
align-items: center;
flex-direction: column;
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;
}
#top .content {
display: flex;
flex-direction: column;
align-items: stretch;
padding: 2px;
}
#top .content > div {
display: flex;
flex-direction: row;
}
#top .content > div > label {
text-align: left;
flex-grow: 1;
}
#top .content > div > span {
text-align: right;
}
#top .content > div > span {
padding: 2px 7px 2px 7px;
padding-left: 10px;
text-align: center;
}
#top .content > div > label {
padding: 2px 7px 2px 7px;
justify-self: stretch;
align-self: stretch;
border-radius: 3px;
}
#top .content > div:hover {
background-color: var(--blue-4);
}
#app-name {
position: absolute;
top: 0;
left: 50%;
z-index: 50;
transform: translateX(-50%);
}
#app-name {
cursor: pointer;
}
#app-name hr {
margin: 1px;
}
#app-name:hover #app-name-pop {
display: flex;
}
#app-name-pop {
color: var(--fg-gray);
font-family: sans-serif;
position: absolute;
top: 100%;
}
#app-name-pop .content {
text-align: center;
}
#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;
}
#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);
}
#mode-info {
white-space: nowrap;
font-size: smaller;
font-family: sans-serif;
align-items: stretch;
justify-content: center;
padding: 2px 0 2px 0;
display: grid !important;
margin-right: 0 !important;
margin-bottom: 2px !important;
grid-template-columns: auto 1fr;
row-gap: 1px;
}
#mode-info > div {
display: contents;
}
#mode-info label, #mesh-info label {
font-size: smaller;
font-weight: bold;
align-self: right;
margin: 0 0 0 5px;
padding: 3px 5px 3px 5px;
color: var(--fg-gray);
background-color: var(--blue-4);
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-top: 1px solid var(--blue-3);
border-left: 1px solid var(--blue-3);
border-right: 0;
border-bottom: 1px solid var(--blue-3);
}
#mode-info span, #mesh-info span {
font-size: smaller;
margin: 0 5px 0 0;
padding: 3px 5px 3px 5px;
color: var(--fg-gray);
background-color: white;
border-top-left-radius: 0;
border-top-right-radius: 5px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 5px;
border-top: 1px solid var(--blue-3);
border-left: 0;
border-right: 1px solid var(--blue-3);
border-bottom: 1px solid var(--blue-3);
}
#mode-device, #mode-profile {
max-width: 100px;
overflow: hidden;
}
#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;
}
.slideshow #panel-left .settings {
transform: translateX(-100%);
transition: transform 0.1s ease-in-out;
transition-delay: 0.3s;
}
.slideshow #panel-left:hover .settings {
transform: translateX(0);
transition-delay: 0.0s;
}
.slideshow #panel-left:hover #slide-show {
transform: translateX(-100%);
transition-delay: 0.0s;
}
.slideshow #slide-show {
transition-delay: 0.5s;
transform: translateX(-80%);
/* transform: translateX(0); */
position: absolute;
top: 5px;
left: 0;
bottom: 5px;
width: 25px;
background-color: var(--slide-bg);
border-top: 1px solid var(--blue-1);
border-right: 1px solid var(--blue-1);
border-bottom: 1px solid var(--blue-1);
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
z-index: -1;
}
.slideshow #slide-show span {
display: flex;
}
#slide-show {
flex-direction: row;
align-items: center;
justify-content: center;;
}
#slide-show span {
display: none;
}
#panel-right {
overflow: unset;
}
/* #panel-right {
direction: rtl;
}
#panel-right * {
direction: ltr;
} */
#panel-left {
padding-right: 5px;
}
#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);
}
#top-sep {
display: none;
}
#top-sep {
z-index: 14;
height: 1px;
min-height: 1px;
max-height: 1px;
background-image: var(--gradbar);
}
.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;
}
/* top center toolbar */
#render-tools {
pointer-events: all;
position: absolute;
gap: 2px;
top: 3px;
left: 0;
right: 0;
align-items: center;
justify-content: center;
flex-direction: row;
}
#render-tools span {
position: relative;
}
#render-tools svg {
font-size: 20px;
aspect-ratio: 1/1;
background-color: #fff;
border: 1px solid #aaa;
border-radius: 3px;
padding: 8px;
}
#render-tools svg:hover {
border: 1px solid blue;
background-color: var(--blue-4);
}
/** tool pop menus */
#render-tools .pop:before {
position: absolute;
top: -10px;
left: -20px;
width: calc(100% + 40px);
height: calc(100% + 20px);
/* background-color: red; */
content: "";
}
#render-tools .pop {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 3px;
position: absolute;
margin-top: 3px;
padding: 3px;
top: 100%;
left: 50%;
transform: translateX(-50%);
text-align: center;
white-space: nowrap;
}
#render-tools > span:not(:hover) .pop {
display: none;
}
/** 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;
}
/** 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 {
justify-content: center;
align-items: center;
text-align: center;
flex-grow: 1;
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;
padding: 0 0 0 0;
}
#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;
}
#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 > 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: 4px;
padding: 5px 10px 5px 10px;
background-color: rgba(255,255,255,0.75);
white-space: nowrap;
}
#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 {
position: absolute;
display: none;
top: 0;
right: 100%;
transform: translateY(-50%);
}
#op-add:hover #op-add-pop {
display: flex;
}
.op-grid {
display: grid !important;
grid-template-columns: 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;
flex-direction: column;
border: 1px dashed gray;
border-radius: 3px;
text-align: center;
}
.dark #op-add-list > div:hover {
color: black;
background-color: var(--blue-2) !important;
}
#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 {
left: 0;
right: 0;
height: 6px;
min-height: 6px;
text-align: center;
background-color: rgb(220,220,220);
border-top: 1px solid #888;
border-bottom: 1px solid #888;
}
#progbar {
width: 0;
text-align: left;
position: relative;
background-color: rgb(255,90,90);
}
#progtxt {
display: none;
position: absolute;
left: 0;
right: 0;
top: 200%;
color: #888;
margin: 0 5px 0 5px;
padding: 0 5px 2px 5px;
white-space: nowrap;
flex-direction: row;
align-items: center;
justify-content: center;
}
#dialog {
position: fixed;
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: 20;
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 button, #modal select {
/* color: black !important; */
}
#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;
}
.dark .mod-x {
border-color: #555;
background-color: rgba(0,0,0,0.15);
}
.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;
}
.dark #mod-help a:hover {
color: #333;
}
#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;
}
#kiri-version {
font-family: monospace;
padding-top: 5px;
}
.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;
}
.dark .mod-print .box {
background-color: rgba(0,0,0,0.15);
border-color: #555;
}
.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;
}
.dark .mod-print button {
background-color: #555;
border-color: #777;
}
.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;
}
.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;
}
.dark #layer-animate button {
border: 1px solid #555;
background-color: #444;
}
.dark #layer-animate button:hover {
background-color: var(--main-color);
}
.dark #layer-animate button svg {
color: #ddd;
}
.dark #layer-animate label {
border: 1px solid #555;
background-color: #444;
}
.dark #layer-animate input {
border: 1px solid #444;
}
#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-toolpos {
position: absolute;
right: 3px;
bottom: 3px;
z-index: 201;
}
#layer-toolpos label, #layer-toolpos input {
display: inline-flex;
height: 30px;
border-radius: 3px;
border: 1px solid #ccc;
justify-content: center;
align-items: center;
font-weight: bold;
background-color: #ddd;
}
#layer-toolpos label {
width: 30px;
padding: 1px 1px 1px 1px;
margin: 1px 1px 2px 6px;
}
#layer-toolpos input {
background-color: #eee;
font-family: monospace;
padding: 1px 4px 1px 4px;
margin: 1px 1px 2px 1px;
} */
#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 {
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);
}
.set2-group {
border-radius: 3px;
border: 1px solid #ddd !important;
background-color: #fff;
flex-flow: column;
padding: 4px;
margin: 2px;
}
.set2-group .var-row, .var-row {
background: #fff;
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 {
white-space: nowrap;
border-radius: 2px;
justify-content: left;
background-color: var(--blue-3);
border-left: 3px solid transparent;
border-right: 3px solid var(--main-color-hover);
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: 3px;
}
#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);
}
.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 {
/* flex: 1 1 auto; */
min-width: 0;
max-width: 7ch;
margin-right: 0;
margin-bottom: 1px;
padding-bottom: 1px;
padding-top: 1px;
}
.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;
}
#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.05);
border: 1px solid black;
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;
}