@charset "UTF-8";

* {
  box-sizing: border-box;
  overscroll-behavior: auto !important;
  outline: none !important;
  font-smooth: always;
}

:root ::shadow {
  --font:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, sans-serif;
}

:root {
  --color: #73d393;
  --bgTrans: rgb(255, 255, 255 / 0.8);
  --modalBG: rgb(255, 255, 255 / 0.5);
  --colorTrans: rgb(255, 12, 12 / 0.2);
  --colorTransMedium: rgb(0 0 0 / 0.65);
  --colorTransDark: rgb(255, 12, 12 / 0.9);
  --bubble: linear-gradient(180deg, var(--color), var(--color), var(--dark));
  --bubble2: linear-gradient(180deg, var(--colorTransMedium), var(--color));
  --fontcolor: white;
  --invertedFont: white;
  --compFontColor: white;
  --slider: #202124;
  --sliderThumb: #000000;
  --fill: #73d393;
  --penfill: #73d393;
  --speed: 0.2s;
  --dark: #000;
  --darkFontColor: #fff;
  --darker: #fff;
  --darkerFontColor: #fff;
  --img: invert(12%);
  --bgColor: #35363a;
  --fgColor: #202124;
  --darkerBGColor: #1b1c1e;
  --border: none;
  --desktopBorder: 1px solid var(--fontcolor);
  --evenRow: #202124;
  --oddRow: #2a2b2e;
  --buttonColor: #ecf0f3;
  --icon: invert(80%);
  --searchbar: #fff;
  --complimentary: #000;
  --dialog-vertical: #2a2a2a;
  --dialog-info: #444;
  --height: 100%;
  --width: 100%;
  --camHeight: 100px;
  --downArrow: url("../images/navigation/default/downmenu.png");
  --arrow: url("../images/navigation/default/downmenu-white.png");
  --bubble-width: calc(100% - 156px);
  --menu-width: calc(100% - 195px);
  --menu-height: calc(100% - 320px);
  --navbar-padding: 0px;
  --iOSPadding: 1px;
  --searchWidget: #2a2a2a;
  --wallpaper: url("../images/wallpapers/wallpaper1.jpg");
  --defaultWebColor: #000;
  --documentColor: #202124;
  --l2l-action-border: rgb(255 255 255 / 8%);
  --l2l-action-background: rgb(255 255 255 / 3%);
  color-scheme: light;
  --rgb-glow-speed: 12s;
  --rgb-glow-gradient: linear-gradient(
    45deg,
    #ff7300,
    #fffb00,
    #48ff00,
    #00ffd5,
    #002bff,
    #7a00ff,
    #ff00c8,
    #ff0000
  );
  --rgb-glow-shadow:
    0 0 8px rgba(255, 255, 255, 0.25),
    0 0 18px
      linear-gradient(
        45deg,
        #ff0000,
        #ff7300,
        #fffb00,
        #48ff00,
        #00ffd5,
        #002bff,
        #7a00ff,
        #ff00c8,
        #ff0000
      );
  --rgb-glow-hover-shadow:
    0 0 12px rgba(255, 255, 255, 0.45), 0 0 28px rgba(255, 0, 200, 0.55);
}

html {
  font-family: var(--font);
  background-color: var(--bgColor);
  margin: 0 auto;
  padding: 0;
  height: var(--height);
  min-height: 100%;
  width: 100%;
  overflow: visible;
  overscroll-behavior: none;
  border: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

body {
  width: 100%;
  top: 0;
  padding: 0;
  overflow: scroll;
  margin: 0;
  border: none !important;
  scroll-behavior: smooth;
  -webkit-tap-highlight-color: transparent;
  overscroll-behavior: none;
}

#mainBody {
  position: fixed;
  left: 0;
  width: 100%;
  height: 100%;
  border: none !important;
  transition: filter 0.3s ease;
  padding-top: env(safe-area-inset-top);
}

option {
  background: var(--bgTrans);
  color: var(--buttonColor);
}

img {
  cursor: pointer;
}

.iOS {
  user-select: none;
  -webkit-user-select: none;
}

:focus {
  outline: none;
}

::-webkit-scrollbar {
  display: none;
}

.svg {
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  cursor: pointer;
}

#bigStore {
  margin-top: 50%;
  height: 120px;
  width: 120px;
  filter: invert(100%) drop-shadow(1px 1px 1px #000);
  z-index: 200;
}

#bigIAI {
  margin-top: 50%;
  height: 120px;
  width: 120px;
  filter: invert(100%) drop-shadow(1px 1px 0 #000);
  z-index: 200;
}

#bigStore.light,
#bigIAI.light {
  filter: invert(20%);
}

#cspan2 {
  padding: 0px;
  background: var(--color);
  border-radius: 50%;
  border: 1px solid var(--fontcolor);
  position: absolute;
  top: calc(var(--height) / 2 - 240px);
}

#cs-results p {
  top: calc(var(--height) / 2);
  position: relative;
}

#nothere {
  color: var(--color);
  font-weight: 400;
  font-size: 24px;
  text-align: center;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
}

.radiobox {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 16px;
  color: #ecf0f3;
  line-height: 1.5;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  text-indent: 10px;
}

.radiobox.light {
  color: #35363a;
}

.radiobox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.radiocheck {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background: #36363c;
  border-radius: 50%;
}

.radiocheck.light {
  background: #ecf0f3;
}

.radiobox:hover input ~ .radiocheck {
  background: #ccc;
}

.radiobox input:checked ~ .radiocheck {
  background: var(--color);
}

.radiocheck:after {
  content: "";
  position: absolute;
  display: none;
}

.radiobox input:checked ~ .radiocheck:after {
  display: block;
}

.radiobox .radiocheck:after {
  top: 9px;
  left: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #36363c;
}

a {
  color: var(--color);
}

tbody,
ul,
li,
p,
strong,
button,
div {
  font-family: var(--font);
}

#bottomNav {
  width: 100%;
  display: none;
  background: var(--bgColor);
  position: fixed;
  opacity: 1;
  bottom: 0;
  height: calc(60px + env(safe-area-inset-bottom));
  z-index: 500;
  flex-direction: row;
  justify-content: space-around;
  align-items: center;
  box-shadow: -1px 0 2px rgb(0 0 0 / 20%);
}

#bottomNav button {
  display: flex;
  background: transparent;
  width: 100%;
  height: 60px;
  border: none;
  justify-content: center;
  align-content: center;
  align-items: center;
}

.bNav {
  display: flex;
  width: 32px;
  height: 28px;
  background: var(--buttonColor);
}

.penmenu {
  position: relative;
  display: block;
  padding: 65px 10px 0 10px;
}

.penmenu h5 {
  text-align: left;
}

#sneakybutton {
  opacity: 0;
}

#like-bubble {
  display: none;
  align-items: stretch;
  position: relative;
  flex-flow: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 10px;
  width: 160px;
  max-width: 160px;
  max-height: 160px;
  height: 160px;
  background: var(--colorTrans);
  backdrop-filter: blur(5px);
  border: 1px solid var(--colorTrans);
  border-radius: 16px;
  left: 0;
  top: 0;
  margin: 0 !important;
  box-shadow: 3px 5px 14px 1px rgb(0 0 0 / 35%);
}

#like-bubble.zoom-in {
  transform-origin: center center;
  animation: likePanelExpand 0.1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.like-buttons {
  position: relative;
  width: 28px;
  height: 28px;
  background-color: var(--fontcolor);
  mask-image: url(../images/navigation/thumb.svg);
  -webkit-mask-image: url(../images/navigation/thumb.svg);
  cursor: pointer;
  pointer-events: none;
}

.like-cell {
  display: flex;
  flex-direction: row;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 10px;
  width: calc(50% - 3px);
  height: calc(50% - 3px);
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  border-radius: 12px;
  cursor: pointer;
  user-select: none;
  transition:
    background 0.15s ease,
    transform 0.12s ease;
  align-content: center;
  flex-wrap: wrap;
}

.like-cell:active {
  background: rgb(0 0 0 / 26%);
  transform: scale(0.93);
}

.like-label {
  font-size: 0.58rem;
  font-weight: 700;
  color: var(--fontcolor);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  pointer-events: none;
}

.like-cell.light .like-label,
.like-cell.light span {
  opacity: 0.9;
}

#thumbs-down {
  rotate: 180deg;
}

.like-buttons#thumb-close {
  mask-image: url(../images/navigation/close.svg);
  -webkit-mask-image: url(../images/navigation/close.svg);
}

.like-buttons#thumb-info {
  mask-image: url(../images/navigation/help.svg);
  -webkit-mask-image: url(../images/navigation/help.svg);
}

.percent {
  position: relative;
  color: #babecc;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
  font-size: 48px;
  font-weight: 400;
  text-align: center;
  margin-bottom: 15px;
}

.text-blink {
  animation: animate 0.7s ease-in-out infinite 0.1s;
}

#debug {
  overflow-y: auto;
}

#settingdebug {
  display: none;
}

#settingGame {
  display: none;
}

#styleData {
  border: none;
  color: #999;
  background: var(--fgColor);
  border-radius: 0;
  border-bottom-right-radius: 30px;
  border-bottom-left-radius: 30px;
  overflow-y: scroll !important;
  padding: 5px;
  height: 350px;
}

#styleData span {
  font-weight: bold;
  color: var(--color);
}

.more-menu {
  display: none;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-around;
  align-content: flex-start;
  position: fixed;
  z-index: 900;
  top: calc(25px + var(--iOSPadding) + env(safe-area-inset-top));
  right: 10px;
  width: 200px;
  max-height: 430px;
  background: var(--fgColor);
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.4);
  transform-origin: right top;
  animation: topdown var(--speed) ease;
  border: var(--border);
}

.more-menu.light {
  background: #fff;
}

.more-menu button {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  background: 0 0;
  border: 0 none;
  color: #f3f3f3;
  cursor: pointer;
  font-size: 100%;
  height: 60px;
  width: 100%;
}

.more-menu.light button {
  color: #35363a;
}

.more-menu button:hover {
  background: var(--color);
  color: var(--fontcolor);
}

.more-menu button:hover span {
  background: var(--fontcolor);
}

#upload {
  opacity: 0;
  margin: 10px;
  cursor: pointer;
  border: none;
  height: 64px;
  width: 64px;
  text-align: center;
}

.upload-avatar {
  float: left;
  margin: 10px;
  background-image: url("../images/user/add-user.png");
  background-repeat: no-repeat;
  background-size: 32px 32px;
  background-position: center;
  background-color: var(--color);
  cursor: pointer;
  border: 3px solid #45484c;
  border-radius: 50%;
  height: 64px;
  width: 64px;
  text-align: center;
}

#wishlist button {
  float: right;
  margin: -10px auto;
  width: 15%;
  color: #df0101;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
  border: none;
  background: none;
  cursor: pointer;
  font-size: 32px;
}

#wishlist.post button {
  display: none;
  position: relative;
  top: 10px;
  right: 0px;
  z-index: 50;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
}

#wishlist.note-edit-mode.post button {
  display: flex;
}

#wishlist li {
  -webkit-user-select: text;
  -moz-user-select: text;
  user-select: text;
}

#wishlist.post {
  display: flex;
  max-height: calc(var(--height) / 2 + 80px);
  width: 100%;
  background: rgb(255 255 255 / 5%);
  border: var(--l2l-action-border);
  border-radius: 20px;
  list-style: none;
  padding-left: 0;
  flex-direction: row;
  flex-wrap: wrap;
  overflow-y: scroll;
  padding: 30px 0;
  margin: 0 0 10px;
  z-index: 6;
  gap: 35px 15px;
  justify-content: center;
  /* box-shadow: inset 0px 0px 10px 0px rgb(0 0 0 / 15%); */
}

.post-it {
  margin-bottom: 15px;
}

.post .post-it {
  border-radius: 5px;
  color: #333;
  position: relative;
  width: 100%;
  max-width: 300px;
  border-radius: 5px;
  box-shadow: 3px 4px 5px rgb(0 0 0 / 11%);
  margin-bottom: 0;
  padding: 15px 5px 0;
  transition: rotate 0.3s linear;
}

.post .post-it.light div {
  box-shadow: 2px 2px 7px rgb(0 0 0 / 15%);
}

#wishlist.post div li {
  padding: 5px 12px 20px;
  min-height: 120px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

#wishlist.post div li ul li {
  min-height: unset;
}

#wishlist.post div div {
  width: 100%;
  box-shadow: none !important;
}

.post .post-it:nth-child(5n + 1) {
  background: #ffff88;
  background: linear-gradient(
    135deg,
    #ffffa4 5%,
    #ffff88 15%,
    #fdfdab 60%,
    #fdfdc8 100%
  );
  rotate: 2deg;
}

.post .post-it:nth-child(5n + 2) {
  background: #b3ffbd;
  background: linear-gradient(
    135deg,
    #b3ffbd 5%,
    #88ff98 15%,
    #b3ffbd 60%,
    #c3ffcb 100%
  );
  rotate: -1deg;
}

.post .post-it:nth-child(5n + 3) {
  background: #b0dbff;
  background: linear-gradient(
    135deg,
    #b0dbff 5%,
    #88c9ff 15%,
    #b0dbff 60%,
    #bde1ff 100%
  );
  rotate: 3deg;
}

.post .post-it:nth-child(5n + 4) {
  background: #ff8888;
  background: linear-gradient(
    135deg,
    #ff9e9e 5%,
    #ff8888 15%,
    #fd9090 60%,
    #ffbcbc 100%
  );
  rotate: -1deg;
}

.post .post-it:nth-child(5n + 5) {
  background: #dcabfd;
  background: linear-gradient(
    135deg,
    #ffa4f8 5%,
    #f488ff 15%,
    #dcabfd 60%,
    #ffa4f8 100%
  );
  rotate: 2deg;
}

#wishlist.post .thumbtack {
  background: #aaa;
  display: block;
  height: 32px;
  width: 2px;
  position: absolute;
  left: 50%;
  top: -16px;
  z-index: 100;
}

#wishlist.post .thumbtack:after {
  display: block;
  background: var(--color);
  background-image: radial-gradient(
    25% 25%,
    circle,
    hsla(0, 0%, 100%, 0.3),
    hsla(0, 0%, 0%, 0.3)
  );
  border-radius: 50%;
  box-shadow:
    inset 0 0 0 1px hsla(0, 0%, 0%, 0.1),
    inset 3px 3px 3px hsla(0, 0%, 100%, 0.2),
    inset -3px -3px 3px hsla(0, 0%, 0%, 0.2),
    23px 20px 3px hsla(0, 0%, 0%, 0.15);
  content: "";
  height: 12px;
  left: -5px;
  position: absolute;
  top: -10px;
  width: 12px;
}

#wishlist.post .thumbtack:before {
  display: block;
  background: hsla(0, 0%, 0%, 0.1);
  box-shadow: 0 0 0.25em hsla(0, 0%, 0%, 0.1);
  content: "";
  height: 24px;
  width: 2px;
  left: 0;
  position: absolute;
  top: 8px;
  -moz-transform: rotate(57.5deg);
  -webkit-transform: rotate(57.5deg);
  -o-transform: rotate(57.5deg);
  -ms-transform: rotate(57.5deg);
  -moz-transform-origin: 50% 100%;
  -webkit-transform-origin: 50% 100%;
  -ms-transform-origin: 50% 100%;
  -o-transform-origin: 50% 100%;
  transform: rotate(57.5deg);
  transform-origin: 50% 100%;
}

.post-container-buttons {
  width: 0%;
  height: 0;
  transition: all var(--speed) ease;
}

.post-container-buttons.typing-notes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 20%;
  margin: 0 0 0 15px;
  height: auto;
  flex-direction: column;
  gap: 15px;
  align-content: center;
  transition: all var(--speed) ease;
  align-items: center;
}

.note-image-input {
  display: none;
}

.note-image-preview-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.note-upload-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  padding: 6px 10px 6px 6px;
  border-radius: 999px;
  background: rgb(0 0 0 / 22%);
  border: 1px solid rgb(255 255 255 / 10%);
}

.note-upload-pill-image {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.note-upload-pill-label {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  min-width: 0;
  border-radius: 8px;
  padding: 2px 4px;
}

.note-upload-pill-label[contenteditable="true"] {
  cursor: text;
}

.note-upload-pill-label[contenteditable="true"]:focus {
  outline: 1px solid rgb(255 255 255 / 28%);
  background: rgb(255 255 255 / 8%);
  text-overflow: clip;
}

.note-upload-pill-remove {
  border: none;
  background: transparent;
  color: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.html-editor {
  color: #999;
  word-wrap: break-word;
  position: absolute;
  height: 125px;
  width: 100%;
  padding: 10px;
  padding-top: 75px;
  border: none;
  border-bottom: 1px solid var(--color);
  background: #000;
  font-size: 16px;
  text-align: center;
  resize: none;
  transition: height 0.1s;
  z-index: 104;
}

.html-editor:focus {
  color: #ccc;
  height: 75%;
  border: 1px solid #2c2c32;
}

#htmleditor {
  position: relative;
  top: 125px;
  left: 0;
  width: 100%;
  height: 100%;
  background: #2c2c32;
  border: none;
  padding: 10px;
  z-index: 103;
}

.three {
  display: flex;
  position: fixed;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border-radius: 50%;
  border: none;
  top: calc(12px + var(--iOSPadding) + env(safe-area-inset-top));
  right: 15px;
  width: 44px;
  height: 44px;
  z-index: 302;
  cursor: pointer;
}

.threedot {
  display: block;
  width: 5px;
  height: 5px;
  background: var(--buttonColor);
  position: fixed;
  border-radius: 50%;
  cursor: pointer;
}

.threedot:before,
.threedot:after {
  content: "";
  position: absolute;
  width: inherit;
  height: inherit;
  right: 0;
  background: inherit;
  border-radius: inherit;
}

.threedot:before {
  top: -7px;
}

.threedot:after {
  top: 7px;
}

.threedot.light,
.threedot.light:before,
.threedot.light:after {
  background: #35363a;
}

.three.themed .threedot,
.three.themed .threedot:before,
.three.themed .threedot:after {
  background: var(--fontcolor);
}

.hicon {
  display: flex;
  position: fixed;
  align-items: center;
  justify-content: center;
  background: transparent;
  border-radius: 50%;
  border: none;
  top: calc(12px + var(--iOSPadding) + env(safe-area-inset-top));
  left: 18px;
  width: 44px;
  height: 44px;
  z-index: 302;
  cursor: pointer;
}

.hamburger {
  width: 21px;
  height: 3px;
  margin-top: 1px;
  background: var(--buttonColor);
  position: fixed;
  border-radius: 6px;
  transition: transform var(--speed) ease;
}

.hamburger:before,
.hamburger:after {
  content: "";
  position: absolute;
  width: 21px;
  height: 3px;
  left: 0;
  background: var(--buttonColor);
  border-radius: inherit;
  transition: transform var(--speed) ease;
}

.hamburger:before {
  transform: translateY(-6px);
}

.hamburger:after {
  transform: translateY(6px);
}

.hamburger.light,
.hamburger.light:before,
.hamburger.light:after {
  background: #35363a;
}

.hicon.active .hamburger {
  background: rgba(0, 0, 0, 0);
}

.hicon.active .hamburger:before {
  transform: translateY(0);
  transform: rotate(45deg);
  background: var(--buttonColor);
}

.hicon.active .hamburger:after {
  transform: translateY(0);
  transform: rotate(135deg);
  background: var(--buttonColor);
}

.hicon.themed .hamburger,
.hicon.themed .hamburger:before,
.hicon.themed .hamburger:after {
  background: var(--fontcolor);
}

.hicon.themed.active .hamburger,
.hicon.themed.active .hamburger:before,
.hicon.themed.active .hamburger:after {
  background: var(--buttonColor);
}

.hicon.themed.active .hamburger {
  background: rgb(0 0 0 / 0);
}

.hicon.backarrow,
.three.backarrow {
  background: #2c2c32;
}

.hamburger.backarrow:before,
.hamburger.backarrow:after {
  content: "";
  width: 12px;
  left: 0;
  border-radius: 0 12px 12px 0;
}

.hicon.backarrow .hamburger {
  width: 20px;
}

.hicon.backarrow .hamburger:before {
  transform: translateY(-4.5px) rotate(315deg);
}

.hicon.backarrow .hamburger:after {
  transform: translateY(4.5px) rotate(45deg);
}

#reload-cache {
  display: none;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #929292;
  font-weight: bold;
  font-size: 2rem;
  transition: all ease-in var(--speed);
  z-index: 999;
  background: var(--modalBG);
  backdrop-filter: blur(8px);
}

div#reload-cache svg {
  width: 150px;
  height: 150px;
}

#loadingAssets {
  position: fixed;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  width: 100%;
  height: 100%;
  padding: 2rem;
  background: var(--bgColor);
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.08em;
  z-index: 999;
  opacity: 0.99;
  color: var(--buttonColor);
  font-family: "Poppins", sans-serif;
}

#loadingAssets img {
  width: clamp(96px, 20vw, 160px);
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  filter: drop-shadow(2px 4px 6px rgb(0 0 0 / 25%));
  animation: loadingAssetsSpin 2.4s linear infinite;
}

#loadingAssets #icon-container {
  background: var(--color);
  padding: 20px;
  border-radius: 20px;
  filter: drop-shadow(2px 4px 6px rgb(0 0 0 / 25%));
  animation: loadingAssetsSpin 2.4s linear infinite;
}

#loadingAssets #icon-container span {
  padding: 20px;
  display: flex;
  background: var(--darkFontColor);
  mask-image: url(../images/navigation/tool.svg);
}

#loadingAssets p {
  margin-top: 20px;
  font-size: 1.2rem;
  text-transform: uppercase;
  animation: loadingAssetsPulse 1.2s ease-in-out infinite;
}

@keyframes loadingAssetsFade {
  0%,
  100% {
    opacity: 0.95;
  }

  50% {
    opacity: 0.85;
  }
}

@keyframes loadingAssetsSpin {
  from {
    transform: rotate(0deg) scale(0.9);
  }

  to {
    transform: rotate(360deg) scale(0.9);
  }
}

@keyframes loadingAssetsPulse {
  0%,
  100% {
    opacity: 0.5;
  }

  50% {
    opacity: 1;
  }
}

.remove-post {
  position: relative;
  display: block;
  float: right;
  right: 10px;
  text-align: right;
  color: #df0101;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
  border: none;
  background: none;
  cursor: pointer;
  font-size: 32px;
  line-height: 60px;
  z-index: 50;
}

.remove {
  position: relative;
  display: block;
  float: right;
  margin: -10px auto;
  width: 15%;
  color: #df0101;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
  border: none;
  background: none;
  cursor: pointer;
  font-size: 32px;
}

.avatar-select {
  margin: 15px;
  cursor: pointer;
  border: none;
  width: auto;
  aspect-ratio: 1/1;
  max-width: 48px;
  text-align: center;
  filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.6));
}

#maintenance-send-data,
#maintenance-send-data2 {
  filter: invert(0%) !important;
}

.maintenance-modal-label {
  position: relative;
  display: inline-block;
  color: #999;
  font-size: 16px;
  font-weight: bold;
  padding-bottom: 5px;
}

.maintenance-modal-text {
  color: #999;
  word-wrap: break-word;
  height: 125px;
  width: 100%;
  padding: 10px;
  border: none;
  border-radius: 10px;
  background: var(--bgColor);
  font-size: 16px;
  text-align: center;
  box-shadow: inset 0 0 5px 2px rgba(0, 0, 0, 0.1);
  margin-bottom: 15px;
  resize: none;
}

.maintenance-modal-text:focus {
  border: 1px solid var(--color);
}

tr:nth-child(even) {
  background: var(--evenRow);
}

tr:nth-child(odd) {
  background: var(--oddRow);
}

.drag {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 304;
  padding: 0 5px 5px;
  background: var(--modalBG);
  backdrop-filter: blur(12px);
  border: none;
  overflow: auto;
  border-radius: 0;
}

.drag#sketch-drag,
.drag#code-drag {
  background: rgba(0, 0, 0, 1);
  position: fixed;
  padding: 0 !important;
  opacity: 1;
  overflow: hidden;
  touch-action: none;
}

.drag#rDrag {
  z-index: 307;
}

.drag-header {
  display: flex;
  height: calc(70px + var(--iOSPadding) + env(safe-area-inset-top));
  justify-content: center;
  padding: calc(var(--iOSPadding) + 10px + env(safe-area-inset-top)) 5px 20px;
  position: sticky;
  top: 0;
  z-index: 111;
  color: var(--color);
  text-shadow: none;
  font-weight: bold;
  border: none;
  text-align: center;
  align-items: center;
  width: 100%;
  touch-action: none;
}

.drag.light,
.drag-header.light {
  color: #35363a;
}

.ip-header {
  display: flex;
  padding: 70px 10px 20px;
  background: var(--color);
  color: var(--fontcolor);
  font-weight: bold;
  flex-direction: column;
  align-items: center;
  border-bottom: 1px solid var(--fgColor);
}

#searchHeader {
  display: none;
  background: none;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
  flex-wrap: nowrap;
  box-shadow: none;
  width: 100%;
  margin: 10px 0 15px;
  height: 60px;
  line-height: 1;
  padding: 10px 10px 0;
}

#uni-form {
  margin: 0;
  padding: 0;
  width: calc(100% - 144px);
}

.reference-img {
  padding: 10px;
  width: 100%;
  height: auto;
}

.color-select {
  position: absolute;
  right: 30px;
  border: none;
  border-radius: 50%;
  height: 48px;
  width: 48px;
  background: 0 0;
}

.quick-wrap {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--bgColor);
}

#quick-container {
  display: flex;
  position: relative;
  width: 100%;
  height: 100%;
  flex-direction: column;
  padding: 0;
  margin: 0 10px 10px;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
}

.quick-launch-grid {
  display: flex;
  width: 100%;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  border-radius: 20px;
  padding: 10px 5px;
  overflow: visible;
  overscroll-behavior-inline: auto !important;
}

.quick-button {
  display: flex;
  position: relative;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: center;
  justify-content: space-evenly;
  width: calc(100% / 2 - 5px);
  max-width: 390px;
  height: 100px;
  font-size: 75%;
  cursor: pointer;
  color: var(--fontcolor);
  font-weight: bold;
  background: var(--color);
  border-radius: 20px;
  border: none;
  overflow: hidden;
}

.quick-button:hover {
  background: var(--color);
  color: #35363a;
  font-weight: bold;
}

.quick-button:active {
  transform: translateY(4px);
}

.artistic .quick-button {
  background: var(--color);
  opacity: 0.9;
  border: 1px solid var(--dark);
}

.rgb-glow-effect.quick-button,
.rgb-glow-effect.artistic.quick-button {
  background: var(--rgb-glow-gradient);
  color: #202124;
  border: 0;
  opacity: 0.9;
}

h5 {
  font-size: 16px;
  padding-top: 5px;
  vertical-align: bottom;
}

.notes-container {
  width: 100%;
  position: relative;
}

.notes-container.drag-over {
  border-radius: 22px;
  outline: 2px dashed rgb(255 255 255 / 40%);
  outline-offset: 8px;
}

.notes-content {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  align-content: space-around;
  width: 100%;
  padding: 15px;
  will-change: auto;
}

.notes-content#unicontainer {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  margin: 0 10px 10px;
  border-radius: 35px;
  padding: 5px;
  justify-content: flex-start;
  background: var(--bgColor);
}

#unibutton {
  width: calc(100% - 60px);
  min-width: 0;
  border: 0;
}

.uni-scan-btn {
  right: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  width: 48px;
  padding: 0px 12px;
  position: absolute;
  border: 1px solid var(--dark);
  border: 0;
  border-radius: 35px;
  background: linear-gradient(
    334deg,
    var(--colorTransMedium),
    var(--color),
    var(--dark)
  );
  border-radius: 50%;
  color: var(--darkerFontColor);
  cursor: pointer;
}

.uni-scan-btn:active {
  transform: translateY(2px);
}

#unicontainer2 {
  display: block;
  margin: 10px;
  padding: 0;
}

#Tab3.wallpapers .notes-content {
  opacity: 0.97;
}

.notes-inner-content {
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  align-items: center;
  color: #777;
  font-size: 16px;
  background: var(--fgColor);
  border: var(--border);
  margin: 10px;
  padding: 10px 15px;
  border-radius: 20px;
  width: 100%;
  word-wrap: break-word;
  color: #e3e8ec;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
}

.notes-inner-content.light {
  background: #fff;
  color: #35363a;
}

#l2l-spares-widget,
#l2l-dispatch-widget {
  width: 100%;
  border-radius: 20px;
  color: var(--buttonColor);
  box-sizing: border-box;
}

#l2l-dispatch-widget-header {
  display: none;
  color: var(--buttonColor);
  font-weight: bold;
  width: 100%;
}

#l2l-spares-widget.light {
  background: #fff;
  color: #202124;
}

#l2l-spares-widget {
  margin: 10px;
  padding: 10px;
  background: var(--fgColor);
  border: var(--border);
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
  position: relative;
}

.l2l-spares-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
  flex-direction: column;
  width: 100%;
}

.l2l-spares-header h2 {
  margin: 0;
  font-size: 1.2rem;
}

.l2l-spares-eyebrow {
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.7rem;
  opacity: 0.7;
}

.l2l-spares-status {
  margin: 0;
  min-height: 1.2em;
  font-size: 0.9rem;
  text-align: right;
  opacity: 0.9;
}

#l2l-spares-widget .l2l-spares-header {
  justify-content: center;
  align-items: center;
  color: var(--color);
  font-weight: bold;
}

#l2l-spares-widget .l2l-spares-header #l2l-spares-status {
  font-size: 1.25rem;
  color: var(--color);
  font-weight: bold;
  text-indent: 5px;
}

.l2l-export-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 8px;
  font-size: 0.72rem;
  font-family: var(--font);
  font-weight: 500;
  color: inherit;
  text-decoration: none;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
  z-index: 1;
}

.l2l-export-btn:hover {
  background: rgb(255 255 255 / 14%);
}

.l2l-export-icon {
  display: inline-block;
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask-image: url("../images/navigation/download.svg");
  mask-image: url("../images/navigation/download.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.l2l-spares-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: 10px;
  margin-bottom: 8px;
}

#l2l-dispatch-form {
  display: flex;
  margin-bottom: 10px;
  flex-direction: column;
  align-items: center;
}

.l2l-spares-input {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  min-height: 44px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 14px;
  padding: 10px 14px;
  background: rgb(0 0 0 / 16%);
  color: inherit;
  font-family: var(--font);
  font-size: 0.8rem;
}

.light .l2l-spares-input,
#l2l-spares-widget.light .l2l-spares-input,
#l2l-dispatch-widget.light .l2l-spares-input {
  background: #f3f5f7;
  border-color: rgb(0 0 0 / 10%);
}

.l2l-spares-input#l2l-spares-query {
  width: 92%;
}

.l2l-spares-button {
  min-height: 44px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: 14px;
  padding: 0 18px;
  background: var(--bubble2);
  color: var(--fontcolor);
  font-family: var(--font);
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
  justify-self: center;
}

.l2l-widget-scan-btn {
  flex: 0 0 auto;
  width: auto;
  min-width: 64px;
  padding: 0 20px;
  margin: 0;
}

.l2l-search-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: inline-block;
  background: currentColor;
  mask-image: url(../images/navigation/search.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: url(../images/navigation/search.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.l2l-widget-scan-btn .l2l-spares-scan-icon {
  width: 20px;
  height: 20px;
}

.l2l-dispatch-action-buttons button {
  width: calc(50% - 4px);
  margin: 0;
  color: var(--buttonColor);
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  text-shadow: unset;
}

.l2l-dispatch-schedule-close-button {
  background: rgba(234, 179, 8, 0.12) !important;
  border-color: rgba(234, 179, 8, 0.35) !important;
  color: #fde68a !important;
}

.light .l2l-dispatch-schedule-close-button,
#l2l-dispatch-widget.light .l2l-dispatch-schedule-close-button {
  background: rgba(180, 130, 0, 0.1) !important;
  border-color: rgba(180, 130, 0, 0.3) !important;
  color: #854d0e !important;
}

.l2l-dispatch-schedule-cancel-button {
  background: rgba(239, 68, 68, 0.1) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
  color: #fca5a5 !important;
}

.light .l2l-dispatch-schedule-cancel-button,
#l2l-dispatch-widget.light .l2l-dispatch-schedule-cancel-button {
  background: rgba(180, 30, 30, 0.08) !important;
  border-color: rgba(180, 30, 30, 0.25) !important;
  color: #991b1b !important;
}

/* Schedule-close modal */
.l2l-schedule-close-dialog {
  background: var(--modalBG, #1e1e2e);
  color: var(--buttonColor, #f5f5f5);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  width: min(420px, calc(100vw - 32px));
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
}

.l2l-schedule-close-dialog::backdrop {
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.light .l2l-schedule-close-dialog,
#l2l-dispatch-widget.light .l2l-schedule-close-dialog {
  background: #ffffff;
  border-color: rgba(0, 0, 0, 0.1);
  color: #1a1a1a;
}

.l2l-schedule-close-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.l2l-schedule-close-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.l2l-schedule-close-label {
  font-size: 0.88rem;
  opacity: 0.85;
}

.l2l-schedule-close-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  color: inherit;
  font: inherit;
  font-size: 1rem;
  box-sizing: border-box;
}

.light .l2l-schedule-close-input {
  border-color: rgba(0, 0, 0, 0.14);
  background: rgba(0, 0, 0, 0.04);
}

.l2l-schedule-close-footer {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.l2l-schedule-close-footer .l2l-spares-button {
  width: auto;
  min-width: 100px;
  margin: 0;
}

.l2l-schedule-close-cancel-btn {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

.light .l2l-schedule-close-cancel-btn {
  border-color: rgba(0, 0, 0, 0.14) !important;
}

/* Delete confirm modal */
.l2l-dispatch-delete-modal {
  background: var(--modalBG, #1e1e2e);
  color: var(--buttonColor, #f5f5f5);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  width: min(360px, calc(100vw - 32px));
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
}

.l2l-dispatch-delete-modal::backdrop {
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.light .l2l-dispatch-delete-modal,
#l2l-dispatch-widget.light .l2l-dispatch-delete-modal {
  background: #ffffff;
  border-color: rgba(0, 0, 0, 0.1);
  color: #1a1a1a;
}

.l2l-dispatch-delete-modal-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.l2l-dispatch-delete-modal-sub {
  margin: 0;
  font-size: 0.88rem;
  opacity: 0.75;
}

.l2l-dispatch-delete-modal-actions {
  display: flex;
  gap: 8px;
  justify-content: center;
  width: 100%;
}

.l2l-dispatch-delete-modal-actions .l2l-spares-button {
  width: calc(50% - 0px);
  margin: 0;
}

.l2l-dispatch-delete-modal-no {
  background: var(--bgColor);
  color: var(--buttonColor);
  text-shadow: none;
}

.light .l2l-dispatch-delete-modal-no {
  border-color: rgba(0, 0, 0, 0.14) !important;
}

.l2l-dispatch-delete-modal-yes {
  background: #c0392b !important;
  border-color: #c0392b !important;
  color: #fff !important;
  text-shadow: none;
}

.l2l-dispatch-delete-modal-yes:hover,
.l2l-dispatch-delete-modal-yes:focus-visible {
  background: #e74c3c !important;
  border-color: #e74c3c !important;
}

/* Deletable dispatch title pill */
.l2l-dispatch-dialog-title.l2l-dispatch-dialog-title-deletable {
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.l2l-dispatch-dialog-title.l2l-dispatch-dialog-title-deletable:hover,
.l2l-dispatch-dialog-title.l2l-dispatch-dialog-title-deletable:focus-visible {
  opacity: 0.75;
  outline: none;
}

.l2l-dispatch-action-button-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: inline-block;
  background: var(--fontcolor);
  mask: url(../images/navigation/tool.svg) center / contain no-repeat;
}

.l2l-dispatch-action-button-label {
  display: inline-block;
}

.l2l-dispatch-edit {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.l2l-dispatch-edit-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-radius: 10px;
}

.l2l-dispatch-edit-form[hidden] {
  display: none;
}

.l2l-dispatch-edit-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.l2l-dispatch-edit-field-label {
  font-size: 0.85rem;
  font-weight: 600;
  opacity: 0.85;
}

.l2l-dispatch-edit-select,
.l2l-dispatch-edit-textarea {
  width: 100%;
  padding: 6px 8px;
  border-radius: 8px;
  border: var(--l2l-action-border);
  background: var(--colorTrans, rgba(0, 0, 0, 0.2));
  color: inherit;
  font-family: var(--font);
  font-size: 0.9rem;
  box-sizing: border-box;
}

.l2l-dispatch-edit-textarea {
  resize: vertical;
  min-height: 60px;
}

.l2l-spares-button:disabled {
  cursor: wait;
  opacity: 0.7;
}

button#l2l-dispatch-apply-filters {
  margin: 0;
  border-radius: 15px;
  width: 75px;
  margin-left: auto;
}

.l2l-spares-results {
  min-height: 72px;
}

.l2l-dispatch-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
}

.l2l-dispatch-page-button {
  min-width: 75px;
  min-height: 44px;
  width: 75px;
  height: 44px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 15px;
  background: rgb(255 255 255 / 6%);
  color: inherit;
  font: inherit;
  font-weight: 700;
  font-size: 70%;
  cursor: pointer;
}

.l2l-dispatch-page-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.light .l2l-dispatch-page-button,
#l2l-dispatch-widget.light .l2l-dispatch-page-button {
  border-color: rgb(0 0 0 / 12%);
  background: rgb(0 0 0 / 4%);
}

.l2l-dispatch-page-summary {
  flex: 1;
  margin: 0;
  text-align: center;
  font-size: 0.84rem;
  opacity: 0.76;
}

#l2l-dispatch-status {
  display: inline-table;
  width: 100%;
  background: var(--colorTrans);
  border-radius: 14px;
  border: 1px solid var(--colorTrans);
  padding: 10px;
  text-align: left;
  opacity: 1;
  transition:
    opacity 0.4s ease,
    max-height 0.4s ease,
    padding 0.4s ease,
    margin 0.4s ease,
    border-width 0.4s ease,
    display 0.2s allow-discrete;
  max-height: 200px;
  overflow: hidden;
}

.l2l-dispatch-monitor-tab-bar ~ #l2l-dispatch-status {
  border-radius: 0;
  margin-top: 1px;
}

#l2l-dispatch-status.l2l-dispatch-status-hidden,
.l2l-dispatch-dialog-status.l2l-dispatch-status-hidden {
  opacity: 0;
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: -30px;
  margin-bottom: 0;
  border-width: 0;
  pointer-events: none;
  display: none;
}

/* This handles the starting properties when transitioning back from display: none */
@starting-style {
  #l2l-dispatch-status {
    opacity: 0;
  }
}

.l2l-dispatch-dialog-status {
  transition:
    opacity 0.4s ease,
    max-height 0.4s ease,
    padding 0.4s ease,
    margin 0.4s ease;
  max-height: 200px;
  overflow: hidden;
}

#l2lAccountForm .l2l-dispatch-filter-panel {
  margin: -15px 0 15px;
  width: 100%;
}

.l2l-dispatch-filter-panel .user-row {
  border-radius: 12px;
  margin: 10px 0 5px;
}

.l2l-dispatch-filter-body {
  display: grid;
  gap: 12px;
  padding-bottom: 2px;
}

.l2l-dispatch-summary-caption {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.85;
}

.l2l-dispatch-summary-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.l2l-dispatch-summary-button {
  width: 100%;
  margin-bottom: 10px;
}

.l2l-dispatch-summary-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.l2l-dispatch-summary-modal[hidden] {
  display: none;
}

.l2l-dispatch-summary-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 55%);
}

.l2l-dispatch-summary-modal-dialog {
  position: relative;
  background: var(--modalBG);
  backdrop-filter: blur(12px);
  color: var(--buttonColor, #f5f5f5);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 12px;
  width: min(1300px, 100%);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 64px rgb(0 0 0 / 55%);
}

.l2l-dispatch-summary-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
  color: var(--darkerFontColor);
}

.light .l2l-dispatch-summary-modal-header {
  border-bottom: 1px solid rgb(0 0 0 / 8%);
}

.l2l-dispatch-summary-modal-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--buttonColor) !important;
}

.l2l-dispatch-summary-modal-close {
  display: flex;
  background: var(--color);
  border: 0;
  width: 32px;
  height: 32px;
  color: inherit;
  font-size: 2rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 50%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.l2l-dispatch-summary-modal-close:hover {
  background: rgb(255 255 255 / 8%);
}

.light .l2l-dispatch-summary-modal-close:hover {
  background: rgb(0 0 0 / 6%);
}

.l2l-dispatch-summary-modal-actions {
  display: flex;
  align-items: center;
  gap: 15px;
  color: var(--buttonColor);
}

.l2l-dispatch-summary-modal-share {
  background: var(--modalBG);
  border: 0;
  color: inherit;
  font-size: 0.8rem;
  line-height: 1;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 6px;
  height: 28px;
}

.l2l-dispatch-summary-modal-share:hover:not(:disabled) {
  background: rgb(255 255 255 / 8%);
}

.l2l-dispatch-summary-modal-share:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.light .l2l-dispatch-summary-modal-share:hover:not(:disabled) {
  background: rgb(0 0 0 / 6%);
}

.l2l-dispatch-summary-modal-meta {
  padding: 6px 16px 0;
  font-size: 0.78rem;
  opacity: 0.8;
  color: var(--buttonColor);
  font-weight: bold;
}

.l2l-dispatch-summary-modal-body {
  padding: 12px 16px 16px;
  overflow: auto;
  flex: 1;
}

.l2l-dispatch-summary-modal-loading,
.l2l-dispatch-summary-modal-empty,
.l2l-dispatch-summary-modal-error {
  padding: 24px 8px;
  text-align: center;
  font-size: 0.9rem;
  opacity: 0.85;
}

.l2l-dispatch-summary-modal-error {
  color: #ff8080;
}

/* New Dispatch modal — narrower variant of the summary modal with a form. */
.l2l-new-dispatch-modal-dialog {
  width: min(520px, 100%);
}

.l2l-new-dispatch-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 16px 16px;
  overflow: auto;
  flex: 1;
}

.l2l-new-dispatch-form select option {
  background: var(--bgTrans);
  color: var(--buttonColor);
}

.l2l-new-dispatch-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.l2l-new-dispatch-field label {
  font-size: 0.8rem;
  font-weight: 600;
  opacity: 0.85;
}

.l2l-new-dispatch-optional {
  font-weight: 400;
  opacity: 0.6;
  font-size: 0.75rem;
  margin-left: 4px;
}

.l2l-new-dispatch-field select,
.l2l-new-dispatch-field input,
.l2l-new-dispatch-field textarea {
  width: 100%;
  font: inherit;
  color: inherit;
  background: rgb(255 255 255 / 6%);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  padding: 8px 10px;
  box-sizing: border-box;
}

.light .l2l-new-dispatch-field select,
.light .l2l-new-dispatch-field input,
.light .l2l-new-dispatch-field textarea {
  background: rgb(0 0 0 / 4%);
  border-color: rgb(0 0 0 / 14%);
}

.l2l-new-dispatch-field textarea {
  resize: vertical;
  min-height: 72px;
  font-family: inherit;
}

.l2l-new-dispatch-field select:disabled,
.l2l-new-dispatch-field input:disabled,
.l2l-new-dispatch-field textarea:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.l2l-new-dispatch-advanced {
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  padding: 8px 10px;
}

.light .l2l-new-dispatch-advanced {
  border-color: rgb(0 0 0 / 12%);
}

.l2l-new-dispatch-advanced summary {
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  opacity: 0.85;
  list-style: none;
}

.l2l-new-dispatch-advanced[open] summary {
  margin-bottom: 8px;
}

.l2l-new-dispatch-advanced .l2l-new-dispatch-field + .l2l-new-dispatch-field {
  margin-top: 8px;
}

.l2l-new-dispatch-status {
  margin: 0;
  min-height: 1.2em;
  font-size: 0.85rem;
  opacity: 0.9;
}

.l2l-new-dispatch-status-error {
  color: #ff8080;
}

.l2l-new-dispatch-buttons {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.l2l-new-dispatch-buttons .l2l-spares-button {
  width: auto;
  min-width: 110px;
  margin: 0;
}

.l2l-new-dispatch-buttons .l2l-spares-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.l2l-dispatch-new-button {
  width: auto;
  align-self: flex-end;
  margin: 0;
  min-height: 36px;
  padding: 0 8px;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.l2l-dispatch-new-button-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: currentColor;
  mask-image: url(../images/navigation/plus.svg);
  -webkit-mask-image: url(../images/navigation/plus.svg);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: contain;
  -webkit-mask-size: contain;
}

#l2l-new-dispatch-container {
  display: flex;
  align-content: center;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

#l2l-open-dispatch-count {
  display: flex;
  padding: 5px 10px;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 12px;
  font-size: 0.87rem;
  height: 36px;
  font-weight: bold;
  align-items: center;
}

.artistic #l2l-open-dispatch-count {
  background: var(--bgTrans);
}

#l2l-open-dispatch-count strong {
  font-weight: bold;
  color: var(--color);
  text-shadow: 1px 1px 0px rgb(0 0 0 / 30%);
}

.l2l-dispatch-summary-table-wrapper {
  overflow: auto;
  padding: 0px;
  position: relative;
  border-radius: 8px;
  border: 1px solid var(--dialog-info);
}

.l2l-dispatch-summary-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.l2l-dispatch-summary-table th,
.l2l-dispatch-summary-table td {
  padding: 8px 10px;
  text-align: center;
  vertical-align: top;
  border: var(--l2l-action-border);
  border-top: 0;
}

.light .l2l-dispatch-summary-table th,
.light .l2l-dispatch-summary-table td {
  border-bottom: 1px solid rgb(0 0 0 / 8%);
}

.l2l-dispatch-summary-table th {
  position: sticky;
  top: 0;
  background: var(--color);
  color: var(--fontcolor);
  vertical-align: middle;
  border-right: 1px solid var(--l2l-action-border);
  font-weight: 700;
  z-index: 1;
}

.light .l2l-dispatch-summary-table th {
  color: var(--darkFontColor);
}

.l2l-dispatch-summary-table tbody tr:hover {
  background: var(--colorTransMedium);
  color: var(--darkerFontColor);
}

.l2l-dispatch-summary-table td[data-column="problem_description"],
.l2l-dispatch-summary-table td[data-column="repair_action"] {
  min-width: 200px;
  max-width: 360px;
  white-space: normal;
}

.l2l-dispatch-summary-table td[data-column="dispatch_number"] {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.l2l-dispatch-summary-table tr th:first-child,
.l2l-dispatch-summary-table tr td:first-child {
  border-left: 0;
}

.l2l-dispatch-summary-table tr th:last-child,
.l2l-dispatch-summary-table tr td:last-child {
  border-right: 0;
}

.l2l-dispatch-summary-table tr:last-child td {
  border-bottom: 0;
}

.l2l-dispatch-filter-group {
  border: 1px solid rgb(255 255 255 / 7%);
  border-radius: 10px;
  background: rgb(255 255 255 / 2%);
  padding: 0 12px 12px;
  color: var(--buttonColor);
}

.light .l2l-dispatch-filter-group,
#l2l-dispatch-widget.light .l2l-dispatch-filter-group {
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
}

.l2l-dispatch-filter-group summary {
  cursor: pointer;
  padding: 12px 0;
  font-size: 0.82rem;
  font-weight: 700;
}

.l2l-dispatch-filter-group-body {
  display: grid;
  gap: 10px;
  max-height: 220px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.l2l-dispatch-filter-row {
  display: flex;
  gap: 10px;
}

.l2l-filter-title {
  display: flex;
  width: 100%;
  justify-content: space-between;
  flex-direction: row;
  gap: 0 10px;
}

.l2l-filter-title p {
  cursor: pointer;
  padding: 10px 0;
  font-size: 0.84rem;
  font-weight: 700;
  margin: 0;
}

.l2l-dispatch-filter-select {
  min-width: 0;
}

.l2l-dispatch-filter-select option {
  background: var(--bgColor);
  color: var(--buttonColor);
}

.l2l-dispatch-area-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
}

.l2l-dispatch-area-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 40px;
  padding: 10px 12px;
  border-radius: 12px;
  cursor: pointer;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
}

.l2l-dispatch-area-option input {
  margin-top: 2px;
}

.l2l-dispatch-area-option-text {
  font-size: 0.82rem;
  line-height: 1.35;
}

.l2l-dispatch-native-criteria {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
  margin-bottom: 12px;
}

.l2l-dispatch-native-criteria-title,
.l2l-dispatch-native-criteria-empty {
  margin: 0;
  font-size: 0.82rem;
}

.l2l-dispatch-native-criteria-title {
  font-weight: 700;
}

.l2l-dispatch-native-criteria-list {
  display: grid;
  gap: 8px;
}

.l2l-dispatch-native-criteria-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.82rem;
}

.l2l-dispatch-native-criteria-row strong {
  opacity: 0.78;
}

.l2l-dispatch-native-criteria-row span {
  text-align: right;
}

.l2l-spares-empty,
.l2l-spares-error {
  text-align: center;
  margin: 0;
  padding: 14px 0 4px;
}

.l2l-spares-error {
  color: #ff9d9d;
}

.l2l-spares-table-wrap {
  overflow-x: auto;
  border-radius: 14px;
  border: 1px solid rgb(255 255 255 / 10%);
}

/* ── Spares machine filter panel ──────────────────────────────────────────── */

.l2l-spares-filter-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask-image: url("../images/navigation/filter.svg");
  mask-image: url("../images/navigation/filter.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

#l2l-spares-filter-button {
  position: relative;
}

.l2l-spares-filter-active .l2l-spares-filter-icon,
#l2l-spares-filter-button.l2l-spares-filter-active .l2l-spares-filter-icon {
  opacity: 1;
}

#l2l-spares-filter-button.l2l-spares-filter-active {
  background: var(--colorTransMedium, rgb(255 255 255 / 20%));
  outline: 2px solid var(--color, #fff);
  outline-offset: -2px;
}

.l2l-spares-filter-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: #e94545;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  pointer-events: none;
}

.l2l-spares-filter-panel {
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 14px;
  background: rgb(0 0 0 / 20%);
  margin-bottom: 12px;
  overflow: hidden;
}

.light .l2l-spares-filter-panel,
#l2l-spares-widget.light .l2l-spares-filter-panel {
  background: rgb(0 0 0 / 4%);
  border-color: rgb(0 0 0 / 10%);
}

.l2l-spares-filter-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
}

.light .l2l-spares-filter-header,
#l2l-spares-widget.light .l2l-spares-filter-header {
  border-bottom-color: rgb(0 0 0 / 8%);
}

.l2l-spares-filter-title {
  flex: 1;
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.85;
}

.l2l-spares-filter-clear-btn,
.l2l-spares-filter-close-btn {
  background: none;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 8px;
  color: inherit;
  font-family: var(--font);
  font-size: 0.72rem;
  padding: 3px 10px;
  cursor: pointer;
  opacity: 0.75;
}

.l2l-spares-filter-close-btn {
  padding: 3px 8px;
}

.l2l-spares-filter-clear-btn:hover,
.l2l-spares-filter-close-btn:hover {
  opacity: 1;
  background: rgb(255 255 255 / 8%);
}

.l2l-spares-filter-body {
  padding: 8px 10px;
}

.l2l-spares-filter-search {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 12px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 10px;
  background: rgb(0 0 0 / 20%);
  color: inherit;
  font-family: var(--font);
  font-size: 0.78rem;
  margin-bottom: 8px;
  -webkit-appearance: none;
  appearance: none;
}

.l2l-spares-filter-area-select {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 12px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 10px;
  background: rgb(0 0 0 / 20%);
  color: inherit;
  font-family: var(--font);
  font-size: 0.78rem;
  margin-bottom: 8px;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-appearance: none;
  appearance: none;
}

.light .l2l-spares-filter-area-select,
#l2l-spares-widget.light .l2l-spares-filter-area-select {
  background: rgb(0 0 0 / 4%);
  border-color: rgb(0 0 0 / 12%);
}

.light .l2l-spares-filter-search,
#l2l-spares-widget.light .l2l-spares-filter-search {
  background: rgb(0 0 0 / 4%);
  border-color: rgb(0 0 0 / 12%);
}

.l2l-spares-filter-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.l2l-spares-filter-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  border-radius: 8px;
}

.l2l-spares-filter-item:hover {
  background: rgb(255 255 255 / 6%);
}

.light .l2l-spares-filter-item:hover,
#l2l-spares-widget.light .l2l-spares-filter-item:hover {
  background: rgb(0 0 0 / 5%);
}

.l2l-spares-filter-item input[type="checkbox"] {
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: var(--color, #4a9eff);
}

.l2l-spares-filter-item label {
  font-size: 0.78rem;
  cursor: pointer;
  flex: 1;
  user-select: none;
}

.l2l-spares-filter-empty {
  font-size: 0.78rem;
  opacity: 0.65;
  padding: 6px 4px;
  list-style: none;
}

.light .l2l-spares-table-wrap,
#l2l-spares-widget.light .l2l-spares-table-wrap {
  border-color: rgb(0 0 0 / 10%);
}

.l2l-dispatch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 12px;
  justify-content: center;
}

.l2l-dispatch-card {
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 16px;
  padding: 14px;
  max-width: 500px;
  background: rgb(255 255 255 / 4%);
  box-shadow: 3px 3px 12px rgb(0 0 0 / 7%);
  text-align: left;
}

.l2l-dispatch-card-openable {
  cursor: pointer;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease;
}

.l2l-dispatch-card-openable:hover,
.l2l-dispatch-card-openable:focus-visible {
  transform: translateY(-2px);
  border-color: var(--colorTransMedium);
  box-shadow: 0 10px 24px var(--colorTrans);
  outline: none;
}

.light .l2l-dispatch-card,
#l2l-dispatch-widget.light .l2l-dispatch-card {
  border-color: rgb(0 0 0 / 10%);
  background: #f7f9fb;
}

#l2l-dispatch-dialog .l2l-dispatch-card {
  text-align: left;
  box-shadow: none;
  max-width: 100%;
  border: 0;
  background: var(--fgColor);
  padding: 0 14px;
}

/* Aww-tistic Mode */

.artistic details.l2l-dispatch-details,
.artistic article.l2l-dispatch-card,
.artistic .l2l-dispatch-page-button,
.artistic .mincalendar,
.artistic .flip-card-inner,
.artistic .notes-inner-content,
.artistic #pdf-bookmarks-widget,
.artistic #l2l-spares-widget,
.artistic #l2l-stats-widget,
.artistic #cs-results,
.artistic #iai-results,
.artistic #chat-module,
.artistic .chat-queue-health {
  background: var(--bgTrans) !important;
}

.artistic .setting-module {
  margin: 10px 0;
}

.artistic .setting-module h4,
.artistic .setting-module .setting-menu,
.artistic .setting-module h6 {
  background: var(--bgTrans) !important;
  margin: 0;
  border-radius: 0;
}

.artistic h4:first-of-type,
.artistic h6:first-of-type,
.artistic .setting-menu:first-of-type {
  border-radius: 20px 20px 0 0;
}
.artistic h4:last-of-type,
.artistic h6:last-of-type,
.artistic .setting-menu:last-of-type {
  border-radius: 0 0 20px 20px;
}

.artistic .bulletin-board {
  background: var(--bgTrans);
  border: var(--l2l-action-border);
}

.artistic .line-operation-row.rgb-glow-effect {
  opacity: 0.9;
}

.l2l-dispatch-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 20px;
}

.l2l-dispatch-header-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
}

.l2l-dispatch-number {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--colorTransMedium);
  color: var(--darkFontColor);
  font-family: "Roboto Mono", monospace;
  font-size: 0.82rem;
  font-weight: 700;
}

#l2l-dispatch-dialog .l2l-dispatch-number {
  display: none;
}

.l2l-dispatch-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgb(255 255 255 / 10%);
  font-size: 0.78rem;
  font-weight: 700;
}

.l2l-dispatch-type-pill {
  max-width: 100%;
}

.l2l-dispatch-schedule-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: #df0101;
  mask-image: url(../images/navigation/alarm.png);
  -webkit-mask-image: url(../images/navigation/alarm.png);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: contain;
  -webkit-mask-size: contain;
  animation: l2l-schedule-icon-pulse 2.4s ease-in-out infinite;
}

@keyframes l2l-schedule-icon-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.45;
  }
}

.l2l-dispatch-type-pill-pm,
.l2l-dispatch-type-pill-default {
  background: #7dd3c7;
  color: #163235;
}

.l2l-dispatch-type-pill-code-red {
  background: #dc2626;
  color: #ffffff;
}

.l2l-dispatch-type-pill-code-yellow {
  background: #facc15;
  color: #1f2937;
}

.l2l-dispatch-type-pill-action-request {
  background: #2563eb;
  color: #ffffff;
}

.l2l-dispatch-status-pill-down {
  background: #fe1b31;
  color: #ffffff;
}

.l2l-dispatch-status-pill-wip {
  background: #01fefa;
  color: #00615f;
}

.l2l-dispatch-status-pill-new {
  background: #fe1b31;
  color: #ffffff;
}

.l2l-dispatch-status-pill-up {
  background: rgb(0 255 36);
  color: #000;
}

.l2l-dispatch-machine {
  margin: 15px 0;
  font-size: 1rem;
  line-height: 1.35;
}

.l2l-dispatch-subtitle {
  margin: 0 0 10px;
  font-size: 0.82rem;
  opacity: 0.78;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
}

.l2l-dispatch-description {
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
  margin: 0 0 12px;
  font-size: 0.92rem;
  line-height: 1.45;
  max-height: 200px;
  overflow: scroll;
  padding: 10px;
  border-radius: 14px;
  text-align: center;
}

.l2l-dispatch-description::first-letter {
  text-transform: capitalize;
}

.l2l-dispatch-card-hint {
  margin: 15px 0 0;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color);
  opacity: 0.88;
}

.l2l-dispatch-meta {
  border-radius: 10px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  overflow: hidden;
}

.l2l-dispatch-meta-summary {
  cursor: pointer;
  padding: 8px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.l2l-dispatch-meta-summary::-webkit-details-marker {
  display: none;
}

.l2l-dispatch-meta-summary::after {
  content: "";
  display: flex;
  background: var(--buttonColor);
  padding: 10px;
  inset: 0;
  transform: rotate(0deg);
  transition: transform 0.3s ease;
  mask: url(../images/navigation/backward.svg) center / contain no-repeat;
}

.l2l-dispatch-meta[open] .l2l-dispatch-meta-summary::after {
  transform: rotate(-90deg);
}

.l2l-dispatch-meta-grid {
  display: grid;
  gap: 6px;
  padding: 0 10px 10px;
}

.l2l-dispatch-meta-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.84rem;
}

.l2l-dispatch-meta-row strong {
  opacity: 0.75;
  font-weight: 600;
}

.l2l-dispatch-meta-row span:last-child {
  text-align: right;
}

.l2l-dispatch-card-footer {
  display: grid;
  gap: 10px;
  padding-top: 12px;
}

.l2l-dispatch-link {
  display: none;
  color: #1e90ff;
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 700;
}

.l2l-dispatch-link:hover,
.l2l-dispatch-link:focus-visible {
  text-decoration: underline;
}

.l2l-dispatch-current-resources {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
}

.l2l-dispatch-current-resources-title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.78;
}

.l2l-dispatch-current-resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.l2l-dispatch-resource-group {
  display: grid;
  gap: 8px;
}

.l2l-dispatch-resource-label {
  font-size: 0.82rem;
}

.l2l-dispatch-resource-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.l2l-dispatch-resource-chip,
.l2l-dispatch-resource-empty {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.78rem;
}

.l2l-dispatch-resource-chip {
  background: var(--colorTrans);
  color: var(--buttonColor);
  gap: 6px;
}

.l2l-dispatch-resource-chip-duration {
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  height: 20px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  background: rgb(255 255 255 / 12%);
  color: inherit;
  white-space: nowrap;
}

.light .l2l-dispatch-resource-chip-duration,
#l2l-dispatch-widget.light .l2l-dispatch-resource-chip-duration {
  background: rgb(0 0 0 / 8%);
}

.l2l-dispatch-resource-empty {
  border: 1px dashed rgb(255 255 255 / 12%);
  opacity: 0.72;
}

.light .l2l-dispatch-resource-empty,
#l2l-dispatch-widget.light .l2l-dispatch-resource-empty {
  border-color: rgb(0 0 0 / 12%);
}

.l2l-dispatch-details {
  border-radius: 12px;
  padding: 0 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
}

.l2l-dispatch-details summary {
  cursor: pointer;
  padding: 10px 0;
  font-size: 0.84rem;
  font-weight: 700;
  list-style-position: outside;
  margin-left: 20px;
  padding-left: 3px;
}

.l2l-dispatch-questions,
.l2l-dispatch-documents {
  display: grid;
  gap: 12px;
  padding: 5px 15px;
  border-radius: 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
}

details.l2l-dispatch-details.l2l-dispatch-questions summary,
details.l2l-dispatch-details.l2l-dispatch-documents summary {
  padding: 15px 0 5px;
}

.l2l-dispatch-details#l2l-dispatch-summary-panel,
.l2l-dispatch-details#l2l-dispatch-search-panel,
.l2l-dispatch-details#l2l-dispatch-filter-panel {
  width: 100%;
}

.l2l-dispatch-documents-body {
  display: grid;
  gap: 12px;
}

.l2l-dispatch-documents-list {
  display: grid;
  gap: 10px;
}

.l2l-dispatch-document-row {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgb(255 255 255 / 4%);
}

.light .l2l-dispatch-document-row,
#l2l-dispatch-widget.light .l2l-dispatch-document-row {
  background: rgb(0 0 0 / 3%);
}

.l2l-dispatch-document-row:last-of-type {
  margin-bottom: 14px;
}

.l2l-dispatch-document-link {
  display: flex;
  width: fit-content;
}

.l2l-dispatch-document-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.76rem;
  opacity: 0.76;
}

.l2l-dispatch-document-group,
.l2l-dispatch-document-type {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgb(255 255 255 / 6%);
}

.light .l2l-dispatch-document-group,
.light .l2l-dispatch-document-type,
#l2l-dispatch-widget.light .l2l-dispatch-document-group,
#l2l-dispatch-widget.light .l2l-dispatch-document-type {
  background: rgb(0 0 0 / 5%);
}

.l2l-dispatch-document-description {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.86;
}

.l2l-dispatch-documents {
  display: grid;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgb(255 255 255 / 8%);
  border-radius: 12px;
  background: rgb(255 255 255 / 3%);
}

.light .l2l-dispatch-documents,
#l2l-dispatch-widget.light .l2l-dispatch-documents {
  border-color: rgb(0 0 0 / 8%);
  background: rgb(0 0 0 / 2%);
}

.l2l-dispatch-documents-body {
  display: grid;
  gap: 12px;
}

.l2l-dispatch-documents-list {
  display: grid;
  gap: 10px;
}

.l2l-dispatch-document-row {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgb(255 255 255 / 4%);
}

.light .l2l-dispatch-document-row,
#l2l-dispatch-widget.light .l2l-dispatch-document-row {
  background: rgb(0 0 0 / 3%);
}

.l2l-dispatch-document-link {
  width: fit-content;
}

.l2l-dispatch-document-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.76rem;
  opacity: 0.76;
}

.l2l-dispatch-document-group,
.l2l-dispatch-document-type {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgb(255 255 255 / 6%);
}

.light .l2l-dispatch-document-group,
.light .l2l-dispatch-document-type,
#l2l-dispatch-widget.light .l2l-dispatch-document-group,
#l2l-dispatch-widget.light .l2l-dispatch-document-type {
  background: rgb(0 0 0 / 5%);
}

.l2l-dispatch-document-description {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.86;
}

.l2l-dispatch-questions-list {
  display: grid;
  gap: 12px;
}

.l2l-dispatch-questions-body {
  display: grid;
  gap: 12px;
}

.l2l-dispatch-question-row {
  display: grid;
  gap: 8px;
}

.l2l-dispatch-question-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.l2l-dispatch-question-label {
  font-size: 0.86rem;
  line-height: 1.4;
}

.l2l-dispatch-question-answer {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.5;
  white-space: pre-wrap;
  opacity: 0.88;
}

.l2l-dispatch-question-ask-when {
  white-space: nowrap;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
}

.l2l-dispatch-question-textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
}

.l2l-dispatch-action-panel {
  display: block;
  overflow: hidden;
  padding: 0;
  border-radius: 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
}

.l2l-dispatch-action-panel-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.4;
  list-style: none;
}

.l2l-dispatch-action-panel-summary::-webkit-details-marker {
  display: none;
}

.l2l-dispatch-action-panel-summary::before {
  content: "+";
  font-size: 1rem;
  opacity: 0.82;
}

.l2l-dispatch-action-panel[open] .l2l-dispatch-action-panel-summary {
  border-bottom: var(--l2l-action-border);
}

.l2l-dispatch-action-panel-body {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: inherit;
  overflow: hidden;
  background: var(--fgColor);
  color: var(--buttonColor);
}

.l2l-dispatch-action-panel[open] .l2l-dispatch-action-panel-summary::after {
  content: "-";
}

.l2l-dispatch-action-helper {
  margin: 5px 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  opacity: 0.82;
  text-align: center;
}

/* ── Dispatch card tab layout ─────────────────────────────────────────────── */

.l2l-dispatch-tab-container {
  border-radius: 12px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  overflow: hidden;
}

.l2l-dispatch-tab-bar {
  display: flex;
  flex-wrap: wrap;
  border-bottom: var(--l2l-action-border);
  border: 0;
}

.l2l-dispatch-tab-btn {
  flex: 1 1 0;
  display: flex;
  min-width: 0;
  margin: 0;
  background: 0;
  border: none;
  border-radius: 0;
  border-right: var(--l2l-action-border);
  border-bottom: var(--l2l-action-border);
  cursor: pointer;
  opacity: 0.6;
  transition:
    opacity 0.15s,
    background 0.15s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  justify-content: center;
  align-items: center;
}

.l2l-dispatch-tab-btn span {
  display: flex;
  width: 24px;
  height: 24px;
  background: var(--buttonColor);
  filter: brightness(2);
}

.light .l2l-dispatch-tab-btn span {
  filter: unset;
  background: #000;
}

.l2l-dispatch-tab-btn:nth-child(1) span {
  mask: url(../images/navigation/question.svg) center / contain no-repeat;
}
.l2l-dispatch-tab-btn:nth-child(2) span {
  mask: url(../images/navigation/paperclip.svg) center / contain no-repeat;
}
.l2l-dispatch-tab-btn:nth-child(3) span {
  mask: url(../images/navigation/document.svg) center / contain no-repeat;
}
.l2l-dispatch-tab-btn:nth-child(4) span {
  mask: url(../images/navigation/resources.svg) center / contain no-repeat;
}
.l2l-dispatch-tab-btn:nth-child(5) span {
  mask: url(../images/navigation/pencil.svg) center / contain no-repeat;
}

.l2l-dispatch-tab-btn:last-child {
  border-right: none;
}

.l2l-dispatch-tab-btn--active {
  opacity: 1;
  background: var(--fgColor);
  border-bottom: 0;
  border-top: 0;
  border-left: 0;
}

.light .l2l-dispatch-tab-btn--active {
  background: #fff;
}

.l2l-dispatch-monitor-tab-bar .l2l-dispatch-tab-btn--active,
.light .l2l-dispatch-monitor-tab-bar .l2l-dispatch-tab-btn--active {
  border-left: var(--l2l-action-border);
  border-right: var(--l2l-action-border);
}

.l2l-dispatch-tab-btn--active span {
  background: var(--color) !important;
  filter: unset;
}

.l2l-dispatch-tab-body {
  overflow: hidden;
  position: relative;
  max-height: 0;
  padding: 0 12px;
  background: var(--fgColor);
  transition:
    max-height 0.3s ease,
    padding 0.3s ease;
}

.l2l-dispatch-tab-body--open {
  max-height: 1000px;
  padding: 14px 12px;
}

.l2l-dispatch-tab-pane {
  display: none;
}

.l2l-dispatch-tab-pane--active {
  display: grid;
  gap: 10px;
}

/* ── Dispatch monitor mobile tab bar ──────────────────────────────────────── */
#l2l-dispatch-widget .l2l-dispatch-monitor-tabs {
  margin-bottom: 12px;
}

.l2l-dispatch-monitor-tabs .l2l-dipatch-monitor-tab-body {
  position: relative;
  top: 1px;
}

.l2l-dispatch-monitor-new-tab-btn
  .
  .l2l-dispatch-monitor-new-tab-btn
  .l2l-dispatch-new-button-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: none;
  background-color: currentColor;
  mask: url(../images/navigation/plus.svg) center / contain no-repeat;
  -webkit-mask: url(../images/navigation/plus.svg) center / contain no-repeat;
  filter: none;
}

.l2l-dispatch-monitor-count-tab-btn #l2l-open-dispatch-count {
  width: auto;
  height: auto;
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 0;
  filter: none;
  font-size: 0.82rem;
  mask: none;
  -webkit-mask: none;
}

.l2l-dispatch-monitor-filter-caption {
  margin: 0 0 4px;
  font-size: 0.82rem;
  font-weight: 700;
  opacity: 0.7;
}

/* ── Attachment tab: selection preview grid ────────────────────────────────── */
.l2l-attach-preview-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.l2l-attach-file-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 80px;
  gap: 4px;
  position: relative;
}

.l2l-attach-file-card-thumb {
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 1.8rem;
  flex-shrink: 0;
}

.l2l-attach-file-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid var(--color);
}

.l2l-attach-file-card-name {
  font-size: 0.68rem;
  opacity: 0.8;
  color: var(--buttonColor);
  text-align: center;
  word-break: break-all;
  line-height: 1.3;
  max-width: 80px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.l2l-attach-file-card-status {
  position: absolute;
  top: 3px;
  right: 3px;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
}

.l2l-attach-file-card--uploading .l2l-attach-file-card-thumb {
  opacity: 0.5;
}

.l2l-attach-file-card--done .l2l-attach-file-card-status {
  color: #28c864;
}

.l2l-attach-file-card--error .l2l-attach-file-card-status {
  color: #e05252;
}

.l2l-attach-file-card--error .l2l-attach-file-card-thumb {
  border-color: rgba(224, 82, 82, 0.4);
}

/* ── Attachment tab: uploaded history ────────────────────────────────────── */
.l2l-attach-uploaded-label {
  margin-top: 4px;
}

.l2l-attach-uploaded-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.l2l-attach-uploaded-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 7px;
  background: rgba(40, 200, 100, 0.08);
  border: 1px solid rgba(40, 200, 100, 0.2);
}

.l2l-attach-uploaded-thumb {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 5px;
  object-fit: cover;
  display: block;
}

.l2l-attach-uploaded-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
}

.l2l-attach-uploaded-name {
  flex: 1;
  font-size: 0.8rem;
  opacity: 0.9;
  word-break: break-all;
  line-height: 1.35;
}

.l2l-attach-uploaded-check {
  flex-shrink: 0;
  font-size: 0.95rem;
  color: #28c864;
  font-weight: 700;
}

.l2l-dispatch-action-select {
  width: 100%;
}

.l2l-dispatch-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.l2l-dispatch-edit-form .l2l-dispatch-action-buttons {
  margin-top: 10px;
}

/* ── Resource time editor ─────────────────────────────────────────── */
.l2l-dispatch-resource-time-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.08));
}
.l2l-dispatch-resource-time-row:last-child {
  border-bottom: none;
}
.l2l-dispatch-resource-time-name {
  flex: 1;
  font-size: 0.88rem;
  min-width: 80px;
}
.l2l-dispatch-resource-time-duration {
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.75;
}
.l2l-dispatch-resource-time-edit {
  padding: 2px 8px;
  font-size: 0.78rem;
  border: 1px solid var(--colorTrans);
  border-radius: 6px;
  background: var(--colorTrans);
  color: inherit;
  cursor: pointer;
  display: none;
}
.l2l-dispatch-resource-time-edit::before {
  content: "✏\FE0E";
}
.l2l-dispatch-resource-time-editor {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: nowrap;
  width: 100%;
  flex-direction: row;
}
.l2l-dispatch-resource-time-input {
  width: 75px;
  padding: 4px 6px;
  border-radius: 6px;
  border: var(--l2l-action-border);
  background: var(--colorTrans, rgba(0, 0, 0, 0.2));
  color: inherit;
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.l2l-dispatch-resource-time-sep {
  font-size: 0.8rem;
  opacity: 0.65;
  font-weight: bold;
}
.l2l-dispatch-resource-time-update,
.l2l-dispatch-resource-time-cancel {
  font-size: 0.78rem;
  padding: 4px 10px;
  min-height: unset;
}
.l2l-dispatch-resource-time-cancel {
  background: var(--bgColor);
  border-color: transparent;
  color: var(--buttonColor);
  opacity: 0.7;
}

#attachL2lImg {
  display: flex;
  width: calc(50% - 4px);
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  cursor: pointer;
  max-height: 44px;
  overflow: hidden !important;
}

input#attachL2lImg::before {
  content: "Select Files";
  display: flex;
  margin-bottom: 15px;
  padding: 0;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

#attachL2lImg::file-selector-button {
  display: none;
}

#uploadL2lImg {
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  max-height: 44px;
}

.l2l-dispatch-action-cancel {
  min-height: 44px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 14px;
  padding: 0 18px;
  background: transparent;
  color: inherit;
  font-family: var(--font);
  font-weight: 700;
  cursor: pointer;
}

.light .l2l-dispatch-action-cancel,
#l2l-dispatch-widget.light .l2l-dispatch-action-cancel {
  border-color: rgb(0 0 0 / 12%);
}

.l2l-dispatch-action-cancel:disabled {
  cursor: wait;
  opacity: 0.7;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading {
  cursor: progress;
}

.l2l-dispatch-dialog-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0 10px 5px;
}

.l2l-dispatch-dialog-status {
  display: none;
  margin: 0;
  padding: 6px 15px 0;
}

.l2l-dispatch-dialog-status:empty {
  display: none;
}

.l2l-dispatch-dialog-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  padding: 3px 10px;
  border-radius: 999px;
}

.l2l-dispatch-dialog-title strong {
  color: var(--color);
}

.l2l-dispatch-dialog-close {
  margin: 0;
  width: 32px;
  height: 32px;
  background: #35363a;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  filter: brightness(1.15);
  mask: url(../images/navigation/close.svg) center / contain no-repeat;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading
  .l2l-dispatch-dialog-body {
  opacity: 0;
  pointer-events: none;
}

.l2l-dispatch-dialog-loader {
  position: absolute;
  inset: 78px 16px 16px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  padding: 24px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--fgColor) 84%, transparent);
  color: var(--buttonColor);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
  z-index: 2;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading
  .l2l-dispatch-dialog-loader {
  opacity: 1;
  visibility: visible;
}

.l2l-dispatch-dialog-loader-spinner {
  width: 52px;
  aspect-ratio: 1;
  border: 4px solid rgb(255 255 255 / 16%);
  border-top-color: var(--color);
  border-radius: 50%;
  animation: l2lDispatchDialogSpinner 0.85s linear infinite;
}

.l2l-dispatch-dialog-loader-label {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
}

dialog.l2l-dispatch-dialog .l2l-dispatch-grid {
  grid-template-columns: 1fr;
}

dialog.l2l-dispatch-dialog {
  position: relative;
  width: min(960px, calc(100% - 24px));
  max-width: 600px;
  max-height: 80vh;
  border-radius: 0;
  padding: 0;
  margin: auto;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 22px;
  background: var(--bgColor);
  color: var(--fontcolor);
  box-shadow: 0 24px 60px rgb(0 0 0 / 28%);
  overflow: visible;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading {
  cursor: progress;
}

.l2l-dispatch-dialog-frame {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  gap: 0;
  padding: 5px 0 15px;
  border-radius: inherit;
  overflow: hidden;
  background: var(--fgColor);
  color: var(--buttonColor);
}

.l2l-dispatch-dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 15px;
}

.l2l-dispatch-dialog-status {
  display: none;
  margin: 0;
  padding: 6px 15px 0;
}

.l2l-dispatch-dialog-status:empty {
  display: none;
}

.l2l-dispatch-dialog-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.l2l-dispatch-dialog-title strong {
  color: var(--color);
}

.l2l-dispatch-dialog-body {
  position: relative;
  overflow: auto;
  min-height: 220px;
  /* max-height: calc(80vh - 80px); */
  max-height: 100%;
  transition: opacity 0.18s ease;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading
  .l2l-dispatch-dialog-body {
  opacity: 0;
  pointer-events: none;
}

.l2l-dispatch-dialog-loader {
  position: absolute;
  inset: 78px 16px 16px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  padding: 24px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--fgColor) 84%, transparent);
  color: var(--buttonColor);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
  z-index: 2;
}

dialog.l2l-dispatch-dialog.l2l-dispatch-dialog-loading
  .l2l-dispatch-dialog-loader {
  opacity: 1;
  visibility: visible;
}

.l2l-dispatch-dialog-loader-spinner {
  width: 52px;
  aspect-ratio: 1;
  border: 4px solid rgb(255 255 255 / 16%);
  border-top-color: var(--color);
  border-radius: 50%;
  animation: l2lDispatchDialogSpinner 0.85s linear infinite;
}

.l2l-dispatch-dialog-loader-label {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
}

dialog.l2l-dispatch-dialog .l2l-dispatch-grid {
  grid-template-columns: 1fr;
}

@keyframes l2lDispatchDialogSpinner {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

/* ── Document viewer dialog (iframe-based) ───────────────────────────── */

dialog.l2l-document-viewer-dialog {
  width: min(1300px, calc(100% - 24px));
  height: calc(92vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  max-height: calc(
    92vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)
  );
  margin: auto;
  max-width: unset;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 22px;
  background: var(--bgColor);
  color: var(--fontcolor);
  box-shadow: 0 24px 60px rgb(0 0 0 / 28%);
  overflow: hidden;
}

.l2l-document-viewer-frame {
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
  background: var(--fgColor);
  color: var(--buttonColor);
}

.l2l-document-viewer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 15px;
  flex-shrink: 0;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
}

.l2l-document-viewer-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.3;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.l2l-document-viewer-body {
  position: relative;
  overflow: hidden;
  min-height: 0;
}

.l2l-document-viewer-iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
  background: #fff;
}

.l2l-document-viewer-loader {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  background: color-mix(in srgb, var(--fgColor) 92%, transparent);
  color: var(--buttonColor);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
  z-index: 2;
}

dialog.l2l-document-viewer-dialog.l2l-document-viewer-loading
  .l2l-document-viewer-loader {
  opacity: 1;
  visibility: visible;
}

.l2l-dispatch-detail-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.82rem;
}

.l2l-dispatch-detail-row strong {
  opacity: 0.75;
}

.l2l-dispatch-detail-row span {
  text-align: right;
}

@media only screen and (max-width: 640px) {
  #l2l-dispatch-form {
    grid-template-columns: 1fr;
  }

  .l2l-dispatch-mode {
    max-width: none;
  }
}

.l2l-spares-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  table-layout: fixed;
}

.l2l-spares-table th,
.l2l-spares-table td {
  padding: 10px 5px;
  border-bottom: var(--l2l-action-border);
  border-right: var(--l2l-action-border);
}

.l2l-spares-table th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.75;
  text-align: center;
  height: 60px;
}

.l2l-spares-table th:nth-of-type(2) {
  display: none;
}

.l2l-spares-table tbody tr:last-child td {
  border-bottom: none;
}

.l2l-spares-table tbody tr td:nth-of-type(2) {
  display: none;
}

.l2l-spares-table tbody tr td:nth-of-type(4),
.l2l-spares-table th:nth-of-type(4) {
  border-right: none;
}

.l2l-spares-table .mono {
  font-family: "Roboto Mono", monospace;
}

/* --- Gemini AI Scan button & result panel --------------------------------- */

.l2l-spares-scan-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: inline-block;
  background: currentColor;
  mask-image: url(../images/navigation/ai.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: url(../images/navigation/ai.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.l2l-spares-scan-result {
  margin-bottom: 12px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgb(99 102 241 / 10%);
  border: 2px solid rgb(99 102 241 / 28%);
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--buttonColor);
}

#uni-scan-result {
  list-style: none;
  margin: 15px 0 0;
  width: 100% !important;
}

.l2l-spares-scan-result[hidden] {
  display: none;
}

.l2l-spares-scan-label {
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.7rem;
  opacity: 0.7;
}

/* ─── Scan Source Picker (bottom sheet) ─────────────────────────────────────── */

.scan-source-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgb(0 0 0 / 55%);
  z-index: 1000;
}

.scan-source-backdrop.active {
  display: block;
}

.scan-source-picker {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  flex-direction: column;
  gap: 8px;
  padding: 12px 16px calc(20px + env(safe-area-inset-bottom));
  background: var(--colorTrans);
  backdrop-filter: blur(15px);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -4px 32px rgb(0 0 0 / 50%);
  color: #fff;
  z-index: 1001;
}

.scan-source-title {
  display: flex;
  gap: 5px;
  text-align: center;
  margin: 6px 0 10px;
  opacity: 0.65;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.scan-source-title strong {
  display: flex;
  gap: 5px;
}

.gemini {
  display: flex;
  padding: 10px;
  background: var(--complimentary);
  mask: url(../images/navigation/aiimage.png) center / contain no-repeat;
}

.scan-source-option {
  padding: 14px 20px;
  border: none;
  border-radius: 12px;
  background: var(--colorTransMedium);
  color: var(--darkerFontColor);
  font-family: var(--font);
  font-size: 1rem;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s;
}

.scan-source-option:hover,
.scan-source-option:active {
  background: rgb(255 255 255 / 16%);
}

.scan-source-cancel {
  padding: 14px 20px;
  margin-top: 4px;
  border: none;
  border-radius: 12px;
  background: var(--colorTransMedium);
  color: inherit;
  font-family: var(--font);
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  opacity: 0.6;
  cursor: pointer;
  transition: opacity 0.15s;
}

.scan-source-cancel:hover {
  opacity: 1;
}

.scan-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.scan-result-header .l2l-spares-scan-label {
  margin: 0;
}

.scan-confidence-badge {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.scan-confidence-high {
  background: rgb(34 197 94 / 20%);
  color: #4ade80;
  border: 1px solid rgb(34 197 94 / 40%);
}

.scan-confidence-medium {
  background: rgb(251 146 60 / 20%);
  color: #fb923c;
  border: 1px solid rgb(251 146 60 / 40%);
}

.scan-confidence-low {
  background: rgb(239 68 68 / 20%);
  color: #f87171;
  border: 1px solid rgb(239 68 68 / 40%);
}

.l2l-spares-scan-description {
  margin: 0 0 4px;
  font-weight: 600;
}

.l2l-spares-scan-meta {
  margin: 0 0 8px;
  opacity: 0.8;
  font-size: 0.8rem;
}

.l2l-spares-scan-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.l2l-spares-scan-chip {
  cursor: pointer;
  border: 1px solid rgb(99 102 241 / 50%);
  border-radius: 20px;
  padding: 0 10px;
  font-size: 0.75rem;
  font-family: var(--font);
  background: rgb(99 102 241 / 15%);
  color: inherit;
  width: calc(33% - 13px);
  transition: background 0.15s;
}

.l2l-spares-scan-chip:hover {
  background: rgb(99 102 241 / 30%);
}

#l2lAccountCard details.l2l-dispatch-details {
  margin: 0px 0 15px;
  width: 100%;
}

.notes-input {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  color: var(--buttonColor);
  background: rgb(255 255 255 / 5%);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.4;
  min-height: 40px;
  height: 40px;
  width: 100%;
  padding: 10px 16px;
  border: var(--l2l-action-border);
  border-radius: 25px;
  text-align: center;
  overflow-y: auto;
  resize: none;
  transition: all var(--speed) ease;
}

.notes-input.light,
#wishlist.post.light {
  background: #f1f3f5;
  color: #202124;
}

.notes-input.midnight,
#wishlist.post.midnight {
  background: #000;
  color: #fff;
}

.notes-input::placeholder {
  font-family: var(--font);
  -webkit-appearance: none;
  appearance: none;
}

.notes-input.typing-notes {
  border-radius: 15px;
  height: 300px;
  width: 80%;
  padding: 16px 18px;
  transition: all var(--speed) ease;
  border: 1px solid var(--dark);
  text-align: left;
}

.notes-button {
  display: flex;
  position: relative;
  opacity: 0;
  -webkit-appearance: none;
  appearance: none;
  border: none;
  width: 100%;
  height: 40px;
  color: var(--fontcolor);
  font-weight: bold;
  background: var(--color);
  border-radius: 0 25px 25px 0;
  transition: all var(--speed) ease;
}

button.notes-button.typing-notes {
  opacity: 1;
  border-radius: 50%;
  width: 56px;
  height: 56px;
  transition: all var(--speed) ease;
  border: 1px solid var(--dark);
  align-items: center;
  align-content: center;
  justify-content: center;
}

#post-list-button.active {
  box-shadow: inset 0 0 0 2px rgb(255 255 255 / 45%);
  background: var(--darker);
}

.notes-button span {
  padding: 14px;
  background: var(--fontcolor);
}

#post-list-button span {
  mask: url(../images/navigation/list.svg) center / contain no-repeat;
}

#note-image-button span {
  mask: url(../images/navigation/upload-image.svg) center / contain no-repeat;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}

#post-cancel-button {
  background: #b71c1c;
  border: 0;
}

#post-cancel-button span {
  mask: url(../images/navigation/cross.svg) center / contain no-repeat;
  background: #fff;
  padding: 8px;
}

#note-image-button::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 4px dotted var(--color);
  border-top-color: var(--complimentary);
  border-right-color: var(--complimentary);
  opacity: 0;
  transform: scale(0.92);
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
  pointer-events: none;
}

#note-image-button.uploading::after {
  opacity: 1;
  transform: scale(1);
  animation: noteImageButtonSpin 0.9s linear infinite;
}

#note-image-button.uploading span {
  opacity: 0.85;
  transform: scale(0.9);
}

@keyframes noteImageButtonSpin {
  from {
    transform: scale(1) rotate(0deg);
  }

  to {
    transform: scale(1) rotate(360deg);
  }
}

#post-list-button.active span {
  background: var(--darkerFontColor);
}

#wishlist .note-list-items {
  margin: 0;
  padding-left: 20px;
  list-style: disc;
}

#wishlist .note-text-block {
  white-space: pre-wrap;
}

#wishlist .note-editable-content {
  min-height: 0;
  outline: none;
}

#wishlist .note-list-items li {
  min-height: 0;
  padding: 0;
  white-space: normal;
}

#wishlist.post .note-list-items {
  margin-top: 4px;
}

#wishlist .note-image-grid {
  position: relative;
  width: 100%;
  height: 340px;
  margin-top: 10px;
  margin-bottom: 26px;
  touch-action: pan-y;
}

#wishlist.post.compact-view .post-it > li .note-image-grid {
  margin-top: 0;
}

#wishlist .note-image-card {
  position: absolute;
  width: 72%;
  left: 50%;
  top: 0;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
  will-change: transform;
  rotate: none;
}

#wishlist .note-image-card:active {
  cursor: grabbing;
}

body.note-image-delete-mode #wishlist .note-image-card::before {
  content: "TAP TO DELETE";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  text-shadow: 0 0 10px BLACK;
  font-weight: bold;
  border-radius: 4px;
  background: rgb(255 0 0 / 60%);
  color: #fff7f1;
  font-family: "Fjalla";
  font-size: 1rem;
  text-align: center;
  z-index: 2;
  pointer-events: none;
  font-family: "Poppins";
}

#wishlist .note-image-link {
  display: block;
  background: white;
  padding: 10px 10px 0;
  box-shadow:
    6px 9px 6px rgb(0 0 0 / 20%),
    -1px 0px 3px rgb(0 0 0 / 35%);
  text-align: center;
  color: black;
  font-size: x-large;
  font-weight: bolder;
  text-decoration: unset;
  font-family: "Gochi";
  border-radius: 6px;
}

body.note-image-delete-mode #wishlist .note-image-link,
body.note-image-delete-mode #wishlist .note-image-label {
  pointer-events: none;
}

#wishlist.compact-view a.note-image-link {
  /* box-shadow: 0 0 3px rgb(0 0 0 / 5%); */
  margin-top: 4px;
  background: 0;
  padding: 0px;
}

#wishlist .note-image-label {
  display: flex;
  margin: 0;
  padding: 5px 0 10px;
  font-family: "Gochi";
  outline: none;
  font-size: 1rem;
  align-items: center;
  justify-content: center;
}

.post.compact-view p.note-image-label {
  display: none !important;
}

#wishlist .note-image-label[contenteditable="true"] {
  cursor: text;
}

#wishlist .note-image-label[contenteditable="true"]:focus {
  outline: 1px solid rgb(0 0 0 / 18%);
  background: rgb(255 255 255 / 75%);
}

#wishlist .note-image-dots {
  position: absolute;
  bottom: -20px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 6px;
  pointer-events: none;
}

#wishlist .note-image-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgb(0 0 0 / 20%);
  transition:
    background 0.25s ease,
    transform 0.25s ease;
  flex-shrink: 0;
}

#wishlist .note-image-dot.active {
  background: rgb(0 0 0 / 55%);
  transform: scale(1.35);
}

#wishlist.compact-view .note-image-card {
  transform: none !important;
  left: 0;
}

/* ── Note controls toolbar ─────────────────────────────────────────── */

.note-controls {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 2px 0 8px;
  align-items: center;
}

.note-controls .dash-stats-eyebrow {
  color: var(--buttoncolor);
}

.note-control-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: none;
  border-radius: 50%;
  background: 0;
  cursor: pointer;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease;
}

.note-control-button.active {
  background: var(--color);
}

.note-control-button.active span {
  background: var(--fontcolor) !important;
}

#note-edit-button span {
  display: block;
  width: 18px;
  height: 18px;
  background: var(--buttonColor);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'/%3E%3C/svg%3E")
    center/cover no-repeat;
}

#note-organize-button span {
  display: block;
  width: 18px;
  height: 18px;
  background: var(--buttonColor);
  mask: url(../images/navigation/drag.svg) center / contain no-repeat;
}

#note-compact-button span {
  display: block;
  width: 18px;
  height: 18px;
  background: var(--buttonColor);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm10 0h8v8h-8z'/%3E%3C/svg%3E")
    center/cover no-repeat;
}

/* ── Compact view ──────────────────────────────────────────────────── */

#notebook:has(#wishlist.compact-view) {
  grid-template-columns: 1fr;
}

#wishlist.post.compact-view {
  gap: 8px;
}

#wishlist.post.compact-view .post-it {
  width: 96px;
  height: 96px;
  max-width: 96px;
  min-width: 96px;
  padding: 0;
  overflow: scroll;
  rotate: 0deg;
  border-radius: 4px;
  cursor: pointer;
  transition: rotate 0.3s linear;
}

#wishlist.post.compact-view .post-it > span,
#wishlist.post.compact-view .post-it > div {
  display: none;
}

#wishlist.post.compact-view .post-it > li {
  min-height: unset;
  height: 48px;
  padding: 4px;
  font-size: 9px;
  line-height: 1.2;
  overflow: visible;
  color: #333;
  pointer-events: none;
  user-select: none;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}

/* ── Note edit mode ─────────────────────────────────────────────────── */

#wishlist.note-edit-mode .note-editable-content {
  outline: 1px dashed rgb(255 255 255 / 25%);
  border-radius: 4px;
  padding: 2px 4px;
  cursor: text;
  white-space: pre-wrap;
}

#wishlist.note-edit-mode .note-editable-content:focus {
  outline: 1px solid rgb(255 255 255 / 50%);
  background: rgb(255 255 255 / 4%);
}

/* ── Note organize mode ─────────────────────────────────────────────── */

#notebook.note-organize-mode #wishlist .post-it {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  -webkit-touch-callout: none;
  transition: opacity 0.15s ease;
}

#notebook.note-organize-mode #wishlist .post-it.note-dragging {
  opacity: 0.45;
  cursor: grabbing;
}

#wishlist .note-image-preview {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  max-height: 260px;
  object-fit: cover;
  text-align: center;
  border-radius: 4px;
}

.notes-input:focus {
  border: 1px solid var(--color);
}

/* ── Sketchpad layout ──────────────────────────────────────────────────── */

#sketch-drag .drag-header {
  display: none;
  height: 60px;
  padding: 0 12px;
  align-items: center;
  flex-shrink: 0;
  background: var(--bgTrans);
  border-bottom: var(--l2l-action-border);
}

#sketch-layout {
  position: absolute;
  inset: 0;
  display: flex;
  overflow: hidden;
  touch-action: none;
}

#sketch-sidebar {
  display: none;
  width: 240px;
  min-width: 180px;
  background: var(--bgTrans);
  border-right: var(--l2l-action-border);
  overflow-y: auto;
  overflow-x: hidden;
  flex-direction: column;
  flex-shrink: 0;
}

#sketch-sidebar::-webkit-scrollbar {
  width: 4px;
}

#sketch-sidebar::-webkit-scrollbar-thumb {
  background: #2c2c2e;
  border-radius: 2px;
}

#sketchpadapp {
  flex: 1;
  position: relative;
  overflow: hidden;
  -webkit-user-select: none;
  user-select: none;
  touch-action: none;
}

#sketchpad {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  border: none;
  pointer-events: none;
}

#sketch-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  cursor: crosshair;
  touch-action: none;
}

/* ── Sidebar sections ───────────────────────────────────────────────────── */

.sk-group {
  padding: 15px;
  border-bottom: var(--l2l-action-border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sk-group:last-of-type {
  border-bottom: none;
  gap: 15px;
}

.sk-label {
  font-size: 0.68rem;
  color: var(--buttonColor);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.sk-tools-group {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}

/* ── Tool & swatch buttons ──────────────────────────────────────────────── */

.sketch-tool {
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  color: var(--buttonColor);
  min-width: 36px;
  width: calc(100% / 3 - 7px);
  max-width: 70px;
  height: 36px;
  border-radius: 6px;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition:
    background 0.12s,
    color 0.12s;
  flex-shrink: 0;
}

#penValue {
  width: 100%;
  height: 32px;
  border: var(--l2l-action-border);
  border-radius: 6px;
  cursor: pointer;
  padding: 1px 2px;
  background: var(--bgTrans);
}

#sk-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.sk-swatch {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #3a3a3c;
  cursor: pointer;
  padding: 0;
  transition: border-color 0.12s;
}

.sk-swatch.sk-swatch-active {
  border-color: #fff;
}

/* ── Sliders ────────────────────────────────────────────────────────────── */

.sk-slider {
  width: 100%;
  accent-color: var(--color);
  margin: 10px 0;
  height: 4px;
  background: var(--l2l-action-background);
  border-radius: 2px;
  cursor: pointer;
}

.sk-slider::-webkit-slider-runnable-track {
  height: 8px;
  background: var(--l2l-action-background);
  border-radius: 2px;
}

.sk-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color);
  margin-top: -4px;
  cursor: pointer;
}

.sk-slider::-moz-range-track {
  height: 8%;
  background: var(--l2l-action-background);
  border-radius: 2px;
}

.sk-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: none;
  border-radius: 50%;
  background: var(--color);
  cursor: pointer;
}

/* ── Toggle rows ────────────────────────────────────────────────────────── */

.sk-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.78rem;
  color: #ccc;
  cursor: pointer;
  gap: 6px;
}

.sk-toggle-row input[type="checkbox"] {
  flex-shrink: 0;
  accent-color: var(--fill, #0a84ff);
  width: 14px;
  height: 14px;
}

/* ── History & action buttons ───────────────────────────────────────────── */

.sk-history {
  flex-direction: row !important;
}

.sk-history button,
.sk-actions button {
  flex: 1;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  color: var(--buttonColor);
  border-radius: 6px;
  padding: 6px 4px;
  font-size: 0.72rem;
  cursor: pointer;
  transition: background 0.12s;
  white-space: nowrap;
}

.sk-history button:hover,
.sk-actions button:hover {
  background: #2c2c2e;
  color: #fff;
}

.sk-history button:disabled {
  opacity: 0.3;
  cursor: default;
}

.sk-actions {
  flex-direction: row !important;
  flex-wrap: wrap;
}

#sketch-save-png {
  background: var(--color) !important;
  border-color: var(--color) !important;
  color: var(--fontcolor) !important;
}

/* ── Text input overlay ─────────────────────────────────────────────────── */

#sketch-text-wrap {
  display: none;
  position: fixed;
  z-index: 9999;
}

#sketch-text-input {
  background: rgba(0, 0, 0, 0.75);
  border: 1px dashed rgba(255, 255, 255, 0.45);
  color: #fff;
  padding: 4px 7px;
  border-radius: 4px;
  resize: both;
  font-family: inherit;
  outline: none;
  min-width: 120px;
  white-space: pre;
  line-height: 1.3;
}

/* ── Toolbar toggle FAB ── */

#sketch-bar-toggle {
  position: absolute;
  bottom: calc(var(--navbar-padding) + 20px);
  right: 20px;
  z-index: 10;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--bubble);
  border: 0;
  color: var(--fontcolor);
  font-size: 1.15rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
  transition:
    background 0.15s,
    color 0.15s;
}

#sketch-bar-toggle:hover {
  background: rgba(44, 44, 46, 0.95);
  color: #fff;
}

#sketch-bar-toggle span {
  display: flex;
  background: var(--fontcolor);
  padding: 12px;
  mask: url(../images/sketchpad/brush.svg) center / contain no-repeat;
}

/* ── Slide-up panel ── */

#sketchbar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bgTrans);
  border-top: var(--l2l-action-border);
  border-radius: 16px 16px 0 0;
  transform: translateY(100%);
  transition: transform 0.25s ease;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.5);
  pointer-events: none;
}

#sketchbar.is-visible {
  transform: translateY(0);
  pointer-events: auto;
}

.sk-panel-handle {
  width: 36px;
  height: 4px;
  background: #484848;
  border-radius: 2px;
  margin: 10px auto 4px;
  flex-shrink: 0;
  cursor: pointer;
}

.sk-bar-row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 6px;
  padding: 8px 12px calc(var(--navbar-padding) + 20px);
  align-items: center;
  justify-content: center;
}

.sk-bar-row::-webkit-scrollbar {
  display: none;
}

.sk-mob-btn {
  flex-shrink: 0;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  color: var(--buttonColor);
  width: calc(100% / 4 - 5px);
  max-width: unset;
  height: 44px;
  border-radius: 8px;
  font-size: 1.05rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-direction: column;
  text-shadow: none;
}

.sk-mob-btn.sk-active {
  background: var(--fill, #0a84ff);
  border-color: var(--fill, #0a84ff);
  color: #fff;
}

.sketch-tool.sk-active {
  background: var(--color);
  border-color: var(--color);
  color: var(--fontcolor);
}

.sketch-tool.sk-active span,
.sketch-tool:not(.sk-active):hover span {
  background: var(--fontcolor);
}

.sketch-tool:not(.sk-active):hover {
  background: var(--colorTrans);
  color: var(--fontcolor);
}

.sketch-tool span,
.sk-group.sk-history button span,
.sk-group.sk-actions button span,
.sk-mob-btn span {
  display: flex;
  background: var(--buttonColor);
  padding: 12px;
}

#sketch-save-png {
  color: var(--fontcolor);
}
#sketch-save-png span {
  background: var(--fontcolor);
}

.sketch-tool:nth-child(1) span,
.sk-mob-btn:nth-child(1) span {
  mask: url(../images/sketchpad/brush.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(2) span,
.sk-mob-btn:nth-child(2) span {
  mask: url(../images/sketchpad/erase.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(3) span,
.sk-mob-btn:nth-child(3) span {
  mask: url(../images/sketchpad/line.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(4) span,
.sk-mob-btn:nth-child(4) span {
  mask: url(../images/sketchpad/rectangle.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(5) span,
.sk-mob-btn:nth-child(5) span {
  mask: url(../images/sketchpad/circle.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(6) span,
.sk-mob-btn:nth-child(6) span {
  mask: url(../images/sketchpad/fill.svg) center / contain no-repeat;
}
.sketch-tool:nth-child(7) span,
.sk-mob-btn:nth-child(7) span {
  mask: url(../images/sketchpad/text.svg) center / contain no-repeat;
}

.sketch-tool:nth-child(8) span,
.sk-mob-btn:nth-child(8) span {
  mask: url(../images/sketchpad/move.svg) center / contain no-repeat;
}

.sketch-tool:nth-child(9) span,
.sk-mob-btn:nth-child(9) span {
  mask: url(../images/sketchpad/eyedropper.svg) center / contain no-repeat;
}

.sketch-tool[data-tool="recolor"] span {
  mask: url(../images/sketchpad/recolor.svg) center / contain no-repeat;
}

.sk-group.sk-history button:nth-of-type(1) span,
.sk-mob-btn:nth-of-type(11) span {
  mask: url(../images/sketchpad/undo.svg) center / contain no-repeat;
}

.sk-group.sk-history button:nth-of-type(2) span,
.sk-mob-btn:nth-of-type(12) span {
  mask: url(../images/sketchpad/redo.svg) center / contain no-repeat;
}

.sk-group.sk-actions button:nth-of-type(1) span,
.sk-mob-btn:nth-of-type(13) span {
  mask: url(../images/sketchpad/clear.svg) center / contain no-repeat;
}

.sk-group.sk-actions button:nth-of-type(2) span,
.sk-mob-btn:nth-of-type(14) span {
  mask: url(../images/sketchpad/save.svg) center / contain no-repeat;
}

/* Import button icon */
#sketch-import-btn span,
#sketch-import-mob span,
.sk-mob-btn:nth-of-type(15) span {
  mask: url(../images/sketchpad/import.svg) center / contain no-repeat;
}

.sk-mob-btn:nth-of-type(16) span {
  mask: url(../images/navigation/gear.svg) center / contain no-repeat;
}

.sk-mob-btn:nth-of-type(17) span {
  mask: url(../images/navigation/cross-circle.svg) center / contain no-repeat;
}

#sketch-save-dialog #sketch-save-filename {
  width: 100%;
  box-sizing: border-box;
  padding: 10px;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  border-radius: 10px;
}

#sketch-save-dialog section {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  padding: 10px;
  justify-content: center;
}

dialog#sketch-save-dialog button {
  display: flex;
  background: var(--fontcolor);
  color: var(--color);
  font-weight: bold;
  align-self: center;
  width: calc(100% / 2 - 10px);
  margin: 5px;
  height: 40px;
  border-radius: 10px;
  font-size: 70%;
  border: none;
  cursor: pointer;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  flex-wrap: nowrap;
}

button#sketch-save-private-btn::before {
  content: "";
  background: var(--color);
  width: 32px;
  height: 32px;
  mask: url(../images/navigation/private.svg) center / contain no-repeat;
}

button#sketch-save-device-btn::before {
  content: "";
  background: var(--color);
  width: 28px;
  height: 28px;
  margin-right: 8px;
  mask: url(../images/navigation/folder-open.svg) center / contain no-repeat;
}

#sketch-dup-btn {
  display: none;
  position: absolute;
  z-index: 15;
  background: var(--fill, #0a84ff);
  border: none;
  color: #fff;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 0.75rem;
  cursor: pointer;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  pointer-events: auto;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  transform: translateX(-50%);
}
#sketch-dup-btn.sk-dup-visible {
  display: flex;
}

.sk-mob-color {
  flex-shrink: 0;
  width: calc(100% / 4 - 5px);
  height: 44px;
  border: 1px solid #3a3a3c;
  border-radius: 8px;
  background: none;
  cursor: pointer;
  padding: 3px;
}

/* ── Desktop layout (≥1000px) ───────────────────────────────────────────── */

@media screen and (min-width: 1001px) {
  .drag#sketch-drag {
    width: min(1100px, 92vw);
    height: min(850px, 88vh);
    top: 4vh;
    left: 4vw;
    max-width: 100%;
  }

  #sketch-drag .drag-header {
    display: flex;
  }

  #sketch-layout {
    top: 60px;
  }

  #sketch-sidebar {
    display: flex;
  }

  #sketchbar {
    display: none;
  }

  #sketch-bar-toggle {
    display: none;
  }
}

.icon-bar {
  display: flex;
  position: fixed;
  background: #000;
  border-top: 1px solid #35363a;
  bottom: 0;
  padding-bottom: calc(var(--navbar-padding) - 5px);
  height: 75px;
  width: 100%;
  cursor: pointer;
  z-index: 305;
  touch-action: none;
}

.icon-bar a,
.icon-bar button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc(100% / 3);
  text-align: center;
  padding: 15px 0 0;
  transition: all 0.3s ease;
  color: white;
  text-shadow: 0 0 3px #000;
  border: none;
  border-right: 1px solid #35363a;
  border-bottom: 1px solid #35363a;
  text-decoration: none;
  background: none;
}

.icon-bar a:last-child,
.icon-bar button:last-child {
  border-right: none;
}

.toolbar {
  background: var(--searchbar);
  padding: 14px;
}

.toolbar + p {
  margin: 5px auto;
}

#code-drag .icon-bar a {
  width: 25%;
}

.tabcontent {
  position: relative;
  color: rgb(207, 209, 211);
  background: var(--bgColor);
  display: none;
  padding: 70px 5px calc(var(--navbar-padding) + env(safe-area-inset-bottom));
  padding-top: calc(70px + var(--iOSPadding));
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 1;
  height: 100%;
}

.tabcontent.light {
  color: #35363a;
}

.tabcontent#settingsPanel {
  padding: 0;
  overflow-x: hidden;
  background-image: unset;
  height: var(--height);
  height: 100%;
}

.tabcontent#Tab4 {
  padding: 70px 15px var(--navbar-padding);
}

#notchFill {
  display: block;
  position: fixed;
  background: var(--bgColor);
  top: -150px;
  height: 150px;
  width: 100%;
  z-index: 0;
  border: none !important;
}

.topnav {
  position: absolute;
  display: flex;
  background: var(--bgColor);
  top: 0;
  width: 100%;
  height: calc(70px + var(--iOSPadding) + env(safe-area-inset-top));
  padding-top: env(safe-area-inset-top);
  color: var(--buttonColor);
  z-index: 300;
  overflow: hidden;
  text-align: center;
  align-items: center;
  align-content: center;
  font-weight: bold;
  transition: opacity var(--speed) ease;
  justify-content: center;
  border: none !important;
}

.topnav.light {
  color: #35363a;
}

#mdispatch {
  display: block;
  position: relative;
  top: calc(var(--iOSPadding) / 2);
}

.desktop-nav {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(75px + env(safe-area-inset-top));
  flex-direction: row;
  align-content: center;
  background: var(--color);
  border-bottom: var(--desktopBorder);
  z-index: 200;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: center;
  justify-self: center;
  padding: calc(5px + env(safe-area-inset-top)) 65px 5px;
  gap: 10px;
}

.desktop-nav-button {
  position: relative;
  height: 100%;
  width: calc(100% / 6 - 20px);
  cursor: pointer;
  border: none;
  border-radius: 10px;
  background: none;
  color: var(--fontcolor);
  font-size: 10px;
  display: inline-flex;
  justify-content: space-evenly;
  flex-direction: column-reverse;
  align-items: center;
}

.desktop-nav-img {
  padding: 10px;
  background: var(--fontcolor);
}

.desktop-nav.themed {
  background: var(--color);
  color: var(--fontcolor);
  border: none;
}

.desktop-nav.themed .desktop-nav-button.light {
  background: var(--color);
  color: var(--fontcolor);
}

.desktop-nav.themed .desktop-nav-button {
  color: var(--fontcolor);
}

.desktop-nav.themed button .desktop-nav-img {
  background: var(--fontcolor);
}

.setting-tab {
  display: flex;
  position: fixed;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: 100%;
  height: calc(var(--height) + var(--iOSPadding));
  padding: 0 15px 40px;
  padding-top: calc(80px + var(--iOSPadding));
  padding-bottom: calc(
    120px + env(safe-area-inset-bottom) + var(--navbar-padding)
  );
  overflow-x: hidden;
  overflow-y: scroll;
  border: none;
}

#panelIcon {
  display: none !important;
  position: fixed;
  right: calc(30% - 100px);
  top: 35%;
  padding: 100px;
  background: var(--buttonColor);
  mask-image: url(../images/navigation/hitachi-maintenance.svg);
}

#tabSetting label {
  display: inline-flex;
  font-size: 14px;
  position: absolute;
  flex-direction: row;
  align-items: flex-end;
  left: 100px;
  bottom: 10px;
  width: 100%;
  opacity: 0.4;
  color: var(--buttonColor);
}

.setting-menu {
  display: flex;
  position: relative;
  color: var(--buttonColor);
  width: 100%;
  padding: 15px 15px;
  margin-top: 2px 0;
  font-size: 1.25em;
  border: none;
  background: #2c2c32;
  border-radius: 4px;
  margin: 2px 0;
  flex-direction: row;
  overflow: hidden;
  align-items: baseline;
  justify-content: flex-start;
  overscroll-behavior: auto !important;
}

.setting-menu.light {
  color: #35363a;
}

.settingIcon {
  position: relative;
  display: flex;
  align-items: center;
  height: 56px;
  width: 56px;
  border-radius: 50%;
  background: var(--darkerBGColor);
  cursor: pointer;
}

.settingIcon.light {
  background: var(--color);
}

.settingIcon.rgb-glow-effect {
  background: var(--rgb-glow-gradient);
}

.setting-span {
  position: relative;
  margin-left: 30px;
  text-align: center;
  bottom: 20px;
}

#settingAcc {
  display: flex;
}

.qr-logo {
  background: var(--color);
  cursor: pointer;
  margin: 0 auto;
  height: 28px;
  width: 28px;
  display: block;
  position: relative;
  text-align: center;
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}

.qr-logo.light {
  background: var(--fontcolor);
}

.qr-logo.rgb-glow-effect {
  background: #000;
}

.setting-tabcontent {
  display: none;
  position: relative;
  left: 0;
  color: var(--buttonColor);
  padding: calc(80px + var(--iOSPadding)) 15px
    calc(120px + env(safe-area-inset-bottom));
  width: 100%;
  height: var(--height);
  height: 100%;
  font-size: 1rem !important;
  overflow-y: scroll;
}

#settingAcc {
  display: flex;
}

#about strong {
  font-size: 125%;
  color: #ecf0f3;
  padding: 10px 0;
}

#about.light strong {
  color: #35363a;
}

#hwinfo {
  color: #999;
  background: #2c2c32;
  border-radius: 20px;
  padding: 20px;
}

.serverinfo {
  color: #999;
  background: #2c2c32;
  border-radius: 20px;
  padding: 20px;
  margin: 20px 0;
}

#weatherSlide {
  background: #2c2c32;
  margin-top: unset;
  border-radius: 0 0 4px 4px;
  padding: 20px 20px;
  margin: -4px 0 2px 0px;
}

#maintenance-form {
  padding: 0 10px;
}

.update-button {
  position: fixed;
  font-weight: bold;
  bottom: calc(30px + var(--navbar-padding));
  right: 15px;
  color: var(--fontcolor);
  width: 160px;
  height: 45px;
  border-radius: 33px;
  border: none;
  background: var(--color);
  cursor: pointer;
  z-index: 10;
  box-shadow: 1px 2px 3px rgb(0 0 0 /10%);
}

h1 {
  position: relative;
  color: var(--color);
  text-align: left;
  font-weight: bold;
  font-size: 2rem;
  margin: 10px 0 30px 0;
}

.setting-tabcontent h1 {
  margin: 20px 0;
  font-size: 1.2rem;
}

.setting-tabcontent h1:nth-of-type(1) {
  margin-top: 5px;
}

.setting-tabcontent#profiles h1:nth-of-type(1) {
  margin-top: 20px;
}

h3 {
  margin: 5px;
  position: relative;
  text-align: center;
  font-weight: bold;
}

h2 {
  text-align: center;
  font-weight: bold;
  color: #999;
}

h2.light {
  color: #35363a;
}

h4 {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-weight: normal;
  text-shadow: none;
  padding: 25px 20px;
  margin: 2px 0;
  background: #2c2c32;
  border-radius: 4px;
}

h4.light,
h6.light,
#weatherSlide.light,
.setting-menu.light,
.serverinfo.light,
.hicon.light.backarrow,
.three.light.backarrow,
#hwinfo.light {
  background: var(--fgColor);
}

h4.midnight,
h6.midnight,
.serverinfo.midnight,
.hicon.midnight.backarrow,
.three.midnight.backarrow,
#weatherSlide.midnight,
.setting-menu.midnight,
#hwinfo.midnight {
  background: #111112;
}

.hicon.backarrow.chat-room-backarrow,
.three.backarrow.chat-room-backarrow,
.hicon.light.backarrow.chat-room-backarrow,
.three.light.backarrow.chat-room-backarrow,
.hicon.midnight.backarrow.chat-room-backarrow,
.three.midnight.backarrow.chat-room-backarrow {
  background: var(--dark);
}

h4.toggle-disabled.light {
  color: rgba(53, 54, 58, 0.3);
}

h4.toggle-disabled.midnight,
h4.toggle-disabled:not(.light) {
  color: rgba(255, 255, 255, 0.2);
}

h4.toggle-disabled .center {
  opacity: 0.3;
  filter: saturate(0.75);
}

.hicon.active {
  background: var(--dialog-vertical);
  box-shadow: 3px 2px 4px rgb(0 0 0 / 0.1);
}

.hicon.light.active {
  background: #fff;
}

h4:first-of-type,
h6:first-of-type,
.setting-menu:first-of-type {
  border-radius: 20px 20px 4px 4px;
  margin-top: 10px;
}

h4:last-of-type,
h6:last-of-type,
.setting-menu:last-of-type {
  border-radius: 4px 4px 20px 20px;
  margin-bottom: 10px;
}

h6 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 16px;
  padding: 12px;
  font-weight: normal;
  margin: 2px 0;
  background: #2c2c32;
}

.setting-tabcontent > h6 {
  background: #2c2c32;
  border-radius: 4px;
}

#resH2 {
  display: flex;
  padding: 0 5px;
  margin-top: calc(20px + var(--iOSPadding) + env(safe-area-inset-top));
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

#resH2 button {
  display: flex;
  position: relative;
  width: 44px;
  height: 44px;
  right: 0;
  border-radius: 50%;
  background: rgb(0 0 0 / 15%);
  border: none;
  cursor: pointer;
  justify-content: center;
  align-items: center;
}

#resH2 button:first-of-type {
  left: 0;
  right: unset;
}

#mtag {
  color: var(--fontcolor);
  position: relative;
  left: 15px;
}

#mtag span {
  text-decoration: overline;
  text-decoration-color: var(--fontcolor);
}

#addLOG h1 {
  margin: 0 0 10px 0;
}

.setting-divider {
  border: none;
  border-bottom: 1px solid #4a4b4e;
  width: 75%;
  margin-top: 40px;
}

.collapsible-menu {
  display: flex;
  background: 0 0;
  border: none;
  cursor: pointer;
  width: 100%;
  padding: 20px;
  font-weight: bold;
  color: var(--buttonColor);
  justify-content: flex-start;
  align-items: center;
}

.collapsible-menu.light {
  color: #35363a;
}

.collapse-active-menu,
.collapsible-menu:hover {
  color: var(--fontcolor);
  background: var(--color);
}

.collapsible-menu:hover span,
.collapsible-menu:hover div {
  background: var(--fontcolor);
}

.collapse-active-menu span,
.collapse-active-menu div {
  background: var(--fontcolor);
}

.collapsible-menu.collapse-active-menu {
  color: var(--fontcolor);
}

.content-menu {
  color: #f0f0f0;
  background: var(--colorTrans);
  opacity: 0;
  max-height: 0;
  overflow: auto;
  overscroll-behavior-y: auto !important;
  transition:
    opacity var(--speed) ease,
    max-height var(--speed) ease;
}

.trash {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  right: -5px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(0deg, var(--dark), var(--color));
  border: none;
  cursor: pointer;
}

.trash:before {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  background: linear-gradient(0deg, var(--color), var(--dark));
  border-radius: 50%;
}

.submit-float {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: calc(25px + var(--navbar-padding));
  right: 25px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(0deg, var(--dark), var(--color));
  border: none;
  cursor: pointer;
  z-index: 500;
  opacity: 1;
  transition: opacity 0.3s ease;
}

.submit-float:before {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  background: linear-gradient(0deg, var(--color), var(--dark));
  border-radius: 50%;
}

#submit-main.submit-float {
  display: none;
}

.floater-icon {
  background: var(--fontcolor);
  cursor: pointer;
  padding: 10px;
  position: relative;
  mask-image: url(../images/navigation/plus.svg);
  -webkit-mask-image: url(../images/navigation/plus.svg);
}

.floater-icon#waste {
  mask-image: url(../images/navigation/trash.svg);
  -webkit-mask-image: url(../images/navigation/trash.svg);
}

.Input {
  display: flex;
  justify-content: flex-start;
  background: var(--fgColor);
  color: #999;
  font-size: 16px;
  height: 48px;
  width: 100%;
  border: var(--border);
  border-radius: 35px;
  text-align: center;
  align-items: center;
}

.Input:focus {
  border: 1px solid var(--color);
  background-image: none;
  transition: 0.1s ease;
}

.Input.light {
  color: #35363a;
  background: #fff;
}

.Input .searchglass {
  mask-image: url(../images/navigation/search.svg);
  position: relative;
  left: 10px;
  width: 20px;
  height: 20px;
  display: block;
  background: var(--color);
}

.Input .searchglass.rgb-glow-effect {
  background: var(--rgb-glow-gradient);
}

.Input.light#myInput2 {
  color: #999;
  border: 1px solid var(--colorTrans);
}

.Input.light#guide-search2 {
  border: 1px solid var(--colorTrans);
}

.Input.light:focus {
  border: 1px solid var(--color);
}

.submit-list {
  -webkit-appearance: none;
  appearance: none;
  color: var(--fontcolor);
  height: 50px;
  width: 100%;
  text-align: center;
  font-size: 16px;
  text-align: center;
  text-align-last: center;
  padding: 10px;
  border: none;
  border-radius: 30px;
  background: var(--color);
  cursor: pointer;
  background-image: url("../images/navigation/default/downmenu.png");
  background-repeat: no-repeat;
  background-position: 92% center;
  background-size: 20px 20px;
  margin-bottom: 25px;
}

.submit-textbox {
  margin-bottom: 25px;
}

.submit-list:focus {
  border: 3px solid var(--fgColor);
}

#styles {
  color: #ccc;
  background-color: var(--fgColor);
  background-image: url("../images/navigation/arrow-down.svg");
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid var(--fgColor);
  margin-bottom: 0;
}

#styles:focus {
  border: none;
  border-bottom: 1px solid #2c2c32;
}

#form-buttons {
  display: flex;
  width: 100%;
  gap: 10px;
  justify-content: center;
  flex-direction: row;
}

.maintenance-button {
  color: var(--fontcolor);
  font-weight: bold;
  position: relative;
  align-self: center;
  width: 50%;
  height: 50px;
  border-radius: 35px;
  border: none;
  background: var(--color);
  cursor: pointer;
  overflow: hidden;
  box-shadow: 1px 2px 3px rgb(0 0 0 /10%);
}

#accounts .maintenance-button {
  left: 25%;
}

#clear-submit {
  background: var(--buttonColor);
}

#event-form .maintenance-button,
#maintenance-form2 .maintenance-button {
  background: var(--color);
  color: var(--fontcolor);
}

.test-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
}

.debug-button {
  font-weight: bold;
  position: relative;
  align-self: center;
  width: calc(100% / 2 - 10px);
  margin: 5px;
  height: 50px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  overflow: hidden;
}

.debug-button.light {
  background: #ccc;
}

ul.compressor_output {
  position: relative;
  padding-inline-start: 0;
  list-style: none;
  padding: 5px;
  left: 0;
}

ul.compressor_output li {
  display: flex;
  width: 100%;
  background: var(--bgColor);
  color: var(--buttonColor);
  padding: 10px;
  margin: 5px 0;
  border-radius: 6px;
  justify-content: space-between;
  text-indent: 0px;
  align-items: center;
  align-content: center;
  flex-direction: row;
  flex-wrap: nowrap;
}

ul.compressor_output li div {
  width: calc(100% - 46px);
}

ul.compressor_output li span {
  display: flex;
  padding: 0;
  color: #202124;
  background: #24e724;
  border-radius: 50%;
  height: 36px;
  width: 36px;
  border: 2px solid var(--compFontColor);
  justify-content: center;
  align-items: center;
  font-size: small;
}

ul.compressor_output li span.failed {
  background: #ff0000;
  color: #fff;
}

.maintenance-label {
  position: relative;
  display: inline-block;
  font-size: 18.5px;
  text-align: center;
  padding-bottom: 5px;
}

.maintenance-ticket {
  color: #999;
  word-wrap: break-word;
  height: 50px;
  width: 100%;
  padding: 10px;
  margin: 10px 0;
  border: 1px solid var(--fgColor);
  border-radius: 30px;
  background: var(--bgColor);
  font-size: 16px;
  text-align: center;
  overflow-y: hidden;
  resize: none;
}

.maintenance-ticket.light {
  background: var(--dialog-info);
}

.maintenance-ticket:focus {
  border: 1px solid var(--color);
}

#custom_5.maintenance-ticket:focus {
  resize: vertical;
}

#maintenance-guide-header {
  display: flex;
  height: calc(155px + var(--iOSPadding) + env(safe-area-inset-top));
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  color: var(--fontcolor);
  width: 100%;
  background: var(--color);
  border: none;
  border-bottom: 1px solid var(--fgColor);
  border-collapse: collapse;
  padding: calc(20px + var(--iOSPadding) + env(safe-area-inset-top)) 15px 10px;
  text-align: center;
  font-size: 1rem;
  font-weight: bold;
}

.searchbar {
  position: relative;
  padding: 20px 15px;
  background: var(--color);
}

.ipbar {
  width: 100%;
  padding-top: 15px;
}

.ipaddress {
  display: none;
  position: fixed;
  background: var(--bgColor);
  height: 100%;
  width: 100%;
  top: 0;
  z-index: 500;
  overflow-y: hidden;
}

.ipaddress.light {
  background: #fff;
}

.sort {
  position: relative;
  width: 24px;
  height: 24px;
  left: calc(var(--width) / 2 - 50px);
  top: -37px;
  filter: invert(65%);
  cursor: pointer;
}

.sort.light {
  filter: invert(35%);
}

.searchbar .sort {
  position: absolute;
  left: unset;
  right: 30px;
  top: 32px;
}

#option-container {
  display: none;
  position: relative;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  align-content: flex-start;
  background: var(--searchWidget);
  border-radius: 20px;
  padding: 10px;
  color: #f0f0f0;
  width: calc(var(--width) - 30px);
  height: auto;
  max-height: 50%;
  transition: max-height 0.2s;
  margin-top: 15px;
  border: none;
  overflow: scroll;
}

#option-container.ai {
  height: calc(var(--height) - 205px);
  max-height: unset;
}

#search_dock {
  display: none;
  position: relative;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  align-content: flex-start;
  background: var(--searchWidget);
  border-radius: 20px;
  padding: 3px 9px;
  color: #f0f0f0;
  width: calc(100% - 20px);
  height: auto;
  min-height: 88px;
  transition:
    max-height 0.2s,
    width 0.3s ease;
  border: none;
  column-gap: 10px;
  overflow: hidden;
}

#filters {
  display: none;
  flex-direction: column;
  width: calc(100% - 0px);
  background: rgb(0 0 0/30%);
  border-radius: 15px;
  padding: 20px;
  gap: 10px;
  position: relative;
}

#filters label {
  display: flex;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--dialog-vertical);
}

#filters button {
  background: var(--color);
  font-weight: bold;
  border: none;
  color: var(--fontcolor);
  width: 50%;
  height: 40px;
  border-radius: 35px;
  align-self: center;
}

#recent-list {
  display: none;
  flex-direction: column;
  list-style: none;
  width: calc(100% - 0px);
  background: rgb(0 0 0 / 30%);
  border-radius: 15px;
  padding: 0;
  position: relative;
  margin: 0;
  text-transform: capitalize;
}

#pdf-list {
  width: 100%;
  display: none;
  border-radius: 15px;
  background: rgb(0 0 0 / 30%);
  flex-direction: column;
  margin: 0;
}

#recent-list li,
#pdf-list li {
  border-bottom: 1px solid var(--dialog-info);
  padding: 8px 12px;
  word-wrap: break-word;
  height: auto;
  text-align: center;
  list-style: decimal;
}

#recent-list li {
  list-style: none;
}

#recent-list li:last-of-type,
#pdf-list li:last-of-type {
  border: none;
}

#searchPanel.light #recent-list,
#searchPanel.light #pdf-list,
#searchPanel.light #filters,
#searchPanel.light .search_dock_container {
  background: #fff;
  color: #2c2c32;
}

#searchPanel.light #recent-list h2 {
  color: #2c2c32;
}

#searchPanel.light .close-search,
#searchPanel.light .search_dock_button {
  background: #2c2c32;
}

#searchPanel.light #search_dock,
#searchPanel.light #option-container {
  background: rgb(225 225 225 / 60%);
}

#docs-table {
  table-layout: fixed;
  width: 100%;
}

#docs-table thead th,
#docs-table tr th:nth-child(2),
#docs-table tr th:nth-child(3) {
  padding: 12px 10px;
}

#docs-table th:nth-child(1),
#docs-table td:nth-child(1) {
  width: 40%;
}

#docs-table th:nth-child(2),
#docs-table td:nth-child(2) {
  width: 45%;
  white-space: normal;
}

#docs-table th:nth-child(3),
#docs-table td:nth-child(3) {
  width: 15%;
  white-space: normal;
}

#docs-table tr:hover {
  background: var(--color) !important;
  color: var(--fontcolor) !important;
}

#docs-table td {
  font-size: 0.92rem;
  padding: 20px 10px;
}

#docs-table td:last-child {
  width: 100%;
  height: 100%;
  text-align: center;
  font-weight: bold;
  letter-spacing: 0.01em;
  align-items: center;
  align-content: center;
}

#docs-table td:last-child span {
  display: flex;
  padding: 12px;
  border-radius: 6px;
  align-items: center;
  justify-content: center;
  justify-self: center;
}

#docs-table td:nth-child(2) {
  text-align: center;
  word-break: break-word;
  overflow-wrap: anywhere;
}

#docs-table td:nth-child(1) {
  text-align: center;
}

#docs-table td:nth-child(1) a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  padding: 6px 10px;
  min-width: 58px;
  border-radius: 6px;
  text-decoration: none;
  background: var(--color);
  color: var(--fontcolor);
  border: 1px solid rgba(0, 0, 0, 0.15);
  font-size: 0.78rem;
  font-weight: bold;
  line-height: 1;
  transition:
    transform 0.15s ease,
    opacity 0.15s ease,
    filter 0.15s ease;
}

#docs-table td:nth-child(1) a:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

#docs-table td:nth-child(1) a:active {
  transform: translateY(0);
  opacity: 0.9;
}

#docs-table .docs-type-cell {
  color: #fff;
}

#docs-table .docs-type-pdf span,
#docs-table .docs-type-xls span,
#docs-table .docs-type-doc span,
#docs-table .docs-type-other span {
  background: #ec2929;
  position: relative;
  z-index: 0;
  mask-image: url(../images/navigation/file-pdf.svg);
  flex-direction: column;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  cursor: pointer;
}

#docs-table .docs-type-xls span {
  background: #389c5b;
  mask-image: url(../images/navigation/file-xls.svg);
}

#docs-table .docs-type-doc span {
  background: #668de9;
  mask-image: url(../images/navigation/file-word.svg);
}

#docs-table .docs-type-other span {
  background: #48484f;
  mask-image: url(../images/navigation/file.svg);
}

#searchPanel.light #docs-table td:nth-child(3) a {
  border-color: rgba(44, 44, 50, 0.2);
}

#searchPanel.light #docs-table .docs-type-cell {
  color: #fff;
}

@media (max-width: 720px) {
  #docs-table td {
    font-size: 0.84rem;
  }
}

#searchPanel.light .search_dock_container p {
  color: #2c2c32;
}

#chat {
  display: none;
  position: static;
  top: 0;
  width: calc(var(--width) - 40px);
  height: auto;
  background: rgb(0 0 0 / 30%);
  border-radius: 15px;
  overflow: scroll;
}

#chat.light {
  background: #fff;
}

#option-container.ai #chat {
  height: 100%;
}

#response {
  display: flex;
  height: 100%;
  align-items: start;
  align-content: center;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0 10px;
  top: 0;
  width: 100%;
  position: relative;
  font-size: initial;
  color: white;
  overflow-y: scroll;
  z-index: 1;
}

#response li {
  font-size: 90%;
  justify-self: left;
  width: fit-content;
  width: -moz-fit-content;
  text-align: left;
  height: fit-content;
  background: var(--color);
  color: var(--fontcolor);
  padding: 20px;
  position: relative;
  left: 0;
  border-radius: 25px;
  list-style: none;
  margin: 15px 0;
  max-width: 85%;
  word-break: break-word;
  box-shadow: 2px 3px 5px 0px rgb(0 0 0/ 15%);
}

#response li.imgGen {
  display: flex;
  padding: 10px;
}

#response li.user {
  right: 0;
  align-self: flex-end;
  background: #ecf0f3 !important;
}

.timestamp,
.timestamp-user {
  width: 100%;
  text-align: left;
  font-size: small;
  padding: 0 5px;
}

.timestamp-user {
  text-align: right;
}

.text-container {
  display: none;
  left: 0;
  background: 0;
  padding: 10px 10px 15px 10px;
  height: 80px;
  width: calc(var(--width) - 40px);
}

.search_dock_container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  background: rgb(0 0 0 / 30%);
  border-radius: 14px;
  padding: 10px;
  color: #f0f0f0;
  height: 100%;
  margin: 0;
  width: calc(100% - 4px);
  border-radius: 12px;
}

.search_dock_container span {
  transition: rotate 0.3s;
}

.search_dock_container p {
  margin: 6px 0 0;
  font-size: 65%;
  color: #ecf0f3;
}

.search_dock_button {
  position: relative;
  height: 28px;
  width: 28px;
  background: #ecf0f3;
  padding: 5px;
  border: none;
  transition:
    padding var(--speed) ease,
    background var(--speed) ease;
  overscroll-behavior: auto !important;
  align-items: center;
  justify-content: center;
  mask-image: url(../images/navigation/ai.svg);
  -webkit-mask-image: url(../images/navigation/ai.svg);
}

#search_dock div {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

#search_dock div:nth-child(1) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/ai.svg);
  -webkit-mask-image: url(../images/navigation/ai.svg);
}

#search_dock div.ai:nth-child(1) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/left-arrow.svg);
  -webkit-mask-image: url(../images/navigation/left-arrow.svg);
  height: 24px;
  width: 24px;
}

#search_dock div:nth-child(2) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/reset-user.svg);
  -webkit-mask-image: url(../images/navigation/reset-user.svg);
}

#search_dock div:nth-child(3) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/sort.svg);
  -webkit-mask-image: url(../images/navigation/sort.svg);
}

#search_dock div:nth-child(4) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/gear.svg);
  -webkit-mask-image: url(../images/navigation/gear.svg);
  background: var(--buttonColor);
}

#search_dock div:nth-child(5) .search_dock_container .search_dock_button {
  mask-image: url(../images/navigation/upload-image.svg);
  -webkit-mask-image: url(../images/navigation/upload-image.svg);
  background: var(--buttonColor);
}

#search_dock div.ai:nth-child(4) .search_dock_container .search_dock_button,
#search_dock div.ai:nth-child(5) .search_dock_container .search_dock_button {
  height: 24px;
  width: 24px;
}

#search_dock div:nth-child(4),
#search_dock div:nth-child(5) {
  display: none;
}

#search_dock div:nth-child(4) p,
#search_dock div:nth-child(5) p {
  color: #fff;
}

#search_dock div.ai .search_dock_container {
  width: 100%;
}

#searchresults {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  align-content: flex-start;
  background: var(--searchWidget);
  border-radius: 20px;
  padding: 0px 12px 15px 12px;
  color: #f0f0f0;
  visibility: hidden;
  height: auto;
  width: calc(var(--width) - 30px);
  overflow-y: scroll;
  list-style: none;
}

#searchresults li {
  width: 100%;
}

#searchresults .unisearch-loading,
#searchresults .unisearch-empty-state {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 0 4px;
  color: var(--buttonColor);
  font-weight: 600;
}

#searchresults .unisearch-loading::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 3px solid rgb(255 255 255 / 18%);
  border-top-color: var(--color);
  animation: loadingAssetsSpin 1s linear infinite;
}

#searchresults .unisearch-empty-state {
  color: var(--complimentary);
}

#searchresults.unisearch-busy li:not(.unisearch-loading) {
  opacity: 0.42;
}

#searchresults.unisearch-busy li:not(.unisearch-loading) {
  pointer-events: none;
}

#searchTool {
  display: none;
  width: 100%;
  align-content: center;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
  margin: 0;
  padding: 10px 0 0px;
}

#st_title {
  color: var(--buttonColor);
}

#st_help,
#st_close {
  width: 28px;
  height: 28px;
  background: var(--buttonColor);
}

#st_help {
  visibility: hidden;
  mask-image: url(../images/navigation/help.svg);
  -webkit-mask-image: url(../images/navigation/help.svg);
}

#st_close {
  mask-image: url(../images/navigation/close.svg);
  -webkit-mask-image: url(../images/navigation/close.svg);
}

#cs-results,
#iai-results {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  top: -2px;
  left: 0;
  width: 100%;
  height: calc(100% - 85px - var(--navbar-padding));
  border-radius: 0;
  padding: 0;
  z-index: 2;
}

#iai-results tr:nth-child(even),
#cs-results tr:nth-child(even),
#searchresults tr:nth-child(even),
#loadIP tr:nth-child(even),
#guideTbody tr:nth-child(even) {
  background: var(--evenRow);
  color: #f0f0f0;
}

#iai-results tr:nth-child(odd),
#cs-results tr:nth-child(odd),
#searchresults tr:nth-child(odd),
#loadIP tr:nth-child(odd),
#guideTbody tr:nth-child(odd) {
  background: var(--oddRow);
  color: #f0f0f0;
}

#iai-results.light tr:nth-child(even),
#cs-results.light tr:nth-child(even),
#searchresults.light tr:nth-child(even),
#loadIP.light tr:nth-child(even),
#guideTbody.light tr:nth-child(even) {
  background: #ecf0f3;
  color: #4a4b4e;
}

#iai-results.light tr:nth-child(odd),
#cs-results.light tr:nth-child(odd),
#searchresults.light tr:nth-child(odd),
#loadIP.light tr:nth-child(odd),
#guideTbody.light tr:nth-child(odd) {
  background: #fff;
  color: #4a4b4e;
}

.round-table {
  position: relative;
  font-family: var(--font);
  max-height: 62px;
  width: 100%;
  border-radius: 15px;
  margin-top: 15px;
  overflow-y: hidden;
  overflow-x: scroll;
  padding: 0;
  transition: padding var(--speed);
  overscroll-behavior: auto !important;
  z-index: 2;
}

/* ── uniSearch: Dispatch History table ───────────────────────────────────── */

.uni-dispatch-history-row:hover {
  filter: brightness(1.15);
}

.uni-dispatch-description-cell {
  max-width: 220px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.full-table {
  position: relative;
  width: 100%;
  border-radius: 0;
  overflow: scroll;
  border: 1px solid #45484c;
  border-left: 0;
  border-right: 0;
  z-index: 1;
}

.log-table {
  overflow-y: clip;
  height: calc(var(--height) + var(--iOSPadding));
  overflow: auto;
  overscroll-behavior: none;
}

#loadIP {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  border-radius: 15px;
  padding: 0;
}

.universal-title-bar {
  top: 0;
  left: 0;
  position: sticky;
  display: flex;
  width: 100%;
  height: 65px;
  line-height: 65px;
  background: var(--color);
  color: var(--fontcolor);
  font-size: 0.95rem;
  text-align: center;
  font-weight: bold;
  border-bottom: 1px solid var(--fontcolor);
  z-index: 2;
  align-content: center;
  justify-content: center;
}

.universal-table {
  display: table;
  position: relative;
  z-index: 1;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  text-align: center;
  font-size: 0.75rem;
  table-layout: auto;
  overflow-wrap: break-word;
  overflow-x: auto;
  padding: 0;
  padding-bottom: calc(100px + var(--navbar-padding));
}

.universal-tabl#l2l-dispatch-history-uni-table {
  table-layout: fixed;
}

.universal-table#l2l-spares-uni-table {
  table-layout: fixed;
}

.universal-table#cs-table-full,
.universal-table#cs-table {
  table-layout: fixed;
}

.universal-table#cs-table-full thead {
  top: 0 !important;
}

.universal-table#cs-table-full {
  padding-bottom: 0 !important;
}

.universal-table#iai-table-full {
  table-layout: fixed;
}

.universal-table::-webkit-scrollbar {
  display: block !important;
}

#log-table-sort.universal-table {
  width: 100%;
  overscroll-behavior: none;
}

/* Log sort button and popover */
.log-sort-wrapper {
  position: absolute;
  top: calc(var(--iOSPadding) + 20px + env(safe-area-inset-top));
  left: 15px;
  z-index: 105;
}

.log-sort-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
}

.log-sort-icon {
  display: flex;
  padding: 18px;
  background-color: var(--fontcolor);
  mask: url(../images/navigation/sort.svg) center / contain no-repeat;
  justify-content: center;
  align-items: center;
}

.log-sort-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--fgColor);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 6px;
  z-index: 200;
  min-width: 150px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.log-sort-popover[hidden] {
  display: none;
}

.log-sort-option {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 10px 14px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--buttonColor);
  font-weight: 500;
  transition: background 0.15s;
}

.log-sort-option span {
  display: inline-block;
  width: 20px;
  height: 20px;
  -webkit-mask: url(../images/navigation/heart.png) center / contain no-repeat;
  mask: url(../images/navigation/heart.png) center / contain no-repeat;
  background: var(--buttonColor);
  margin: 0 8px 0 -8px;
  vertical-align: middle;
}

.log-sort-option:nth-of-type(2) span {
  -webkit-mask: url(../images/navigation/up.png) center / contain no-repeat;
  mask: url(../images/navigation/up.png) center / contain no-repeat;
}

.log-sort-option:nth-of-type(3) span {
  -webkit-mask: url(../images/navigation/down.png) center / contain no-repeat;
  mask: url(../images/navigation/down.png) center / contain no-repeat;
}

.log-sort-option.active,
.log-sort-option:hover {
  background: var(--colorTrans);
  color: var(--color);
}

.log-sort-option.active span,
.log-sort-option:hover span {
  background: var(--color);
}

.universal-table thead {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1;
}

.universal-table tbody {
  display: table-row-group;
}

.universal-table th {
  background: var(--color);
  color: var(--fontcolor);
  padding: 20px 15px;
  border: 1px solid var(--fontcolor);
  border-top: 0;
  border-left: 0;
}

.universal-table tr th {
  -webkit-user-select: none !important;
  user-select: none !important;
}

#ip-modal .log-table .universal-table tr th {
  display: table-cell;
  flex-direction: column;
  justify-content: center;
}

#ip-modal .universal-table tr.ip-plc-row td {
  color: var(--darkerFontColor);
  text-shadow: 1px 1px 3px rgb(0 0 0 / 60%);
  background: var(--color);
}

#ip-modal .log-table .universal-table thead th .Input {
  position: relative;
  top: 10px;
}

.universal-table td {
  display: table-cell;
  font-size: 1rem;
  text-align: center;
  padding: 5px;
  border: 1px solid #45484c;
  border-left: 0;
  border-top: 0;
}

.universal-table td::before {
  content: "";
}

#fanuc-table.universal-table td {
  display: table-cell;
  padding: 5px 25px;
  font-size: 1rem;
  border: 1px solid #45484c;
  border-left: 0;
  border-top: 0;
  text-align: left;
}

#fanuc-table.universal-table td::before {
  content: "";
}

#fanuc-table.universal-table tr th {
  display: table-cell;
}

#fanuc-table.universal-table tr td:last-child {
  border-bottom: 1px solid #45484c;
}

.universal-table tr:first-child td,
.universal-table tr:first-child th,
.db-results-table tr:first-child td,
.db-results-table tr:first-child th {
  border-top: 0;
}

.universal-table tr td:first-child,
.universal-table tr th:first-child,
.db-results-table tr td:first-child,
.db-results-table tr th:first-child {
  border-left: 0;
}

.universal-table tr td:last-child,
.universal-table tr th:last-child,
.db-results-table tr td:last-child,
.db-results-table tr th:last-child {
  border-right: 0;
  border-left: 0;
}

.full-table > .universal-table th,
.log-table > .universal-table th {
  padding: 20px 2px;
}

.universal-table tr th:nth-child(2),
.universal-table tr th:nth-child(3) {
  padding: 20px 50px;
}

#l2l-spares-uni-table thead th {
  padding: 15px;
}

.universal-table#cs-table-full tr th:nth-child(2),
.universal-table#cs-table-full tr th:nth-child(3),
.universal-table#cs-table tr th:nth-child(2),
.universal-table#cs-table tr th:nth-child(3) {
  padding: 5px;
}

#searchresults.light .universal-table tbody {
  color: #35363a;
}

#uni-fanuc ul {
  margin: 0 0 10px;
  padding: 10px 15px 10px 30px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 8px;
}

#uni-fanuc li {
  list-style: decimal;
  text-align: left;
}

#uni-fanuc li::marker {
  color: orange;
  font-weight: bold;
}

#uni-fanuc .eFault {
  padding: 5px 10px;
  margin: 10px 0;
  font-size: large;
  background: red;
  border-radius: 8px;
  color: white;
  text-shadow: 0px 0px 3px rgb(0 0 0 / 40%);
}

#uni-fanuc h2.eCause,
#uni-fanuc h2.eSolution {
  color: orange;
  text-decoration: underline;
  text-underline-offset: 5px;
}

#uni-fanuc h2.eSolution {
  color: #73d393;
}

tbody#uni-fanuc tr td:first-of-type,
#fanuc-table.universal-table tr th:first-of-type {
  display: none;
}

.sidenav {
  top: 0;
  height: 100%;
  width: 310px;
  position: fixed;
  background: var(--bgColor);
  z-index: 105;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  box-shadow: 1px 0 5px 1px rgba(0, 0, 0, 0.5);
  transform: translateX(-320px);
  transition: transform var(--speed) ease;
  -webkit-user-select: none;
  user-select: none;
}

.sidenav.light {
  background: #eeeeee;
}

.sidenav-head {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bgColor);
  height: calc(env(safe-area-inset-top) + 180px + var(--iOSPadding) / 2);
  width: 310px;
  border-bottom: 1px solid #45484c;
  z-index: 106;
  overflow: hidden;
}

.sidenav.navopen {
  animation: sidenav var(--speed) ease forwards;
}

.sidenav.navclose {
  animation: sidenavclose var(--speed) ease forwards;
}

.link {
  display: flex;
  background: 0 0;
  width: 100%;
  border: none;
  padding: 20px;
  font-weight: bold;
  color: #ecf0f3;
  cursor: pointer;
  align-items: center;
  text-align: left;
  overflow-wrap: break-word;
}

.link.light {
  color: #202124;
}

.link:hover {
  color: var(--color);
}

.content-menu .link {
  color: var(--buttonColor);
}

.content-menu .link:hover {
  text-decoration: underline;
}

#training-docs li,
#drawings-list li {
  list-style: disc;
  text-align: left;
  padding: 20px;
  overflow-wrap: break-word;
  color: var(--buttonColor);
}

.avatar {
  padding: 5px;
  margin: 0 auto;
  max-width: 300px;
  max-height: 120px;
  height: 120px;
  width: 120px;
  bottom: 35px;
  right: 10px;
  overflow: auto;
  position: absolute;
  z-index: 110;
  filter: drop-shadow(2px 4px 6px rgb(0 0 0 / 0.35));
}

#avatar.wallpaper {
  max-height: unset;
  max-width: unset;
  width: 100%;
  height: 100%;
  padding: 0px;
  border-radius: 0px;
  border: none;
  left: 0px;
  right: unset;
  top: 0px;
  z-index: -1;
  object-fit: cover;
  filter: opacity(0.6);
}

.nav-separator {
  border-bottom: 1px solid #45484c;
  margin-bottom: 15px;
}

.printButton {
  display: none;
  padding: 12px;
  mask-image: url(../images/navigation/print.svg);
  -webkit-mask-image: url(../images/navigation/print.svg);
  position: absolute;
  background: var(--fgColor);
  right: 70px;
  top: 50px;
}

.navicon {
  background: var(--buttonColor);
  padding: 14px;
  position: relative;
  left: 6px;
  margin-right: 35px;
  filter: brightness(1.25);
}

.navicon-side {
  background: var(--buttonColor);
  padding: 14px;
  position: relative;
  left: 6px;
  margin-right: 35px;
  filter: brightness(1.25);
}

.navicon-more {
  width: 20px;
  height: 20px;
  margin-left: 8px;
  margin-right: 18px;
  background: var(--buttonColor);
  position: relative;
  filter: brightness(1.25);
}

.navicon-link {
  background: var(--buttonColor);
  padding: 10px;
  position: absolute;
  right: 13px;
  filter: brightness(1.25);
}

.navicon-menu {
  background: var(--buttonColor);
  position: absolute;
  right: 10px;
  padding: 13px;
  margin-top: -2px;
  transform: rotate(0);
  transition: transform var(--speed) ease;
  filter: brightness(1.25);
}

.navicon-menu.switch {
  transform: rotate(180deg);
}

.navicon-quick {
  background: var(--fontcolor);
  padding: 16px;
}

.rgb-glow-effect .navicon-quick {
  background: rgb(0 0 0 / 100%);
}

.navicon-grid {
  display: flex;
  position: absolute;
  background: var(--fontcolor);
  padding: 18px;
  cursor: pointer;
  transform: rotate(180deg);
  mask-image: url(../images/navigation/arrow-right.svg);
  -webkit-mask-image: url(../images/navigation/arrow-right.svg);
  filter: brightness(1.25);
}

.navicon-logo {
  background: var(--buttonColor);
  position: relative;
  padding: 14px;
  left: 4px;
  margin-top: -4px;
  margin-right: 25px;
  filter: brightness(1.25);
}

.navicon-display {
  padding: 12px;
  background: var(--buttonColor);
  position: relative;
  margin-right: 20px;
  filter: brightness(1.25);
}

.navicon-settings {
  height: 20px;
  width: 20px;
  filter: invert(100%);
  vertical-align: middle;
  position: relative;
  filter: brightness(1.25);
}

.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#ip-modal {
  display: none;
  position: fixed;
  background: var(--bgColor);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  z-index: 500;
}

#ip-modal div table {
  table-layout: fixed;
  padding-bottom: calc(0 + var(--navbar-padding));
}

#ip-modal div table th {
  padding: 20px 5px;
}

.modal-form-content {
  background: var(--fgColor);
  padding: 15px;
  font-size: 1rem;
}

.modal-form-content.light {
  background: #fff;
}

#sketchmodal.modal-form-content.light {
  background: none;
}

#sketchmodal.modal-form-content.light h4 {
  background: none;
}

.modal-form-content h1 {
  text-align: center;
  font-size: 1.25rem;
  width: 100%;
}

.modal-form-content form {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
  text-align: left;
}

.modal-form-content#sortCS h1 {
  margin: 10px 0;
}

.modal-form-content#sortCS hr {
  margin-top: 10px;
  margin-bottom: 20px;
  border-bottom: 1px solid #aaa;
}

#resInfo p {
  margin: 0;
}

#resInfo h1 {
  text-align: center;
  font-size: 1.5rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 10px;
}

.modal {
  z-index: 301;
}

.modal.fade-in {
  animation: fade-in var(--speed) ease forwards;
}

.modal.fade-out {
  animation: fade-out var(--speed) ease forwards;
}

#guide-modal {
  height: 100%;
  overflow-y: auto;
  padding-top: 0;
  background: var(--bgColor);
  z-index: 303;
  transition: all var(--speed) linear;
}

.modal-content {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  text-align: center;
  background: var(--bgColor);
  margin: 0 auto;
  width: 100%;
  height: 100%;
  font-size: 2vw;
  z-index: 10;
}

.modal-log {
  text-align: center;
  background: var(--bgColor);
  margin: 0 auto;
  width: 100%;
  height: 100%;
  font-size: 2vw;
  z-index: 10;
  overflow: hidden;
  overscroll-behavior: none;
}

.modal-log.light {
  background: #fff;
}

#select-bg-modal {
  display: none;
}

.user-icon-content {
  color: #b3b8cd;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
  position: relative;
  background: var(--fgColor);
  width: 100%;
  height: fit-content;
  border: none;
  overflow-y: auto;
  box-shadow: 0px 0px 15px 1px rgb(0 0 0 / 15%);
}

.user-icon-content.light {
  background: #fff;
  color: #202124;
}

#maintenance-grid,
#ip-grid {
  display: flex;
  position: relative;
  top: var(--iOSPadding);
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: flex-start;
  height: auto;
  width: 100%;
  padding: 0;
  justify-content: space-between;
  background: var(--fgColor);
  border-radius: 20px;
  overflow: hidden;
}

#lineBrowser {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: calc(100% - var(--navbar-padding));
  width: 100%;
  gap: 0;
}

#lineAdminPanel {
  display: flex;
  flex-direction: row-reverse;
  padding: 0px;
  background: var(--color);
}

#lineAdminContent {
  display: none;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  justify-content: flex-start;
  overflow: hidden;
  border-radius: 0;
  padding: 0;
  background: var(--bgColor);
  backdrop-filter: blur(6px);
  align-items: center;
  z-index: 999;
  gap: 0;
}

#adminHeader {
  display: flex;
  width: 100%;
  height: calc(var(--iOSPadding) + 72px + env(safe-area-inset-top));
  justify-content: space-between;
  align-content: center;
  align-items: center;
  padding: calc(var(--iOSPadding) + 10px + env(safe-area-inset-top)) 10px 10px;
}

#adminInfo {
  opacity: 0;
  width: 44px;
  height: 44px;
}

#adminContainer {
  display: grid;
  grid-template-columns: 1fr;
  top: 0;
  position: relative;
  height: 100%;
  gap: 15px;
  width: 100%;
  overflow: scroll;
  height: 100%;
  border-radius: 12px;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
}

#lineAdminContent h2 {
  margin: 0;
  color: var(--buttonColor);
}

#lineAdminContent #closeAdmin {
  display: flex;
  background: var(--modalBG);
  position: relative;
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
}

#lineAdminContent #closeAdmin span {
  background: var(--buttonColor);
  width: 20px;
  height: 20px;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

.line-admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-direction: row;
  width: 100%;
  height: 70px;
  text-align: center;
}

.line-admin-toolbar span {
  margin-left: 20px;
  font-weight: bold;
  color: var(--fontcolor);
  opacity: 0.75;
}

.line-admin-toggle,
.line-admin-button {
  display: flex;
  position: relative;
  appearance: none;
  border: 0;
  border-radius: 14px;
  padding: 5px 10px;
  color: var(--buttonColor);
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  cursor: pointer;
  top: 2px;
  height: 40px;
  width: 98px;
  font-size: 0.75rem;
  justify-content: center;
  flex-direction: column;
}

.line-admin-button {
  border-radius: 12px;
  width: 100%;
}

.line-admin-button-danger {
  background: rgb(255 15 35 / 0.8);
  border: 1px solid #a60000;
}

.line-admin-toggle {
  position: absolute;
  background: var(--fontcolor);
  opacity: 0.75;
  top: 88px;
  right: 25px;
  height: 28px;
  width: 28px;
  mask: url(../images/navigation/pencil.svg) center / contain no-repeat;
}

.line-admin-toggle:disabled,
.line-admin-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#lineAdminToggle {
  position: relative;
  top: 0;
  right: 20px;
}

.line-admin-status {
  display: none;
  margin: 0;
  min-height: 20px;
  color: var(--buttonColor);
  text-align: left;
  font-size: 0.85rem;
  text-indent: 10px;
}

.line-admin-status[data-tone="success"] {
  color: #89d29c;
}

.line-admin-status[data-tone="warning"] {
  color: #f4d27a;
}

.line-admin-status[data-tone="error"] {
  color: #ff9a9a;
}

.line-admin-content {
  display: grid;
  gap: 12px;
}

.line-admin-section {
  display: flex;
  gap: 10px;
  width: 100%;
  padding: 14px 14px 20px;
  border-radius: 18px;
  background: var(--bgTrans);
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  box-shadow: 0px 0px 5px rgb(0 0 0 / 0.1);
}

.line-admin-section h3 {
  margin: 0;
  color: var(--buttonColor);
}

.line-admin-field {
  display: grid;
  gap: 6px;
  color: var(--buttonColor);
  font-size: 0.9rem;
  margin-top: 10px;
}

.line-admin-field input,
.line-admin-field select {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--l2l-action-background);
  color: var(--buttonColor);
  border: var(--l2l-action-border);
  font: inherit;
}

.line-admin-actions {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  justify-content: space-between;
}

#lineDetail {
  top: 0;
  position: relative;
  padding: 0;
  flex: 1 1 auto;
  min-height: 240px;
  width: 100%;
  border-radius: 0;
  overflow: scroll;
  border-left: 0;
  border-right: 0;
  z-index: 1;
}

.line-detail-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  margin: 0;
  color: var(--buttonColor);
  text-align: center;
}

.line-operation-table {
  display: flex;
  width: 100%;
  gap: 15px;
  padding: 20px 15px 15px;
  position: relative;
  text-align: center;
  box-shadow: 1px 2px 3px rgb(0 0 0 / 10%);
  flex-direction: column;
  align-items: flex-start;
}

.row-container {
  width: 100%;
  display: flex;
  background: none;
  color: var(--buttonColor);
  text-shadow: unset;
  /* border-bottom: var(--l2l-action-border); */
}

#lineDetail .line-operation-row.rgb-glow-effect .row-container {
  background: rgb(0 0 0 / 25%);
  color: black;
  text-shadow: unset;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data span {
  background: var(--modalBG);
  background: rgb(0 0 0 / 10%);
  color: black;
  text-shadow: none;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data section {
  background: unset;
  color: black;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data section div {
  color: #fff;
  text-shadow: 0 0 3px black;
  background: rgb(0 0 0 / 10%);
}

.row-container {
  width: 100%;
  display: flex;
  background: none;
}

#lineDetail.light .row-container {
  background: #fff;
  text-shadow: unset;
}

#lineDetail .line-operation-row.rgb-glow-effect .row-container {
  background: unset;
  color: black;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data span {
  background: var(--modalBG);
  background: rgb(0 0 0 / 10%);
  color: black;
  text-shadow: none;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data section {
  background: unset;
  color: black;
}

#lineDetail .line-operation-row.rgb-glow-effect .operation-data section div {
  color: #fff;
  text-shadow: 0 0 3px black;
  background: rgb(0 0 0 / 10%);
}

.line-operation-row {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  background: var(--bgTrans);
  padding: 0;
  border-radius: 15px;
  min-height: 80px;
  width: 100%;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 2px 3px 5px rgb(0 0 0 / 13%);
  transition:
    background 0.2s ease,
    margin-top 0.25s ease;
}

.line-operation-table.masonry-measuring .line-operation-row {
  transition: none !important;
}

.line-operation-op-cell,
.line-operation-process,
.line-operation-machine {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 0;
  margin: 0;
  font-weight: bold;
  justify-content: space-evenly;
}

.line-operation-op-cell {
  width: 25%;
}

.line-operation-process {
  width: 50%;
}

.line-operation-machine {
  width: 25%;
}

.line-operation-machine .operation-data {
  padding: 20px;
}

.line-operation-machine .operation-data strong {
  background: var(--color);
  border-radius: 999px;
  color: var(--fontcolor);
}

.line-operation-robot {
  display: flex;
  height: 100%;
  width: 100%;
}

.operation-header {
  display: flex;
  display: none;
  position: relative;
  align-items: center;
  justify-content: center;
  height: 40px;
  background: var(--colorTrans);
  color: var(--darkFontColor);
}

.operation-data {
  display: flex;
  position: relative;
  flex-direction: column;
  min-height: 80px;
  padding: 10px;
  justify-content: center;
  align-content: center;
  align-items: stretch;
}

.operation-data span {
  display: flex;
  font-weight: bold;
  width: 20%;
  padding: 10px;
  justify-content: flex-start;
  text-align: left;
  background: var(--colorTrans);
  align-content: center;
  align-items: center;
  font-size: 80%;
}

.operation-data section {
  display: flex;
  flex-direction: column;
  width: 80%;
  text-align: left;
  gap: 10px;
  padding: 10px;
  align-items: center;
  justify-content: center;
}

.operation-data div {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  border-radius: 10px;
  width: 100%;
  color: var(--darkerFontColor);
  background: var(--colorTrans);
  font-weight: bold;
}

.operation-data div strong {
  text-shadow: unset;
}

section.line-operation-row.rgb-glow-effect
  .line-operation-machine
  .operation-data
  strong {
  background: rgb(0 0 0 / 20%);
  color: #000;
  border: 0;
}

.line-operation-robot .operation-data {
  flex-direction: row;
  background: var(--colorTrans);
  color: var(--darkFontColor);
  justify-content: flex-start;
  padding: 0;
  width: 100%;
  height: calc(100% - 80px);
}

/* ---- Section button grid ---- */
.op-section-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  width: 100%;
  padding: 10px;
}

.op-section-btn {
  display: flex;
  position: relative;
  align-items: center;
  padding: 10px 8px;
  background: 0;
  border: var(--l2l-action-border);
  border-radius: 12px;
  color: var(--buttonColor);
  cursor: pointer;
  font: inherit;
  font-size: 0.78rem;
  opacity: 0.85;
  text-align: center;
  transition:
    background 0.15s,
    opacity 0.15s;
  min-height: 85px;
  flex-direction: column;
  justify-content: space-around;
}

.op-section-btn:hover {
  opacity: 1;
  background: var(--l2l-action-background);
}

.op-section-btn-has-pms {
  border-color: var(--colorTrans);
  color: var(--color);
  background: var(--colorTrans);
}

.op-section-btn-has-pms:hover {
  background: var(--colorTransMedium);
}

.op-section-btn-label {
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: break-spaces;
  text-wrap-mode: wrap;
  justify-content: center;
  text-align: center;
}

.op-section-btn-icon {
  display: inline-flex;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  background: currentColor;
  mask: url(../images/navigation/robot.svg) center / contain no-repeat;
}

.op-section-btn-icon-ip {
  mask: url(../images/navigation/ethernet.svg) center / contain no-repeat;
}

.op-section-btn-icon-pm {
  mask: url(../images/navigation/pm.svg) center / contain no-repeat;
}

.op-section-btn-icon-components {
  mask: url(../images/navigation/open-box.svg) center / contain no-repeat;
}

.op-section-btn-icon-dispatch {
  mask: url(../images/navigation/dispatch-list.svg) center / contain no-repeat;
}

.op-section-btn-icon-action {
  mask: url(../images/navigation/improvement.svg) center / contain no-repeat;
}

.op-section-btn-count {
  color: var(--color);
  font-weight: 700;
  position: absolute;
  top: 10px;
  right: 10px;
}

/* ---- Section modal ---- */
/* iOS Safari collapses display:flex dialogs — flex lives on the inner wrapper */
.op-section-modal[open] {
  position: fixed;
  inset: 0;
  margin: auto;
  /* width: min(520px, 95vw); */
  width: 90%;
  max-width: 750px;
  background: var(--bgTrans);
  border: var(--l2l-action-border);
  border-radius: 20px;
  padding: 0;
  color: var(--buttonColor);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5);
}

.op-section-modal-inner {
  display: flex;
  flex-direction: column;
  max-height: 80vh;
  overflow: hidden;
  border-radius: 20px;
}

.op-section-modal::backdrop {
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(3px);
}

.op-section-modal-header {
  display: flex;
  position: sticky;
  top: 0;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px;
  border-bottom: var(--l2l-action-border);
  flex-shrink: 0;
}

.op-section-modal-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color);
}

.op-section-modal-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: var(--colorTrans);
  border: 0;
  border-radius: 50%;
  color: var(--buttonColor);
  cursor: pointer;
  font-size: 0.9rem;
  transition: background 0.15s;
}

.op-section-modal-close:hover {
  background: var(--colorTransMedium);
}

.op-section-modal-body {
  padding: 10px;
  width: 100%;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

/* Keep existing panel-content styles intact for reuse inside modal */
.op-robot-section,
.op-ip-section,
.op-dispatch-section,
.op-pm-section,
.op-components-section {
  width: 100%;
  display: flex;
  flex-direction: column;
  padding: 8px 8px 0;
}

.op-robot-label,
.op-ip-label,
.op-pm-label,
.op-components-label,
.op-dispatch-label {
  display: flex;
  align-items: center;
  gap: 6px;
}

.op-robot-label::before,
.op-ip-label::before,
.op-pm-label::before,
.op-components-label::before,
.op-dispatch-label::before {
  content: "";
  display: flex;
  padding: 10px;
  background: var(--buttonColor);
  border-radius: 50%;
  margin-right: 5px;
  mask: url(../images/navigation/robot.svg) center / contain no-repeat;
}

.op-ip-label::before {
  mask: url(../images/navigation/ethernet.svg) center / contain no-repeat;
}
.op-pm-label::before {
  mask: url(../images/navigation/pm.svg) center / contain no-repeat;
}
.op-components-label::before {
  mask: url(../images/navigation/open-box.svg) center / contain no-repeat;
}
.op-dispatch-label::before {
  mask: url(../images/navigation/dispatch-list.svg) center / contain no-repeat;
}

.op-robot-label strong,
.op-ip-label strong,
.op-pm-label strong,
.op-components-label strong,
.op-dispatch-label strong {
  color: var(--color);
}

.op-robot-toggle,
.op-ip-toggle,
.op-pm-toggle,
.op-components-toggle,
.op-dispatch-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 60px;
  padding: 14px;
  /* background: var(--l2l-action-background); */
  background: 0;
  border: var(--l2l-action-border);
  border-radius: 12px;
  color: var(--buttonColor);
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  opacity: 0.8;
  text-align: left;
  margin-top: 0;
  transition: margin-top 0.2s ease;
}

.op-robot-chevron,
.op-ip-chevron,
.op-pm-chevron,
.op-dispatch-chevron,
.op-components-chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-bottom: 2px;
}

.op-robot-toggle[aria-expanded="true"] .op-robot-chevron,
.op-ip-toggle[aria-expanded="true"] .op-ip-chevron,
.op-dispatch-toggle[aria-expanded="true"] .op-dispatch-chevron,
.op-pm-toggle[aria-expanded="true"] .op-pm-chevron,
.op-components-toggle[aria-expanded="true"] .op-components-chevron {
  transform: rotate(-135deg);
  margin-bottom: -2px;
}

.op-robot-toggle[aria-expanded="true"],
.op-ip-toggle[aria-expanded="true"],
.op-dispatch-toggle[aria-expanded="true"],
.op-pm-toggle[aria-expanded="true"],
.op-components-toggle[aria-expanded="true"] {
  border-radius: 12px 12px 0 0;
  border-bottom: 0;
  margin-top: 5px;
}

.op-robot-panel,
.op-ip-panel,
.op-pm-panel,
.op-components-panel,
.op-dispatch-panel {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--l2l-action-background);
  padding: 8px;
  border-radius: 0 0 12px 12px;
  border: var(--l2l-action-border);
  border-top: 0;
  margin-bottom: 5px;
  transition: margin-bottom 0.2s ease;
}

.op-robot-panel[hidden],
.op-ip-panel[hidden],
.op-pm-panel[hidden],
.op-components-panel[hidden],
.op-dispatch-panel[hidden] {
  display: none !important;
}

.op-robot-entry,
.op-ip-list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  width: 100%;
  padding: 10px;
  background: var(--colorTrans);
  border-radius: 14px;
}

.op-robot-col-header,
.op-ip-col-header {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color);
  padding: 8px;
  background: var(--colorTrans);
  border-radius: 8px;
  border: 1px solid var(--colorTrans);
}

.op-ip-device,
.op-ip-addr,
.op-ip-model,
.op-rb-op,
.op-rb-serial,
.op-rb-model {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.83rem;
  font-weight: 600;
  padding: 8px;
  background: var(--l2l-action-background);
  border: 1px solid var(--colorTrans);
  border-radius: 6px;
  color: var(--buttonColor);
}
.op-ip-addr {
  font-family: monospace;
  color: var(--complimentary);
}

.op-ip-model {
  color: var(--buttonColor);
}

.op-robot-empty,
.op-ip-empty {
  font-size: 0.8rem;
  color: var(--buttonColor);
  opacity: 0.5;
  margin: 4px 0;
  text-align: center;
}

.rgb-glow-effect .op-robot-toggle,
.rgb-glow-effect .op-ip-toggle,
.rgb-glow-effect .op-dispatch-toggle,
.rgb-glow-effect .op-robot-empty,
.rgb-glow-effect .op-ip-empty,
.rgb-glow-effect .op-dispatch-empty {
  color: #000;
  font-weight: bold;
}

.rgb-glow-effect .op-ip-list,
.rgb-glow-effect .op-robot-entry {
  background: var(--bgTrans);
}

.rgb-glow-effect .op-ip-device,
.rgb-glow-effect .op-rb-model {
  color: var(--buttonColor);
}

.op-dispatch-loading,
.op-dispatch-empty {
  font-size: 0.8rem;
  color: var(--buttonColor);
  opacity: 0.5;
  margin: 4px 0;
  text-align: center;
}

.op-dispatch-section {
  padding: 8px;
}

.op-dispatch-list {
  display: flex;
  position: relative;
  flex-direction: column;
  top: -5px;
  gap: 0px;
  overflow-y: auto;
}

.op-dispatch-sentinel {
  height: 4px;
  flex-shrink: 0;
  pointer-events: none;
}

.op-dispatch-item {
  display: grid;
  grid-template-columns: auto auto 1fr;
  grid-template-rows: auto auto;
  gap: 2px 10px;
  height: 100px;
  width: 100%;
  padding: 10px 12px;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
  font-size: 0.83rem;
  text-align: left;
  transition:
    background 0.15s,
    border-color 0.15s;
  color: var(--color);
}

.op-dispatch-item:hover {
  background: rgba(115, 211, 147, 0.08);
  border-color: rgba(115, 211, 147, 0.3);
}

.op-dispatch-item-closed {
  opacity: 0.85;
}

.rgb-glow-effect .op-dispatch-item {
  background: var(--bgTrans);
}

.op-dispatch-num {
  grid-column: 1;
  grid-row: 1;
  font-weight: 700;
  font-size: 0.78rem;
  background: var(--colorTransMedium);
  border: 1px solid var(--color);
  padding: 5px 10px;
  border-radius: 25px;
  color: var(--fontcolor);
  white-space: nowrap;
  font-family: monospace;
  align-self: center;
}

.op-dispatch-date {
  grid-column: 2;
  grid-row: 1;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--buttonColor);
  opacity: 0.7;
  align-self: center;
}

.op-dispatch-status {
  display: flex;
  justify-self: end;
  grid-column: 3;
  grid-row: 1;
  font-size: 0.75rem;
  font-weight: bold;
  white-space: nowrap;
  color: var(--darkFontColor);
  width: auto;
  opacity: 1;
  text-align: right;
  align-self: center;
  background: var(--bubble2);
  border-radius: 50px;
  padding: 3px 10px;
  border: 0;
}

.op-dispatch-desc {
  display: flex;
  grid-column: 1 / -1;
  grid-row: 2;
  height: 45px;
  overflow: scroll;
  text-overflow: ellipsis;
  font-size: 100%;
  color: var(--buttonColor);
  font-weight: bold;
  padding: 5px 0 0;
  align-items: center;
  text-transform: capitalize;
}

.op-pm-label strong {
  color: #f0b429;
}

.op-pm-empty {
  font-size: 0.8rem;
  color: var(--buttonColor);
  opacity: 0.5;
  margin: 4px 0;
  text-align: center;
}

.op-pm-item {
  border-left: 3px solid rgba(240, 180, 41, 0.6) !important;
}

.op-pm-item:hover {
  border-left-color: rgba(240, 180, 41, 0.9) !important;
}

.rgb-glow-effect .op-pm-toggle,
.rgb-glow-effect .op-pm-empty {
  color: #000;
  font-weight: bold;
}

.op-components-empty {
  font-size: 0.8rem;
  color: var(--buttonColor);
  opacity: 0.5;
  margin: 4px 0;
  text-align: center;
}

.op-components-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
}

.rgb-glow-effect .op-components-toggle,
.rgb-glow-effect .op-components-empty {
  color: #000;
  font-weight: bold;
}

.line-admin-actions-compact {
  margin-top: 0;
}

.line-admin-ip-list {
  display: flex;
  flex-direction: column;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  gap: 5px;
  padding: 10px;
  border-radius: 10px;
}

.line-admin-ip-entry {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  border-bottom: 1px solid var(--colorTrans);
  transition: background 0.15s;
}

.line-admin-ip-entry:hover {
  background: rgba(255, 255, 255, 0.05);
}

.line-admin-ip-entry.editing {
  background: rgba(var(--buttonColorRgb, 100, 160, 220), 0.12);
  border-bottom-color: rgba(var(--buttonColorRgb, 100, 160, 220), 0.35);
  outline: 1px solid rgba(var(--buttonColorRgb, 100, 160, 220), 0.4);
}

.line-admin-ip-device {
  font-weight: 600;
  color: var(--color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-ip-addr {
  font-family: monospace;
  color: var(--buttonColor);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-ip-model {
  color: var(--buttonColor);
  font-style: italic;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-ip-delete {
  background: none;
  border: 1px solid transparent;
  color: #e06060;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 6px;
  transition: background 0.15s;
}

#lineAdminAddIp,
#lineAdminAddRobot,
#lineAdminCancelRobotEdit,
#lineAdminCancelIpEdit {
  margin-top: 15px;
}

.line-admin-ip-delete:hover {
  background: rgba(220, 80, 80, 0.15);
  border-color: rgba(220, 80, 80, 0.3);
}

.line-admin-ip-empty {
  font-size: 0.82rem;
  color: var(--buttonColor);
  opacity: 0.55;
  text-align: center;
  margin: 4px 0;
}

.line-admin-robot-list {
  display: flex;
  flex-direction: column;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  gap: 5px;
  padding: 10px;
  border-radius: 10px;
}

.line-admin-robot-entry {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  border-bottom: 1px solid var(--colorTrans);
  transition: background 0.15s;
}

.line-admin-robot-entry:hover {
  background: rgba(255, 255, 255, 0.05);
}

.line-admin-robot-entry.editing {
  background: rgba(var(--buttonColorRgb, 100, 160, 220), 0.12);
  border-bottom-color: rgba(var(--buttonColorRgb, 100, 160, 220), 0.35);
  outline: 1px solid rgba(var(--buttonColorRgb, 100, 160, 220), 0.4);
}

.line-admin-robot-operation {
  font-weight: 600;
  color: var(--color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-robot-serial {
  font-family: monospace;
  color: var(--buttonColor);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-robot-model {
  color: var(--buttonColor);
  font-style: italic;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-admin-robot-delete {
  background: none;
  border: 1px solid transparent;
  color: #e06060;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 6px;
  transition: background 0.15s;
}

.line-admin-robot-delete:hover {
  background: rgba(220, 80, 80, 0.15);
  border-color: rgba(220, 80, 80, 0.3);
}

.line-admin-robot-empty {
  font-size: 0.82rem;
  color: var(--buttonColor);
  opacity: 0.55;
  text-align: center;
  margin: 4px 0;
}

.op-robot-model {
  font-style: italic;
  opacity: 0.75;
  font-size: 0.9em;
  margin-left: 4px;
}

#lineDetail.light .operation-data span {
  display: flex;
  justify-content: center;
  background: var(--dialog-info);
  color: var(--buttonColor);
}

#lineDetail.light .operation-data section {
  background: #fff;
  color: var(--fontcolor);
}

#lineDetail.light .operation-data div {
  text-shadow: unset;
  background: var(--dialog-info);
  color: var(--color);
}

.maintenance-reset-button {
  float: left;
  position: relative;
  width: 13%;
  height: 40px;
  border: 1px solid #2c2c32;
  color: #35363a;
  background-image: url("../images/navigation/default/back-white.png");
  background-repeat: no-repeat;
  background-size: 20px 20px;
  background-position: center;
  background: #2c2c32;
  border-radius: 20px;
  margin-left: 5px;
  cursor: pointer;
}

.level-1-sidi,
.level-1-hpp,
.level-1-etb,
.level-1-molding,
.level-1-inv,
.ip-selection {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 10px;
}

.level-2-sidi,
.level-2-hpp,
.level-2-etb,
.level-2-inv {
  display: none;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 5px;
}

.grid-button {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: auto;
  height: auto;
  width: calc(25% - 7.5px);
  min-height: 70px;
  cursor: pointer;
  color: var(--fontcolor);
  font-weight: bold;
  background: var(--color);
  border: none;
  border-radius: 18px;
  box-shadow: 1px 2px 3px rgb(0 0 0 / 10%);
}

.grid-button:hover {
  filter: brightness(1.2);
  color: #35363a;
}

.level-2-production-lines.maintenance-ops-panel .grid-button:first-of-type {
  border-radius: 50%;
  height: 48px;
  width: 48px;
  min-height: unset;
}

.level-1-production-lines.maintenance-lines-panel .grid-button {
  width: 100%;
  max-width: unset;
}

.collapsible-maintenance {
  background: transparent;
  color: var(--buttonColor);
  cursor: pointer;
  width: 100%;
  max-width: 100%;
  border: none;
  border-radius: 0px;
  text-align: left;
  font-size: 16px;
  padding: 10px;
  border-bottom: 1px solid var(--bgColor);
}

.collapsible-maintenance:last-of-type {
  border-bottom: none;
}

.content-maintenance {
  display: none;
  overflow: hidden;
  padding: 0px 0px 15px;
}

.maintenance-lines-panel,
.maintenance-ops-panel {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 12px;
}

.maintenance-lines-panel {
  border-bottom: none;
}

.maintenance-ops-panel {
  min-height: 120px;
  display: none;
}

.maintenance-ops-title,
.maintenance-ops-empty {
  width: 100%;
  margin: 0 0 15px 0;
  font-weight: 600;
  text-align: center;
}

.maintenance-ops-empty {
  opacity: 0.8;
}

.collapse-button {
  width: 100%;
  height: 50px;
  background: transparent;
  border: none;
  font-size: 1rem;
  color: var(--buttonColor);
}

.collapse-button .light {
  color: var(--buttonColor);
}

.collapsible-maintenancence.light {
  background: #35363a !important;
}

#lineName,
#lineOP,
#line2,
#op2,
#sharedata,
#eventUser,
#logUser,
#problemUser,
#logMachine {
  display: none;
}

#saveData {
  display: none;
  padding-top: 15px;
  gap: 5px;
  flex-direction: column;
}

.close-main {
  padding: 10px;
  cursor: pointer;
  background: var(--buttonColor);
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
}

.close-guide {
  display: block;
  position: relative;
  padding: 8px;
  background: var(--fontcolor);
  cursor: pointer;
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

.close-IP {
  position: absolute;
  background: var(--fontcolor);
  padding: 12px;
  top: calc(15px + var(--iOSPadding));
  right: 20px;
  cursor: pointer;
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

.close-table {
  display: none;
  position: relative;
  background: var(--fontcolor);
  padding: 10px;
  top: 0;
  left: 0;
  cursor: pointer;
  z-index: 300;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.close-theme {
  position: relative;
  background: var(--darkFontColor);
  padding: 6px;
  cursor: pointer;
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

.dummySpan {
  opacity: 0;
  padding: 11px;
}

.close-pen {
  display: flex;
  position: absolute;
  height: 36px;
  width: 36px;
  top: 18.5px;
  right: 20px;
  padding: 0;
  z-index: 2;
  background: var(--color);
  cursor: pointer;
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
}

.close-res {
  position: absolute;
  background: #999;
  background: var(--fontcolor);
  padding: 8px;
  cursor: pointer;
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

.close-search-button {
  display: flex;
  background: var(--searchWidget);
  position: relative;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: none;
}

.round-table .close-search-button {
  display: none;
  position: fixed;
  z-index: 3;
  right: 15px;
  top: calc(15px + var(--iOSPadding) + env(safe-area-inset-top));
  background: var(--dark);
  border: 1px solid rgb(0 0 0 / 25%);
}

.close-search {
  position: relative;
  background: #aaa;
  top: 0px;
  padding: 11px;
  cursor: pointer;
  z-index: 104;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

#voice .close-search {
  mask-image: url(../images/navigation/mic.svg);
  -webkit-mask-image: url(../images/navigation/mic.svg);
}

.eQuestion {
  position: relative;
  padding: 16px;
  cursor: pointer;
  z-index: 104;
  font-size: 200%;
  color: var(--buttonColor);
}

.select-list {
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  color: var(--fontcolor);
  border: none;
  border-radius: 14px;
  background: var(--color);
  width: 45%;
  height: 45px;
  font-size: 16px;
  text-align: center;
  text-align-last: center;
  cursor: pointer;
  background-image: var(--downArrow);
  background-repeat: no-repeat;
  background-position: 95% center;
  background-size: 20px 20px;
  font-family: inherit;
}

.select-list:focus {
  background: var(--color);
  color: #35363a;
}

#debug .select-list {
  background-image: unset;
  background-repeat: unset;
  background-position: unset;
}

#alertMsg {
  padding: 10px;
  position: relative;
}

#alertMsg div {
  display: flex;
  position: relative;
  width: 100%;
  justify-content: space-evenly;
}

.center {
  position: absolute;
  margin-top: 4px;
  right: 25px;
}

#l2lAccountForm .user-row .center {
  margin-top: -7px;
}

.toggle-switch {
  position: relative;
  display: flex;
  align-items: flex-start;
  width: 50px;
  height: 30px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--fgColor);
  border: 2px solid #45464a;
  border-radius: 15px;
  cursor: pointer;
  font-family: inherit;
  transition: 0.4s;
}

.toggle-switch.midnight {
  background: #1b1b1b;
}

.toggle-switch.light {
  background: #ddd;
  border: 2px solid #777;
}

.toggle-switch.rgb-glow-effect {
  background: var(--fgColor);
}

.toggle-switch.light.rgb-glow-effect {
  background: #ddd;
}

.toggle-switch:checked {
  background: var(--color);
  border: 2px solid var(--dark);
}

.toggle-switch:checked.rgb-glow-effect {
  background: var(--rgb-glow-gradient);
  border: 2px solid #45464a;
}

.toggle-switch:checked.light.rgb-glow-effect {
  border: 2px solid var(--modalBG);
}

.toggle-switch::before {
  content: "";
  position: absolute;
  transform: translate(2px, 2px);
  width: 22px;
  height: 22px;
  background: #45464a;
  border-radius: 50%;
  transition: 0.4s;
}

.toggle-switch.light::before {
  background: #777;
}

.toggle-switch:checked::before {
  transform: translate(22px, 2px);
  background: linear-gradient(45deg, var(--dark), var(--darker));
}

.toggle-switch:checked.rgb-glow-effect::before {
  background: var(--modalBG);
}

.toggle-switch:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.toggle-switch:disabled::before {
  opacity: 0.82;
}

.olevels {
  text-align: center !important;
}

.slide-label {
  display: block;
  position: relative;
  top: 15px;
  padding-bottom: 20px;
}

input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  background: none;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
}

input[type="range"]::-ms-track {
  width: 100%;
  cursor: pointer;
  background: none;
  border-color: transparent;
  color: transparent;
}

input[type="range"]::-moz-range-track {
  background: none;
  border-color: transparent;
  color: transparent;
}

.slidecontainer {
  padding-top: 15px;
  width: 100%;
  margin-top: 15px;
  padding: 5px;
  flex-direction: column;
}

#speedslide,
#speedlevel,
#oSlide3,
#oSlide4,
#sk-bglabel-mob {
  display: block;
  color: var(--color);
  padding-top: 5px;
}

.slide {
  width: 100%;
  height: 32px;
  background: var(--fgColor);
  border-radius: 18px;
}

.slide.light {
  background: #fff;
}

.slide::-webkit-slider-thumb {
  width: 20px;
  height: 42px;
  border-radius: 30px;
  background: var(--color);
  cursor: pointer;
}

.slide::-moz-range-thumb {
  width: 10px;
  height: 42px;
  border: 1px solid var(--fgColor);
  border-radius: 30px;
  background: linear-gradient(0deg, #3c4043, #404049);
  cursor: pointer;
}

#penSize.slide::-webkit-slider-thumb,
#canvasBG.slide::-webkit-slider-thumb {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--sliderThumb);
  cursor: pointer;
}

.wallpaperH4 {
  overflow: hidden;
  flex-direction: column;
  padding: 20px;
  position: relative;
  text-align: left;
}

#wallpaperOptions {
  display: flex;
  position: relative;
  height: 200px;
  width: 100%;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  overflow-y: hidden;
  overflow-x: scroll;
  padding: 0;
  border-radius: 12px;
  z-index: 999;
  -webkit-overflow-scrolling: touch;
}

img.wallpaper-thumb {
  margin: 0 5px;
  border-radius: 12px;
  position: relative;
}

#missing {
  -webkit-appearance: none;
  appearance: none;
  color: #999;
  height: 40px;
  width: 100%;
  border-radius: 10px;
  border: none;
  padding: 10px;
  background: var(--bgColor);
  box-shadow:
    inset -2px -2px 5px rgba(255, 255, 255, 0.04),
    inset 2px 2px 5px rgba(0, 0, 0, 0.5);
  text-align: center;
  -webkit-user-select: text;
  user-select: text;
}

#Tab1,
#Tab2,
#Tab8 {
  padding: calc(70px + var(--iOSPadding)) 0 0;
}

#Tab6 {
  padding: 0;
  z-index: 301;
}

#codeblock {
  background: none;
}

#settingsPanel {
  width: 100%;
  overflow-y: hidden;
  height: var(--height);
}

.tool-container {
  display: flex;
  column-gap: 20px;
  padding: 15px;
  color: var(--fontcolor);
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-start;
  margin: 15px 20px;
  border-radius: 20px;
}

#imc-drag .tool-container {
  column-gap: 5px;
  padding: 10px 0px;
  margin: 0px 20px 5px 20px;
}

.tool-buttons {
  display: flex;
  justify-content: center;
  column-gap: 20px;
}

.clear-ohms {
  margin: 15px 0;
  width: calc(50% - 30px);
  max-width: 360px;
  height: 45px;
  color: var(--fontcolor);
  background: var(--color);
  border: none;
  cursor: pointer;
  border-radius: 15px;
  font-weight: bold;
  -webkit-appearance: none;
  appearance: none;
}

.ohms-law {
  margin: 15px 0;
  width: calc(50% - 30px);
  max-width: 360px;
  height: 45px;
  color: #ecf0f3;
  background: var(--fgColor);
  border: none;
  cursor: pointer;
  border-radius: 15px;
  font-weight: bold;
  -webkit-appearance: none;
  appearance: none;
}

.tool-input {
  color: #999;
  height: 40px;
  width: calc(50% - 10px);
  border-radius: 10px;
  border: 1px solid #999;
  margin: 15px 0;
  padding: 15px;
  background: var(--bgColor);
  -webkit-appearance: none;
  appearance: none;
}

.tool-input.light {
  border: 1px solid rgb(0 0 0 / 20%);
  background: #fff;
}

.tool-input:focus {
  border: 2px solid var(--color);
}

select.tool-input.imc-select {
  -webkit-appearance: auto;
  appearance: auto;
  padding: 0 10px;
  cursor: pointer;
}

#imcInput.tool-input,
#mtcInput.tool-input,
select.tool-input.imc-select {
  border: var(--l2l-action-border);
  background: var(--modalBG);
  color: var(--buttonColor);
  opacity: 1;
  width: calc(50% - 2.5px);
  font-weight: bold;
  font-family: "Poppins";
}

select.tool-input.imc-select optgroup {
  background: var(--color);
  color: var(--fontcolor);
}

select.tool-input.imc-select option {
  background: var(--bgTrans);
  color: var(--buttonColor);
}

#imc-drag {
  flex-direction: column;
  padding: 0 0 20px;
}

.imc-result {
  width: 100%;
  padding: 8px 15px;
  min-height: 28px;
  border-radius: 10px;
  color: var(--darkFontColor);
  background: var(--modalBG);
  border: var(--l2l-action-border);
  display: none;
  flex-direction: column;
  gap: 2px;
}

.imc-result-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(128, 128, 128, 0.12);
}

.imc-result-row:last-child {
  border-bottom: none;
}

.imc-result-val {
  font-size: 20px;
  font-weight: bold;
  color: var(--buttonColor);
}

.imc-result-unit {
  font-size: 14px;
  font-weight: 600;
  color: var(--color);
  opacity: 0.75;
  text-shadow: 0 0 1px black;
}

.imc-pill-switcher {
  display: flex;
  margin: 20px 20px 0px;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  border-radius: 25px;
  padding: 4px;
  gap: 4px;
}

.imc-pill {
  flex: 1;
  padding: 9px 10px;
  border: none;
  border-radius: 20px;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.2s ease,
    color 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
  opacity: 0.4;
  color: var(--buttonColor);
}

.imc-pill.active {
  background: var(--color);
  color: var(--fontcolor);
  opacity: 1;
}

.imc-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(100% - 40px);
  margin: 0 20px 8px;
  padding: 10px 15px;
  background: var(--colorTransMedium);
  border: var(--l2l-action-border);
  border-radius: 10px;
  color: var(--fontcolor);
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.imc-toggle-arrow {
  display: inline-block;
  transition: transform 0.25s ease;
  font-size: 11px;
  margin-right: 5px;
  color: var(--fontcolor);
}

.imc-toggle[aria-expanded="true"] .imc-toggle-arrow {
  transform: rotate(180deg);
}

#metricWrapper {
  padding: 0;
  margin: 0 20px;
  border: var(--l2l-action-border);
  border-radius: 10px;
  overflow: hidden;
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.25s ease;
}

#metricWrapper[hidden] {
  display: grid !important;
  grid-template-rows: 0fr;
  visibility: hidden;
  overflow: hidden;
  border: none;
  margin-bottom: 0;
}

#metricWrapper > .imc-table {
  min-height: 0;
  overflow: hidden;
}

.imc-table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  color: var(--fontcolor);
  font-size: 14px;
}

.imc-table th {
  padding: 11px 15px;
  text-align: left;
  background: var(--fgColor);
  color: var(--color);
  font-weight: bold;
}

.imc-table th:last-child {
  text-align: right;
}

.imc-table td {
  color: var(--buttonColor);
  padding: 9px 15px;
  border-bottom: 1px solid rgba(128, 128, 128, 0.15);
}

.imc-table tr:not(.imc-category):hover td {
  background: rgba(128, 128, 128, 0.08);
}

.imc-category td {
  padding: 8px 15px;
  font-weight: bold;
  color: var(--color);
  background: var(--colorTrans);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 12px;
  text-align: center !important;
}

.imc-chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;
  padding: 16px 20px 24px;
}

.imc-chart-thumb {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: 8px;
  background: var(--colorTrans);
  border: var(--l2l-action-border);
  border-radius: 12px;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition:
    transform 0.15s ease,
    background 0.15s ease;
}

.imc-chart-thumb:hover {
  background: rgba(128, 128, 128, 0.15);
  transform: scale(1.03);
}

.imc-chart-thumb img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
}

.imc-chart-thumb span {
  font-size: 11px;
  color: #fff;
  text-shadow: 1px 1px 3px rgb(0 0 0 / 50%);
  text-align: center;
  letter-spacing: 0.75px;
  line-height: 1.3;
  font-weight: bold;
}

.imc-lightbox {
  padding: 0;
  border: none;
  background: transparent;
  max-width: 100dvw;
  max-height: 100dvh;
  width: 100dvw;
  height: 100dvh;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--l2l-action-background) !important;
  border-radius: 0;
}

.imc-lightbox button span {
  display: flex;
  background: #fff;
  padding: 10px;
}

.imc-lightbox button:nth-of-type(1) span {
  mask: url(../images/navigation/return2.png) center / contain no-repeat;
}
.imc-lightbox button:nth-of-type(2) span {
  mask: url(../images/navigation/zoom-out.png) center / contain no-repeat;
}
.imc-lightbox button:nth-of-type(3) span {
  mask: url(../images/navigation/zoom-in.png) center / contain no-repeat;
}
.imc-lightbox button:nth-of-type(4) span {
  mask: url(../images/navigation/multiply.png) center / contain no-repeat;
}

.imc-lightbox::backdrop {
  background: rgba(0, 0, 0, 0.88);
}

.imc-lightbox-toolbar {
  position: fixed;
  bottom: calc(20px + var(--navbar-padding));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 1;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(8px);
  border-radius: 30px;
  padding: 6px 10px;
}

.imc-lb-btn {
  width: 38px;
  height: 38px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-appearance: none;
  appearance: none;
  transition: background 0.15s;
}

.imc-lb-btn:hover {
  background: var(--color);
}

.imc-lb-btn:hover span {
  background: var(--fontcolor);
}

.imc-lb-close {
  font-size: 22px;
  margin-left: 4px;
}

.imc-lightbox-viewport {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: none;
}

.imc-lightbox img {
  max-width: 96dvw;
  max-height: 92dvh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6);
  transform-origin: center center;
  transition: transform 0.1s ease;
  cursor: default;
  user-select: none;
  -webkit-user-drag: none;
}

.imc-lb-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2;
  border: none;
}
.imc-lb-nav span {
  display: block;
  width: 22px;
  height: 22px;
  background: #fff;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}
.imc-lb-prev {
  left: 18px;
}
.imc-lb-prev span {
  mask-image: url(../images/navigation/right-arrow.svg) !important;
  rotate: 180deg;
}
.imc-lb-next {
  right: 18px;
}
.imc-lb-next span {
  mask-image: url(../images/navigation/right-arrow.svg) !important;
}
.imc-lb-counter {
  position: absolute;
  top: calc(30px + var(--iOSPadding));
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  padding: 6px 10px;
  border-radius: 14px;
  font-size: 13px;
  display: none;
  z-index: 2;
}

.imc-table td:first-child {
  text-align: left;
  color: var(--buttonColor);
}

.imc-table td:last-child {
  text-align: right;
  color: var(--buttonColor);
}

#pinnumber {
  background: transparent;
  text-align: center;
  font-size: 20px;
  cursor: text;
  width: 100%;
  padding: 0;
  border-top-right-radius: 10px;
  border-top-left-radius: 10px;
  -webkit-appearance: none;
  appearance: none;
}

.pinpad {
  color: #999;
  background: transparent;
  border: none;
  width: 33.3%;
  height: 50px;
  padding: 0;
}

.pinpad:hover {
  background: var(--color);
  color: var(--fontcolor);
  cursor: pointer;
}

#erase,
#enter {
  font-weight: bold;
  color: var(--color);
}

#erase:hover,
#enter:hover {
  color: var(--fontcolor);
}

.wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 100%;
  width: 100%;
  overflow: hidden;
}

button::-moz-focus-inner {
  border: 0;
  padding: 0;
}

#calspan {
  display: none;
}

button::-moz-focus-inner {
  border: 0;
}

::selection {
  background: var(--color) !important;
  color: var(--fontcolor);
}

::-moz-selection {
  background: red !important;
}

#content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.resistor-shell {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  padding: 10px;
  background: 0;
  border-radius: 20px;
}

.resistor-shell:nth-of-type(2) {
  margin-top: 20px;
}

.resistor-table-shell {
  background: var(--evenRow);
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #777;
}

#resistor-table-buttons {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  height: 40px;
}

#resistor-table-buttons button {
  border: none;
  border-left: 1px solid #777;
  border-right: 1px solid #777;
  height: 40px;
  width: calc(100% / 3);
  background: var(--evenRow);
}

#resistor-table-buttons button:first-of-type,
#resistor-table-buttons button:last-of-type {
  border-left: none;
  border-right: none;
}

.resistor-table {
  position: relative;
  color: var(--buttonColor);
  width: 100%;
  border-radius: 10px;
  border-collapse: collapse;
  text-align: center;
  border-top: 1px solid #777;
}

.resistor-table tr td,
.resistor-table th {
  padding: 5px;
}

.resistor-table th {
  border-bottom: 1px solid #777;
}

.resistor-table tr td:first-child {
  border-right: 1px solid #777;
}

#resBody {
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 155px;
  border-radius: 50px;
  box-shadow: none;
  border: 1px solid #777;
  overflow: hidden;
  background: -webkit-linear-gradient(top, #45484c, #2c2c32);
}

#resBody.light {
  background: -webkit-linear-gradient(top, #ddd, #aaa);
}

.resBand {
  display: block;
  height: 100%;
  width: 10%;
  border: none;
  cursor: pointer;
  overflow: hidden;
  transition: background var(--speed) ease;
  background-image: url(../images/reference/empty_resistor.png);
  background-blend-mode: multiply;
}

#resBand0 {
  margin-left: 10px;
}

#resBand1 {
  margin-left: 30px;
}

#resBand2 {
  margin-left: 10px;
}

#resBand3 {
  margin-left: 10px;
}

#resBand4 {
  margin-left: 30px;
}

#resBand5 {
  margin-left: 20px;
}

#console {
  width: 100%;
}

#explanation {
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  padding-top: 10px;
  height: 50px;
  font-size: 15px;
  text-align: center;
}

#resBand0Val {
  width: 10%;
  margin-left: 10px;
  visibility: hidden;
}

#resBand1Val {
  width: 10%;
  margin-left: 30px;
}

#resBand2Val {
  width: 10%;
  margin-left: 10px;
}

#resBand3Val {
  width: 10%;
  margin-left: 10px;
}

#resBand4ValContainer {
  width: 10%;
  margin-left: 30px;
}

#resBand5ValContainer {
  width: 10%;
  margin-left: 20px;
  visibility: hidden;
}

#consoleForm {
  clear: both;
  font-size: 2em;
}

#consoleForm input {
  float: left;
  color: #999;
  height: 40px;
  width: 100%;
  border-radius: 30px;
  border: none;
  text-align: center;
  background: var(--fgColor);
  font-size: 20px;
  margin-bottom: 20px;
  -webkit-appearance: none;
  appearance: none;
}

#resSpan {
  text-align: center;
  font-weight: bold;
  font-size: 24px;
  color: var(--color);
}

#resValue.error {
  background: #b71c1c;
}

.resBandUnit {
  font-size: 0.6em;
}

.preResult {
  float: left;
  width: 40px;
  text-align: center;
}

#tolMinMax {
  text-align: center;
  vertical-align: top;
  font-size: 0.65em;
}

#tolMinMax b {
  font-size: smaller;
  font-weight: bold;
}

.clrSelectorArea {
  position: fixed;
  display: flex;
  top: 15%;
  left: 12.5%;
  background: var(--oddRow);
  border-radius: 15px;
  width: 75%;
  max-height: 300px;
  padding: 10px 0;
  gap: 10px;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-content: center;
  align-items: center;
  z-index: 2;
  box-shadow: 0px 0px 10px -2px rgb(0 0 0 / 75%);
}

.clrSelectorArea h2 {
  display: block !important;
  position: relative;
  width: 100%;
  margin: 0 0 10px 0;
}

.clrSelectorField {
  display: flex;
  border: 1px solid #2c2c32;
  border-collapse: collapse;
  font-size: 85%;
  width: 20%;
  border-radius: 50%;
  aspect-ratio: 1;
  box-shadow: 1px 1px 3px 1px rgb(0 0 0 / 30%);
  align-items: center;
  justify-content: center;
}

.clrSelectorField::before {
  content: attr(data-content);
}

.clrSelectorArea.light .clrSelectorField {
  box-shadow: none;
}

.clrSelectorField em {
  position: absolute;
  background: #2c2c32;
  display: flex;
  width: auto;
  padding: 0;
  width: inherit;
  aspect-ratio: 1;
  color: #b71c1c;
  font-size: 200%;
  font-weight: bold;
  font-style: normal;
  text-align: center;
  z-index: 3;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
}

.clrSelectorSelected {
  border: 2px solid red;
}

.clear {
  clear: both;
}

.eSeriesSelection {
  width: 100%;
  height: auto;
  margin-bottom: 20px;
  color: #999;
  background: none;
  border: none;
  text-align: center;
  cursor: pointer;
  border-radius: 10px;
}

#eSeriesMenu {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  list-style-type: none;
  margin: auto;
  padding: 5px;
}

#eSeriesMenu li {
  display: flex;
  margin: 0;
  width: calc(var(--width) / 6);
  aspect-ratio: 1;
  margin: 0 4px;
  background: var(--fgColor);
  border-radius: 3px;
  cursor: pointer;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
}

#eSeriesMenu.light li {
  background: #2c2c32;
}

#eSeriesMenu li:hover {
  text-decoration: underline;
  cursor: pointer;
}

#eSeriesMenu li.active {
  background: var(--color);
  border: 1px solid var(--fontcolor);
  color: var(--fontcolor);
  text-decoration: underline;
  font-style: italic;
  transition: 0.3s ease;
}

#eSeriesInfo {
  display: none;
  position: relative;
  width: 90%;
  top: 40%;
  left: 5%;
  font-size: 16px;
  margin-top: 20px;
  margin-bottom: 20px;
  background: #b71c1c;
  color: #000;
  padding: 15px;
  border-radius: 15px;
  z-index: 1;
}

#eSeriesClosestValButton {
  color: #fff;
  text-shadow: 1px 1px rgba(0, 0, 0, 0.4);
  font-weight: bold;
  text-decoration: underline;
  font-style: italic;
}

#eSeriesClosestValButton:hover {
  cursor: pointer;
}

.mincalendar {
  display: grid;
  align-content: center;
  justify-content: center;
  align-items: start;
  position: relative;
  margin: 10px;
  height: 250px;
  width: 100%;
  background: var(--fgColor);
  text-align: center;
  border: var(--border);
  border-radius: 20px;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
}

.mincalendar.light {
  background: #fff;
}

.mincalendar #monthName {
  position: relative;
  margin: 0;
  padding: 15px 10px;
  color: var(--color);
  font-size: 24px;
  font-weight: bold;
}

.mincalendar #dayName {
  margin: 0;
  height: 20%;
  font-size: 20px;
  font-weight: 300;
  color: #999;
  line-height: 50px;
}

.mincalendar.light #dayName {
  color: #35363a;
}

.mincalendar #dayNumber {
  margin: 0;
  height: 40%;
  font-size: 60px;
  font-weight: bold;
  color: var(--color);
  line-height: 90px;
}

.mincalendar #year {
  margin: 0;
  height: 20%;
  font-size: 100%;
  font-weight: 500;
  color: #999;
}

.mincalendar.light #year {
  color: #35363a;
}

.mincalendar div {
  position: absolute;
  display: flex;
  flex-direction: column;
  width: 100px;
  height: 100px;
  bottom: calc(50% - 50px);
  border-radius: 0 15px 15px 0;
  padding: 10px;
  left: 0;
  color: var(--fontcolor);
  background-color: var(--color);
  justify-content: center;
  align-items: center;
  border: none;
  box-shadow: 1px 2px 3px rgb(0 0 0 /10%);
}

#currentEvents span {
  display: flex;
  background: var(--darker);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--darkerFontColor);
  justify-content: center;
  align-items: center;
}

#lojack {
  margin-top: 15px;
}

.cancelbtn {
  width: 100%;
}

#dummy-btn2 {
  visibility: hidden;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 305;
  opacity: 0;
  position: fixed;
  cursor: pointer;
  border: none;
}

#local-user {
  font-size: 150%;
  position: absolute;
  color: var(--buttonColor);
  bottom: 10px;
  padding-left: 24px;
  text-align: left;
  width: 100%;
}

#menu-weather {
  display: block;
  position: absolute;
  color: var(--buttonColor);
  font-size: 150%;
  margin: 0;
  font-style: inherit;
  left: 24px;
  bottom: 40px;
  padding: 0;
  text-align: end;
  z-index: 100;
}

#menu-weather sup {
  font-size: 0.5em;
  color: var(--color);
}

#weather-desc {
  position: relative;
  display: inline-flex;
  font-size: 50%;
  color: var(--buttonColor);
  margin-left: 10px;
  top: -10px;
  width: 40px;
  text-align: left;
}

#weather-widget {
  display: flex;
  position: relative;
  margin: 10px;
  width: 100%;
  height: 400px;
  border-radius: 20px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  perspective: 2000px;
}

.highLow {
  display: flex;
  position: absolute;
  justify-content: space-evenly;
  flex-direction: column;
  height: 84px;
  width: 84px;
  bottom: 10px;
  left: 10px;
  border-right: 1px solid #35363a;
  background: none;
}

.highLow#fl {
  left: unset;
  right: 10px;
  border-right: unset;
  border-left: 1px solid #35363a;
}

.weather-desc {
  text-transform: capitalize;
}

.weather-desc.light {
  color: #35363a;
}

.ww {
  height: 100%;
}

.ww .city-temp {
  display: flex;
  font-size: 5rem;
  font-weight: bold;
  margin-top: -12px;
  color: var(--color);
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-evenly;
  align-items: center;
}

.highLow small {
  font-size: 0.75rem;
  color: #999;
}

.minMax {
  font-size: 1rem;
  color: #fff;
}

.ww.light .highLow .minMax {
  color: #35363a;
}

.minMax p {
  color: #999;
  margin: 0;
  font-size: 60%;
  padding-bottom: 0;
  text-decoration: underline 2px #fff;
}

.minMax sup {
  font-size: 0.5em;
  color: var(--darker);
}

.ww sup {
  font-size: 0.5em;
  color: var(--darker);
}

.details {
  display: none;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: flex-start;
  align-content: center;
  max-height: 85%;
  width: 95%;
  max-width: 600px;
  background: var(--bgColor);
  color: var(--fontcolor);
  font-size: 1.25rem;
  opacity: 0.9;
  padding: 0;
  overflow: auto;
  border-radius: 20px;
  box-shadow: 2px 2px 12px 1px rgb(0 0 0 / 25%);
}

.details.light {
  background: linear-gradient(#ffffff, #ecf0f3);
}

.details.midnight {
  background: linear-gradient(var(--fgColor), var(--darkerBGColor));
}

.details h2 {
  width: 100%;
  position: sticky;
  background: transparent;
  display: flex;
  padding: 10px 15px 15px;
  top: 0;
  justify-content: space-between;
  align-items: center;
  color: var(--fontcolor);
  font-size: 2rem;
  z-index: 100;
}

.details.light h2 {
  background: #ffffff;
}

.details ul {
  position: relative;
  overflow: scroll;
  width: 100%;
  margin: 0 0 10px;
}

.details li {
  color: var(--fontcolor);
  margin-top: 10px;
  padding: 5px 0;
}

.details li sup {
  vertical-align: top;
  font-size: 0.85rem;
  margin-left: 2px;
}

.details li sub {
  vertical-align: baseline;
  font-size: 0.85rem;
  margin-left: 2px;
}

.details hr {
  border: none;
  border-bottom: 1px solid #4a4b4e;
  width: 100%;
  margin-bottom: 20px;
}

.details img {
  width: 32px;
  filter: var(--icon);
}

#weather-detail {
  display: none;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  align-content: center;
  max-height: 80%;
  width: 95%;
  max-width: 600px;
  color: var(--buttonColor);
  font-size: 1.25rem;
  opacity: 0.9;
  padding: 0 10px;
  overflow: auto;
  border-radius: 20px;
  box-shadow: 2px 2px 12px 1px rgb(0 0 0 / 25%);
  background: var(--modalBG);
  backdrop-filter: blur(8px);
  text-align: left;
  z-index: -1;
}

#weather-detail div#severeTitle {
  width: 100%;
  height: auto;
  position: sticky;
  top: 0;
  z-index: 1;
}

#weather-detail hr {
  border: none;
  border-bottom: 1px solid #4a4b4e;
  width: 80%;
  margin-bottom: 5px;
  margin-top: 10px;
}

#weather-detail h2 {
  background: none;
  color: var(--buttonColor);
  box-shadow: none !important;
  height: 80px;
  width: 100%;
  margin: 0;
}

#weather-detail h2 span {
  position: absolute;
  width: 70%;
  left: 15%;
  border-radius: 30px;
}

#weather-detail button {
  position: absolute;
  display: flex;
  width: 44px;
  height: 44px;
  right: 0;
  border-radius: 50%;
  background: transparent;
  backdrop-filter: blur(5px);
  border: none;
  cursor: pointer;
  justify-content: center;
  align-items: center;
}

#weather-detail button span {
  background: var(--buttonColor);
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
  position: relative;
  width: 20px;
  height: 20px;
  left: unset;
  justify-content: center;
}

#weather-detail div {
  color: var(--color);
  text-shadow: 0px 0px 1px var(--fontcolor);
}

.ww .city-name sup {
  padding: 0.2em 0.6em;
  border-radius: 30px;
  color: var(--darkerFontColor);
  background: var(--darker);
}

.ww.light .city-name {
  color: #35363a;
}

.ww .city-icon {
  width: 76px;
  height: 76px;
  /* filter: invert(100%); */
  margin-bottom: 25px;
}

#fanucform li {
  list-style: none;
  white-space: break-spaces;
}

#fanucform li strong {
  color: #b71c1c;
  font-size: 1.5rem;
}

#fanucform li b {
  color: yellowgreen;
}

#fanucform li b:first-of-type {
  color: orange;
}

#refresh-weather,
#forecast-button {
  display: none;
  background: 0;
  border: 0;
  border-radius: 50%;
  left: 10px;
  top: 10px;
  position: absolute;
  width: 36px;
  height: 36px;
  align-content: center;
  justify-content: center;
  align-items: center;
}

#refresh-weather span {
  background: var(--buttonColor);
  padding: 10px;
  cursor: pointer;
  mask-image: url(../images/navigation/reload.svg);
  -webkit-mask-image: url(../images/navigation/reload.svg);
}

#loadingweather {
  mask-image: url(../images/navigation/weather.svg);
  -webkit-mask-image: url(../images/navigation/weather.svg);
  position: absolute;
  width: 80px;
  height: 80px;
  background: var(--darker);
  margin-top: -40px;
  align-self: center;
}

#loadWB {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin-top: -100px;
  height: 40px;
  width: 120px;
  padding: 5px;
  background: var(--color);
  color: var(--fontcolor);
  font-size: 80%;
  border-radius: 8px;
  box-shadow: 1px 2px 5px rgb(0 0 0 / 20%);
}

.weather-intervals {
  display: flex;
  font-size: small;
  flex-direction: row;
  margin: 15px 0px;
  justify-content: space-between;
}

.forecast {
  display: none;
  position: absolute;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: space-around;
  gap: 20px 20px;
  overflow-y: auto;
  width: 100%;
  height: 100%;
  z-index: 479;
  background: var(--fgColor);
  transition: all var(--speed) ease;
}

.forecast-day {
  display: flex;
  position: relative;
  top: -35px;
  margin: 0px 5px;
  cursor: pointer;
  border: none;
  height: 64px;
  width: 64px;
  text-align: center;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  align-content: center;
  gap: 10px;
}

.forecast-day p {
  font-size: 90%;
}

.flip-card-inner {
  background: var(--fgColor);
  position: relative;
  border-radius: 20px;
  width: 100%;
  margin: 0 auto;
  height: 100%;
  text-align: center;
  transition: transform 0.5s ease;
  transform-style: preserve-3d;
  z-index: 5;
  border: 0;
}

.flip-card-inner.light {
  background: #fff;
  color: #202124;
}

.flip-card-front,
.flip-card-back {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 20px;
  border: var(--border);
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  z-index: 5;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
}

.flip-card-back {
  color: #fff;
  background: var(--fgColor);
  transform: rotateY(180deg);
  display: flex;
  align-content: stretch;
  justify-content: center;
  gap: 5px 15px;
  flex-wrap: wrap;
  flex-direction: row;
  z-index: 5;
}

.flip-card-back.light {
  color: #202124;
  background: #fff;
}

.flip-card-back .city-icon {
  width: 32px;
  height: 32px;
  /* filter: invert(70%); */
}

/* .city-icon.light {
  filter: invert(10%);
} */

#forecast-button {
  left: unset;
  right: 10px;
}

#forecast-button span {
  background: var(--buttonColor);
  padding: 17px;
  cursor: pointer;
  mask-image: url(../images/navigation/arrow-right.svg);
  -webkit-mask-image: url(../images/navigation/arrow-right.svg);
}

#weatherAlert {
  display: none;
  position: absolute;
  background: red;
  right: 15px;
  padding: 13px;
  top: 165px;
  mask-image: url(../images/navigation/iai.svg);
  -webkit-mask-image: url(../images/navigation/iai.svg);
  cursor: pointer;
}

#weather-button {
  display: flex;
  position: absolute;
  background: #999;
  top: 5px;
  left: 2px;
  padding: 24px;
  cursor: pointer;
  transform: rotate(180deg);
  mask-image: url(../images/navigation/arrow-right.svg);
  -webkit-mask-image: url(../images/navigation/arrow-right.svg);
}

.back-button {
  display: flex;
  position: absolute;
  background: #999;
  top: 17px;
  left: 12px;
  padding: 24px;
  cursor: pointer;
  transform: rotate(180deg);
  mask-image: url(../images/navigation/arrow-right.svg);
  -webkit-mask-image: url(../images/navigation/arrow-right.svg);
}

#forecasting h2 {
  text-align: center;
  font-weight: bold;
  color: var(--color);
  width: 100%;
  top: -25px;
  margin: 0px;
  position: relative;
}

#forecasting h2 hr {
  margin-top: 20px;
  margin-bottom: 0px;
  border: none;
  border-bottom: 1px solid rgb(100 100 100 / 50%);
}

.severe-weather {
  color: var(--buttonColor);
  padding: 10px;
  font-size: 1rem;
  white-space: pre-line;
  font-family: inherit;
}

.severe-weather h3 {
  color: var(--color);
  font-size: 2rem;
}

.severe-weather b {
  color: var(--fontcolor);
  font-size: 1.25rem;
  background: var(--color);
  border-radius: 8px;
  padding: 0 10px;
  margin-right: 10px;
  box-shadow: 2px 2px 3px rgb(0 0 0 / 20%);
}

.start-end {
  background: var(--color);
  padding: 10px;
  border-radius: 15px;
  width: 90%;
  margin: auto;
  position: relative;
}

.details#weather-detail ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: space-around;
  list-style-type: none;
  padding-inline-start: 0;
}

.details#weather-detail li {
  color: var(--buttonColor);
  background: transparent;
  backdrop-filter: blur(0px);
  display: flex;
  width: calc(50% - 6px);
  left: 0;
  padding: 10px;
  border-radius: 10px;
  margin: 2px 0;
  justify-content: space-between;
  flex-direction: column;
  align-items: center;
  box-shadow: 1px 2px 5px rgb(0 0 0 / 6%);
}

.details.midnight#weather-detail li {
  background: #2c2c30;
}

.details#weather-detail li:last-of-type {
  width: 100%;
}

.details#weather-detail .start-end li {
  padding: 5px 0;
  font-size: 80%;
  width: 100%;
  background: var(--dark);
  color: var(--fontcolor) !important;
  list-style-position: inside;
}

.details#weather-detail .start-end li:first-of-type {
  margin-bottom: 10px;
}

#check-update svg {
  position: relative;
  width: 150px;
  height: 150px;
  animation: rotate-animate 2s linear infinite;
  top: 0;
}

svg circle {
  width: 100%;
  height: 100%;
  fill: none;
  stroke-width: 8;
  stroke: var(--color);
  transform: translate(5px, 5px);
  stroke-dasharray: 440;
  stroke-dashoffset: 440;
  stroke-linecap: round;
  animation: animate-circle 4s linear infinite;
}

#check-update {
  display: flex;
  position: relative;
  z-index: 999;
  margin-top: calc(50% - 100px);
  justify-content: center;
  align-items: center;
}

#update-msg {
  display: flex;
  position: relative;
  top: 0;
  left: 0;
  padding: 0px 5px;
  font-size: 40px;
  flex-direction: column;
  flex-wrap: wrap;
}

#newChanges {
  display: none;
  position: relative;
  background: var(--colorTrans);
  list-style-position: inside;
  padding: 30px 25px;
  flex-direction: column;
  border-radius: 15px;
  height: calc(var(--height) / 2);
  overflow: scroll;
}

.card-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  row-gap: 2px;
  column-gap: 10px;
  margin-top: -35px;
}

.card-container form {
  display: contents;
  margin: 0;
  padding: 0;
}

.card-container .user-column {
  display: flex;
  width: calc(50% - 5px);
  padding: 10px;
  border-radius: 20px;
  align-content: center;
  align-items: center;
  height: 140px;
  background: #2c2c32;
  flex-direction: column;
  margin-top: 10px;
}

.artistic .user-column {
  background: var(--bgTrans);
}

.card-container .user-column span {
  font-weight: bold;
}

.card-container .user-row {
  display: flex;
  width: 100%;
  background: #2c2c32;
  padding: 17px 15px;
  border-radius: 6px;
  justify-content: space-between;
  font-size: 0.9rem;
}

.artistic .card-container {
  row-gap: 0;
}

.artistic .card-container .user-row {
  border-radius: 0;
  background: var(--bgTrans);
}

.artistic .card-container .user-row.first {
  border-radius: 20px 20px 0 0;
}

.artistic .card-container .user-row:last-of-type {
  border-radius: 0 0 20px 20px;
}

.user-row strong {
  font-weight: bold;
}

.user-column input,
.user-row input,
.user-row select {
  color: var(--buttonColor);
  appearance: none;
  border: none;
  font-size: large;
  text-align: right;
  background: none;
  transition: all var(--speed) ease;
}

.user-column.editing input,
.user-row.editing input,
.user-row.editing select,
.primary.editing {
  border: 2px solid var(--colorTrans);
  background: var(--colorTrans);
  border-radius: 12px;
  padding: 6px 10px;
  transition: all var(--speed) ease;
}

.primary.editing {
  border-radius: 50%;
}

.card-container.light .user-column,
.card-container.light .user-row {
  background: #fff;
}

.card-container.midnight .user-column,
.card-container.midnight .user-row {
  background: #111112;
}

.user-row.first {
  border-radius: 20px 20px 6px 6px;
  margin-top: 10px;
}

.user-row:last-of-type {
  border-radius: 4px 4px 20px 20px;
  margin-bottom: 30px;
}

.user-row:has(input[name="l2l_site_id"]),
.user-row:has(input[name="l2l_api_key"]) {
  display: none;
}

#l2lAccountCard .l2l-dispatch-filter-body {
  gap: 0;
}

#l2lAccountCard .l2l-dispatch-filter-panel .l2l-dispatch-filter-body {
  gap: 12px;
}

.l2l-dispatch-details .user-row {
  border-radius: 12px;
  text-align: center;
  margin: 0 0 12px;
  padding: 8px 6px;
  gap: 0 10px;
}

#l2l-machines-importer .user-row {
  padding: 15px;
}

.l2l-dispatch-details .user-row strong {
  display: flex;
  text-align: left;
  font-size: small;
  align-items: center;
}

.l2l-dispatch-details .user-row input {
  text-align: center;
  border: var(--l2l-action-border);
  border-radius: 8px;
  width: 60px;
}

.l2l-dispatch-details .user-row .maintenance-button {
  border-radius: 12px;
  margin-right: 2px;
  width: 60px;
}

.l2l-dispatch-details .user-row span {
  width: 75px;
  height: 40px;
  display: flex;
  flex-direction: column;
  font-weight: bold;
}

.l2l-dispatch-details
  .l2l-dispatch-filter-body
  .user-row
  input.push-device-label {
  width: 160px;
  font-size: small;
}

#l2l-machines-importer .l2l-dispatch-filter-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  align-content: center;
}

#l2l-machines-importer .l2l-dispatch-filter-body select {
  width: 80%;
}

#user-name {
  margin: 10px 0;
  color: var(--color);
  width: 100%;
  height: 100%;
  font-size: 4vw;
  text-align: center;
  font-weight: bold;
}

.card-container .round {
  position: relative;
  width: 96px;
  height: 96px;
  filter: drop-shadow(2px 4px 6px rgb(0 0 0 / 0.35));
}

.primary-container {
  display: flex;
  position: relative;
  column-gap: 11px;
  top: -5px;
  margin: 0;
  width: 100%;
  justify-content: flex-end;
}

.primary {
  display: flex;
  position: relative;
  background: #2c2c32;
  column-gap: 10px;
  border-radius: 50%;
  border: 0;
  color: var(--buttonColor);
  width: 48px;
  height: 48px;
  padding: 10px;
  justify-content: center;
  align-items: center;
  flex-direction: row-reverse;
  transition: all var(--speed) ease;
}

.card-container.light .primary {
  background: #ffffff;
}

.card-container.midnight .primary {
  background: #111112;
}

.card-container .primary.editing,
.card-container.light .primary.editing,
.card-container.midnight .primary.editing {
  background: var(--colorTrans);
  border: 2px solid var(--colorTrans);
}

.card-container .primary span {
  display: block;
  mask-image: url(../images/navigation/pencil.svg);
  background: var(--buttonColor);
  padding: 15px;
  transition: all var(--speed) ease;
}

.primary.editing span {
  background: var(--color);
  transition: all var(--speed) ease;
  mask-image: url(../images/navigation/save.svg);
}

.primary:nth-of-type(2) span {
  mask-image: url(../images/navigation/power.svg);
}

.card-container#l2lAccountCard {
  margin-top: 0;
}

.artistic .primary-container .primary {
  background: var(--bgTrans);
}

.l2l-account-actions {
  display: flex;
  width: 100%;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 10px;
  flex-direction: row;
  padding: 15px;
  flex-wrap: wrap;
  background: var(--bgTrans);
  border-radius: 20px;
}

.l2l-account-actions .maintenance-button {
  margin: 0;
  border-radius: 10px;
  width: calc(50% - 5px);
  font-size: 0.75rem;
}

dialog.l2l-account-debug-dialog {
  width: min(960px, calc(100vw - 24px));
  max-width: 960px;
  max-height: min(80vh, 720px);
  padding: 0;
  overflow: hidden;
}

.l2l-account-debug-dialog-frame {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px;
}

.l2l-account-debug-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.l2l-account-debug-dialog-header strong {
  display: block;
  font-size: 1rem;
}

.l2l-account-debug-dialog-status {
  margin: 6px 0 0;
  font-size: 0.85rem;
  opacity: 0.8;
}

.l2l-account-debug-dialog-close {
  width: auto;
  min-width: 96px;
}

.l2l-account-debug-dialog-body {
  overflow: auto;
  max-height: calc(80vh - 140px);
}

.l2l-push-endpoint-summary-loading,
.l2l-push-endpoint-summary-empty {
  padding: 16px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.8);
  text-align: center;
}

.light .l2l-push-endpoint-summary-loading,
.light .l2l-push-endpoint-summary-empty,
#l2lAccountCard.light .l2l-push-endpoint-summary-loading,
#l2lAccountCard.light .l2l-push-endpoint-summary-empty {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.75);
}

.l2l-push-endpoint-summary-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  font-size: 0.82rem;
  opacity: 0.8;
  flex-wrap: wrap;
}

.l2l-push-endpoint-summary-table-wrap {
  overflow: auto;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.light .l2l-push-endpoint-summary-table-wrap,
#l2lAccountCard.light .l2l-push-endpoint-summary-table-wrap {
  border-color: rgba(0, 0, 0, 0.08);
}

.l2l-push-endpoint-summary-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
}

.l2l-push-endpoint-summary-table th,
.l2l-push-endpoint-summary-table td {
  padding: 10px 12px;
  vertical-align: top;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.light .l2l-push-endpoint-summary-table th,
.light .l2l-push-endpoint-summary-table td,
#l2lAccountCard.light .l2l-push-endpoint-summary-table th,
#l2lAccountCard.light .l2l-push-endpoint-summary-table td {
  border-bottom-color: rgba(0, 0, 0, 0.06);
}

.l2l-push-endpoint-summary-table th {
  position: sticky;
  top: 0;
  background: var(--dialog-vertical);
  z-index: 1;
}

.light .l2l-push-endpoint-summary-table th,
#l2lAccountCard.light .l2l-push-endpoint-summary-table th {
  background: #edf1f5;
}

.l2l-push-endpoint-summary-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.l2l-push-endpoint-summary-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(64, 224, 208, 0.12);
  color: inherit;
  white-space: nowrap;
}

.l2l-push-endpoint-summary-chip strong {
  font-size: 0.78rem;
}

.l2l-push-endpoint-summary-chip span {
  font-size: 0.74rem;
  opacity: 0.85;
}

@media (max-width: 640px) {
  .l2l-account-debug-dialog-frame {
    padding: 14px;
  }

  .l2l-account-debug-dialog-header {
    flex-direction: column;
    align-items: stretch;
  }

  .l2l-account-debug-dialog-close {
    width: 100%;
  }
}

#icon-menu {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: center;
}

#avatar-cycle-dialog {
  border-radius: 20px;
  padding: 0;
  width: 90%;
  height: 100%;
  max-width: 680px;
  max-height: 65vh;
  overflow: scroll;
  background: var(--bgTrans);
  border: var(--l2l-action-border);
  backdrop-filter: blur(0px);
  color: var(--text);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

#avatar-cycle-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.avatar-cycle-modal {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 90vh;
  padding: 24px 20px 16px;
  box-sizing: border-box;
}

.avatar-cycle-title {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

.avatar-cycle-subtitle {
  margin: 0 0 16px;
  font-size: 13px;
  text-align: center;
  opacity: 0.6;
}

#avatar-cycle-grid {
  display: flex;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 10px;
  height: 100%;
  max-height: 400px;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  overflow-y: auto;
  padding: 10px 0px;
}

.avatar-cycle-icon {
  max-width: 56px;
  aspect-ratio: 1 / 1;
  width: 56px;
  height: 56px;
  cursor: pointer;
  border-radius: 10px;
  padding: 4px;
  border: 2px solid transparent;
  box-sizing: border-box;
  filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.4));
  opacity: 0.7;
  transition:
    opacity 0.15s,
    border-color 0.15s;
}

.avatar-cycle-icon.active {
  border-color: var(--color);
  background: var(--colorTrans);
  opacity: 1;
}

.avatar-cycle-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 16px;
  flex-shrink: 0;
}

.avatar-cycle-btn {
  display: flex;
  padding: 12px 0;
  border: var(--l2l-action-border);
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  background: var(--l2l-action-background);
  color: var(--text);
  transition: opacity 0.15s;
  align-items: center;
  justify-content: center;
}

.avatar-cycle-btn:active {
  opacity: 0.7;
}

.avatar-cycle-btn--ok {
  background: var(--color);
  color: var(--fontcolor);
}

/* ── RGB Mode Dialog ──────────────────────────────────────────────────────── */

#rgb-mode-dialog {
  border-radius: 20px;
  padding: 0;
  width: 90%;
  max-width: 420px;
  overflow: hidden;
  background: var(--bgTrans);
  border: var(--l2l-action-border);
  backdrop-filter: blur(0px);
  color: var(--text);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

#rgb-mode-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.rgb-mode-modal {
  display: flex;
  top: 0;
  position: relative;
  flex-direction: column;
  padding: 20px;
  box-sizing: border-box;
  justify-content: flex-start;
  max-height: 80vh;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}

.rgb-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.rgb-mode-modal .rgb-mode-close {
  display: flex;
  position: relative;
  align-self: end;
  top: 0;
  right: 0;
  background: var(--buttonColor);
  padding: 20px;
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
}

.rgb-mode-view {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.rgb-mode-title {
  display: flex;
  margin: 0 0 2px;
  width: 100%;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  justify-content: center;
  align-items: center;
}

.rgb-mode-subtitle {
  margin: 0;
  font-size: 13px;
  text-align: center;
  opacity: 0.6;
}

.rgb-mode-choice-btns {
  display: flex;
  gap: 12px;
}

.rgb-mode-btn {
  display: flex;
  border: var(--l2l-action-border);
  cursor: pointer;
  background: var(--l2l-action-background);
  color: var(--text);
  transition: opacity 0.15s;
  align-items: center;
  justify-content: center;
}

.rgb-mode-btn:active {
  opacity: 0.7;
}

.rgb-mode-btn--ok {
  background: var(--bubble2);
  color: var(--fontcolor);
  border: 0;
  width: 100%;
}

.rgb-mode-btn--custom {
  background: var(--rgb-glow-gradient);
  background-size: 200% 200%;
  border: 0;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.rgb-mode-angle-row {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 10px;
  padding: 10px 14px;
}

.rgb-mode-angle-row label {
  flex: 1;
  font-size: 14px;
  font-weight: 600;
}

.rgb-mode-angle-row input[type="number"] {
  width: 70px;
  padding: 6px 8px;
  border-radius: 8px;
  border: var(--l2l-action-border);
  background: var(--bgColor);
  color: var(--text);
  font-size: 14px;
  text-align: center;
  -moz-appearance: textfield;
}

.rgb-mode-angle-row input[type="number"]::-webkit-inner-spin-button,
.rgb-mode-angle-row input[type="number"]::-webkit-outer-spin-button {
  opacity: 1;
}

.rgb-mode-angle-row input[type="range"] {
  flex: 1;
  -webkit-appearance: none;
  appearance: none;
  height: 6px;
  border-radius: 3px;
  background: var(--slider, #555);
  outline: none;
  cursor: pointer;
}

.rgb-mode-angle-row input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--color, #fff);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.rgb-mode-angle-row input[type="range"]::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: var(--color, #fff);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.rgb-mode-angle-row span {
  font-size: 13px;
  opacity: 0.6;
  min-width: 28px;
  text-align: right;
}

#rgb-color-stops {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rgb-color-stop-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 10px;
  padding: 8px 12px;
}

.rgb-color-stop-row input[type="color"] {
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  border-radius: 8px;
  flex-shrink: 0;
}

.rgb-stop-label {
  flex: 1;
  font-size: 13px;
  opacity: 0.7;
}

.rgb-stop-remove {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: var(--l2l-action-border);
  background: transparent;
  color: var(--text);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.6;
  flex-shrink: 0;
  transition: opacity 0.15s;
}

.rgb-stop-remove:active {
  opacity: 1;
}

.rgb-mode-add-stop {
  padding: 10px;
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.2);
  background: transparent;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.15s;
}

.rgb-mode-add-stop:disabled {
  opacity: 0.3;
  cursor: default;
}

.rgb-gradient-preview {
  height: 44px;
  border-radius: 10px;
  border: 0;
  transition: background 0.25s;
}

@keyframes animate-circle {
  0%,
  100% {
    stroke-dashoffset: 440;
  }

  50% {
    stroke-dashoffset: 0;
  }

  50.1% {
    stroke-dashoffset: 880;
  }
}

@keyframes rotate-animate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.calendar-contain {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
  color: #040605;
  background: var(--bgColor);
  opacity: 1;
  filter: blur(0px);
  transition: opacity 0.3s ease;
  transform: translateZ(0px);
  will-change: opacity;
}

#calendar_div.light .calendar-contain {
  background: #eeeeee;
}

.cal-nav {
  width: 100%;
  display: flex;
  color: var(--fontcolor);
  position: absolute;
  top: calc(100% / 2 + 10px);
  height: 80px;
  padding: 0px;
  margin: 0;
  gap: 4px;
  font-size: 2.5rem;
  justify-content: center;
  align-items: center;
  align-content: flex-start;
  z-index: 1;
}

.addEvent {
  position: absolute;
  bottom: 15px !important;
  right: 15px;
  width: 52px;
  height: 52px;
}

.addEvent span {
  background: var(--fontcolor);
  cursor: pointer;
  width: 20px;
  height: 20px;
  overflow: visible;
  position: relative;
  mask-image: url(../images/navigation/add-event.svg);
  -webkit-mask-image: url(../images/navigation/add-event.svg);
}

#eventDate {
  color: #ecf0f3;
  border-radius: 15px;
  text-align: center;
  padding: 7px;
  border: 1px solid var(--evenRow);
}

#eventDate.light {
  color: #202124;
}

#addEventForm {
  background: var(--fgColor);
  display: flex;
  align-items: center;
  flex-direction: column;
  height: 350px;
  gap: 25px;
  padding: 20px;
  border: none;
  z-index: 2;
  position: relative;
}

#addEventForm.light {
  background: #fff;
}

.maintenance-modal-text.light {
  background: #ecf0f3;
  box-shadow: none;
}

.title-bar {
  position: relative;
  top: calc(0px + var(--iOSPadding));
  width: 100%;
  display: flex;
  text-align: right;
  padding: 1.2rem;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  z-index: 2;
}

.title-bar:after {
  display: table;
  clear: both;
}

.title-bar__prev,
.title-bar__next {
  display: flex;
  cursor: pointer;
  left: 0px;
  position: relative;
  height: 40px;
  width: 80px;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  rotate: 180deg;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
}

.title-bar__next {
  rotate: unset;
}

.title-bar__prev span,
.title-bar__next span {
  background: var(--color);
  width: 32px;
  height: 32px;
  mask-image: url(../images/navigation/arrow-right.svg);
  -webkit-mask-image: url(../images/navigation/arrow-right.svg);
}

#calendar_div select {
  padding: 6px 8px;
  font-size: 16px;
  border-radius: 22px;
  background: var(--colorTrans);
  color: var(--buttonColor);
  border: 1px solid var(--colorTrans);
}

.title-bar__month {
  padding: 0 0.5rem 0 0;
}

.calendar__sidebar {
  display: flex;
  position: absolute;
  background: var(--fgColor);
  bottom: 0;
  width: 100%;
  height: calc(100% / 2 - 90px);
  margin: 0 auto;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  border: none;
  border-top: var(--border);
  border-radius: 35px 35px 0 0;
  flex-wrap: nowrap;
  transition:
    height var(--speed) linear,
    border-radius var(--speed) linear;
  z-index: 303;
}

.calendar__sidebar p {
  display: block;
  position: relative;
  font-size: 1.5rem;
  color: var(--buttonColor);
  text-align: center;
  width: 100%;
  height: 40px;
  top: calc(50% - 20px);
  margin: 0;
  opacity: 0.6;
}

.calendar__sidebar.expanded {
  height: calc(100% - 90px);
  border-top: none;
  border: none;
}

.calendar__sidebar.expanded .sidebar__list {
  margin-top: 30px;
}

.calendar__sidebar.expanded .event-pill {
  top: 30px;
  transform: rotate(0deg);
}

#calendar_div.light .calendar__sidebar {
  background: #fff;
}

.calendar__sidebar .content {
  padding: 2rem 1.5rem 2rem 4rem;
  color: var(--color);
}

.sidebar__list {
  position: relative;
  height: 100%;
  list-style: none;
  top: 0;
  margin: 0;
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
  overflow: auto;
}

.sidebar__list-item {
  margin: 1.2rem 0;
  padding: 10px;
  color: var(--buttonColor);
  font-weight: 100;
  font-size: 1rem;
  line-height: 2;
  border-radius: 15px;
  background: var(--bgColor);
  border: var(--border);
}

.list-user {
  display: inline-flex;
  position: relative;
  font-size: 1.25ch;
  background: var(--color);
  border: 1px solid var(--fontcolor);
  text-transform: capitalize;
  color: var(--fontcolor);
  border-radius: 35px;
  padding: 4px 8px;
  width: auto;
  height: 32px;
  margin-right: 10px;
  justify-content: center;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
}

.sidebar__list-item--complete {
  list-style: none;
  color: var(--color);
  font-weight: bold;
  text-decoration: underline;
  text-shadow: 0px 0px 0px rgb(0 0 0 / 20%);
  font-size: 1.25rem;
}

.sidebar__list-item--complete .list-item__time {
  color: rgba(4, 6, 5, 0.3);
}

.calendar__heading-highlight {
  color: var(--fontcolor);
  font-weight: bold;
}

.calendar__days {
  display: flex;
  position: absolute;
  top: calc(50px + var(--iOSPadding));
  width: 100%;
  height: auto;
  background: var(--bgColor);
  flex-wrap: nowrap;
  text-align: center;
  align-items: stretch;
  flex-direction: column;
  border: none;
}

#calendar_div.light .calendar__days {
  background: #eeeeee;
}

.activated {
  background: var(--colorTrans) !important;
  border-radius: 12px !important;
  color: var(--fontcolor) !important;
}

#event-form,
#filter-form {
  position: fixed;
  display: none;
  width: 100%;
  padding: 0;
  height: 100%;
  flex-direction: column;
  z-index: 3;
  justify-content: center;
  align-content: center;
  align-items: center;
  transform: translate3d(0, 0, 0);
}

#addEventForm label {
  position: relative;
  display: inline-block;
  color: #999;
  font-size: 18.5px;
  font-weight: bold;
}

.calendar__top-bar {
  display: -webkit-box;
  display: flex;
  padding: 10px 0;
}

.top-bar__days {
  width: 100%;
  padding: 15px 5px 10px;
  color: var(--color);
  font-size: 1rem;
  opacity: 0.8;
  text-shadow: 0px 0px 0px var(--compFontColor);
  text-decoration: underline;
  text-underline-offset: 5px;
}

.calendar__week {
  display: -webkit-box;
  display: flex;
  -webkit-box-flex: 1;
  flex: 1 1 0;
}

.calendar__day {
  display: flex;
  width: 100%;
  height: 12vw;
  padding: 8px;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: center;
}

.calendar__day.today:before {
  display: flex;
  content: attr(data-cell);
  position: absolute;
  font-weight: bold;
  font-size: 1rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--fontcolor);
  background: var(--color);
  justify-content: center;
  align-items: center;
  box-shadow: 1px 2px 3px rgb(0 0 0 /10%);
}

.calendar__day.event .calendar__task {
  display: inline-flex;
  position: relative;
  border: none;
  border-radius: 10px;
  background: var(--darker);
  width: 8px;
  height: 8px;
  top: 15px;
  align-self: center;
}

.calendar__date {
  color: #e2e2e2;
  font-size: 1rem;
  font-weight: 500;
  line-height: 0.7;
  position: absolute;
}

.event-pill {
  top: 5px;
  align-self: center;
  padding: 22px;
  margin: 0;
  position: relative;
  background: var(--buttonColor);
  mask-image: url(../images/navigation/arrow-down.svg);
  -webkit-mask-image: url(../images/navigation/arrow-down.svg);
  transform: rotate(180deg);
  transition: transform 0.3s ease;
  z-index: 2;
}

#calendar_div.light .calendar__date {
  color: var(--buttonColor);
}

.calendar__week .inactive .calendar__date,
.calendar__week .inactive .task-count {
  color: #777;
}

#calendar_div.light .calendar__week .inactive .calendar__date,
#calendar_div.light .calendar__week .inactive .task-count {
  opacity: 0.3;
}

.calendar__task {
  color: #35363a;
  display: -webkit-box;
  display: flex;
  font-size: 0.8rem;
}

#calendar_div.light li {
  background: #ecf0f3;
}

#eLog {
  color: var(--buttonColor);
  border-radius: 30px;
  background: var(--fgColor);
  height: 300px;
  width: 100%;
  padding: 20px;
  overflow: auto;
  word-break: break-word;
  margin-top: 30px;
}

#eLog > li {
  list-style-position: inside;
}

#consoleErr {
  color: #ff0000;
}

#consoleScript {
  color: #9b6eff;
}

#consoleLine {
  color: #85ff0a;
}

#refreshErrLog {
  background: #ecf0f3;
  position: absolute;
  padding: 12px;
  width: 20px;
  height: 20px;
  right: 10px;
  top: 15px;
  mask-image: url(../images/navigation/reload.svg);
  -webkit-mask-image: url(../images/navigation/reload.svg);
}

#refreshErrLog.light {
  background: #202124;
}

#eTime {
  text-shadow: 1px 1px 2px rgb(0 0 0 / 10%);
}

/* ---ANIMATIONS---*/

@keyframes unicorn {
  0%,
  100% {
    filter: hue-rotate(0deg);
  }

  50% {
    filter: hue-rotate(360deg);
  }
}

.loader {
  border: 16px solid rgba(54, 54, 60, 0.2);
  border-radius: 50%;
  background: var(--fgColor);
  border-top: 16px solid var(--color);
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
  box-shadow: 0 0 15px 5px var(--color);
}

.zoom-in {
  transform-origin: bottom center;
  animation: animatezoom var(--speed) ease forwards;
}

.shrink {
  transform-origin: bottom center;
  animation: shrink var(--speed) ease forwards;
}

.bubble-in {
  animation: bubblezoom 0.3s ease forwards;
}

.in-out {
  animation: in-out var(--speed) ease forwards;
}

.out-left {
  animation: outleft var(--speed) ease-in-out forwards;
}

.zoom-in-left {
  transform-origin: top left;
  animation: animatezoom var(--speed) ease forwards;
}

.zoom-in-right {
  transform-origin: top right;
  animation: animatezoom var(--speed) ease forwards;
}

.zoom-out-left {
  transform-origin: top left;
  animation: shrink var(--speed) ease forwards;
}

.zoom-out-right {
  transform-origin: top right;
  animation: shrink var(--speed) ease forwards;
}

.slideout {
  animation: slideout var(--speed) ease-in forwards;
}

.open {
  animation: open var(--speed) ease forwards;
}

@keyframes glowing {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 400% 0;
  }
  100% {
    background-position: 0 0;
  }
}

@-webkit-keyframes rainbow {
  0% {
    background-position: 0% 82%;
  }

  50% {
    background-position: 100% 19%;
  }

  100% {
    background-position: 0% 82%;
  }
}

@-moz-keyframes rainbow {
  0% {
    background-position: 0% 82%;
  }

  50% {
    background-position: 100% 19%;
  }

  100% {
    background-position: 0% 82%;
  }
}

@keyframes rainbow {
  0% {
    background-position: 0% 82%;
  }

  50% {
    background-position: 100% 19%;
  }

  100% {
    background-position: 0% 82%;
  }
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 5px 5px var(--color);
  }

  100% {
    box-shadow: 0 0 40px 20px var(--color);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes animate {
  0% {
    opacity: 1;
  }

  50% {
    opacity: 0.2;
  }

  100% {
    opacity: 1;
  }
}

@keyframes scaleZ {
  0% {
    opacity: 0;
    transform: scale(0);
  }

  80% {
    transform: scale(1.07);
  }

  100% {
    opacity: 0.75;
    transform: scale(1);
  }
}

@keyframes expanddown {
  0% {
    transform: scaleY(0);
  }

  100% {
    transform: scaleY(1);
  }
}

@keyframes deScaleZ {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }

  100% {
    opacity: 0;
    transform: scale(1) translateY(350px);
  }
}

@keyframes animatezoom {
  from {
    transform: scale(0);
  }

  to {
    transform: scale(1);
  }
}

@keyframes slideUp {
  from {
    transform: translateY(560px);
  }

  to {
    transform: translateY(0);
  }
}

@keyframes likePanelExpand {
  from {
    transform: scale(0.2);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes bubblezoom {
  0% {
    transform: scale(0);
  }

  50% {
    transform: scale(1.25);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes in-out {
  0% {
    transform: scale(0.5);
    opacity: 0.5;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes outright {
  from {
    opacity: 0;
    transform: translate(0, 0);
  }

  to {
    opacity: 1;
    transform: translate(0, -150%);
  }
}

@keyframes inright {
  0% {
    opacity: 0;
    width: 64px;
  }

  100% {
    opacity: 1;
    width: 50%;
  }
}

@keyframes slide-in {
  0% {
    opacity: 0;
    width: 50%;
  }

  100% {
    opacity: 1;
    width: 100%;
  }
}

@keyframes topdown {
  0% {
    transform: scale(0);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes shrink {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(0);
  }
}

@keyframes slideout {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(150%);
  }
}

@keyframes open {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fade-in {
  from {
    background: rgba(0, 0, 0, 0);
  }

  to {
    background: rgba(0, 0, 0, 0.7);
  }
}

@keyframes fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fade-out {
  from {
    background: rgba(0, 0, 0, 0.7);
  }

  to {
    background: rgba(0, 0, 0, 0);
  }
}

@keyframes sidenav {
  from {
    transform: translateX(-310px);
  }

  to {
    transform: translateX(0);
  }
}

@keyframes sidenavclose {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-310px);
  }
}

.bottom-menu {
  display: none;
  flex-direction: column;
  justify-content: center;
  position: fixed;
  bottom: 65px;
  padding: 20px 15px;
  background: var(--colorTrans);
  backdrop-filter: blur(30px);
  border: var(--l2l-action-border);
  left: 3%;
  width: 94%;
  gap: 11px;
  border-radius: 20px;
  z-index: 999;
  transition: transform var(--speed) ease;
  transform: translateY(0);
  box-shadow: 0px 3px 7px 0px rgb(0 0 0 / 15%);
}

.bottom-menu.light {
  background: var(--modalBG);
}

.bottom-menu-item {
  display: flex;
  color: var(--fontcolor);
  text-align: center;
  background-color: unset;
  backdrop-filter: blur(0px);
  padding: 20px 20px;
  font-size: 16px;
  border-radius: 14px;
  color: var(--buttonColor);
  border: var(--l2l-action-border);
  opacity: 1;
  transition: all var(--speed);
}

.bottom-menu-item:first-child {
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
}

.bottom-menu-item:last-child {
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
}

.ripple-animation {
  animation: ripple-drop 0.4s cubic-bezier(0, 0, 0.3, 1);
}

.new-ripple {
  display: block;
  left: calc(var(--rippleX) - 50px);
  top: calc(var(--rippleY) - 50px);
  width: 100px;
  height: 100px;
  background: var(--color);
  transform: scale(0);
  opacity: 0.6;
  position: absolute;
  border-radius: 50%;
  z-index: 900;
}

.new-ripple-animation {
  animation: ripple-drop 0.4s cubic-bezier(0, 0, 0.3, 1);
}

@keyframes ripple-drop {
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

#reader-container {
  display: none;
  flex-direction: column;
  align-content: center;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  width: var(--width);
  top: var(--iOSPadding);
  height: var(--height);
  border: none;
  border-radius: 0;
  opacity: 1;
  margin: calc(var(--iOSPadding) * -1) 0;
  margin: 0;
}

.details#reader-container {
  max-height: var(--height);
}

#reader {
  top: 0;
  width: 100%;
  position: absolute !important;
  z-index: 1;
}

#result-pill {
  position: absolute;
  top: 50%;
  height: auto;
  background: var(--color);
  width: auto;
  max-width: 90%;
  padding: 8px;
  border-radius: 12px;
  box-shadow: 2px 3px 5px rgb(0 0 0/20%);
  z-index: 2;
}

#result-pill span {
  font-size: 90%;
  color: var(--fontcolor) !important;
}

#result-pill p {
  margin: 0;
}

#reader-button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  height: 90px;
  background: #ddd;
  color: #2c2c32;
  width: 90px;
  z-index: 3;
  bottom: 150px;
  border: 1px solid #aaa;
  border-radius: 50px;
  box-shadow: 0 0 5px 1px rgb(0 0 0 / 25%);
}

#reader-button span {
  width: 44px;
  height: 44px;
  background: #202124;
  mask-image: url(../images/navigation/camera.svg);
  -webkit-mask-image: url(../images/navigation/camera.svg);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
}

#reader-button:hover {
  transition-duration: 0.1s;
  background-color: #3a3a3a;
}

#reader-button:after {
  content: "";
  display: block;
  position: absolute;
  border-radius: 4em;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: background 0.4s;
  box-shadow: 0 0 10px 40px white;
}

#reader-button:active:after {
  box-shadow: 0 0 0 0 white;
  position: absolute;
  border-radius: 4em;
  left: 0;
  top: 0;
  opacity: 1;
  transition: 0s;
}

#reader-stop {
  position: absolute;
  right: 25px;
  height: 20px;
  color: white;
  background: #ecf0f3;
  width: 20px;
  z-index: 3;
  top: calc(15px + var(--iOSPadding));
  border: none;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

#reader-upload {
  display: flex;
  background: #2c2c32;
  color: #ecf0f3;
  position: absolute;
  border: none;
  height: 50px;
  border-radius: 30px;
  bottom: 20px;
  left: 15px;
  width: calc(50% - 25px);
  z-index: 3;
  align-content: center;
  justify-content: center;
  align-items: center;
  font-size: 13.3px;
}

#qr-input-file {
  position: absolute;
  top: 10px;
  width: 100px;
  left: calc(50% - 50px);
  z-index: 3;
}

#qr-shaded-region.found div {
  background-color: green;
}

#qr-shaded-region div:nth-of-type(1) {
  border-radius: 0 10px 10px 0;
}

#qr-shaded-region div:nth-of-type(2) {
  border-radius: 10px 0 0 10px;
}

#qr-shaded-region div:nth-of-type(3) {
  border-radius: 0 10px 10px 0;
}

#qr-shaded-region div:nth-of-type(4) {
  border-radius: 10px 0 0 10px;
}

#qr-shaded-region div:nth-of-type(5) {
  border-radius: 10px 0 10px 10px;
}

#qr-shaded-region div:nth-of-type(6) {
  border-radius: 10px 10px 0 10px;
}

#qr-shaded-region div:nth-of-type(7) {
  border-radius: 0 10px 10px 10px;
}

#qr-shaded-region div:nth-of-type(8) {
  border-radius: 10px 10px 10px 0;
}

#reader-results {
  position: absolute;
  bottom: 0;
  padding: 15px;
  width: 100%;
  height: calc(100% - var(--camHeight));
  color: #ecf0f3;
  background: #000;
  z-index: 2;
  border-radius: 0;
  border-top: 2px solid var(--bgColor);
  transition: height 0.3s ease;
}

#reader-flip,
#reader-torch {
  display: none;
  position: absolute;
  background: #ecf0f3;
  border: none;
  width: 40px;
  height: 40px;
  bottom: 175px;
  z-index: 3;
  mask-size: 75%;
  -webkit-mask-size: 75%;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
}

#reader-flip {
  right: 30px;
  mask-image: url(../images/navigation/flip.png);
  -webkit-mask-image: url(../images/navigation/flip.png);
}

#reader-torch {
  left: 30px;
  mask-image: url(../images/navigation/torch.png);
  -webkit-mask-image: url(../images/navigation/torch.png);
}

#reader-active {
  display: block;
  background: black;
  position: absolute;
  border: none;
  height: 12px;
  width: 12px;
  box-shadow: inset 1px 1px 3px 1px rgb(0 0 0 / 50%);
  border-radius: 50%;
  top: calc(15px + var(--iOSPadding));
  left: 25px;
  z-index: 3;
  transition: background 0.3s ease;
}

#qr-input-file {
  opacity: 0;
}

#errMsg {
  padding: 10px;
}

#errMsg button {
  height: 30px;
  width: 35%;
}

.alert * {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -ms-touch-action: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  touch-action: none;
  user-select: none;
}

.alert *:focus {
  outline: 0;
}

.alert {
  position: fixed;
  display: flex;
  top: 50%;
  left: 50%;
  margin-left: -135px;
  margin-top: -50px;
  width: 270px;
  text-align: center;
  font-family: -apple-system, "Poppins";
  font-size: 14px;
  line-height: 1.4;
  border-radius: 13px;
  overflow: hidden;
  z-index: 999;
  color: var(--buttonColor);
  background-color: var(--modalBG);
  backdrop-filter: blur(6px);
  box-shadow: 5px 5px 10px rgb(0 0 0 / 15%);
  flex-direction: column;
  border: var(--l2l-action-border);
  align-items: center;
  justify-content: center;
}

.alert .inner {
  padding: 15px;
}

.alert .title {
  font-weight: bold;
  font-size: 1rem;
}

.alert .text {
  margin-top: 5px;
}

.alert .button {
  position: relative;
  height: 36px;
  margin-bottom: 15px;
  line-height: 36px;
  font-size: 0.85rem;
  color: var(--darkFontColor);
  overflow: hidden;
  cursor: pointer;
  border: 0;
  font-weight: bold;
  width: 50%;
  border-radius: 15px;
  background: var(--colorTransMedium);
}

#pin-bubble {
  display: none;
  width: 185px;
  opacity: 1;
  padding-top: 0;
  background: var(--oddRow);
  border: 1px solid #35363a;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 1px 2px 5px 0px rgb(0 0 0 / 25%);
  transform-origin: center top;
  transition: all var(--speed) linear;
  animation: topdown var(--speed) ease-in;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

#pin-bubble.light {
  border: 1px solid #ecf0f3;
}

#pin-bubble.midnight {
  border: 1px solid #222;
}

.pin-table-button {
  color: var(--buttonColor);
  width: 100%;
  background: none;
  border: none;
  height: 60px;
  margin: 0;
  border-radius: 0;
  cursor: pointer;
  border-bottom: 1px solid #35363a;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.pin-table-button.light {
  border-bottom: 1px solid #ecf0f3;
}

.pin-table-button.midnight {
  border-bottom: 1px solid #222;
}

.pin-table-button:nth-of-type(5) {
  border: none;
}

.pin-table-button:hover {
  background: var(--color);
  color: var(--fontcolor);
}

#createTable,
#addToList {
  display: none;
  flex-direction: column;
  justify-content: space-evenly;
  flex-direction: column;
  align-items: center;
  padding: 10px;
  width: 100%;
  height: 100%;
}

#createTable span,
#addToList span {
  background: var(--buttonColor);
}

#createTable .maintenance-button,
#addToList .maintenance-button {
  margin: 10px 0;
  width: 100%;
}

.form-divider {
  position: absolute;
  top: 80px;
  padding: 20px;
}

#createTable label,
#addToList label {
  position: absolute;
  display: inline-block;
  font-size: 125%;
  text-align: center;
  top: 25px;
  color: var(--buttonColor);
}

#addToList select {
  margin-bottom: 10px;
}

#custom_0,
#custom_1,
#custom_2,
#custom_3,
#custom_6 {
  display: none;
}

#custom_CS {
  display: none;
  background-color: var(--dark);
  position: absolute;
  left: 25%;
  width: 50%;
  height: 40px;
  top: calc(15px + var(--iOSPadding) + env(safe-area-inset-top));
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--darkFontColor);
}

#upload_photo {
  display: none;
  width: auto;
  position: fixed;
  top: 20px;
  right: 20px;
  background: var(--color);
  border: none;
  appearance: none;
  -webkite-appearance: none;
  padding: 16px;
  mask-image: url(../images/navigation/upload-image.svg);
  -webkit-mask-image: url(../images/navigation/upload-image.svg);
}

#fileToUpload {
  display: none;
}

#info-display,
#info-share,
#close_properties,
#edit_properties {
  padding: 8px;
  background: var(--buttonColor);
  cursor: pointer;
}

#close_properties {
  transform: rotate(0deg);
  transition: transform 0.3s ease;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

#edit_properties {
  mask-image: url(../images/navigation/pencil.svg);
  -webkit-mask-image: url(../images/navigation/pencil.svg);
}

#info-display {
  mask-image: url(../images/navigation/help.svg);
  -webkit-mask-image: url(../images/navigation/help.svg);
}

#info-share {
  mask-image: url(../images/navigation/share.svg);
}

#history-share {
  mask: url(../images/navigation/share.svg) center / contain no-repeat;
}

#history-upload {
  mask: url(../images/navigation/upload-image.svg) center / contain no-repeat;
}

#history-machine-number {
  mask: url(../images/navigation/machine.svg) center / contain no-repeat;
}

#history-share,
#history-upload,
#history-machine-number {
  background: var(--buttonColor);
  padding: 12px;
}

.title_button:has(#history-share),
.title_button:has(#history-upload),
.title_button:has(#history-machine-number) {
  width: 85px;
  height: 32px;
  display: flex;
  font-size: 50%;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  flex-direction: row;
}

#property_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 20px;
}

#property_container h2 {
  background: none;
  color: var(--buttonColor);
  text-decoration: underline;
  text-underline-offset: 6px;
  width: auto;
}

#property_container p {
  display: flex;
  align-items: flex-start;
  padding: 10px;
  border: 1px solid var(--color);
  color: var(--buttonColor);
  border-radius: 12px;
  max-height: 300px;
  overflow: scroll;
  text-align: center;
}

#history_edit_form {
  display: none;
  width: 100%;
  height: auto;
  position: relative;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px 20px 5px;
}

#history_edit_form {
  display: flex;
  padding: 0;
  color: var(--buttonColor);
}

#editImgForm {
  display: none;
}

#history_edit_form input {
  width: 100%;
  border-radius: 8px;
  border: 1px solid var(--colorTrans);
  background: var(--dialog-vertical);
  height: 40px;
  margin-bottom: 6px;
  text-align: center;
}

#history_edit_form label {
  color: var(--buttonColor);
  margin-bottom: 5px;
  width: 100%;
}

#history_edit_form p {
  display: flex;
  width: 100%;
  flex-direction: row;
  justify-content: space-between;
  text-align: center;
  margin: 0;
}

#history_edit_form button {
  display: flex;
  position: relative;
  width: 160px;
  height: 55px;
  background: var(--color);
  color: var(--fontcolor);
  font-weight: bold;
  border-radius: 33px;
  border: none;
  cursor: pointer;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

#history_edit_form button:first-of-type span {
  background: var(--fontcolor);
  margin-right: 5px;
  padding: 14px;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  cursor: pointer;
  mask-image: url(../images/navigation/upload-image.svg);
  -webkit-mask-image: url(../images/navigation/upload-image.svg);
}

#history_edit_form textarea {
  height: 150px;
  border: 1px solid var(--colorTrans);
  color: var(--buttonColor);
  word-wrap: break-word;
  width: 100%;
  padding: 10px;
  border-radius: 30px;
  background: var(--dialog-vertical);
  font-size: 16px;
  text-align: center;
  overflow-y: hidden;
  resize: none;
  margin: 10px 0;
}

.l2l-mn-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bgTrans);
  border: 1px solid var(--colorTrans);
  border-radius: 20px;
  padding: 4px 10px 4px 12px;
  margin: 0 6px 6px 0;
  font-size: 0.85em;
}

.l2l-mn-remove {
  width: auto !important;
  height: auto !important;
  min-width: unset !important;
  background: transparent !important;
  border: none !important;
  border-radius: 50% !important;
  padding: 2px 5px !important;
  font-size: 0.9em;
  cursor: pointer;
  color: var(--fontcolor);
  opacity: 0.6;
}

.l2l-mn-remove:hover {
  opacity: 1;
  background: var(--colorTrans) !important;
}

.sortable-list {
  top: 0;
  display: flex;
  flex-direction: column;
  padding: 15px;
  width: 100%;
  padding: 25px;
  background: none;
  border-radius: 7px;
  padding: 0 0 20px;
  position: relative;
  pointer-events: all;
  overflow: auto;
}

.item {
  left: 0;
  list-style: none;
  display: flex;
  cursor: move;
  background: var(--bgTrans);
  align-items: center;
  border-radius: 12px;
  padding: 8px 12px;
  margin-bottom: 10px;
  border: var(--border);
  justify-content: space-between;
  width: 100%;
  height: 70px;
  overflow: hidden;
}

.sortable-list.light .item {
  background: #fff;
}

.item .inner-details {
  display: flex;
  align-items: center;
}

.item .inner-details section {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color);
  border-radius: 50%;
  width: 48px;
  height: 48px;
  margin-right: 12px;
  border: 1px solid var(--fontcolor);
}

.inner-details-img {
  pointer-events: none;
  padding: 12px;
  background: var(--fontcolor);
}

.item .inner-details span {
  font-size: 0.85rem;
}

.qt-number {
  position: relative;
  display: flex;
  color: var(--color);
  font-weight: bold;
  width: 36px;
  height: 36px;
  top: 0;
  right: 0;
  border-radius: 50%;
  background: 0;
  justify-content: center;
  align-items: center;
}

.item.selected .qt-number {
  background: var(--colorTrans);
  box-shadow: 0 0 2px rgb(0 0 0 / 15%);
}

#indicator {
  display: flex;
  height: 40px;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: 0;
}

.page_button {
  width: 16px;
  height: 16px;
  aspect-ratio: 1 / 1;
  border: none;
  border-radius: 50%;
  margin: 0px 4px;
  background: var(--fontcolor);
}

#myDialog {
  padding: 0;
  text-align: center;
  color: var(--fontcolor) !important;
  background: var(--color);
  border-radius: 24px;
  border: none;
  box-shadow: 0px 0px 5px 2px rgb(0 0 0 / 20%);
}

dialog {
  position: relative;
  width: 85%;
  max-width: 350px;
  padding: 0;
  border-radius: 15px;
  text-align: center;
  border: none;
  box-shadow: 0px 0px 5px 2px rgb(0 0 0 / 20%);
  flex-direction: column;
  justify-content: center;
  align-content: center;
  align-items: center;
  transform: translate3d(0, 0, 0);
  font-family: var(--font);
  transition:
    margin-top 0.3s linear,
    height 0.3s linear,
    max-width 0.3s linear;
  background: var(--fgColor);
  margin: auto;
}

dialog.light {
  background: #fff;
}

dialog[open] {
  animation: animatezoom var(--speed) ease forwards;
}

dialog#clr-picker[open] {
  animation: slideUp var(--speed) ease;
}

dialog#pin-bubble[open] {
  animation: animatezoom 0.2s ease;
}

dialog#searchPanel[open] {
  animation: open var(--speed) ease forwards;
}

dialog#sketchmodal-dialog {
  background: #111112;
  color: #fff;
}
#sketchmodal section {
  background: var(--l2l-action-background);
  padding: 10px;
  border-radius: 10px;
  margin-bottom: 15px;
}

#sketchmodal section h4 {
  background: 0;
  display: flex;
  margin: 0;
  padding: 5px;
  justify-content: space-between;
}

#sketchmodal section .sk-toggle-row {
  margin: 10px 0;
  font-size: 1rem;
  background: var(--l2l-action-background);
  border-radius: 6px;
  padding: 10px;
}

dialog button {
  background: var(--fontcolor);
  color: var(--color);
  font-weight: bold;
  align-self: center;
  width: calc(100% / 2 - 10px);
  margin: 5px;
  height: 40px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  overflow: hidden;
}

#event-dialog form {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 20px;
}

dialog::backdrop {
  background: rgb(0 0 0 / 25%);
  backdrop-filter: blur(6px);
  animation: open 0.3s ease forwards;
  height: 100%;
}

dialog#history_img {
  max-width: 900px;
  max-height: 60%;
  z-index: 100;
  background: var(--modalBG);
  backdrop-filter: blur(10px);
  overflow: hidden;
  box-shadow: 0px 0px 5px 2px rgb(0 0 0 / 20%);
  transition: background ease 0.3s;
}

dialog#history_img div:nth-of-type(2) {
  display: flex;
  overflow: scroll;
  width: 100%;
  padding: 20px;
  height: auto;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}

dialog#history_img {
  max-height: 100%;
  width: 90%;
}

dialog#searchPanel {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  max-width: unset;
  max-height: calc(100% + var(--iOSPadding));
  width: 100%;
  height: calc(100% + var(--iOSPadding));
  border-radius: 0;
  padding: var(--iOSPadding) 5px calc(10px + var(--iOSPadding));
  overflow: hidden;
  background: rgb(73 74 78 / 70%) !important;
  flex-direction: column;
  overscroll-behavior: none;
  position: fixed;
  margin: 0 auto;
  padding-top: env(safe-area-inset-top);
}

dialog#searchPanel.midnight {
  background: rgb(0 0 0 / 10%) !important;
}

dialog#searchPanel.light {
  background: #eeeeee !important;
}

dialog#searchPanel::backdrop {
  background: rgb(0 0 0 / 90%);
  backdrop-filter: blur(4px);
  animation: open 0.3s ease forwards;
}

dialog#pin-bubble::backdrop {
  animation: open 0.2s ease forwards;
  backdrop-filter: blur(0px);
  background: rgb(0 0 0 / 20%);
}

dialog#like-bubble::backdrop {
  background: rgb(0 0 0 / 0%);
  backdrop-filter: none;
  animation: open 0.2s ease forwards;
}

dialog#weather-detail::backdrop {
  background: rgb(0 0 0 / 50%);
  backdrop-filter: blur(7px);
}

dialog#resinfo-dialog button {
  display: flex;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgb(0 0 0 / 15%);
  border: none;
  cursor: pointer;
  justify-content: center;
  align-items: center;
}

.spacer {
  display: block;
  position: relative;
  background: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
}

#universal {
  width: 100%;
  background-color: var(--searchWidget);
  color: #ccc;
  font-size: 16px;
  height: 48px;
  border-radius: 35px;
  text-align: center;
  background-image: url(../images/navigation/search.svg);
  background-repeat: no-repeat;
  background-position: 20px center;
  background-size: 20px 20px;
  border: none;
  appearance: none;
  -webkit-appearance: none;
}

#universal:focus {
  border: 1px solid var(--colorTrans);
  background-image: none;
  transition: 0.1s ease;
}

#remove-event {
  padding: 20px;
}

#remove-event section {
  display: flex;
}

#remove-event section button {
  background: red;
  color: white;
}

#remove-event section button:first-of-type {
  background: grey;
}

@media screen and (max-height: 620px) {
  .sidenav-head {
    height: 175px;
  }

  .topnav-span {
    padding-top: 25px;
  }

  .wrapper {
    overflow-x: hidden;
    overflow-y: auto;
  }

  .user-icon-content {
    width: 360px;
    height: 95%;
    font-size: 24px;
  }
}

@media screen and (max-width: 375px) and (max-height: 667px) {
  :root {
    --iOSPadding: 20px;
  }

  .quick-button {
    font-size: 10px;
  }

  .calendar__top-bar {
    padding: 5px 0;
  }

  .calendar__day {
    height: 10vw;
    padding: 5px;
  }
}

textarea {
  font-family: var(--font);
}

#new_update {
  display: none;
  position: relative;
  width: 20px;
  height: 20px;
  top: -15px;
  right: -15px;
  border-radius: 50%;
  background: var(--darker);
  color: var(--darkerFontColor);
  z-index: -1;
  justify-content: center;
  align-items: center;
  box-shadow: 0 0 5px rgb(0 0 0 / 20%);
}

#apply_update {
  display: none;
  background: var(--colorTrans);
}

#response li button {
  background: none;
  border: none;
  text-decoration: underline;
  font-style: italic;
  font-weight: bold;
  text-underline-offset: 3px;
}

.responding {
  width: 60px;
  height: 30px;
  position: relative;
  justify-self: left;
  padding: 5px;
  background: none;
  border-radius: 30px;
  display: flex;
  align-items: center;
  margin-top: 20px;
}

.typing-dot {
  float: left;
  width: 8px;
  height: 8px;
  margin: 0 4px;
  background: #8d8c91;
  border-radius: 50%;
  opacity: 0;
  animation: loadingFade 1s infinite;
}

.typing-dot:nth-child(1) {
  animation-delay: 0s;
}

.typing-dot:nth-child(2) {
  animation-delay: 0.2s;
}

.typing-dot:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes loadingFade {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0.8;
  }

  100% {
    opacity: 0;
  }
}

#response.light .timestamp,
#response.light .timestamp-user {
  color: #777;
}

#bars {
  display: none;
  justify-content: center;
  align-items: center;
  width: var(--width);
  height: calc(var(--height) - 0px);
  background: var(--modalBG);
  backdrop-filter: blur(4px);
  position: fixed;
  z-index: 999;
}

.bar {
  background: #df0101;
  bottom: 1px;
  height: 3px;
  width: 10px;
  margin: 0px 4px;
  border-radius: 5px;
  animation: sound 0ms -600ms linear infinite alternate;
}

@keyframes sound {
  0% {
    opacity: 0.35;
    height: 3px;
  }

  100% {
    opacity: 1;
    height: 70px;
  }
}

.bar:nth-child(1) {
  left: 1px;
  animation-duration: 424ms;
}

.bar:nth-child(2) {
  left: 15px;
  animation-duration: 383ms;
}

.bar:nth-child(3) {
  left: 29px;
  animation-duration: 357ms;
}

.bar:nth-child(4) {
  left: 43px;
  animation-duration: 408ms;
}

.bar:nth-child(5) {
  left: 57px;
  animation-duration: 350ms;
}

.bar:nth-child(6) {
  left: 71px;
  animation-duration: 377ms;
}

.bar:nth-child(7) {
  left: 85px;
  animation-duration: 391ms;
}

.bar:nth-child(8) {
  left: 99px;
  animation-duration: 369ms;
}

.bar:nth-child(9) {
  left: 113px;
  animation-duration: 437ms;
}

.bar:nth-child(10) {
  left: 127px;
  animation-duration: 392ms;
}

span[name="counter"] {
  font-family: "Orbitron";
  color: white;
}

button[name="run"] {
  background-color: #42c8ff;
  position: absolute;
  width: 30px;
  height: 30px;
  aspect-ratio: 1/1;
  bottom: 28px;
  right: 10px;
  border: none;
  cursor: pointer;
  -webkit-mask-image: url(../images/navigation/mic.svg);
  mask-image: url(../images/navigation/mic.svg);
}

button[name="menu"] {
  background-color: #ececec;
  position: absolute;
  width: 30px;
  height: 30px;
  aspect-ratio: 1/1;
  bottom: 25px;
  left: 0;
  border: none;
  cursor: pointer;
  -webkit-mask-image: url(../images/navigation/gear.svg);
  mask-image: url(../images/navigation/gear.svg);
}

.setting-button {
  position: relative;
  top: 0;
  height: 40px;
  padding: 4px 15px;
  width: 80%;
  color: var(--fontcolor);
  background-color: var(--color);
  border: none;
  border-radius: 10px;
  -webkit-appearance: none;
  appearance: none;
  text-align: center;
}

#chat-settings {
  display: none;
  gap: 5px;
  background: rgb(0 0 0 / 30%);
  color: #fff;
  border-radius: 25px;
  height: 425px;
  transform: scale(0);
}

#chat-settings h2 {
  color: #fff;
}

#chat-settings span {
  position: absolute;
  right: 30px;
}

.generated {
  width: -webkit-fill-available;
  border-radius: 12px;
  width: 100%;
}

.textarea {
  position: absolute;
  right: 0;
  bottom: 25px;
  font-family: "Poppins";
  color: white;
  font-size: initial;
  display: flex;
  height: 45px;
  width: 85%;
  background: #35363a;
  border-radius: 50px;
  overflow: hidden;
  border: none;
  resize: none;
  padding: 10px 50px 10px 20px;
  transition: height 0.2s;
}

.textarea:focus {
  border: none;
  outline: none;
}

.textarea[contenteditable]:empty::before {
  content: "Type a question...";
  color: gray;
}

tr {
  user-select: none !important;
  -webkit-user-select: none;
}

#history_pop,
#history_edit {
  display: none;
  top: var(--iOSPadding);
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 0;
  z-index: -1;
  border: none;
  outline: none;
  overflow: hidden;
}

#history_edit {
  max-width: 600px;
  max-height: 90%;
}

#edit_form {
  position: relative;
  padding: 20px;
  width: 100%;
  overflow: auto;
  max-height: calc(var(--height) - 210px);
  outline: none;
  color: var(--fontcolor);
}

#log-entry {
  background: var(--modalBG);
  color: var(--buttonColor);
  backdrop-filter: blur(12px);
}

#log_entry_title_bar,
#history_pop_title_bar,
#img_data_title_bar,
#edit_title {
  display: flex;
  position: sticky;
  justify-content: space-between;
  align-items: center;
  top: 0;
  width: 100%;
  height: 70px;
  font-weight: bold;
  font-size: 1.25rem;
  background: #2a2a2a;
  color: var(--buttonColor);
}

#history_pop.light > #history_pop_title_bar,
#history_edit.light > #edit_title {
  background: var(--color);
  color: var(--fontcolor);
}

#history_pop.midnight > #history_pop_title_bar,
#history_edit.midnight > #edit_title {
  background: #000;
  color: #fff;
}

#log_entry_title_bar {
  background: 0;
}

#log_entry_title_bar div,
#history_pop_title_bar div {
  display: flex;
  position: relative;
  width: auto;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  left: 10px;
}

.title_button,
.nav_button {
  display: flex;
  position: relative;
  text-indent: 5px;
  width: auto;
  color: #fff;
  height: 32px;
  gap: 0 6px;
  padding: 0 12px;
  font-weight: bold;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: flex-start;
  background: var(--dialog-info);
  border-radius: 20px;
  border: none;
  cursor: pointer;
  z-index: 2;
}

.nav_button {
  position: fixed;
  top: calc(var(--iOSPadding) + 20px);
  justify-self: end;
  background: var(--theme-color-dark);
}

#history_pop.light > div > .title_button,
#history_edit.light > div > .title_button,
#history_pop.light > div > div > .title_button,
#history_edit.light > div > div > .title_button {
  color: var(--fontcolor);
  background: var(--dark);
}

.close_maintenance,
#close_entry,
#close_history,
#close_edit_history {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  padding: 0px;
  align-items: center;
  justify-content: center;
  border: none;
  right: 10px;
}

#close_entry {
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
  background: var(--buttonColor);
  width: 36px;
  height: 36px;
}

.close_maintenance {
  display: flex;
  background: var(--dark) !important;
  filter: unset !important;
  position: absolute;
  top: calc(var(--iOSPadding) + 20px + env(safe-area-inset-top));
  right: 15px;
  width: 36px;
  height: 36px;
}

#entry_container,
#history_container {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

#history_pop #history_container {
  background: #333;
}

#history_pop.light #history_container {
  background: #fff;
}

#history_pop.midnight #history_container {
  background: #000;
}

#Tab3.wallpapers {
  background-image: var(--wallpaper);
  background-size: cover;
}

#custom_images {
  display: flex;
  flex-direction: row;
  padding: 0 10px;
  gap: 20px;
}

#custom_images img {
  display: block;
  margin: 10px auto;
  border-radius: 8px;
  max-width: 100%;
  aspect-ratio: 1/1;
  width: 512px;
}

#custom_images img#nothere {
  display: block;
  margin: 100px auto 60px;
  border-radius: 12px;
  max-width: 100%;
  aspect-ratio: unset;
  width: unset;
  background: var(--theme-color);
}

#entry-block {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  padding: 10px;
  gap: 10px;
  align-items: stretch;
  color: var(--buttonColor);
}

#info-block {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
  background: none;
  font-size: 70%;
  justify-content: center;
  align-items: stretch;
  align-content: stretch;
  height: auto;
  max-height: 540px;
  padding: 10px;
  width: 100%;
  border-radius: 8px;
}

#info-block div {
  display: flex;
  justify-content: space-evenly;
  width: calc(50% - 5px);
  background: var(--dialog-vertical);
  border-radius: 10px;
  padding: 10px;
  flex-direction: column;
  color: var(--buttonColor);
  word-break: break-word;
}

#info-block div:last-of-type {
  width: 100%;
}
#info-block div:nth-of-type(7) {
  display: none;
}

#entry-block h1,
#info-block h1 {
  display: block;
  align-self: center;
  color: var(--buttonColor);
  text-underline-offset: 4px;
  text-shadow: var(--text-shadow);
  margin: 0;
  text-decoration: underline;
  font-size: 1.2rem;
}

#info-block h1 {
  color: var(--color);
}

#entry-block div {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-radius: 8px;
  gap: 5px;
  padding: 10px;
  border: var(--l2l-action-border);
  align-items: center;
}

section#entry-block div:last-of-type {
  width: 100%;
  border: 0;
  background: 0;
}

#entry-block div strong,
#info-block div strong {
  color: var(--color);
  border-radius: 8px;
  padding: 5px 10px;
  text-transform: uppercase;
  font-weight: bold;
}

#history_pop section {
  overflow: scroll;
}

#history_pop section img {
  display: block;
  border-radius: 12px;
  max-width: 65%;
  aspect-ratio: unset;
  border: 0;
  filter: drop-shadow(2px 4px 1px rgb(0 0 0 /20%));
}

#close_properties,
#edit_row,
#close_edit {
  height: 16px;
  width: 16px;
  background: #fff;
}

#history_pop.light > div > button > #close_properties,
#history_pop.light > div > button > #edit_row,
#history_edit.light > div > button > #close_edit,
#history_pop.light > div > div > button > #edit_row {
  background: var(--fontcolor);
  color: var(--fontcolor);
}

#close_properties,
#close_edit {
  transform: rotate(0deg);
  transition: transform 0.3s ease;
  mask-image: url(../images/navigation/cross.svg);
  -webkit-mask-image: url(../images/navigation/cross.svg);
}

#edit_row {
  mask-image: url(../images/navigation/pencil.svg);
  -webkit-mask-image: url(../images/navigation/pencil.svg);
}

#info-display {
  mask-image: url(../images/navigation/help.svg);
  -webkit-mask-image: url(../images/navigation/help.svg);
}

#info-share {
  mask-image: url(../images/navigation/share.svg);
  -webkit-mask-image: url(../images/navigation/share.svg);
}

#history_pop.details {
  max-width: 900px;
  opacity: 1;
}

#img_data {
  display: flex;
  flex-direction: column;
  position: absolute;
  text-align: left;
  list-style: none;
  padding: 0;
  border-radius: 15px;
  border: 0;
  z-index: 0;
  overflow: hidden;
  width: 90%;
  margin: auto;
  background: var(--modalBG);
  backdrop-filter: blur(10px);
  box-shadow: 2px 3px 5px 2px rgb(0 0 0 / 15%);
}

#img_data_title_bar,
#img_history_title_bar {
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid var(--modalBG);
  padding: 0 5px;
  color: var(--buttonColor);
}

#img_history_title_bar {
  display: flex;
  width: 100%;
  height: 70px;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

#close_img_data,
#close_img_history,
#history_img_info {
  height: 38px;
  width: 38px;
  padding: 0;
  justify-content: center;
  color: var(--fontcolor);
  background: transparent;
  backdrop-filter: blur(1px);
}

#close_img_data span,
#close_img_history span {
  width: 18px;
  height: 18px;
  background: var(--buttonColor);
  mask-image: url(../images/navigation/cross.svg);
}

#history_img_info span {
  width: 32px;
  height: 32px;
  background: var(--buttonColor);
  mask-image: url(../images/navigation/info.svg);
}

#img_data.light #close_img_data span,
#history_img.light #close_img_history span,
#history_img.light #history_img_info span {
  background: var(--fontcolor);
}

#img_data section {
  display: flex;
  flex-direction: column;
  width: 100%;
}

#img_data li {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 15px;
  height: 60px;
  background: transparent;
  overflow: hidden;
  justify-content: flex-start;
  align-items: center;
  border-bottom: 1px solid var(--modalBG);
}

#img_data li:last-of-type {
  border-bottom: 0;
}

#img_data li strong {
  display: flex;
  width: 50%;
  text-shadow: 1px 1px 0px rgb(0 0 0 / 15%);
  height: 100%;
  font-size: 100%;
  color: var(--buttonColor);
  background: transparent;
  backdrop-filter: blur(1px);
  border-right: 1px solid var(--modalBG);
  justify-content: center;
  align-items: center;
}

#img_data li p {
  padding: 0;
  margin: 0;
  width: 70%;
  font-size: 100%;
  word-break: break-all;
  padding-top: 8px;
  text-transform: uppercase;
}

#modal-image {
  display: flex;
  width: 100%;
  height: 100%;
  border-radius: 15px;
}

@media screen and (min-width: 600px) {
  #magazine-form {
    max-width: 800px;
    margin: auto;
    padding: 20px;
    height: auto;
    background: var(--form);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #777;
  }

  #current-page {
    display: none;
  }

  #help {
    padding: 20px;
    top: calc(var(--iOSPadding) + 15px);
    width: 30px;
    height: 30px;
  }

  #help-pop {
    max-width: 35%;
  }

  #entry_container,
  #history_container {
    flex-direction: row;
    align-items: normal;
    max-height: 540px;
  }

  #custom_images {
    flex-direction: column;
  }
}

@media screen and (min-width: 680px) {
  input#history_search {
    max-width: 350px;
  }
}

@media screen and (max-height: 500px) {
  #help-pop {
    max-width: 50%;
    top: 0;
  }
}

@media screen and (max-width: 600px) {
  .navbar.responsive .icon {
    position: absolute;
    right: 0;
    top: 0;
  }

  .navbar.responsive a {
    float: none;
    display: block;
    text-align: left;
  }

  #history_pop section#custom_images {
    border-radius: 10px;
    margin-top: 10px;
    width: calc(100% - 20px);
    background: transparent;
    backdrop-filter: blur(5px);
  }

  #custom-images {
    flex-direction: row;
    gap: 0 20px;
    margin: auto;
  }

  #entry_container,
  #history_container {
    padding: 0;
  }
}

#fileBrowserModal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  align-items: center;
  justify-content: center;
  padding: 0;
}

#fileBrowserModal.active {
  display: flex;
}

.file-browser-desktop-window {
  display: none;
  padding: 0;
}

.browser-modal-content {
  background: var(--dialog-info);
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: unset;
  display: flex;
  flex-direction: column;
}

.browser-modal-content.light {
  background: #ecf0f3;
}

.browser-modal-content.midnight {
  background: #000;
}

.browser-header-container {
  background: var(--color);
  z-index: 2;
  padding-top: env(safe-area-inset-top);
}

.browser-modal-header {
  display: flex;
  justify-content: space-between;
  position: relative;
  color: var(--fontcolor);
  padding: calc(var(--iOSPadding) + 15px) 10px 10px;
  align-items: center;
  z-index: 2;
  height: calc(65px + var(--iOSPadding)) !important;
}

.browser-header-actions-left {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.browser-modal-header h2 {
  margin: 0;
  font-size: 120%;
  color: var(--fontcolor);
  max-width: 50%;
  position: relative;
  left: -15px;
}

.browser-modal-close {
  background: var(--dark);
  position: relative;
  border: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--darkFontColor);
  /* box-shadow: 1px 1px 2px rgb(0 0 0 / 0.1); */
}

.browser-new-window-btn {
  background: var(--dark);
  position: relative;
  border: 1px solid var(--darker);
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  color: var(--darkFontColor);
  box-shadow: 1px 1px 2px rgb(0 0 0 / 0.1);
}

.browser-new-window-btn::before {
  content: "";
  width: 34px;
  height: 34px;
  background: var(--fontcolor);
  mask: url(../images/navigation/new-window.svg) center / contain no-repeat;
  -webkit-mask: url(../images/navigation/new-window.svg) center / contain
    no-repeat;
}

.browser-modal-close span {
  width: 18px;
  height: 18px;
  background: var(--fontcolor);
  mask: url(../images/navigation/cross.svg) center / contain no-repeat;
}

.browser-breadcrumb-bar {
  display: flex;
  position: relative;
  align-items: center;
  gap: 8px;
  padding: 25px 12px;
  z-index: 2;
  box-shadow: 0px 5px 3px rgb(0 0 0 / 10%);
  height: 65px !important;
}

.browser-action-buttons {
  display: flex;
  align-items: center;
  column-gap: 10px;
}

.browser-upload-btn,
.private-folder {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--dark);
  cursor: pointer;
  flex-shrink: 0;
  /* box-shadow: 1px 1px 2px rgb(0 0 0 / 0.1); */
}

.browser-upload-btn::before,
.private-folder::before {
  display: flex;
  content: "";
  position: relative;
  inset: 0;
  margin: auto;
  background: var(--fontcolor);
  width: 16px;
  height: 16px;
  color: var(--buttonColor);
  mask: url(../images/navigation/plus.svg) center / contain no-repeat;
}

.private-folder::before {
  mask: url(../images/navigation/private-folder.svg) center / contain no-repeat;
  height: 24px;
  width: 24px;
}

.private-folder.return-to-docs::before {
  mask: url(../images/navigation/return-home.svg) center / contain no-repeat;
}

.browser-favorites-panel {
  display: none;
}

.browser-favorites-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--buttonColor);
  padding: 2px 6px 6px;
  margin: 0;
}

.browser-favorites-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.browser-favorites-item {
  display: flex;
  align-items: center;
  border-radius: 8px;
  height: 45px;
  width: 100%;
  overflow: hidden;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  transition: background 0.15s ease;
}

.browser-favorites-item:hover {
  background: var(--colorTransDark);
}

.browser-favorites-item-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px;
  min-width: 0;
  border: none;
  background: 0;
  cursor: pointer;
  font-size: 90%;
  font-weight: 700;
  color: var(--buttonColor);
  text-align: left;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.browser-favorites-item-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: var(--buttonColor);
  -webkit-mask: url(../images/navigation/folder-open.svg) center / contain
    no-repeat;
  mask: url(../images/navigation/folder-open.svg) center / contain no-repeat;
}

.browser-favorites-item-remove {
  margin-left: auto;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.15s;
  position: relative;
}

.browser-favorites-item-remove::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 10px;
  right: 10px;
  height: 10px;
  background: var(--fontcolor);
  -webkit-mask: url(../images/navigation/cross.svg) center / contain no-repeat;
  mask: url(../images/navigation/cross.svg) center / contain no-repeat;
}

.browser-favorites-item:hover .browser-favorites-item-remove {
  opacity: 0.6;
}

.browser-favorites-item-remove:hover {
  opacity: 1 !important;
}

.browser-favorites-item:hover .browser-favorites-item-nav {
  color: var(--fontcolor);
}

.browser-favorites-item:hover .browser-favorites-item-icon {
  background: var(--fontcolor);
}

.browser-favorites-empty {
  font-size: 0.75rem;
  color: var(--darkerFontColor);
  padding: 8px 6px;
  margin: 0;
  opacity: 0.6;
  display: none;
}

.browser-favorites-panel.is-empty .browser-favorites-empty {
  display: block;
}

.browser-favorites-panel.drag-over {
  background: var(--colorTrans);
  border-radius: 0 0 0 16px;
  outline: 2px dashed var(--color);
  outline-offset: -4px;
}

#browserContent.drag-over-external {
  outline: 2px dashed var(--color);
  outline-offset: -6px;
  border-radius: 8px;
  background: var(--colorTrans);
}

/* ── Floating context menu ── */
#browserContextMenu {
  display: none;
  position: fixed;
  z-index: 99999;
  min-width: 180px;
  background: var(--bgTrans);
  border: var(--l2l-action-border);
  border-radius: 12px;
  box-shadow: 0 8px 28px rgb(0 0 0 / 35%);
  padding: 6px;
  flex-direction: column;
  gap: 2px;
  animation: animatezoom 0.1s ease-out;
}

#browserContextMenu.is-open {
  display: flex;
}

.browser-context-menu-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--buttonColor);
  padding: 4px 10px 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}

.browser-context-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--buttonColor);
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  width: 100%;
  transition: background 0.12s ease;
}

.browser-context-menu-item:hover {
  background: var(--colorTransDark);
  color: var(--fontcolor);
}

.browser-context-menu-item:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.browser-context-menu-divider {
  height: 1px;
  background: var(--dialog-info);
  margin: 4px 6px;
}

/* Context menu icon masks */
.bcm-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: var(--buttonColor);
  display: inline-block;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.browser-context-menu-item:hover .bcm-icon {
  background: var(--fontcolor);
}

.bcm-rename {
  -webkit-mask-image: url(../images/navigation/rename1.png);
  mask-image: url(../images/navigation/rename1.png);
}
.bcm-copy {
  -webkit-mask-image: url(../images/navigation/cut.svg);
  mask-image: url(../images/navigation/cut.svg);
}
.bcm-paste {
  -webkit-mask-image: url(../images/navigation/paste.png);
  mask-image: url(../images/navigation/paste.png);
}
.bcm-delete {
  -webkit-mask-image: url(../images/navigation/trash.svg);
  mask-image: url(../images/navigation/trash.svg);
}

.bcm-edit {
  -webkit-mask-image: url(../images/navigation/pencil.svg);
  mask-image: url(../images/navigation/pencil.svg);
}
.bcm-bookmark {
  -webkit-mask-image: url(../images/navigation/star.png);
  mask-image: url(../images/navigation/star.png);
}
.bcm-favorite {
  -webkit-mask-image: url(../images/navigation/star.png);
  mask-image: url(../images/navigation/star.png);
}
.bcm-batch {
  -webkit-mask-image: url(../images/navigation/multi-select.svg);
  mask-image: url(../images/navigation/multi-select.svg);
}
.bcm-selectall {
  -webkit-mask-image: url(../images/navigation/select-all.svg);
  mask-image: url(../images/navigation/select-all.svg);
}
.bcm-clear {
  -webkit-mask-image: url(../images/navigation/select-none.svg);
  mask-image: url(../images/navigation/select-none.svg);
}
.bcm-refresh {
  -webkit-mask-image: url(../images/navigation/refresh.svg);
  mask-image: url(../images/navigation/refresh.svg);
}

.bcm-send-chat {
  -webkit-mask-image: url(../images/navigation/chat.svg);
  mask-image: url(../images/navigation/chat.svg);
}

.bcm-download {
  -webkit-mask-image: url(../images/navigation/download.svg);
  mask-image: url(../images/navigation/download.svg);
}

.browser-upload-actions-content {
  max-width: 360px;
}

/* ── Send-in-Chat modal ──────────────────────────────────────────────────── */
.send-in-chat-dialog-content {
  max-width: 480px;
}

.send-in-chat-dialog-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 0 4px;
}

.send-chat-files-preview {
  margin: 0;
  font-size: 0.8rem;
  opacity: 0.75;
  padding: 8px 12px;
  background: var(--bgColor);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  word-break: break-all;
  max-height: 64px;
  overflow-y: auto;
}

.send-chat-room-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 265px;
  overflow-y: auto;
  border: 0;
  border-radius: 10px;
  padding: 0px 0;
  background: 0;
}

.send-chat-room-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  padding: 10px 12px;
  border: var(--l2l-action-border);
  border-radius: 8px;
  background: var(--bgTrans);
  color: var(--buttonColor);
  text-align: left;
  cursor: pointer;
  transition: background 0.14s;
  font-family: var(--font);
}

.send-chat-room-item:hover {
  background: var(--colorTrans);
}

.send-chat-room-item.is-selected {
  background: var(--colorTransMedium);
  box-shadow: inset 0 0 0 2px var(--color);
}

.send-chat-room-name {
  font-weight: 600;
  font-size: 0.88rem;
}

.send-chat-room-preview {
  font-size: 0.76rem;
  opacity: 0.65;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.send-chat-loading,
.send-chat-empty,
.send-chat-error {
  padding: 16px 12px;
  margin: 0;
  font-size: 0.85rem;
  text-align: center;
  opacity: 0.7;
}

.send-chat-error {
  color: #ff9d9d;
}

.send-chat-message-input {
  width: 100%;
  min-height: 72px;
  padding: 10px 12px;
  border: var(--l2l-action-border);
  border-radius: 10px;
  background: var(--l2l-action-background);
  color: var(--buttonColor);
  font-family: var(--font);
  font-size: 0.88rem;
  resize: vertical;
  box-sizing: border-box;
}

.send-chat-message-input::placeholder {
  opacity: 0.5;
}

.send-chat-new-btn {
  padding: 0 16px;
  height: 42px;
  width: 50%;
  border: 1px solid var(--colorTrans);
  border-radius: 10px;
  background: var(--colorTrans);
  color: var(--buttonColor);
  font-family: var(--font);
  font-size: 0.88rem;
  cursor: pointer;
  transition: background 0.14s;
}

.send-chat-new-btn:hover {
  background: var(--colorTrans);
}

/* ── Note Background modal ─────────────────────────────────────────────────── */
.note-bg-dialog-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 0 4px;
}
.note-bg-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
  background: 0;
  border-radius: 10px;
  background: var(--bgTrans);
  border: var(--l2l-action-border);
}

#note-bg-tint {
  background: 0;
}

#note-bg-tint .center {
  right: 30px;
}

#note-bg-color-toggle {
  background: 0;
}

#note-bg-color-toggle .center {
  right: 30px;
}

.note-bg-color-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.note-bg-color-label {
  font-size: 0.88rem;
  flex: 1;
}

.note-bg-color-input {
  width: 38px;
  height: 38px;
  padding: 2px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}

.note-bg-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.note-bg-swatch {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition:
    transform 0.12s,
    border-color 0.12s;
  flex-shrink: 0;
}

.note-bg-swatch:hover {
  transform: scale(1.15);
}

.note-bg-swatch.is-selected {
  border-color: var(--color);
  transform: scale(1.12);
}

.note-bg-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 8px;
  max-height: 280px;
  overflow-y: auto;
  padding-left: 10px;
  align-items: center;
}

.note-bg-thumb {
  width: 100%;
  height: 80%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  transition:
    border-color 0.14s,
    transform 0.12s;
}

.note-bg-thumb:hover {
  transform: scale(1.04);
}
.note-bg-thumb.is-selected {
  border-color: var(--color);
}

.note-bg-loading {
  padding: 16px;
  margin: 0;
  font-size: 0.85rem;
  text-align: center;
  opacity: 0.7;
}

.note-bg-dialog-content .btn-confirm {
  width: auto;
}

.btn-small {
  padding: 5px 14px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  background: var(--colorTrans);
  color: var(--buttonColor);
  font-family: var(--font);
  font-size: 0.82rem;
  cursor: pointer;
  transition: background 0.14s;
}

.btn-small:hover {
  background: var(--colorTransMedium);
}

.browser-upload-actions-body {
  display: flex;
  gap: 12px;
}

.browser-upload-action-btn {
  width: 50%;
  height: 100px;
  border: var(--border);
  border-radius: 10px;
  background: var(--color);
  color: var(--fontcolor);
  padding: 14px 16px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.2s ease,
    transform 0.2s ease;
  box-shadow: 1px 2px 5px rgb(0 0 0 / 15%);
}

.browser-upload-action-btn:hover {
  background: var(--dark);
  transform: translateY(-2px);
}

.browser-upload-actions-body button:nth-of-type(1):before,
.browser-upload-actions-body button:nth-of-type(2):before {
  content: "";
  display: block;
  left: 0;
  top: 0;
  position: relative;
  margin: auto;
  background: var(--fontcolor);
  width: 50px;
  height: 50px;
  color: var(--buttonColor);
}

.browser-upload-actions-body button:nth-of-type(1):before {
  -webkit-mask: url(../images/navigation/add-folder.svg) center / contain
    no-repeat;
  mask: url(../images/navigation/add-folder.svg) center / contain no-repeat;
}

.browser-upload-actions-body button:nth-of-type(2):before {
  -webkit-mask: url(../images/navigation/cloud-upload.svg) center / contain
    no-repeat;
  mask: url(../images/navigation/cloud-upload.svg) center / contain no-repeat;
}

.browser-upload-actions-body button:nth-of-type(1):after {
  content: "New Folder";
}

.browser-upload-actions-body button:nth-of-type(2):after {
  content: "Upload Files";
}

#browserBreadcrumb {
  padding: 0.5px 4px 0 4px;
  color: var(--fontcolor);
  background: var(--dark);
  border: var(--l2l-action-border);
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  max-height: 40px;
  height: 40px;
  overflow: scroll;
  flex: 1;
  min-width: 0;
  gap: 0 2px;
  scroll-behavior: smooth;
  border-radius: 22px;
}

.breadcrumb-item {
  display: flex;
  position: relative;
  top: -0.5px;
  height: 40px;
  cursor: pointer;
  padding: 0px 10px;
  border-radius: 26px;
  color: var(--fontcolor);
  font-weight: 500;
  background: var(--color);
  align-items: center;
  font-size: 85%;
  max-height: 30px;
  justify-content: center;
  transition: all 0.3s ease;
  text-wrap-mode: nowrap;
  /* box-shadow: 1px 1px 2px rgb(0 0 0 / 0.1); */
}

.breadcrumb-item.root {
  border: 0;
}

.breadcrumb-item.root span {
  width: 24px;
  height: 24px;
  background: var(--fontcolor);
  mask: url(../images/navigation/home2.svg) center / contain no-repeat;
}

.breadcrumb-separator {
  display: flex;
  position: relative;
  padding: 8px;
  background: var(--fontcolor);
  mask-image: url(../images/navigation/angle-small-right.svg);
  scale: 1.2;
}

.browser-header-container.rgb-glow-effect
  .browser-modal-header
  #browserViewToggleBtn,
.browser-header-container.rgb-glow-effect
  .browser-modal-header
  #browserViewToggleBtn
  .view-toggle-thumb,
.browser-header-container.rgb-glow-effect
  .browser-modal-header
  .browser-modal-close,
.browser-header-container.rgb-glow-effect
  .browser-breadcrumb-bar
  #browserBreadcrumb,
.browser-header-container.rgb-glow-effect
  .browser-breadcrumb-bar
  #browserBreadcrumb
  #browserUploadBtn,
.browser-header-container.rgb-glow-effect
  .browser-breadcrumb-bar
  #browserBreadcrumb
  .breadcrumb-item,
.rgb-glow-effect .browser-modal-header button.drag-minimize,
.rgb-glow-effect .browser-modal-header button.drag-maximize,
.rgb-glow-effect .browser-new-window-btn,
.rgb-glow-effect .browser-upload-btn,
.rgb-glow-effect .private-folder {
  background: rgb(0 0 0 / 25%);
  border: 0;
}

.browser-header-container.rgb-glow-effect
  .browser-modal-header
  #browserViewToggleBtn
  .view-toggle-thumb {
  top: 4px;
}

#browserContent {
  padding: 40px 25px;
  overflow-y: auto;
  flex: 1;
}

.browser-inline-preview {
  width: min(960px, calc(100vw - 24px));
  max-width: 960px;
  height: revert;
  max-height: 85vh;
  display: none;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 12px;
  padding: 14px;
  border: 0;
  border-radius: 14px;
  background: var(--modalBG) !important;
  backdrop-filter: blur(5px);
  color: var(--buttonColor);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

dialog.browser-inline-preview[open] {
  display: flex;
}

.browser-inline-preview::backdrop {
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
}

.browser-inline-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.browser-inline-preview-header p {
  margin: 0;
  font-size: 0.95rem;
  font-weight: bold;
  word-break: break-word;
}

.browser-inline-preview-close {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: var(--modalBG);
  backdrop-filter: blur(1px);
  cursor: pointer;
  position: relative;
  flex: 0 0 auto;
}

.browser-inline-preview-close::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  background: var(--buttonColor);
  -webkit-mask: url(../images/navigation/cross.svg) center / contain no-repeat;
  mask: url(../images/navigation/cross.svg) center / contain no-repeat;
}

.browser-inline-preview-body {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 220px;
  max-height: calc(85vh - 96px);
  aspect-ratio: 16 / 9;
  flex: 0 1 auto;
  border-radius: 10px;
  overflow: hidden;
}

#browserInlinePreviewVideo {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  border: 0;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

@media (max-width: 640px) {
  .browser-inline-preview-body {
    min-height: 180px;
  }
}

.browser-tools {
  display: none;
  gap: 15px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  flex-direction: row;
  width: 100%;
}

.browser-tools button[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

.browser-tools .browser-icon-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 30%;
  height: 55px;
  position: relative;
  gap: 5px;
  background: var(--bgColor);
  border: var(--l2l-action-border);
  color: var(--buttonColor);
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;
  font-size: 0.7rem;
  transition: all 0.2s ease;
  padding: 0;
}

.browser-tools .browser-icon-btn span {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  background: var(--buttonColor);
}

.browser-tools #browserRenameBtn span {
  mask: url(../images/navigation/rename.svg) center / contain no-repeat;
}
.browser-tools #browserCopyBtn span {
  mask: url(../images/navigation/cut.svg) center / contain no-repeat;
}
.browser-tools #browserPasteBtn span {
  mask: url(../images/navigation/paste.png) center / contain no-repeat;
}
.browser-tools #browserDeleteBtn span {
  mask: url(../images/navigation/trash.svg) center / contain no-repeat;
}
.browser-tools #browserRefreshBtn span {
  mask: url(../images/navigation/reload.png) center / contain no-repeat;
}
.browser-tools #browserMultiSelectBtn span {
  mask: url(../images/navigation/multi-select.svg) center / contain no-repeat;
}
.browser-tools #browserBookmarkPdfBtn span {
  mask: url(../images/navigation/favorite.png) center / contain no-repeat;
}
.browser-tools #browserSelectAllBtn span {
  mask: url(../images/navigation/select-all.svg) center / contain no-repeat;
}
.browser-tools #browserClearAllBtn span {
  mask: url(../images/navigation/select-none.svg) center / contain no-repeat;
}

.browser-tools #browserSendChatBtn span {
  mask: url(../images/navigation/chat.svg) center / contain no-repeat;
}
.browser-tools #browserDownloadBtn span {
  mask: url(../images/navigation/download.svg) center / contain no-repeat;
}
.browser-tools #browserEditSpreadsheetBtn span {
  mask: url(../images/navigation/pencil.svg) center / contain no-repeat;
}

#browserRefreshBtn {
  display: none;
}

.browser-tools .browser-bulk-tool-btn[aria-pressed="true"] {
  background-color: var(--color);
  color: var(--fontcolor);
  border: 1px solid var(--dark);
  box-shadow: inset 0 0 0 1px rgb(0 0 0 / 25%);
}

.browser-tools .browser-bulk-tool-btn[aria-pressed="true"] span {
  background: var(--fontcolor);
}

.browser-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 35px 30px;
  transition: gap 0.1s linear;
}

.browser-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: gap 0.1s linear;
}

.browser-list .browser-item {
  display: flex;
  align-items: stretch;
  border-radius: 8px;
  overflow: hidden;
  height: 80px;
  max-width: 100%;
  padding: unset !important;
  border: var(--border);
}

.browser-list .browser-item:hover {
  transform: none;
}

.browser-list .browser-item-thumbnail {
  width: 80px;
  min-width: 80px;
  height: auto;
  left: 0;
  top: 0;
  margin-top: 0;
  border-radius: 0;
  align-items: center;
  justify-content: center;
  background: var(--color);
}

.browser-list .browser-item-thumbnail::before {
  display: none;
}

.browser-list .browser-item-thumbnail.browser-item-file {
  height: auto;
  margin-top: 0;
  border-radius: 0;
}

.browser-list .browser-item-thumbnail.browser-item-file span {
  box-shadow: none;
}

.browser-list .browser-item-thumbnail.browser-item-image {
  height: auto;
  min-height: 76px;
  border-radius: 0;
}

.browser-list .browser-file-icon {
  border-radius: 0;
  padding: 6px;
}

.browser-list .browser-item-info {
  margin-top: 0;
  border-radius: 0;
  display: flex;
  min-height: 72px;
  width: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  background: var(--documentColor);
  color: var(--buttonColor);
}

.browser-list
  .browser-item
  .browser-item-thumbnail.browser-item-file
  ~ .browser-item-info {
  border-radius: 0;
}

.browser-item {
  cursor: pointer;
  transition: height 0.1s linear;
  border-radius: 14px;
  max-width: 100%;
  overflow: visible;
  user-select: none !important;
  -webkit-user-select: none !important;
  height: fit-content;
}

.browser-item[data-type="dir"]:hover {
  box-shadow: 2px 2px 17px 0px var(--darker);
  transform: translateY(-3px);
}

.browser-item[data-type="file"]:has(span.browser-file-icon-pdf):hover {
  box-shadow: 0 -5px 30px 15px rgb(255 0 0 / 15%);
  transform: translateY(-3px);
}

.browser-item[data-type="file"]:has(span.browser-file-icon-xls):hover {
  box-shadow: 0 -5px 30px 15px rgb(56 156 91 / 15%);
  transform: translateY(-3px);
}

.browser-item[data-type="file"]:has(span.browser-file-icon-video):hover {
  box-shadow: 0 -5px 30px 15px rgb(162 63 111 / 15%);
  transform: translateY(-3px);
}

.browser-item[data-type="file"]:has(span.browser-file-icon-text):hover,
.browser-item[data-type="file"]:has(span.browser-file-icon-doc):hover {
  box-shadow: 0 -5px 30px 15px rgb(102 141 233 / 15%);
  transform: translateY(-3px);
}

.browser-item[data-type="file"]:has(span.browser-item-image):hover {
  box-shadow: 0 -5px 30px 15px rgb(0 0 0 / 15%);
  transform: translateY(-3px);
}

.browser-item.selected {
  padding: 30px 20px 20px;
  background: var(--dark);
  border: 2px solid var(--color);
  overflow: hidden;
  margin-top: -8px;
}

.browser-list .browser-item.selected {
  margin-top: 0;
}

.browser-item.selected .browser-item-info {
  color: var(--darkFontColor) !important;
}

.browser-item.selected:has(.browser-item-dir) .browser-item-info {
  background: var(--color) !important;
  color: var(--fontcolor) !important;
}

.browser-item.long-press-pending {
  transform: scale(0.98);
  box-shadow: 0 0 0 2px rgb(255 255 255 / 30%);
}

.browser-item.long-press-fired {
  animation: browserLongPressFlash 0.35s ease;
}

@keyframes browserLongPressFlash {
  0% {
    box-shadow: 0 0 0 0 rgb(255 255 255 / 40%);
  }

  100% {
    box-shadow: 0 0 0 10px rgb(255 255 255 / 0%);
  }
}

.browser-item-thumbnail {
  width: 100%;
  height: 12px;
  display: flex;
  position: relative;
  align-items: flex-start;
  justify-content: flex-start;
  overflow: visible;
  background: var(--darker);
  border-radius: 0 8px 0 0;
  margin-top: 0px;
}

.browser-item-thumbnail::before {
  content: "";
  position: absolute;
  top: -3px;
  left: 0;
  width: 50%;
  height: 15px;
  z-index: 1;
  background: var(--color);
  border-radius: 30px 40px 0 0;
}

.browser-item-thumbnail.rgb-glow-effect::before {
  background: transparent !important;
}

.browser-item-thumbnail::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 8px;
  width: 90%;
  height: 7px;
  background: #fff;
  border-radius: 4px 4px 0 0;
  box-shadow:
    5px 3px 3px rgb(0 0 0 / 20%),
    -5px 3px 3px rgb(0 0 0 / 20%),
    inset 0px -2px 5px rgb(0 0 0 / 40%);
}

.browser-list .browser-item-thumbnail::after,
.browser-item-thumbnail.browser-item-file::after {
  display: none;
}

.browser-item-thumbnail div {
  position: relative;
  font-size: 70%;
  font-weight: bold;
  letter-spacing: 0.03em;
  font-style: italic;
  color: var(--fontcolor);
  margin-top: -12px;
  overflow: visible;
}

.browser-folder-count {
  position: absolute;
  top: 32px;
  right: -3px;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 6px 2px 6px 6px;
  border-radius: 7px 0 0 7px;
  border-right: 1px solid var(--darker);
  color: #fff;
  font-size: 8px;
  font-weight: bold;
  letter-spacing: 0.02em;
  line-height: 1.2;
  gap: 10px 0px;
  align-content: flex-start;
  flex-direction: column;
  background: var(--dark);
  box-shadow: inset 3px 5px 4px rgb(0 0 0 / 20%);
}

.dcount,
.fcount {
  display: flex;
  color: var(--color);
  width: 18px;
  height: 20px;
  background: var(--fontcolor);
  justify-content: center;
  align-items: flex-end;
  line-height: 16px;
  align-content: center;
  flex-direction: row;
  filter: brightness(1.5);
  font-size: 90%;
  mask: url(../images/navigation/folder-open.svg) center / contain no-repeat;
}

.fcount {
  mask: url(../images/navigation/file.svg) center / contain no-repeat;
}

.browser-list .browser-folder-count {
  display: none;
}

.browser-item-thumbnail.rgb-glow-effect .browser-folder-count {
  border-right: none;
  background: none;
}

.browser-item-file {
  background: var(--darker);
  border-radius: 12px 12px 0 0;
  height: 40px;
  margin-top: 0;
  justify-content: center;
  align-items: center;
}

.browser-item-file div {
  margin-top: -4px;
}

.browser-file-icon,
.browser-file-icon-folder {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 100%;
  height: 100%;
  padding: 4px 10px 12px;
  border-radius: 12px 12px 0 0;
  font-size: 90%;
  font-weight: bold;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  background: var(--color);
  box-shadow: inset 0 -1px 0 rgb(0 0 0 / 18%);
  text-shadow: 1px 1px 2px rgb(0 0 0 / 10%);
}

.browser-file-icon-folder {
  color: var(--fontcolor);
}

.browser-file-icon::before,
.browser-file-icon-folder::before {
  content: "";
  width: 15px;
  height: 15px;
  background: currentColor;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center;
  margin-bottom: 1px;
  position: static;
}

.browser-grid .browser-file-icon::before {
  position: absolute;
  left: 10px;
  width: 20px;
  height: 20px;
}

.browser-grid .browser-item .browser-item-thumbnail .browser-file-icon-folder {
  display: none;
}

.browser-grid .browser-item .browser-item-thumbnail .browser-file-icon {
  flex-direction: row;
}

.browser-file-icon-folder::before {
  mask-image: url(../images/navigation/folder2.svg);
}

.browser-item.selected
  .browser-item-thumbnail.browser-item-file.browser-item-image
  ~ .browser-item-info {
  color: var(--fontcolor) !important;
  background: var(--color);
}

.browser-item.selected
  .browser-item-file:has(.browser-file-icon-video)
  ~ .browser-item-info,
.browser-file-icon-video {
  background: #a23f6f !important;
}

.browser-item:has(.browser-file-icon-video).selected {
  background: #791847;
  border: unset;
}

.browser-file-icon-video::before {
  mask-image: url(../images/navigation/film.svg);
}

.browser-item.selected
  .browser-item-file:has(.browser-file-icon-pdf)
  ~ .browser-item-info,
.browser-file-icon-pdf {
  background: #ec2929 !important;
}

.browser-item:has(.browser-file-icon-pdf).selected {
  background: #752323;
  border: unset;
}

.browser-file-icon-pdf::before {
  mask-image: url(../images/navigation/file-pdf.svg);
}

.browser-item.selected
  .browser-item-file:has(.browser-file-icon-xls)
  ~ .browser-item-info,
.browser-file-icon-xls {
  background: #389c5b !important;
}

.browser-item:has(.browser-file-icon-xls).selected {
  background: #267140;
  border: unset;
}

.browser-file-icon-xls::before {
  mask-image: url(../images/navigation/file-xls.svg);
}

.browser-item.selected
  .browser-item-file:has(.browser-file-icon-text)
  ~ .browser-item-info,
.browser-file-icon-text,
.browser-item.selected
  .browser-item-file:has(.browser-file-icon-text)
  ~ .browser-item-info,
.browser-file-icon-doc {
  background: #668de9 !important;
}

.browser-item:has(.browser-file-icon-text).selected,
.browser-item:has(.browser-file-icon-doc).selected {
  background: #3f5faa;
  border: unset;
}

.browser-file-icon-text::before,
.browser-file-icon-doc::before {
  mask-image: url(../images/navigation/file-word.svg);
}

.browser-item.selected
  .browser-item-file:has(.browser-file-icon-generic)
  ~ .browser-item-info,
.browser-file-icon-generic {
  background: #6f7c8d !important;
}

.browser-item:has(.browser-file-icon-generic).selected {
  background: #505965;
  border: unset;
}

.browser-file-icon-generic::before {
  mask-image: url(../images/navigation/file.svg);
}

.browser-item-dir {
  text-indent: 3px;
  height: 20px;
  width: calc(100% - 3px);
  left: 0;
  top: 1px;
  border-radius: 10px 10px 0 0;
}

.browser-item-thumbnail.browser-item-file::before {
  opacity: 0;
}

.browser-item-thumbnail.browser-item-file div {
  color: var(--compFontColor);
  align-self: center;
  font-style: normal;
}

.browser-item-thumbnail.browser-item-image {
  height: 140px;
  margin-top: -11px;
  border-radius: 12px 12px 0 0;
  background: #d8dde5;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.browser-item-thumbnail.browser-item-image::before {
  display: none;
}

.browser-thumbnail-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #eef2f7;
}

.browser-item .browser-item-thumbnail.browser-item-file ~ .browser-item-info {
  border-radius: 0 0 12px 12px;
  background: var(--documentColor);
  color: var(--buttonColor);
}

.browser-item-info {
  position: relative;
  display: flex;
  padding: 8px 12px 15px;
  min-height: 100px;
  border-radius: 0 10px 12px 12px;
  z-index: 0;
  background: var(--color);
  color: var(--fontcolor);
  flex-direction: column;
  justify-content: flex-start;
  margin-top: -8px;
  align-items: flex-start;
  box-shadow: none;
}

.browser-item[data-type="dir"] .browser-item-info {
  box-shadow: 0px -4px 3px -2px rgb(0 0 0 / 24%);
}

.browser-item-info.rgb-glow-effect {
  border-radius: 10px 10px 12px 12px;
  border-top: 1px solid rgb(0 0 0 / 8%);
}

.browser-list .browser-item .browser-item-info {
  border-radius: 0;
}

.browser-item-name {
  padding: 5px 0;
  font-weight: 600;
  word-break: break-word;
  font-size: 0.9em;
  text-transform: capitalize;
  width: 100%;
  max-height: 80px;
  overflow: scroll;
}

.browser-list .browser-item .browser-item-info .browser-item-name {
  width: 80%;
}

.browser-item .browser-item-file ~ .browser-item-info .browser-item-name {
  max-height: 120px;
}

.browser-item-meta {
  text-transform: capitalize;
  opacity: 0.6;
  font-size: 0.78rem;
}

.browser-modal-footer {
  display: flex;
  position: absolute;
  bottom: 0;
  gap: 10px;
  padding: 10px 20px 20px;
  background: var(--bgTrans);
  border-top: var(--border);
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  box-shadow: -2px 0 5px rgb(0 0 0 / 20%);
  transform: translateY(395px);
  width: 100%;
  overflow: hidden;
  border-radius: 16px 16px 0 0;
  z-index: 2;
  transition: transform 0.2s ease;
}

.borwser-modal-footer.light {
  border: 0;
}

.browser-modal-footer.is-visible {
  transform: translateY(0);
  max-height: 375px;
  padding: 10px 20px 40px;
  transition: transform 0.2s ease;
  backdrop-filter: blur(5px);
}

.browser-footer-status {
  display: none;
  width: 100%;
  height: 60px;
  gap: 2px;
  color: var(--buttonColor);
  font-size: 0.82rem;
  min-width: 190px;
  padding-bottom: 10px;
  align-content: center;
  justify-content: center;
  align-items: center;
}

.browser-footer-actions {
  display: none;
  gap: 10px;
  align-items: center;
  width: 30%;
}

.browser-modal-footer button {
  padding: 10px 20px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1em;
  font-weight: 600;
  transition: all 0.3s ease;
}

.browser-modal-footer .btn-select {
  background: var(--color);
  color: var(--fontcolor);
}

.browser-modal-header .btn-view-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  background: var(--dark);
  border: 0;
  border-radius: 26px;
  padding: 3px;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  height: 38px;
  min-width: 69px;
  flex-shrink: 0;
  user-select: none;
  /* box-shadow: 1px 1px 2px rgb(0 0 0 / 0.1); */
}

.browser-modal-header .btn-view-toggle .view-toggle-label {
  position: relative;
  z-index: 1;
  flex: 1;
  left: 0;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  background: var(--fontcolor);
  user-select: none;
  top: 1px;
  -webkit-mask: url(../images/navigation/grid-view.svg) center / contain
    no-repeat;
  mask: url(../images/navigation/grid-view.svg) center / contain no-repeat;
}

.browser-modal-header .btn-view-toggle .view-toggle-label:nth-of-type(2) {
  -webkit-mask: url(../images/navigation/list.svg) center / contain no-repeat;
  mask: url(../images/navigation/list.svg) center / contain no-repeat;
}

.browser-modal-header .btn-view-toggle .view-toggle-thumb {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 30px;
  height: 30px;
  background: var(--color);
  border-radius: 50%;
  transition: transform 0.25s ease;
  pointer-events: none;
  /* box-shadow: 1px 1px 3px rgb(0 0 0 / 0.2); */
  border: 0;
}

.browser-modal-header .btn-view-toggle[aria-pressed="true"] .view-toggle-thumb {
  transform: translateX(103%);
}

.browser-modal-header
  .btn-view-toggle[aria-pressed="false"]
  .view-toggle-label:nth-of-type(1) {
  opacity: 1;
}

.browser-modal-header
  .btn-view-toggle[aria-pressed="false"]
  .view-toggle-label:nth-of-type(2) {
  opacity: 0.7;
}

.browser-modal-header
  .btn-view-toggle[aria-pressed="true"]
  .view-toggle-label:nth-of-type(1) {
  opacity: 0.7;
}

.browser-modal-header
  .btn-view-toggle[aria-pressed="true"]
  .view-toggle-label:nth-of-type(2) {
  opacity: 1;
  background: var(--fontcolor);
}
.browser-modal-header
  .btn-view-toggle[aria-pressed="false"]
  .view-toggle-label:nth-of-type(1) {
  background: var(--fontcolor);
}
-select:hover {
  background: var(--colorTransDark);
}

.browser-modal-footer .btn-cancel {
  background: #e0e0e0;
  color: #333;
}

.browser-modal-footer .btn-cancel:hover {
  background: #d0d0d0;
}

#browserSelectionLabel b {
  font-style: italic;
}

#browserSelectionLabel b {
  color: var(--color);
  background: var(--colorTrans);
  padding: 0 4px;
  border-radius: 4px;
  margin-right: 10px;
  font-style: normal;
}

.empty {
  text-align: center;
  padding: 60px 20px;
  color: #999;
}

.empty-icon {
  font-size: 3em;
  margin-bottom: 20px;
}

.empty-text {
  font-size: 1.2em;
}

.loading {
  text-align: center;
  padding: 40px;
  color: #999;
}

.loading::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 3px solid #f0f0f0;
  border-top: 3px solid var(--color);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-left: 10px;
  vertical-align: middle;
}

#myTopnav.operation select#custom_CS {
  position: fixed;
  left: 33%;
  width: 40%;
  background: var(--dark);
  border: 1px solid var(--darker);
  color: var(--darkFontColor);
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.error {
  background: #fee;
  color: #c33;
  padding: 20px;
  border-radius: 8px;
}

/* Custom Input Dialog Styles */
.custom-input-dialog {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  margin: auto;
  width: 92%;
  max-width: 600px;
  max-height: 825px;
  height: calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));
  background: rgba(0, 0, 0, 0.5);
  z-index: 10050;
  display: none;
  align-items: center;
  justify-content: center;
}

.custom-input-dialog.active {
  display: flex;
}

.custom-input-dialog[open] {
  display: flex;
}

.custom-input-dialog-content {
  background: var(--dialog-vertical);
  background: var(--bgTrans);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.compress-result-dialog-content {
  max-width: min(760px, 95vw);
  --compression-surface: var(--dialog-vertical);
  --compression-panel: var(--bgColor);
  --compression-text: var(--buttonColor);
  --compression-border: rgba(236, 240, 243, 0.16);
  --compression-success: #6dbd8a;
  --compression-error: #d47d83;
  --compression-loading: var(--color);
}

.compress-result-dialog-body {
  max-height: min(60vh, 620px);
  overflow-y: auto;
  padding: 16px;
}

#compressResultDialogBody {
  white-space: normal;
}

.compression-result-card {
  border: 1px solid var(--compression-border);
  border-radius: 14px;
  padding: 14px;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.03) 0%,
      rgba(0, 0, 0, 0.08) 100%
    ),
    var(--compression-surface);
  color: var(--compression-text);
}

.compression-status-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.compression-status-row h3 {
  margin: 0;
  font-size: 1.02rem;
}

.compression-status-row p {
  margin: 2px 0 0;
  opacity: 0.85;
}

.compression-status-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: 0 0 auto;
  box-shadow: 0 0 0 4px rgba(236, 240, 243, 0.12);
}

.compression-state-success .compression-status-dot {
  background: var(--compression-success);
}

.compression-state-error .compression-status-dot {
  background: var(--compression-error);
}

.compression-state-loading .compression-status-dot {
  background: var(--compression-loading);
  animation: compressionPulse 1s ease-in-out infinite;
}

.compression-meta-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-bottom: 12px;
}

.compression-meta-item {
  background: var(--compression-panel);
  border: 1px solid var(--compression-border);
  border-radius: 10px;
  padding: 10px;
}

.compression-meta-item span {
  display: block;
  font-size: 0.8rem;
  opacity: 0.7;
  margin-bottom: 2px;
}

.compression-meta-item strong {
  display: block;
  word-break: break-word;
}

.compression-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.compression-stat {
  margin: 0;
  padding: 10px;
  border-radius: 10px;
  background: var(--compression-panel);
  border: 1px solid var(--compression-border);
}

.compression-stat span {
  display: block;
  font-size: 0.8rem;
  opacity: 0.74;
}

.compression-stat strong {
  display: block;
  margin-top: 2px;
  font-size: 1rem;
}

.compression-size-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.compression-size-row div {
  background: var(--compression-panel);
  border: 1px solid var(--compression-border);
  border-radius: 10px;
  padding: 10px;
}

.compression-size-row span {
  display: block;
  font-size: 0.8rem;
  opacity: 0.74;
}

.compression-size-row strong {
  display: block;
  margin-top: 2px;
}

.compression-log {
  border-top: 1px solid var(--compression-border);
  padding-top: 10px;
}

.compression-log summary {
  cursor: pointer;
  font-weight: 600;
}

.compression-log-content {
  margin-top: 10px;
  max-height: 320px;
  overflow: auto;
}

@media (max-width: 720px) {
  .compress-result-dialog-content {
    max-width: min(96vw, 760px);
  }

  .compress-result-dialog-body {
    padding: 12px;
    max-height: min(68vh, 620px);
  }

  .compression-result-card {
    padding: 12px;
    border-radius: 12px;
  }

  .compression-status-row {
    gap: 10px;
    margin-bottom: 12px;
  }

  .compression-status-row h3 {
    font-size: 0.98rem;
  }

  .compression-status-row p {
    font-size: 0.88rem;
  }

  .compression-meta-item,
  .compression-stat,
  .compression-size-row div {
    padding: 9px;
  }

  .compression-meta-item span,
  .compression-stat span,
  .compression-size-row span {
    font-size: 0.76rem;
  }

  .compression-stat strong,
  .compression-size-row strong {
    font-size: 0.95rem;
  }

  .compression-log summary {
    font-size: 0.9rem;
  }
}

@keyframes compressionPulse {
  0% {
    transform: scale(1);
    opacity: 0.9;
  }

  50% {
    transform: scale(1.25);
    opacity: 0.65;
  }

  100% {
    transform: scale(1);
    opacity: 0.9;
  }
}

@media (max-width: 540px) {
  .compression-status-row {
    align-items: flex-start;
  }

  .compression-stats-grid,
  .compression-size-row {
    grid-template-columns: 1fr;
  }

  .compression-log-content {
    max-height: 260px;
  }
}

.custom-input-dialog-header {
  background: var(--color);
  color: var(--fontcolor);
  padding: 10px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.custom-input-dialog-header h3 {
  margin: 0;
  font-size: 1.1em;
  font-weight: 600;
}

.custom-input-dialog-close {
  background: var(--dark);
  border: none;
  color: var(--fontcolor);
  font-size: 1.8em;
  cursor: pointer;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.2s ease;
}

.custom-input-dialog-close span {
  mask-image: url(../images/navigation/cross.svg);
  padding: 10px;
  background: var(--fontcolor);
}

.custom-input-dialog-close:hover {
  background: rgba(255, 255, 255, 0.1);
}

.custom-input-dialog-body {
  padding: 20px;
}

.custom-input-dialog-body label {
  display: block;
  margin-bottom: 10px;
  font-size: 0.95em;
  font-weight: 500;
  color: var(--buttonColor);
}

.custom-alert-message {
  margin: 0;
  font-size: 0.95em;
  color: var(--buttonColor);
  line-height: 1.5;
}

.custom-input-field {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--border-color, #ddd);
  border-radius: 8px;
  font-size: 1em;
  background: var(--input-bg, #fff);
  color: var(--fontcolor);
  transition: all 0.2s ease;
  box-sizing: border-box;
  font-family: inherit;
}

.custom-input-field:focus {
  outline: none;
  border-color: var(--color);
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.custom-input-dialog-footer {
  padding: 16px;
  display: flex;
  flex-direction: row-reverse;
  gap: 10px;
  justify-content: center;
}

.btn-cancel,
.btn-confirm {
  padding: 10px 24px;
  border: none;
  width: 50%;
  border-radius: 8px;
  font-size: 0.95em;
  font-weight: 600;
  cursor: pointer;
  width: 50%;
  transition: all 0.2s ease;
}

.btn-cancel {
  background: #e0e0e0;
  color: #333;
}

.btn-cancel:hover {
  background: #d0d0d0;
  transform: translateY(-1px);
}

.btn-confirm {
  background: var(--color);
  color: var(--fontcolor);
}

.btn-confirm:hover {
  background: var(--colorTransDark);
  transform: translateY(-1px);
}

.success-message {
  color: #166b16;
  background: #d1e7dd;
  padding: 15px;
}

.success-message h3 {
  margin-top: 0;
}

.error-message {
  color: #842029;
  background: #f8d7da;
  border-radius: 6px;
  padding: 15px;
}

.error-message h3 {
  margin-top: 0;
}

#response li.db-table-container {
  padding: 0;
  background: none;
  width: 100%;
  max-width: 100%;
  box-shadow: none;
}

.db-results-table-wrapper {
  overflow-x: auto;
  margin-top: 0;
  border-radius: 12px;
  border: 1px solid #444;
}

.db-results-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9em;
  table-layout: fixed;
  text-align: center;
  text-transform: capitalize;
}

.db-results-table th {
  border: 1px solid #444;
  padding: 20px 0px;
  background: var(--color);
  color: var(--fontcolor);
}

.db-results-table td {
  color: var(--buttonColor);
  border: 1px solid #444;
  padding: 6px;
}

.modal_close_button {
  display: flex;
  width: 32px;
  height: 32px;
  position: absolute;
  top: 10px;
  right: 10px;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  background: var(--color);
}

/* ---------------- PDF Bookmarks home-screen widget ---------------- */
#pdf-bookmarks-widget {
  left: 0;
  top: 0;
  border-radius: 20px;
  box-sizing: border-box;
  padding: 20px 16px;
  color: var(--buttonColor);
  position: relative;
  background: var(--fgColor);
  width: 100%;
  margin: 10px;
  border: var(--border);
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
}

.pdf-bookmarks-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  gap: 12px;
}

.pdf-bookmarks-eyebrow {
  margin: 0;
  width: 100%;
  font-weight: bold;
  opacity: 0.75;
  color: var(--buttonColor);
}

.pdf-bookmarks-manage {
  background: transparent;
  color: inherit;
  border: 1px solid rgb(255 255 255 / 20%);
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
}

.pdf-bookmarks-manage:hover {
  background: rgb(255 255 255 / 8%);
}

.pdf-bookmarks-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pdf-bookmark-row {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgb(255 255 255 / 5%);
  border-radius: 10px;
  padding: 8px 10px;
  border: var(--l2l-action-border);
}

.light .pdf-bookmark-row {
  background: #f1f3f5;
}

.midnight .pdf-bookmark-row {
  background: #000;
}

.pdf-bookmark-link {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.pdf-bookmark-label {
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pdf-bookmark-sub {
  font-size: 11px;
  opacity: 0.65;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}

.pdf-bookmark-delete {
  display: flex;
  background: var(--color);
  color: var(--fontcolor);
  border: none;
  font-size: 2rem;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  align-items: center;
}

.pdf-bookmark-delete:hover {
  background: rgb(255 80 80 / 25%);
  color: #ffb3b3;
  opacity: 1;
}

.pdf-bookmark-more {
  font-size: 11px;
  text-align: center;
  opacity: 0.65;
  padding-top: 4px;
}

.pdf-bookmarks-empty {
  font-size: 12px;
  opacity: 0.7;
  margin: 0;
}

.light #pdf-bookmarks-widget {
  background: #fff;
  color: #202124;
}

.light .pdf-bookmarks-manage {
  border-color: rgb(0 0 0 / 15%);
}

#l2l-stats-widget {
  margin: 10px;
  padding: 10px;
  background: var(--fgColor);
  border: var(--border);
  border-radius: 20px;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
  color: var(--buttonColor);
  box-sizing: border-box;
  width: 100%;
}
.dash-stats-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.dash-stats-eyebrow {
  margin: 0;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  text-indent: 5px;
  letter-spacing: 0.06em;
  opacity: 0.75;
  flex: 1;
}
.dash-stats-refresh-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 6px;
  color: var(--buttonColor);
  border-radius: 8px;
  line-height: 1;
}
.dash-stats-refresh-btn:hover {
  opacity: 0.7;
}
.dash-stats-refresh-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: currentColor;
  mask: url(../images/navigation/refresh.svg) center / cover no-repeat;
  transform: rotateY(180deg);
}
.dash-gauges-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.dash-gauge-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dash-gauge-svg {
  width: 100%;
  height: auto;
  overflow: visible;
}
.dash-gauge-track {
  fill: none;
  stroke: rgb(128 128 128 / 20%);
  stroke-width: 8;
  stroke-linecap: round;
}
.dash-gauge-arc {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.dash-gauge-red {
  stroke: #e74c3c;
}
.dash-gauge-yellow {
  stroke: #f39c12;
}
.dash-gauge-blue {
  stroke: #3498db;
}
.dash-gauge-purple {
  stroke: #9b59b6;
}
.dash-gauge-num {
  font-size: 17px;
  font-weight: 700;
  fill: currentColor;
  text-anchor: middle;
  dominant-baseline: middle;
}
.dash-gauge-label {
  font-size: 0.7rem;
  margin: 2px 0 0;
  opacity: 0.65;
  text-align: center;
}
.dash-stats-updated {
  font-size: 0.68rem;
  opacity: 0.45;
  text-align: right;
  margin: 6px 0 0;
}

#dash-stats-updated strong {
  color: var(--dark);
  font-weight: bold;
}

.dash-settings-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: currentColor;
  mask: url(../images/navigation/wrench.svg) center / cover no-repeat;
}

.dash-settings-overlay {
  position: fixed;
  inset: 0;
  background: rgb(0 0 0 / 55%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
  z-index: 9999;
}
.dash-settings-overlay[hidden] {
  display: none;
}
.dash-settings-dialog {
  background: var(--fgColor);
  border: var(--border);
  border-radius: 16px;
  width: min(380px, 92vw);
  max-height: 72vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 32px rgb(0 0 0 / 45%);
  color: var(--buttonColor);
}
.dash-settings-dialog-header {
  display: flex;
  align-items: center;
  padding: 10px 10px 0;
  flex-shrink: 0;
}
.dash-settings-dialog-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  flex: 1;
}
.dash-settings-close {
  background: var(--color);
  width: 36px;
  height: 36px;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  color: var(--fontcolor);
  padding: 2px 6px;
  border-radius: 50%;
}
.dash-settings-close:hover {
  opacity: 1;
}
.dash-settings-body {
  padding: 12px 16px;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dash-settings-section-label {
  margin: 0;
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.55;
  flex-shrink: 0;
}
.dash-settings-section-note {
  margin: 0;
  font-size: 0.72rem;
  opacity: 0.5;
  line-height: 1.45;
  flex-shrink: 0;
}
.dash-settings-search {
  width: 100%;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgb(128 128 128 / 30%);
  background: rgb(128 128 128 / 10%);
  color: var(--buttonColor);
  font-size: 0.82rem;
  box-sizing: border-box;
  outline: none;
  flex-shrink: 0;
}
.dash-settings-search:focus {
  border-color: rgb(128 128 128 / 55%);
}
.dash-settings-line-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 8px;
  padding: 4px 0;
  max-height: 285px;
}
.dash-settings-line-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  cursor: pointer;
  font-size: 0.82rem;
  transition: background 0.1s;
}
.dash-settings-line-item:hover {
  background: rgb(128 128 128 / 10%);
}
.dash-settings-line-item[hidden] {
  display: none;
}
.dash-settings-line-all {
  font-weight: 600;
}
.dash-settings-divider {
  margin: 4px 8px;
  border: none;
  border-top: 1px solid rgb(128 128 128 / 15%);
}
.dash-settings-footer {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 0 10px 10px;
  flex-shrink: 0;
}
.dash-settings-btn-cancel,
.dash-settings-btn-apply {
  padding: 6px 18px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
}
.dash-settings-btn-cancel {
  background: rgb(128 128 128 / 15%);
  color: var(--buttonColor);
}
.dash-settings-btn-cancel:hover {
  background: rgb(128 128 128 / 25%);
}
.dash-settings-btn-apply {
  background: var(--color);
  color: var(--fontcolor);
}
.dash-settings-btn-apply:hover {
  background: var(--dark);
}

/* Shift selector pill buttons */
.dash-shift-selector {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.dash-shift-btn {
  flex: 1;
  padding: 5px 6px;
  border-radius: 8px;
  border: 1px solid rgb(128 128 128 / 25%);
  background: rgb(128 128 128 / 10%);
  color: var(--buttonColor);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  transition:
    background 0.15s,
    border-color 0.15s;
  white-space: nowrap;
}
.dash-shift-btn:hover {
  background: rgb(128 128 128 / 22%);
}
.dash-shift-btn.active {
  background: var(--color);
  border-color: var(--dark);
  color: var(--fontcolor);
}

.dash-gauge-mode-selector {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.dash-gauge-mode-btn {
  flex: 1;
  padding: 5px 12px;
  border-radius: 8px;
  border: 1px solid rgb(128 128 128 / 25%);
  background: rgb(128 128 128 / 10%);
  color: var(--buttonColor);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  transition:
    background 0.15s,
    border-color 0.15s;
}
.dash-gauge-mode-btn:hover {
  background: rgb(128 128 128 / 22%);
}
.dash-gauge-mode-btn.active {
  background: var(--color);
  border-color: var(--dark);
  color: var(--fontcolor);
}

.dash-gauge-tabs {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.dash-gauge-tabs[hidden] {
  display: none;
}
.dash-gauge-tab {
  flex: 1;
  padding: 4px 4px;
  border-radius: 7px;
  border: 1px solid rgb(128 128 128 / 25%);
  background: rgb(128 128 128 / 8%);
  color: var(--buttonColor);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 600;
  transition:
    background 0.15s,
    border-color 0.15s;
}
.dash-gauge-tab:hover {
  background: rgb(128 128 128 / 18%);
}
.dash-gauge-tab.active {
  background: var(--colorTrans);
  border-color: var(--colorTrans);
  color: var(--color);
}

.light #l2l-stats-widget {
  background: #fff;
  color: #202124;
}
.light .dash-settings-dialog {
  background: #fff;
  color: #202124;
}
.light .dash-settings-search {
  background: #f0f0f0;
  color: #202124;
}
.light .dash-settings-btn-cancel {
  color: #202124;
}

/* ── Gauge click / interactive state ──────────────────────────────────────── */
.dash-gauge-cell {
  background: none;
  border: none;
  padding: 5px;
  font: inherit;
  color: inherit;
  cursor: pointer;
  border-radius: 12px;
  transition: background 0.15s;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dash-gauge-cell:hover {
  background: rgb(128 128 128 / 10%);
}
.dash-gauge-cell:active {
  background: rgb(128 128 128 / 18%);
}

/* ── Dashboard detail bottom sheet ────────────────────────────────────────── */
.dash-detail-overlay {
  position: fixed;
  inset: 0;
  background: rgb(0 0 0 / 55%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  z-index: 9999;
}
.dash-detail-overlay[hidden] {
  display: none;
}

.dash-detail-sheet {
  background: var(--modalBG);
  margin-bottom: var(--navbar-padding);
  padding-bottom: env(safe-area-inset-bottom);
  backdrop-filter: blur(15px);
  border: var(--border);
  border-radius: 20px 20px 0 0;
  width: min(640px, 100vw);
  max-height: 78vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 -4px 32px rgb(0 0 0 / 40%);
  color: var(--buttonColor);
  animation: dash-detail-slide-up 0.22s ease-out;
}
@keyframes dash-detail-slide-up {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.dash-detail-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 20px 16px;
  border-bottom: 1px solid rgb(128 128 128 / 15%);
  flex-shrink: 0;
}
.dash-detail-header-text {
  flex: 1;
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.dash-detail-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
}
.dash-detail-count {
  font-size: 0.75rem;
  opacity: 0.5;
  white-space: nowrap;
  color: var(--color);
  font-weight: bold;
}

.dash-detail-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 6px 0 8px;
}

.dash-detail-empty {
  text-align: center;
  opacity: 0.45;
  font-size: 0.82rem;
  padding: 24px 16px;
  margin: 0;
}

/* Dispatch rows */
.dash-detail-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 16px;
  border-bottom: 1px solid rgb(128 128 128 / 8%);
  text-decoration: none;
  color: inherit;
  transition: background 0.1s;
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
}
.dash-detail-row:hover {
  background: rgb(128 128 128 / 8%);
}
.dash-detail-row:last-child {
  border-bottom: none;
}

.dash-detail-row-main {
  flex: 1;
  min-width: 0;
}
.dash-detail-row-num {
  font-size: 0.72rem;
  font-weight: 700;
  opacity: 0.55;
  margin-bottom: 1px;
}
.dash-detail-row-desc {
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-detail-row-meta {
  font-size: 0.72rem;
  opacity: 0.55;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dash-detail-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
  align-self: center;
}
.dash-detail-badge-red {
  background: rgb(220 50 50 / 18%);
  color: #e05252;
}
.dash-detail-badge-yellow {
  background: rgb(230 170 30 / 18%);
  color: #d4a820;
}
.dash-detail-badge-blue {
  background: rgb(52 152 219 / 18%);
  color: #3498db;
}
.dash-detail-badge-green {
  background: rgb(46 204 113 / 18%);
  color: #27ae60;
}

.light .dash-detail-sheet {
  background: #fff;
  color: #202124;
}

#history_edit::backdrop,
#history_img::backdrop,
#img_data::backdrop {
  background: rgb(0 0 0 / 0.2);
  backdrop-filter: blur(3px);
}

/* Container */
progress {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 0%;
  height: 0;
}

/* Background of the bar */
::-webkit-progress-bar {
  background: none !important;
}

/* Filled part of the bar */
::-webkit-progress-value {
  background: none !important;
}

::-webkit-progress-inner-element {
  border: 0;
}

@font-face {
  font-family: "Google";
  src: url(../fonts/Product.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Comic";
  src: url(../fonts/Comicsans.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "DM Sans";
  src: url(../fonts/DMSans.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gochi";
  src: url(../fonts/Gochi.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Krub";
  src: url(../fonts/Krub.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/Poppins.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-kerning: normal;
}

/* Bold Font */
@font-face {
  font-family: "Poppins";
  src: url("../fonts/Poppins-Bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
  font-kerning: normal;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/Poppins-Light.ttf") format("truetype");
  font-weight: light;
  font-style: normal;
  font-kerning: normal;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/Poppins-Italic.ttf") format("truetype");
  font-weight: normal;
  font-style: italic;
  font-kerning: normal;
}

@font-face {
  font-family: "Ubuntu";
  src: url(../fonts/Ubuntu.woff);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Arcade";
  src: url(../fonts/Arcade.ttf);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Lato";
  src: url(../fonts/Lato.ttf);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.folder {
  display: flex;
  width: 100px;
  height: 50px;
  position: relative;
  background: yellow;
}

.rgb-glow-effect {
  background: var(--rgb-glow-gradient);
  background-size: 400% 200% !important;
  animation: rgbGlowShift var(--rgb-glow-speed) ease-in-out infinite;
  box-shadow: var(
    --rgb-glow-shadow,
    0 0 8px rgba(255, 255, 255, 0.25),
    0 0 18px rgba(255, 0, 200, 0.35)
  );
  transition:
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

@keyframes rgbGlowShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@keyframes colorShift {
  0% {
    background: #ff0000;
  }
  6.25% {
    background: #ff7300;
  }
  12.5% {
    background: #fffb00;
  }
  18.75% {
    background: #48ff00;
  }
  25% {
    background: #00ffd5;
  }
  31.25% {
    background: #002bff;
  }
  37.5% {
    background: #7a00ff;
  }
  43.75% {
    background: #ff00c8;
  }
  50% {
    background: #ff0000;
  }
  56.25% {
    background: #ff00c8;
  }
  62.5% {
    background: #7a00ff;
  }
  68.75% {
    background: #002bff;
  }
  75% {
    background: #00ffd5;
  }
  81.25% {
    background: #48ff00;
  }
  87.5% {
    background: #fffb00;
  }
  93.75% {
    background: #ff7300;
  }
  100% {
    background: #ff0000;
  }
}

/* L2L Machines Importer */
.l2l-machines-importer-table-wrap {
  max-height: 360px;
  overflow: auto;
  border: var(--l2l-action-border);
  border-radius: 8px;
}

.l2l-machines-importer-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.l2l-machines-importer-table th,
.l2l-machines-importer-table td {
  padding: 6px 10px;
  text-align: center;
  vertical-align: top;
  border: var(--l2l-action-border);
  border-top: 0;
}

.l2l-machines-importer-table th {
  position: sticky;
  top: 0;
  background: var(--mainBackgroundColor, #1d1f23);
  font-weight: 700;
}

.light .l2l-machines-importer-table th {
  background: var(--mainBackgroundColor, #fafafa);
}

.l2l-machines-importer-table tr th:first-child,
.l2l-machines-importer-table tr td:first-child {
  border-left: 0;
}

.l2l-machines-importer-table tr th:last-child,
.l2l-machines-importer-table tr td:last-child {
  border-right: 0;
}

.l2l-machines-importer-table tr:last-child td {
  border-bottom: 0;
}

dialog.l2l-machines-export-dialog {
  width: min(720px, calc(100vw - 24px));
  max-width: 100%;
  max-height: min(85vh, 760px);
  padding: 0;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 12px;
  background: var(--mainBackgroundColor, #1d1f23);
  color: var(--buttonColor, #f5f5f5);
}

.light dialog.l2l-machines-export-dialog {
  background: var(--mainBackgroundColor, #fafafa);
  color: inherit;
  border: 1px solid rgb(0 0 0 / 10%);
}

.l2l-machines-export-dialog-frame {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
}

.l2l-machines-export-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.l2l-machines-export-dialog-table-wrap {
  overflow: auto;
  max-height: 320px;
  border: 1px solid rgb(255 255 255 / 8%);
  border-radius: 8px;
}

.light .l2l-machines-export-dialog-table-wrap {
  border: 1px solid rgb(0 0 0 / 10%);
}

/* === Desktop window manager thingy (.drag draggable + dock) === */

/* ── Dock base ── */
#desktop-dock {
  position: fixed;
  display: none;
  flex-direction: row;
  align-items: center;
  align-items: center;
  gap: 30px;
  padding: 10px;
  background: var(--bgTrans);
  backdrop-filter: blur(10px);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 16px;
  z-index: 9999;
  box-shadow: 0 6px 28px rgb(0 0 0 / 40%);
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.25s ease;
  will-change: transform;
}

/* ── Bottom (default) ── */
#desktop-dock:not([data-dock-edge]),
#desktop-dock[data-dock-edge="bottom"] {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(110%);
  flex-direction: row;
  max-width: 90vw;
  overflow-x: auto;
  overflow-y: hidden;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* ── Top ── */
#desktop-dock[data-dock-edge="top"] {
  top: 0;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%) translateY(-110%);
  flex-direction: row;
  max-width: 90vw;
  overflow-x: auto;
  overflow-y: hidden;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* ── Left ── */
#desktop-dock[data-dock-edge="left"] {
  left: 0;
  top: 50%;
  right: auto;
  bottom: auto;
  transform: translateY(-50%) translateX(-110%);
  flex-direction: column;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  max-width: none;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* ── Right ── */
#desktop-dock[data-dock-edge="right"] {
  right: 0;
  left: auto;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%) translateX(110%);
  flex-direction: column;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  max-width: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

/* ── Has items ── */
#desktop-dock.visible {
  display: flex;
  overflow: visible;
}

/* ── Revealed: When the cursor gets to the edge ── */
#desktop-dock:not([data-dock-edge]).visible.dock-revealed,
#desktop-dock[data-dock-edge="bottom"].visible.dock-revealed {
  transform: translateX(-50%) translateY(0);
}
#desktop-dock[data-dock-edge="top"].visible.dock-revealed {
  transform: translateX(-50%) translateY(0);
}
#desktop-dock[data-dock-edge="left"].visible.dock-revealed {
  transform: translateY(-50%) translateX(0);
}
#desktop-dock[data-dock-edge="right"].visible.dock-revealed {
  transform: translateY(-50%) translateX(0);
}

/* ── Dock drag state ── */
#desktop-dock.dock-dragging {
  transition: none !important;
  opacity: 0.7;
  cursor: grabbing !important;
}

/* ── Handle to grab and move the dock ── */
.dock-handle {
  border-radius: 4px;
  background: rgb(255 255 255 / 18%);
  flex-shrink: 0;
  cursor: grab;
  transition: background 0.15s ease;
}
.dock-handle:hover {
  background: rgb(255 255 255 / 38%);
}
.dock-handle:active {
  cursor: grabbing;
  background: rgb(255 255 255 / 55%);
}

#desktop-dock:not([data-dock-edge]) .dock-handle,
#desktop-dock[data-dock-edge="bottom"] .dock-handle,
#desktop-dock[data-dock-edge="top"] .dock-handle {
  width: 4px;
  height: 28px;
  margin-right: 2px;
}

#desktop-dock[data-dock-edge="left"] .dock-handle,
#desktop-dock[data-dock-edge="right"] .dock-handle {
  width: 28px;
  height: 4px;
  margin-bottom: 2px;
}

/* ── Edge indicator shown while dragging dock ── */
#dock-edge-indicator {
  position: fixed;
  z-index: 9998;
  background: var(--color, #4adfb4);
  opacity: 0.4;
  pointer-events: none;
  border-radius: 4px;
  transition: all 0.12s ease;
}
#dock-edge-indicator[data-edge="bottom"] {
  bottom: 0;
  left: 0;
  right: 0;
  height: 20px;
  border-radius: 4px 4px 0 0;
}
#dock-edge-indicator[data-edge="top"] {
  top: 0;
  left: 0;
  right: 0;
  height: 20px;
  border-radius: 0 0 4px 4px;
}
#dock-edge-indicator[data-edge="left"] {
  left: 0;
  top: 0;
  bottom: 0;
  width: 20px;
  border-radius: 0 4px 4px 0;
}
#dock-edge-indicator[data-edge="right"] {
  right: 0;
  top: 0;
  bottom: 0;
  width: 20px;
  border-radius: 4px 0 0 4px;
}

.desktop-dock-item {
  appearance: none;
  border: 0;
  background: 0;
  color: var(--buttonColor);
  padding: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  overflow: visible;
}

.desktop-dock-item .dock-icon {
  width: 48px;
  height: 48px;
  display: flex;
  background: var(--buttonColor);
  pointer-events: none;
  overflow: visible;
  transition:
    transform 0.15s ease,
    background 0.15s ease;
}

.desktop-dock-item .dock-label {
  font-size: 0.67rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 68px;
  text-align: center;
  line-height: 1.2;
  color: var(--buttonColor);
  pointer-events: none;
}

.desktop-dock-item:hover span:nth-child(1) {
  transform: translateY(-20px) scale(2);
  background: var(--color);
}

.desktop-dock-item:hover span:nth-child(2) {
  background: 0;
  color: var(--color);
}

#desktop-dock[data-dock-edge="left"] .desktop-dock-item:hover {
  transform: translateX(4px) scale(1.08);
}
#desktop-dock[data-dock-edge="right"] .desktop-dock-item:hover {
  transform: translateX(-4px) scale(1.08);
}

.drag.drag-moving {
  user-select: none;
  -webkit-user-select: none;
  transition: none !important;
  cursor: move;
}

.drag.drag-resizing {
  user-select: none;
  -webkit-user-select: none;
  transition: none !important;
}

/* ── Resize handles ── */
.drag-resize-handle {
  position: absolute;
  z-index: 999;
  display: none;
}
/* Corners — 16×16, positioned at each corner */
.drag-resize-nw {
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  cursor: nw-resize;
}
.drag-resize-ne {
  top: 0;
  right: 0;
  width: 16px;
  height: 16px;
  cursor: ne-resize;
}
.drag-resize-sw {
  bottom: 0;
  left: 0;
  width: 16px;
  height: 16px;
  cursor: sw-resize;
}
.drag-resize-se {
  bottom: 0;
  right: 0;
  width: 16px;
  height: 16px;
  cursor: se-resize;
}
/* Edges — 8px wide/tall, inset past the corners */
.drag-resize-n {
  top: 0;
  left: 16px;
  right: 16px;
  height: 8px;
  cursor: n-resize;
}
.drag-resize-s {
  bottom: 0;
  left: 16px;
  right: 16px;
  height: 8px;
  cursor: s-resize;
}
.drag-resize-w {
  top: 16px;
  bottom: 16px;
  left: 0;
  width: 8px;
  cursor: w-resize;
}
.drag-resize-e {
  top: 16px;
  bottom: 16px;
  right: 0;
  width: 8px;
  cursor: e-resize;
}

@media screen and (max-width: 719px) {
  #desktop-dock {
    display: none !important;
  }
  .drag-minimize,
  .drag-maximize {
    display: none !important;
  }
}

.drag-minimize,
.drag-maximize {
  appearance: none;
  background: rgb(0 0 0 / 15%);
  backdrop-filter: blur(1px);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  padding: 10px;
  margin: 0;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
}

.drag-actions .close_maintenance {
  background: rgb(0 0 0 / 15%);
  color: var(--buttonColor);
}

.drag-maximize {
  margin: 0 4px;
}

.drag-minimize.light,
.drag-maximize.light,
.close_maintenance.light {
  background: rgb(255 255 255 / 15%);
  backdrop-filter: blur(1px);
}

.drag-minimize .drag-minimize-icon {
  display: block;
  width: 16px;
  height: 3px;
  background: var(--buttonColor);
  border-radius: 2px;
  transition: background 0.15s ease;
}

.drag-maximize .drag-maximize-icon {
  display: block;
  width: 15px;
  height: 16px;
  border: 3px solid var(--buttonColor);
  border-radius: 2px;
  box-sizing: border-box;
  transition: border-color 0.15s ease;
}

.drag.drag-maximized .drag-maximize .drag-maximize-icon {
  width: 14px;
  height: 14px;
  right: 2px;
  top: 2px;
  position: relative;
  border: 3px solid var(--buttonColor);
  border-radius: 2px;
  box-shadow:
    3px -3px 0 -1px var(--bgColor),
    4px -4px 0 0 var(--buttonColor);
}

.tabcontent.artistic {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: -50px 100px;
}

.browser-modal-header button.drag-minimize,
.browser-modal-header button.drag-maximize {
  background: var(--dark);
  border: 1px solid var(--darker);
  width: 40px;
  height: 40px;
}

.browser-modal-header button.drag-minimize span {
  background: var(--fontcolor);
}

/* --- Widget organize Styles ------------------------------------------------- */
.widget-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.widget-organize-trigger {
  position: relative;
  top: 3px;
  right: 2px;
  border: 0;
  height: 36px;
  width: 36px;
  cursor: pointer;
  background: var(--bgTrans);
  border-radius: 999px;
}

.widget-menu-list {
  display: flex;
  flex-direction: column;
}

.widget-menu-item {
  position: unset;
}

body.widget-organize-mode .widget-menu-item {
  position: relative;
}

.widget-organize-label {
  display: flex;
  position: relative;
  background: var(--color);
  padding: 10px;
  filter: saturate(2);
  mask: url(../images/navigation/drag.png) center / contain no-repeat;
}

body.widget-organize-mode .widget-organize-label {
  mask: url(../images/navigation/save.svg) center / contain no-repeat;
}

body.widget-organize-mode .widget-menu-item .toggle-switch {
  pointer-events: none;
  opacity: 0.5;
}

body.widget-organize-mode .widget-menu-item > * {
  pointer-events: none;
}

.widget-organize-item {
  cursor: grab;
  outline: 2px dashed var(--fill);
  outline-offset: -2px;
  border-radius: 8px;
  transition:
    transform 120ms ease,
    box-shadow 120ms ease,
    background 120ms ease;
  background: rgba(255, 255, 255, 0.03);
  margin: 4px 0;
  touch-action: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

.widget-organize-item::before {
  content: "⠿";
  position: absolute;
  top: 50%;
  left: 6px;
  transform: translateY(-50%);
  font-size: 18px;
  color: var(--fill);
  pointer-events: none;
  z-index: 5;
}

.widget-organize-item > h4 {
  padding-left: 26px;
}

.widget-organize-item.widget-dragging {
  opacity: 1;
  transform: scale(0.8);
  cursor: grabbing;
  transition: all 0.3s ease;
}

.widget-organize-item.widget-dragging h4 {
  background: var(--colorTransMedium);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.widget-menu-list .widget-menu-item:first-of-type h4 {
  border-radius: 20px 20px 4px 4px !important;
}

.widget-menu-list .widget-menu-item h4:last-of-type {
  border-radius: 4px;
}

.widget-menu-list .widget-menu-item h4 {
  border-radius: 4px;
  margin: 2px 0;
}

.widget-menu-list div.widget-menu-item:last-of-type h4 {
  border-radius: 4px 4px 20px 20px;
}

.widget-menu-list + h4 {
  margin: 2px 0;
}

.module-box {
  transition:
    position 0.3s ease,
    margin-top 0.3s ease;
}

.artistic .widget-menu-list .widget-menu-item h4,
.artistic #weatherSlide {
  margin: 0;
  border-radius: 0 !important;
}

.artistic h4,
.artistic .serverinfo {
  margin: 0;
  background: var(--bgTrans);
}

.artistic #hwinfo {
  background: var(--bgTrans);
  margin-top: 20px;
}

.artistic #weatherSlide {
  background: var(--bgTrans);
}

.artistic .widget-menu-list .widget-menu-item:first-of-type h4 {
  border-radius: 20px 20px 0 0 !important;
}
.artistic .widget-menu-list div.widget-menu-item:last-of-type h4 {
  border-radius: 0 0 20px 20px !important;
}

/* ── Chat (Tab7) ─────────────────────────────────────────────────────────── */

section#Tab7 {
  padding: calc(70px + var(--iOSPadding)) 0 var(--navbar-padding);
}

#Tab7.tabcontent {
  overflow: hidden;
}

#chat-module {
  display: flex;
  position: relative;
  top: 0;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

/* Room list ---------------------------------------------------------------- */

#chat-room-list {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.chat-queue-alert-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ff3b30;
  box-shadow: 0 0 0 0 rgb(255 59 48 / 60%);
  animation: chat-alert-pulse 1.8s ease-out infinite;
}

@keyframes chat-alert-pulse {
  0% {
    box-shadow: 0 0 0 0 rgb(255 59 48 / 60%);
  }
  70% {
    box-shadow: 0 0 0 8px rgb(255 59 48 / 0%);
  }
  100% {
    box-shadow: 0 0 0 0 rgb(255 59 48 / 0%);
  }
}

.chat-new-room-btn,
.chat-announcement-fab {
  position: absolute;
  bottom: calc(24px + env(safe-area-inset-bottom) + var(--navbar-padding));
  right: 20px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: 0;
  background: var(--bubble2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.35);
  z-index: 5;
}

.chat-new-room-btn span {
  mask: url(../images/navigation/plus2.svg) center / contain no-repeat;
  -webkit-mask: url(../images/navigation/plus2.svg) center / contain no-repeat;
  background: var(--fontcolor);
  padding: 20px;
  display: block;
}

.chat-announcement-fab {
  display: none;
  left: 20px;
  right: unset;
}

@media (min-width: 720px) {
  .chat-announcement-fab {
    display: flex;
  }
}

.chat-rooms-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1;
}

.chat-rooms-list.light {
  background: #fff;
}

.chat-queue-health {
  display: none;
  margin: 10px 17px 0;
  padding: 10px 12px;
  border-radius: 10px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  box-shadow: 0 2px 6px rgb(0 0 0 / 8%);
}

.chat-queue-health-title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.8;
  margin-bottom: 8px;
}

.chat-queue-health-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.chat-queue-health-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  border-radius: 8px;
  background: var(--colorTrans);
}

.chat-queue-health-label {
  font-size: 0.68rem;
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.chat-queue-health-value {
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1;
}

.chat-queue-health-updated {
  margin-top: 8px;
  font-size: 0.72rem;
  opacity: 0.62;
}

.chat-room-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 2px;
  margin: 0;
  padding: 10px 15px;
  cursor: pointer;
  transition: background 0.12s;
  border-bottom: var(--l2l-action-border);
  background: var(--bgColor);
}

.chat-rooms-list.light .chat-room-item {
  background: #fff;
}

li.chat-room-item:has(+ li.chat-section-header),
.chat-room-item:last-of-type {
  border-bottom: 0;
}

.chat-room-item:hover,
.chat-room-item:focus {
  background: var(--colorTrans);
  outline: none;
}

.chat-room-name {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  font-weight: 600;
  align-items: center;
  text-shadow: 1px 1px 1px rgb(0 0 0 / 15%);
  padding-top: 4px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--buttonColor);
}

/* Rooms without a left-column icon — name + meta span the full content area */
.chat-room-item:not(:has(> .chat-room-avatar, > .chat-room-lock))
  > .chat-room-name,
.chat-room-item:not(:has(> .chat-room-avatar, > .chat-room-lock))
  > .chat-room-meta {
  grid-column: 1 / 3;
}

.chat-room-meta {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8rem;
  color: var(--buttonColor, #888);
  opacity: 0.6;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding: 5px 0;
}

.chat-room-right {
  grid-column: 3;
  grid-row: 1 / 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}

.chat-room-time {
  font-size: 0.72rem;
  opacity: 0.6;
}

.chat-unread-badge {
  background: var(--color);
  color: var(--fontcolor);
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 10px;
  padding: 1px 6px;
  min-width: 18px;
  text-align: center;
}

/* Unread bubble on the chat quick-button tile and desktop nav button */
.chat-nav-badge {
  position: absolute;
  display: flex;
  top: 8px;
  right: 8px;
  background: var(--dark);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 50%;
  padding: 1px 5px;
  height: 24px;
  width: 24px;
  pointer-events: none;
  z-index: 1;
  align-items: center;
  justify-content: center;
}

/* Open bug-report count bubble on the bug-report quick-button, desktop nav, and sidenav */
.bug-report-nav-badge {
  position: relative;
  display: flex;
  left: calc(50% - 32px);
  background: var(--bubble);
  border: 0;
  color: var(--fontcolor);
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 50%;
  padding: 1px 5px;
  height: 32px;
  width: 32px;
  pointer-events: none;
  z-index: 1;
  align-items: center;
  justify-content: center;
}

.chat-room-unread .chat-room-name {
  color: var(--color);
}

.chat-room-empty {
  padding: 32px 16px;
  text-align: center;
  opacity: 0.55;
  font-size: 0.9rem;
}

.chat-section-header {
  display: flex;
  position: relative;
  height: 54px;
  align-items: center;
  padding: 10px 16px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--buttonColor);
  list-style: none;
  pointer-events: none;
  background: var(--bgTrans);
  border-top: var(--l2l-action-border);
  border-bottom: var(--l2l-action-border);
  gap: 5px;
}

.chat-rooms-list.light .chat-section-header {
  background: var(--dialog-info);
}

#announcements::before,
#privates::before,
#public::before {
  content: "";
  background: var(--buttonColor);
  height: 24px;
  width: 24px;
  border-radius: 8px;
  margin-right: 5px;
  mask: url(../images/navigation/announcement.svg) center / contain no-repeat;
}

#privates::before {
  mask: url(../images/navigation/private.svg) center / contain no-repeat;
}

#public::before {
  mask: url(../images/navigation/public.svg) center / contain no-repeat;
}

#public::after {
  content: "(messages are viewable by everyone)";
  display: flex;
  opacity: 0.6;
  font-family: var(--font);
  width: 100%;
  font-weight: bold;
  border-radius: 8px;
  align-items: center;
  justify-content: flex-end;
}

.chat-announcement-bell {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  right: 70px;
  position: absolute;
  border-radius: 50%;
}

#myTopnav.chat .chat-announcement-bell {
  display: flex;
}

@media (min-width: 720px) {
  #myTopnav.chat .chat-announcement-bell {
    display: none;
  }
}

@media (max-width: 719px) {
  body:has(#chat-thread:not([hidden])) #myTopnav.chat .chat-announcement-bell {
    display: none;
  }
}

.chat-bell-icon {
  display: block;
  width: 24px;
  height: 24px;
  background: var(--fontcolor);
  -webkit-mask: url(../images/navigation/mailbox.svg) center / contain no-repeat;
  mask: url(../images/navigation/mailbox.svg) center / contain no-repeat;
}

.chat-bell-unread {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 16px;
  height: 16px;
  background: #ff3b30;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  pointer-events: none;
}

/* Thread view -------------------------------------------------------------- */

#chat-thread {
  display: none;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

#chat-thread:not([hidden]) {
  display: flex;
}

.chat-no-room-state {
  display: none;
  flex: 1;
  align-items: center;
  justify-content: center;
  opacity: 0.4;
  font-size: 0.95rem;
  padding: 24px;
  text-align: center;
}

.chat-thread-header {
  display: flex;
  align-items: center;
  height: 54px;
  gap: 10px;
  padding: 10px 14px;
  flex-shrink: 0;
  background: var(--color);
  box-shadow: 0px 3px 3px rgb(0 0 0 / 15%);
  z-index: 3;
}

.chat-thread-name {
  font-weight: 600;
  font-size: 1rem;
  flex: 1;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--fontcolor);
}

#chat-messages {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 12px 12px 300px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#chat-messages.chat-loading-older::before {
  content: "Loading older messages...";
  position: sticky;
  top: 0;
  align-self: center;
  font-size: 0.75rem;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--colorTransMedium);
  color: var(--fontcolor);
  z-index: 1;
}

div#chat-messages.light {
  background: #fff;
}

.chat-message {
  max-width: 82%;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  z-index: 0;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.chat-message:has(.chat-msg-attach) {
  width: 50%;
}

.chat-message-mine {
  align-self: flex-end;
  align-items: flex-end;
}

.chat-message-theirs {
  align-self: flex-start;
  align-items: flex-start;
}

.chat-msg-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 6px;
  margin-bottom: 10px;
  font-size: 0.68rem;
}

.chat-msg-read-receipt {
  display: flex;
  width: 14px;
  height: 14px;
  opacity: 0.6;
  background-color: var(--buttonColor);
  transition:
    background-color 0.3s ease,
    opacity 0.3s ease;
  mask: url(../images/navigation/read.svg) center / contain no-repeat;
  align-self: flex-start;
}

.chat-msg-read-receipt--read {
  background-color: var(--color);
  opacity: 1;
}

.chat-msg-sender {
  font-size: inherit;
  display: flex;
  align-items: center;
  font-weight: bold;
  opacity: 1;
}

.chat-msg-sender::before {
  content: " \2022 ";
  color: var(--color);
  margin: 0 4px;
}

.chat-msg-body {
  background: var(--bgTrans);
  border-radius: 18px;
  border: var(--l2l-action-border);
  padding: 12px;
  font-size: 1rem;
  word-break: break-word;
  white-space: pre-wrap;
  z-index: 2;
  position: relative;
  box-shadow:
    2px 2px 3rem rgba(0, 0, 0, 0.02),
    0 0.062rem 0.12rem rgba(0, 0, 0, 0.05);
}

.chat-msg-body a {
  color: var(--complimentary);
  text-shadow: 0 0 1px var(--compFontColor);
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: 0.85;
  word-break: break-all;
}

.chat-msg-body a:hover {
  opacity: 1;
}

.chat-message-mine .chat-msg-body {
  background: var(--bubble);
  color: var(--darkFontColor);
  border: 0;
}

.chat-messages.light .chat-message-mine .chat-msg-body {
  background: var(--bubble2);
}

/* ── Attachment wrapper (sits outside the text bubble) ───────────── */

.chat-msg-attach {
  display: flex;
  width: 100%;
}

.chat-msg-time {
  font-size: inherit;
  opacity: 0.55;
}

@keyframes chat-reply-flash {
  0% {
    filter: brightness(1);
  }
  40% {
    filter: brightness(1.4);
  }
  100% {
    filter: brightness(1);
  }
}

.chat-msg-body-reply-flash {
  animation: chat-reply-flash 0.4s ease;
}

/* ── Reply quote (shown above the bubble in the thread) ──────────────────── */

.chat-reply-quote {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--colorTrans);
  border: var(--l2l-action-border);
  border-radius: 20px;
  padding: 10px 20px 20px;
  opacity: 0.8;
  font-size: 0.78rem;
  color: var(--fontcolor);
  cursor: pointer;
  position: relative;
  margin-bottom: -15px;
  right: unset;
  left: 15px;
  max-width: 100%;
  word-break: break-word;
  white-space: pre-wrap;
}

.chat-message-mine .chat-reply-quote {
  align-self: flex-end;
  right: 15px;
  left: unset;
}

.chat-reply-quote-sender {
  font-weight: 700;
  color: var(--color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.chat-reply-quote-body {
  opacity: 0.85;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: var(--buttonColor);
  font-style: italic;
}

.chat-message.chat-message-theirs:has(div.chat-reply-quote)
  .chat-msg-body::before,
.chat-message.chat-message-mine:has(div.chat-reply-quote)
  .chat-msg-body::before {
  content: "";
  display: flex;
  position: absolute;
  bottom: 15px;
  right: unset;
  left: calc(100% + 4px);
  width: 18px;
  height: 18px;
  background: var(--color);
  opacity: 0.6;
  mask: url(../images/navigation/down-left2.svg) center / contain no-repeat;
}

.chat-message.chat-message-mine:has(div.chat-reply-quote)
  .chat-msg-body::before {
  right: calc(100% + 4px);
  left: unset;
  mask: url(../images/navigation/down-right2.svg) center / contain no-repeat;
}

.chat-message.chat-message-theirs .chat-reply-quote {
  background: var(--l2l-action-background);
}

.chat-message.chat-message-mine .chat-reply-quote {
  background: var(--colorTrans);
}

@keyframes chat-highlight-flash {
  0%,
  100% {
    background: transparent;
  }
  30% {
    background: color-mix(in srgb, var(--color) 22%, transparent);
  }
}

.chat-message-highlight > .chat-msg-body {
  animation: chat-highlight-flash 1.5s ease;
}

/* ── Typing indicator (inside the input row, above the controls) ─────────── */

.chat-typing-indicator {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  padding: 0 2px 7px;
  font-weight: bold;
  font-size: 0.8rem;
  opacity: 0.65;
  pointer-events: none;
}

.chat-typing-text {
  font-style: italic;
  padding-right: 5px;
}
.p-wormwrap,
.wormwrap {
  display: inline-flex;
  align-items: flex-end;
  gap: 0px;
  height: 30px;
  position: relative;
}
.p-wormwrap span,
.wormwrap span {
  height: 12px;
  width: 12px;
  background: var(--bubble);
  border-radius: 50%;
  border-right: 1px solid var(--darker);
  margin-left: -8px;
  z-index: -2;
  -webkit-animation: wormbounce 1.5s infinite;
  animation: wormbounce 1s infinite;
}
.p-wormwrap span:nth-child(1)::before,
.wormwrap span:nth-child(1)::before {
  display: flex;
  content: "";
  width: 12px;
  height: 12px;
  bottom: 8px;
  left: 0px;
  border-radius: 2px;
  border-left: 4px solid var(--darker);
  border-bottom: 4px solid var(--darker);
  z-index: -1 !important;
  rotate: -47deg;
  position: relative;
}

.p-wormwrap span:nth-child(1)::after,
.wormwrap span:nth-child(1)::after {
  content: "";
  display: flex;
  content: "";
  width: 4px;
  height: 4px;
  bottom: 11px;
  left: 1px;
  border-radius: 50%;
  background: var(--fontcolor);
  box-shadow: 5px 5px 0 var(--fontcolor);
  rotate: -47deg;
  position: relative;
}

.p-wormwrap span:nth-child(1),
.wormwrap span:nth-child(1) {
  margin-left: 0;
  animation-delay: 0.16s;
  height: 17px;
  width: 19px;
  border: 1px solid var(--darker);
  z-index: unset;
  box-shadow: 1px 1px 5px rgb(0 0 0 / 40%);
}

.p-wormwrap span:nth-child(2),
.wormwrap span:nth-child(2) {
  -webkit-animation-delay: 0.2s;
  animation-delay: 0.2s;
  z-index: -4;
}
.p-wormwrap span:nth-child(3),
.wormwrap span:nth-child(3) {
  -webkit-animation-delay: 0.24s;
  animation-delay: 0.24s;
  z-index: -5;
  border-right: 0;
}

.p-wormwrap span:nth-child(4),
.wormwrap span:nth-child(4) {
  -webkit-animation-delay: 0.28s;
  animation-delay: 0.28s;
  z-index: -6;
}

.p-wormwrap span:nth-child(5),
.wormwrap span:nth-child(5) {
  -webkit-animation-delay: 0.32s;
  animation-delay: 0.32s;
  z-index: -7;
  border-right: 0;
}
.p-wormwrap span:nth-child(6),
.wormwrap span:nth-child(6) {
  -webkit-animation-delay: 0.36s;
  animation-delay: 0.36s;
  z-index: -8;
}
.p-wormwrap span:nth-child(7),
.wormwrap span:nth-child(7) {
  -webkit-animation-delay: 0.4s;
  animation-delay: 0.4s;
  z-index: -9;
  border-right: 0;
}
.p-wormwrap span:nth-child(8),
.wormwrap span:nth-child(8) {
  -webkit-animation-delay: 0.44s;
  animation-delay: 0.44s;
  z-index: -10;
}
.p-wormwrap span:nth-child(9),
.wormwrap span:nth-child(9) {
  -webkit-animation-delay: 0.48s;
  animation-delay: 0.48s;
  z-index: -11;
  border-right: 0;
}
.p-wormwrap span:nth-child(10),
.wormwrap span:nth-child(10) {
  -webkit-animation-delay: 0.52s;
  animation-delay: 0.52s;
  z-index: -12;
}
.p-wormwrap span:nth-child(11),
.wormwrap span:nth-child(11) {
  -webkit-animation-delay: 0.56s;
  animation-delay: 0.56s;
  z-index: -13;
  border-right: 0;
}
.p-wormwrap span:nth-child(12),
.wormwrap span:nth-child(12) {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
  z-index: -14;
}
.p-wormwrap span:nth-child(13),
.wormwrap span:nth-child(13) {
  -webkit-animation-delay: 0.64s;
  animation-delay: 0.64s;
  z-index: -15;
  border-right: 0;
}

.chat-reply-preview {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: var(--colorTrans);
  border-radius: 8px;
  font-size: 0.8rem;
}

.chat-reply-preview[hidden] {
  display: none;
}

.chat-reply-preview-label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chat-reply-preview-label strong {
  color: var(--color);
  margin-right: 4px;
}

.chat-reply-preview-close {
  border: none;
  background: var(--dark);
  border-radius: 50%;
  width: 20px;
  height: 20px;
  cursor: pointer;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--darkFontColor);
}

.chat-reply-preview-close:hover {
  opacity: 1;
}

.chat-thread-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  border-radius: 12px;
  padding: 2px 10px;
  font-size: 0.72rem;
  color: var(--buttonColor);
  cursor: pointer;
  margin-left: 6px;
  transition:
    background 0.15s,
    border-color 0.15s;
  vertical-align: middle;
}

.chat-thread-btn:hover {
  background: var(--colorTrans);
  border-color: var(--complimentary);
}

.chat-thread-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

@media (min-width: 600px) {
  .chat-thread-modal {
    align-items: center;
  }
}

.chat-thread-modal-dialog {
  background: var(--colorTrans);
  border: var(--colorTrans);
  backdrop-filter: blur(5px);
  border-radius: 20px 20px 0 0;
  width: 100%;
  max-width: 680px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.light .chat-thread-modal-dialog {
  background: var(--bgTrans);
}

@media (min-width: 600px) {
  .chat-thread-modal-dialog {
    border-radius: 20px;
    max-height: 75vh;
  }
}

.chat-thread-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: var(--l2l-action-border);
  flex-shrink: 0;
  color: var(--buttonColor);
  text-shadow: 1px 1px 3px rgb(0 0 0 / 60%);
}

.light .chat-thread-modal-dialog .chat-thread-modal-header {
  text-shadow: none;
}

.chat-thread-modal-title {
  font-weight: 600;
  font-size: 1rem;
}

.chat-thread-modal-close {
  background: var(--buttonColor);
  border: none;
  cursor: pointer;
  opacity: 1;
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
}

.chat-thread-modal-body {
  overflow-y: auto;
  padding: 12px 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.chat-thread-root {
  padding-bottom: 8px;
}

.chat-thread-divider {
  font-size: 0.72rem;
  opacity: 0.5;
  text-align: center;
  padding: 6px 0 2px;
  position: relative;
}

.chat-thread-divider::before,
.chat-thread-divider::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 30%;
  height: 1px;
  background: var(--colorTrans);
}

.chat-thread-divider::before {
  left: 0;
}
.chat-thread-divider::after {
  right: 0;
}

.chat-edit-area {
  min-height: 1.4em;
  max-height: 120px;
  overflow-y: auto;
  outline: none;
  word-break: break-word;
  white-space: pre-wrap;
  caret-color: var(--complimentary);
  caret-shape: block;
  width: 100%;
  cursor: text;
}

.chat-edit-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  margin-top: 8px;
}

.chat-edit-cancel,
.chat-edit-save {
  border: none;
  border-radius: 12px;
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}

.chat-edit-cancel {
  background: var(--fontcolor);
  color: var(--color);
  opacity: 0.7;
}

.chat-edit-cancel:hover {
  opacity: 1;
}

.chat-edit-save {
  background: var(--dark);
  color: var(--fontcolor);
}

.chat-edit-save:disabled,
.chat-edit-cancel:disabled {
  opacity: 0.4;
  cursor: default;
}

/* Transient "edit expired" note */
.chat-edit-note {
  font-size: 0.72rem;
  opacity: 0.65;
  text-align: right;
  padding: 2px 4px;
  animation: chat-note-fade 3s forwards;
}

@keyframes chat-note-fade {
  0% {
    opacity: 0.65;
  }
  70% {
    opacity: 0.65;
  }
  100% {
    opacity: 0;
  }
}

/* ── Chat context menu (long-press / right-click) ────────────────────────── */

.chat-ctx-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
}

.chat-ctx-menu {
  position: fixed;
  z-index: 2001;
  min-width: 150px;
  border-radius: 16px;
  overflow: hidden;
  background: color-mix(in srgb, var(--fgColor) 94%, transparent);
  border: var(--l2l-action-border);
  box-shadow:
    0 10px 36px rgba(0, 0, 0, 0.28),
    0 2px 8px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  transform-origin: center center;
  animation: chat-ctx-pop 0.18s cubic-bezier(0.34, 1.5, 0.64, 1);
}

@keyframes chat-ctx-pop {
  from {
    opacity: 0;
    transform: scale(0.82);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.chat-ctx-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 13px 16px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0.93rem;
  font-family: inherit;
  color: var(--buttonColor);
  text-align: left;
  transition: background 0.1s;
  -webkit-tap-highlight-color: transparent;
}

.chat-ctx-btn:not(:last-child) {
  border-bottom: 1px solid color-mix(in srgb, var(--fontcolor) 7%, transparent);
}

.chat-ctx-btn:hover,
.chat-ctx-btn:active {
  background: color-mix(in srgb, var(--fontcolor) 8%, transparent);
}

.chat-ctx-btn-danger {
  color: #e53e3e;
}

.chat-ctx-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background-color: var(--buttonColor);
}

.chat-ctx-btn-danger .chat-ctx-icon {
  background-color: #e53e3e;
}

/* ── Context-menu icons (CSS mask — SVG paths, Feather-style) ─────────────── */

#chat-ctx-reply .chat-ctx-icon {
  mask: url(../images/navigation/reply.svg) center / contain no-repeat;
}

#chat-ctx-react .chat-ctx-icon {
  mask: url(../images/navigation/react.svg) center / contain no-repeat;
}

#chat-ctx-copy .chat-ctx-icon {
  mask: url(../images/navigation/copy.svg) center / contain no-repeat;
}

#chat-ctx-edit .chat-ctx-icon {
  mask: url(../images/navigation/pencil.svg) center / contain no-repeat;
}

#chat-ctx-delete .chat-ctx-icon {
  mask: url(../images/navigation/trash.svg) center / contain no-repeat;
}

/* ── Reaction picker (floating emoji strip) ───────────────────────────────── */

.chat-reaction-picker {
  position: fixed;
  z-index: 2100;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 6px 10px;
  border-radius: 100px;
  background: color-mix(in srgb, var(--fgColor) 96%, transparent);
  border: var(--l2l-action-border);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.28),
    0 2px 8px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  transform-origin: center bottom;
  animation: chat-rxn-picker-pop 0.2s cubic-bezier(0.34, 1.5, 0.64, 1);
}

@keyframes chat-rxn-picker-pop {
  from {
    opacity: 0;
    transform: scale(0.65);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.chat-reaction-pick-btn {
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 1.6rem;
  line-height: 1;
  padding: 5px;
  border-radius: 50%;
  transition:
    transform 0.15s cubic-bezier(0.34, 1.5, 0.64, 1),
    background 0.1s;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-reaction-pick-btn:hover,
.chat-reaction-pick-btn:focus-visible {
  transform: scale(1.4) translateY(-4px);
  background: color-mix(in srgb, var(--fontcolor) 10%, transparent);
  outline: none;
}

.chat-reaction-pick-btn.active {
  background: color-mix(in srgb, var(--color, #4a9eff) 22%, transparent);
}

/* ── Reaction bubbles (below each message bubble) ────────────────────────── */

.chat-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
  margin-bottom: 2px;
  padding: 0 2px;
}

.chat-message-mine .chat-reactions {
  justify-content: flex-end;
}

.chat-reaction-bubble {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px 9px 3px 7px;
  border-radius: 100px;
  border: 1px solid color-mix(in srgb, var(--fontcolor) 14%, transparent);
  background: color-mix(in srgb, var(--fgColor) 70%, transparent);
  cursor: pointer;
  font-size: 0.8rem;
  font-family: inherit;
  color: var(--fontcolor);
  transition:
    transform 0.12s cubic-bezier(0.34, 1.5, 0.64, 1),
    background 0.1s;
  -webkit-tap-highlight-color: transparent;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.chat-reaction-bubble:hover,
.chat-reaction-bubble:focus-visible {
  transform: scale(1.1);
  outline: none;
  background: color-mix(in srgb, var(--fontcolor) 12%, transparent);
}

.chat-reaction-bubble--mine {
  background: color-mix(in srgb, var(--color, #4a9eff) 28%, transparent);
  border-color: color-mix(in srgb, var(--color, #4a9eff) 55%, transparent);
}

.chat-input-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  bottom: calc(0px + var(--navbar-padding));
  left: 0;
  width: 100%;
  gap: 0;
  position: absolute;
  padding: 10px 12px 25px;
  border-top: var(--l2l-action-border);
  background: var(--fgColor);
  z-index: 3;
}

.chat-input-controls {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  bottom: 5px;
}

.chat-attach-btn {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0.75;
  color: inherit;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s;
}
.chat-attach-btn:hover {
  opacity: 1;
}
.chat-attach-btn::after {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  background: currentColor;
  mask: url(../images/navigation/attatchment.png) center / contain no-repeat;
}

.chat-attach-preview {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border, transparent);
}
.chat-attach-preview-thumb {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.chat-attach-preview-name {
  flex: 1;
  font-size: 0.82rem;
  opacity: 0.75;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chat-attach-clear-btn {
  border: none;
  background: var(--buttonColor);
  border-radius: 8px;
  height: 22px;
  cursor: pointer;
  line-height: 1;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bgColor);
  opacity: 0.6;
  align-self: center;
}
.chat-attach-clear-btn:hover {
  opacity: 1;
}
.chat-attach-preview-card {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.chat-attach-item-remove-btn {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  cursor: pointer;
  font-size: 0.7rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.chat-attach-item-remove-btn:hover {
  background: rgba(0, 0, 0, 0.85);
}

.chat-attachment {
  display: flex;
  margin-bottom: 6px;
  justify-content: center;
}
.chat-attachment-img {
  max-width: 100%;
  max-height: 260px;
  border-radius: 10px;
  display: block;
  cursor: zoom-in;
  object-fit: contain;
}
.chat-video-thumb {
  position: relative;
  display: inline-block;
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
  max-width: 100%;
  line-height: 0;
}

.chat-video-thumb-el {
  display: block;
  max-width: 260px;
  max-height: 200px;
  border-radius: 10px;
  object-fit: cover;
  pointer-events: none;
  background: #000;
}

.chat-video-play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.32);
  transition: background 0.15s;
}

.chat-video-thumb:hover .chat-video-play-btn,
.chat-video-thumb:focus .chat-video-play-btn {
  background: rgba(0, 0, 0, 0.48);
}

.chat-video-play-btn::after {
  content: "";
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.92);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23333' d='M8 5v14l11-7z'/%3E%3C/svg%3E");
  background-size: 28px 28px;
  background-position: 54% 50%;
  background-repeat: no-repeat;
}

#chat-video-player {
  border: none;
  padding: 0;
  margin: 0;
  background: transparent;
  width: 100vw;
  height: 100dvh;
  max-width: 100vw;
  max-height: 100dvh;
  display: none;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

#chat-video-player[open] {
  display: flex;
}

#chat-video-player::backdrop {
  background: rgba(0, 0, 0, 0.92);
}

#chat-video-el {
  max-width: 100vw;
  max-height: 100dvh;
  width: auto;
  height: auto;
  outline: none;
  border-radius: 4px;
}

.chat-video-close-btn {
  position: fixed;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  transition: background 0.15s;
}

.chat-video-close-btn:hover {
  background: rgba(255, 255, 255, 0.28);
}

.chat-attachment-file {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 0.86rem;
  text-decoration: none;
  color: inherit;
  word-break: break-all;
}
.chat-attachment-file::before {
  content: "📎";
  flex-shrink: 0;
}

/* ── Chat attachment stack (multiple images/videos from same sender batch) ── */

.chat-attachment-stack {
  position: relative;
  width: 100%;
  height: 300px;
  touch-action: pan-y;
  margin-bottom: 22px;
}

.chat-attachment-stack-card {
  position: absolute;
  background: var(--bgTrans);
  top: 0;
  right: -10px;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
  will-change: transform;
  cursor: grab;
  box-shadow:
    2px 5px 14px rgb(0 0 0 / 30%),
    0 1px 3px rgb(0 0 0 / 18%);
}

.chat-message-mine .chat-attachment-stack-card {
  right: 10px;
}

.chat-attachment-stack-card:active {
  cursor: grabbing;
}

.chat-attachment-stack-card .chat-attachment {
  margin-bottom: 0;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 1 / 1;
}

.chat-attachment-stack-card .chat-attachment-img {
  display: flex;
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: cover;
  border-radius: 0;
  background: #fff;
  align-items: center;
  justify-content: center;
}

.chat-attachment-stack-card .chat-video-thumb {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  max-width: 100%;
}

.chat-attachment-stack-card .chat-video-thumb-el {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 220px;
  object-fit: cover;
  border-radius: 0;
}

.chat-attachment-stack-dots {
  position: absolute;
  bottom: -16px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 5px;
  pointer-events: none;
}

.chat-attachment-stack-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--buttonColor) 25%, transparent);
  transition:
    background 0.25s ease,
    transform 0.25s ease;
  flex-shrink: 0;
}

.chat-attachment-stack-dot.active {
  background: color-mix(in srgb, var(--buttonColor) 65%, transparent);
  transform: scale(1.4);
}

.chat-input {
  flex: 1;
  border: 1px solid var(--evenRow);
  border-radius: 20px;
  padding: 8px 14px;
  font-size: 0.92rem;
  font-family: var(--font, sans-serif);
  background: var(--bgColor);
  color: inherit;
  line-height: 1.4;
  min-height: calc(1.4em + 16px);
  max-height: 120px;
  overflow-y: auto;
  outline: none;
  transition: border-color 0.15s;
  word-break: break-word;
  white-space: pre-wrap;
  box-sizing: border-box;
  -webkit-user-select: text;
  user-select: text;
  -webkit-user-modify: read-write;
}

.chat-input:focus {
  border-color: var(--color);
  outline: none;
}

.chat-input.is-empty::before {
  content: attr(data-placeholder);
  color: var(--placeholder, rgba(128, 128, 128, 0.6));
  pointer-events: none;
  display: block;
}

/* GIF button */
.chat-gif-btn {
  display: flex;
  height: 30px;
  width: 30px;
  background: var(--buttonColor);
  opacity: 0.75;
  cursor: pointer;
  transition: background 0.15s;
  mask: url(../images/navigation/gif.svg) center / contain no-repeat;
}
.chat-gif-btn:hover {
  background: var(--color);
}

/* Klipy picker dialog */
.chat-klipy-dialog {
  position: fixed;
  inset: auto 0 0;
  width: 100vw;
  max-width: 100vw;
  max-height: 55dvh;
  height: 70%;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 16px 16px 0 0;
  background: var(--fgColor);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.35);
  flex-direction: column;
  overflow: hidden;
  display: none;
  box-sizing: border-box;
}

.chat-klipy-dialog[open] {
  display: flex;
  animation: dash-detail-slide-up var(--speed) ease forwards;
}

.chat-klipy-dialog::backdrop {
  background: rgba(0, 0, 0, 0.45);
}
@media (min-width: 600px) {
  .chat-klipy-dialog {
    inset: auto;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    width: 480px;
    max-width: 480px;
    max-height: 60dvh;
    border-radius: 16px;
  }
}

.chat-klipy-header {
  display: flex;
  align-items: center;
  position: relative;
  top: 5px;
  margin: 0;
  gap: 8px;
  width: 100%;
  padding: 10px;
  border-bottom: var(--l2l-action-border);
  flex-shrink: 0;
  justify-content: space-between;
}
.chat-klipy-tabs {
  display: flex;
  gap: 4px;
}
.chat-klipy-tab {
  display: flex;
  padding: 4px 12px;
  border-radius: 20px;
  height: 32px;
  border: var(--l2l-action-border);
  background: var(--l2l-action-background);
  color: var(--buttonColor);
  font-size: 0.7rem;
  font-weight: bold;
  cursor: pointer;
  opacity: 0.6;
  transition:
    opacity 0.15s,
    background 0.15s;
  align-items: center;
  justify-content: center;
}
.chat-klipy-tab-active {
  opacity: 1;
  background: var(--colorTrans);
  border: 1px solid var(--colorTrans);
  color: var(--color);
}
.chat-klipy-search {
  flex: 1;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 20px;
  padding: 6px 12px;
  font-size: 0.88rem;
  height: 36px;
  width: 45% !important;
  color: inherit;
}
.chat-klipy-search:focus {
  border-color: var(--color);
}
.chat-klipy-close {
  width: 38px;
  height: 38px;
  border: none;
  margin: 0;
  opacity: 1;
  background: var(--color);
  cursor: pointer;
  color: inherit;
  display: flex;
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
}
.chat-klipy-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  position: relative;
  width: 100%;
  height: 100%;
  padding: 0px 5px;
  row-gap: 76px;
  overflow-y: scroll;
  top: 5px;
  margin: 0;
  gap: 0px;
}

.chat-klipy-item {
  padding: 0;
  background: var(--l2l-action-background);
  border-radius: 8px;
  width: calc(25% - 10px);
  height: 80px;
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 1;
  display: flex;
  justify-content: center;
  transition: opacity 0.15s;
  border: var(--l2l-action-border);
}
.chat-klipy-item:hover {
  opacity: 0.85;
}
.chat-klipy-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  cursor: pointer;
}
.chat-klipy-loading,
.chat-klipy-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 24px;
  opacity: 0.5;
  font-size: 0.88rem;
}
.chat-klipy-attribution {
  text-align: center;
  padding: 5px;
  font-size: 0.72rem;
  opacity: 0.45;
  flex-shrink: 0;
}

.chat-send-btn {
  flex-shrink: 0;
  background: var(--color);
  color: var(--fontcolor);
  border: none;
  border-radius: 20px;
  padding: 8px 16px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}

.chat-send-btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.chat-loading,
.chat-error,
.chat-empty-state {
  text-align: center;
  padding: 32px 16px;
  opacity: 0.55;
  font-size: 0.9rem;
  align-self: center;
}

.chat-error {
  color: #e05;
  opacity: 1;
}

.chat-dialog {
  border: none;
  border-radius: 14px;
  padding: 0;
  background: var(--bgTrans);
  backdrop-filter: blur(5px);
  color: inherit;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  min-width: 280px;
  max-width: 500px;
}

.chat-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(2px);
}

.chat-dialog-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px 20px 18px;
}

.chat-dialog-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.chat-dialog-input {
  border: 1px solid var(--evenRow);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 0.95rem;
  font-family: inherit;
  background: var(--bgColor);
  color: inherit;
  outline: none;
  transition: border-color 0.15s;
  width: 100%;
  box-sizing: border-box;
}

.chat-dialog-input:focus {
  border-color: var(--color);
}

.chat-dialog-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.chat-dialog-btn {
  border: none;
  border-radius: 8px;
  padding: 8px 18px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}

.chat-dialog-cancel {
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  color: var(--buttonColor);
}

.chat-dialog-confirm {
  background: var(--color);
  color: var(--fontcolor);
}

.chat-dialog-btn:hover {
  opacity: 0.85;
}

.chat-privacy-toggle {
  display: flex;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--evenRow);
}

.chat-privacy-btn {
  display: flex;
  border: none;
  padding: 8px 10px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: transparent;
  color: inherit;
  opacity: 0.55;
  transition:
    background 0.15s,
    opacity 0.15s;
  align-items: center;
  justify-content: center;
}

.chat-privacy-btn.chat-privacy-active {
  background: var(--color);
  color: var(--fontcolor);
  opacity: 1;
}

.chat-member-picker {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.chat-member-picker-label {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.chat-member-list {
  position: relative;
  height: 300px;
  overflow-y: auto;
  background: var(--l2l-action-background);
  border: var(--l2l-action-border);
  border-radius: 12px;
  padding: 0;
}

.chat-member-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  cursor: pointer;
  transition: background 0.1s;
}

.chat-member-item:hover {
  background: var(--colorTrans);
}

.chat-member-cb {
  flex-shrink: 0;
  accent-color: var(--color);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.chat-member-name {
  flex: 1;
  font-size: 0.9rem;
}

.chat-member-badge-tag {
  font-size: 0.72rem;
  opacity: 0.55;
  background: var(--evenRow);
  padding: 1px 6px;
  border-radius: 10px;
}

.chat-member-loading {
  display: block;
  padding: 10px 12px;
  font-size: 0.85rem;
  opacity: 0.55;
}

.chat-room-lock {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  justify-self: center;
  display: flex;
  flex-shrink: 0;
  background: var(--color);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
}

.chat-room-lock::before {
  content: "";
  display: flex;
  position: relative;
  width: 60%;
  height: 60%;
  background: var(--fontcolor);
  border-radius: 50%;
  mask: url(../images/navigation/group.svg) center / contain no-repeat;
}

.chat-room-avatar {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  display: flex;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  align-items: center;
  justify-content: center;
  border: var(--l2l-action-border);
}

.chat-members-current {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 32px;
  margin-bottom: 4px;
  justify-content: center;
  align-items: center;
}

.chat-member-pill {
  display: flex;
  background: var(--color);
  color: var(--fontcolor);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.8rem;
  align-items: center;
}

.chat-member-add-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 2px;
  border-bottom: var(--l2l-action-border);
}

.chat-member-add-row:last-child {
  border-bottom: none;
}

.chat-add-member-btn {
  border: none;
  width: 75px;
  background: var(--color);
  color: var(--fontcolor);
  font-size: 0.78rem;
  font-weight: 700;
  padding: 4px 10px;
  cursor: pointer;
}

.chat-add-member-btn:disabled {
  opacity: 0.5;
  cursor: default;
}

/* ── Thread header members button ────────────────────────────────────────── */

.chat-rename-btn {
  background: 0;
  border: none;
  cursor: pointer;
  padding: 0 8px;
  border-radius: 8px;
}
.chat-rename-btn:hover {
  opacity: 1;
}
.chat-rename-btn span {
  display: flex;
  position: relative;
  top: 1px;
  width: 22px;
  height: 22px;
  background: var(--fontcolor);
  mask: url(../images/navigation/rename1.png) center / contain no-repeat;
}

.chat-members-btn {
  position: relative;
  right: 2px;
  background: 0;
  border: none;
  cursor: pointer;
  padding: 0 5px;
  border-radius: 8px;
}

.chat-members-btn span,
#chat-privacy-public span,
#chat-privacy-private span {
  display: flex;
  width: 16px;
  height: 16px;
  margin-right: 5px;
  background: var(--fontcolor);
  mask: url(../images/navigation/addgroup.png) center / contain no-repeat;
}

.chat-members-btn span {
  width: 32px;
  height: 32px;
  margin-right: unset;
}

#chat-privacy-public span {
  mask: url(../images/navigation/public.svg) center / contain no-repeat;
}

#chat-privacy-private span {
  mask: url(../images/navigation/private.svg) center / contain no-repeat;
}

.chat-dialog.chat-members-dialog {
  min-width: 300px;
}

input[type="checkbox"] {
  accent-color: var(--color);
}

.btn-delete {
  display: flex;
  padding: 10px 24px;
  border: none;
  border-radius: 40px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  background: #df0101;
  color: white;
  transition: all 0.2s ease;
  width: 100%;
  align-items: center;
  justify-content: center;
}

.btn-delete:hover {
  background: #c82333;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#entry-delete-container {
  margin-top: 0;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

#delete-log-entry-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.3s ease;
}

#delete-log-entry-modal .modal-content {
  background-color: var(--bg);
  padding: 30px;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  max-width: 400px;
  width: 90%;
  animation: slideUp 0.3s ease;
}

#delete-log-entry-modal .modal-header {
  margin-bottom: 20px;
  border-bottom: 2px solid var(--color);
  padding-bottom: 15px;
}

#delete-log-entry-modal .modal-header h2 {
  margin: 0;
  color: var(--color);
  font-size: 1.3em;
}

#delete-log-entry-modal .modal-body {
  margin-bottom: 25px;
  color: var(--buttonColor);
  font-size: 0.95em;
  line-height: 1.6;
}

#delete-log-entry-modal .modal-body p {
  margin: 10px 0;
}

#delete-log-entry-modal .modal-body p strong {
  color: #dc3545;
}

#delete-log-entry-modal .modal-footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

#delete-log-entry-modal .btn-confirm,
#delete-log-entry-modal .btn-cancel {
  width: auto;
  padding: 10px 24px;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* ─────────────────── Bubble Level ─────────────────── */
#bubble-level-drag {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.bubble-level-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 20px;
  padding: 20px 20px 30px;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  box-sizing: border-box;
}

.bubble-level-status {
  font-size: 1.5em;
  font-weight: bold;
  color: var(--buttonColor);
  letter-spacing: 1px;
  height: 1.6em;
}

.bubble-level-scene {
  position: relative;
  width: min(260px, 70vw);
  height: min(260px, 70vw);
  border-radius: 50%;
  background: radial-gradient(
    circle at 40% 35%,
    var(--color),
    rgb(0 0 0 / 60%) 70%
  );
  border: 3px solid var(--fgColor, #4caf50);
  box-shadow:
    0 0 0 6px rgba(0, 0, 0, 0.25),
    0 4px 24px rgba(0, 0, 0, 0.6),
    inset 0 0 40px rgba(0, 0, 0, 0.4);
  overflow: hidden;
}

.bubble-level-crosshair {
  position: absolute;
  inset: 0;
}

.bubble-level-crosshair::before,
.bubble-level-crosshair::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.12);
}

.bubble-level-crosshair::before {
  width: 1px;
  height: 100%;
  left: 50%;
}

.bubble-level-crosshair::after {
  width: 100%;
  height: 1px;
  top: 50%;
}

.bubble-level-ring {
  position: absolute;
  width: 38%;
  height: 38%;
  border: 1.5px dashed rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.bubble-level-bubble {
  position: absolute;
  width: 22%;
  height: 22%;
  border-radius: 50%;
  background: radial-gradient(
    circle at 40% 35%,
    var(--colorTransMedium),
    rgb(0 0 0 / 80%) 70%
  );
  border:
    3px solid var(--color),
    var(--darker);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.08s linear;
  pointer-events: none;
}

.bubble-level-bubble.level {
  background: radial-gradient(
    circle at 35% 30%,
    rgba(255, 255, 255, 0.75),
    var(--color) 40%,
    color-mix(in srgb, var(--color) 60%, #000)
  );
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.4),
    0 0 22px color-mix(in srgb, var(--color) 55%, transparent),
    inset 0 -2px 5px rgba(0, 0, 0, 0.2);
}

.bubble-level-angles {
  font-size: 0.95em;
  font-family: monospace;
  letter-spacing: 2px;
  color: var(--buttonColor);
  opacity: 0.65;
  height: 1.4em;
}

.bubble-level-buttons {
  margin-top: 4px;
}

.bubble-level-buttons button {
  width: calc(100% + 40px);
}

/* ── Bulletin Board ──────────────────────────────────────────────────────── */
#bulletin-board {
  padding: 16px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Filter row */
.bulletin-filter-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.bulletin-filter-btn {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid var(--colorTrans);
  background: var(--colorTrans);
  color: var(--color);
  cursor: pointer;
  font-size: 0.82rem;
  transition:
    background 0.15s,
    color 0.15s;
}

.bulletin-filter-btn.active,
.bulletin-filter-btn:hover {
  background: var(--color);
  color: var(--fontcolor);
  border: 1px solid var(--darker);
}

.bulletin-admin-tag {
  margin-left: auto;
  font-size: 0.85rem;
  font-weight: bold;
  color: red;
  background: rgb(255 0 0 / 40%);
  border: 1px solid rgb(255 0 0 / 40%);
  border-radius: 16px;
  padding: 4px 8px;
  letter-spacing: 0.05em;
}

/* New ticket panel */
.bulletin-new-panel {
  background: var(--bgTrans);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  margin-bottom: 16px;
  overflow: hidden;
}

.bulletin-new-panel > summary {
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9rem;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
  user-select: none;
}

.bulletin-new-panel > summary::marker,
.bulletin-new-panel > summary::-webkit-details-marker {
  display: none;
}

.bulletin-new-panel > summary::before {
  content: "+";
  font-size: 1.2rem;
  color: var(--color, #4a9eff);
  line-height: 1;
}

.bulletin-new-panel[open] > summary::before {
  content: "−";
}

.bulletin-form {
  padding: 0 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bulletin-type-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.bulletin-type-row label {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  cursor: pointer;
  font-size: 0.88rem;
}

.bulletin-input,
.bulletin-textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: inherit;
  padding: 8px 12px;
  font-size: 0.9rem;
  font-family: inherit;
}

.bulletin-input:focus,
.bulletin-textarea:focus {
  outline: none;
  border-color: var(--color, #4a9eff);
}

.bulletin-textarea {
  min-height: 80px;
  resize: vertical;
}

.bulletin-submit-status {
  color: #f77;
  font-size: 0.82rem;
  margin: 0;
}

.bulletin-submit-btn {
  align-self: flex-end;
  padding: 8px 22px;
  background: var(--color, #4a9eff);
  color: var(--fontcolor);
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
  transition: opacity 0.15s;
}

.bulletin-submit-btn:disabled {
  opacity: 0.55;
  cursor: default;
}

.bulletin-list {
  display: flex;
  flex-direction: row;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
}

.bulletin-ticket {
  display: flex;
  background: var(--card, rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 14px 16px;
  transition: opacity 0.2s;
  width: 100%;
  background: var(--bgTrans);
  flex-direction: column;
  justify-content: space-between;
}

.bulletin-ticket-header {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.bulletin-type-badge,
.bulletin-status-badge {
  font-size: 0.68rem;
  padding: 4px 8px;
  border-radius: 20px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border: 0;
  text-transform: uppercase;
}

.bulletin-type-bug {
  background: #ff0000;
  color: #fff;
}

.bulletin-type-feature {
  background: rgb(0 141 255);
  color: #fff;
}

.bulletin-status-open {
  background: #58da58;
  color: #2c2c32;
}

.bulletin-status-closed {
  background: rgba(120, 120, 120, 0.2);
  color: #000;
  border: 1px solid rgba(120, 120, 120, 0.3);
}

.bulletin-ticket-id {
  margin-left: auto;
  font-size: 0.72rem;
  color: #666;
}

.bulletin-ticket-title {
  font-size: 0.98rem;
  font-weight: 600;
  margin: 0 0 6px;
}

.bulletin-ticket-desc {
  font-size: 0.86rem;
  line-height: 1.55;
  margin: 0 0 10px;
  white-space: pre-wrap;
  word-break: break-word;
  color: rgba(255, 255, 255, 0.75);
}

.bulletin-ticket-footer {
  font-size: 0.73rem;
  color: #777;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.bulletin-closed-note {
  color: #888;
  font-style: italic;
}

/* Admin action buttons */
.bulletin-ticket-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.bulletin-btn {
  padding: 5px 14px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-size: 0.8rem;
  width: calc(50% - 4px);
  font-weight: 600;
  transition: filter 0.15s;
}

.bulletin-btn:hover {
  filter: brightness(1.2);
}

.bulletin-btn-close {
  background: #00ff00;
  color: #2c2c32;
}

.bulletin-btn-delete {
  background: #ff0000;
  color: #fff;
}

.bulletin-empty {
  text-align: center;
  color: #777;
  padding: 28px 0;
  font-size: 0.88rem;
  margin: 0;
}

/* Light theme overrides */

.light #bulletin-board .bulletin-input,
.light #bulletin-board .bulletin-textarea {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.2);
  color: #111;
}

.light #bulletin-board .bulletin-ticket-desc {
  color: rgba(0, 0, 0, 0.7);
}

.light #bulletin-board .bulletin-ticket-footer {
  color: #888;
}

.l2l-dispatch-monitor-tab-bar {
  height: 50px;
}
.l2l-dispatch-monitor-tab-bar .l2l-dispatch-tab-btn {
  height: 51px;
}

.l2l-dispatch-monitor-tab-bar button:nth-of-type(1) span {
  mask: url(../images/navigation/plus.svg) center / contain no-repeat;
  width: 18px;
  height: 18px;
}
.l2l-dispatch-monitor-tab-bar button:nth-of-type(2) span {
  mask: url(../images/navigation/sort.svg) center / contain no-repeat;
}
.l2l-dispatch-monitor-tab-bar button:nth-of-type(3) span {
  mask: url(../images/navigation/summary.svg) center / contain no-repeat;
}
.l2l-dispatch-monitor-tab-bar button:nth-of-type(4) span {
  mask: url(../images/navigation/search2.svg) center / contain no-repeat;
}

@-webkit-keyframes wormbounce {
  0% {
    margin-bottom: 0px;
  }
  50% {
    margin-bottom: 20px;
  }
  100% {
    margin-bottom: 0px;
  }
}

@-keyframes wormbounce {
  0% {
    margin-bottom: 0px;
  }
  50% {
    margin-bottom: 20px;
  }
  100% {
    margin-bottom: 0px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .browser-modal-footer,
  .browser-modal-footer.is-visible {
    transition: none;
  }
}

/* ── Bulletin Board – additions ─────────────────────────────────────────── */

.bulletin-form-footer {
  display: flex;
  align-items: center;
  gap: 10px;
}

.bulletin-attach-btn {
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
  color: inherit;
  font-size: 0.83rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}

.bulletin-attach-btn:hover {
  background: rgba(255, 255, 255, 0.12);
}

#bulletin-board .bulletin-form-footer .bulletin-submit-btn {
  margin-left: auto;
}

/* File preview strip */
.bulletin-file-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px 0;
}

.bulletin-preview-thumb {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bulletin-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bulletin-preview-video-icon {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1;
}

.bulletin-preview-video-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  font-size: 0.55rem;
  padding: 2px 3px;
  background: rgba(0, 0, 0, 0.55);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bulletin-preview-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: 0.75rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* Attachment grid inside ticket cards */
.bulletin-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0;
}

.bulletin-attach-img-btn {
  border: none;
  padding: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  line-height: 0;
  transition: opacity 0.15s;
}

.bulletin-attach-img-btn:hover {
  opacity: 0.85;
}

.bulletin-attach-img {
  width: 120px;
  height: 90px;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}

.bulletin-attach-video-wrap {
  flex-shrink: 0;
}

.bulletin-attach-video {
  max-width: 280px;
  max-height: 180px;
  border-radius: 8px;
  display: block;
  background: #000;
}

/* Edit button */
.bulletin-btn-edit {
  background: rgba(60, 100, 200, 0.2);
  color: #7fc6ff;
  border: 1px solid rgba(60, 100, 200, 0.35);
}

/* Comments section */
.bulletin-comments-toggle {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 20px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.75rem;
  padding: 3px 10px;
  cursor: pointer;
  transition:
    background 0.15s,
    color 0.15s;
  white-space: nowrap;
}

.bulletin-comments-toggle:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.bulletin-comments-section {
  margin-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 10px;
}

.bulletin-comments-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.bulletin-comment {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  padding: 8px 12px;
}

.bulletin-comment-meta {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 4px;
}

.bulletin-comment-author {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color, #4a9eff);
}

.bulletin-comment-date {
  font-size: 0.7rem;
  color: #666;
}

.bulletin-comment-body {
  font-size: 0.86rem;
  line-height: 1.5;
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  color: rgba(255, 255, 255, 0.75);
}

.bulletin-comment-empty {
  font-size: 0.82rem;
  color: #666;
  margin: 0 0 8px;
  font-style: italic;
}

.bulletin-comment-form-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.bulletin-comment-input {
  width: 100%;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: inherit;
  padding: 7px 10px;
  font-size: 0.86rem;
  font-family: inherit;
  resize: vertical;
  min-height: 48px;
}

.bulletin-comment-input:focus {
  outline: none;
  border-color: var(--color, #4a9eff);
}

.bulletin-comment-submit-btn {
  align-self: flex-end;
  padding: 5px 16px;
  font-size: 0.82rem;
}

/* Edit dialog overrides */
#bulletin-edit-dialog .bulletin-input,
#bulletin-edit-dialog .bulletin-textarea {
  margin-top: 6px;
  width: 100%;
  box-sizing: border-box;
}

#bulletin-edit-dialog .bulletin-textarea {
  min-height: 100px;
}

#bulletin-edit-dialog .bulletin-type-row {
  margin-bottom: 4px;
}

/* Light theme */
.light #bulletin-board .bulletin-attach-btn {
  border-color: rgba(0, 0, 0, 0.15);
  background: rgba(0, 0, 0, 0.04);
}

.light #bulletin-board .bulletin-comment {
  background: rgba(0, 0, 0, 0.04);
}

.light #bulletin-board .bulletin-comment-body {
  color: rgba(0, 0, 0, 0.75);
}

.light #bulletin-board .bulletin-comment-input {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.2);
  color: #111;
}

@media screen and (max-width: 480px) {
  .bulletin-attach-img {
    width: 90px;
    height: 68px;
  }

  .bulletin-attach-video {
    max-width: 100%;
  }
}

@media screen and (min-width: 720px) {
  .browser-new-window-btn {
    display: inline-flex;
  }
  .update-button {
    bottom: 40px;
  }

  .drag {
    height: 100%;
    width: 100%;
    max-width: 100%;
    place-self: anchor-center;
    border-radius: 16px;
    box-shadow: 0px 0px 15px 4px rgb(0 0 0 / 30%);
  }

  #panelIcon {
    display: flex;
  }

  #bigStore,
  #bigIAI {
    margin-top: calc(var(--height) / 2 - 65px * 2);
  }

  #menu-mobile {
    margin-top: 0;
  }

  #mdispatch {
    display: none;
  }

  .sidenav-head {
    top: 0;
  }

  .submit-float {
    bottom: 25px;
  }

  .setting-tab {
    display: flex !important;
    position: fixed;
    margin-top: 10px;
    max-width: 40%;
    font-size: 1.5em;
  }

  .setting-tabcontent {
    border-left: var(--desktopBorder);
    position: relative;
    left: 40%;
    max-width: 60%;
  }

  .calendar__sidebar {
    position: absolute;
    bottom: 20px;
    left: unset;
    right: 20px;
    height: calc(95% - 150px);
    max-height: calc(95% - 150px);
    width: 45%;
    border-radius: 25px !important;
  }

  .calendar__days {
    position: absolute;
    top: 60px;
    left: 0;
    gap: 0;
    width: 50%;
    height: 85%;
    border: none;
  }

  .calendar__day {
    height: auto;
  }

  .calendar__top-bar {
    padding: 15px 0 25px;
  }

  .top-bar__days {
    padding: 20px 5px 0;
  }

  .event-pill {
    display: none;
  }

  .title-bar {
    top: 90px;
    position: absolute;
    right: 7px;
    left: unset;
    width: fit-content;
    width: -moz-fit-content;
    padding: 1rem;
    justify-content: center;
  }

  .cal-nav {
    border-radius: 10px;
    width: 120px;
    top: 100px;
    left: unset;
    right: calc(45% - 100px);
    height: auto;
  }
  .notes-content {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
  }

  .quick-launch-grid {
    background: var(--fgColor);
    padding: 15px;
    gap: 15px;
    border: var(--border);
    margin-top: 10px;
  }

  .quick-launch-grid.light {
    background: #fff;
    border: 1px solid #ddd;
  }

  .quick-button {
    width: calc(100% / 3 - 10px);
  }

  .searchbar .Input {
    width: 60%;
    left: 40%;
    position: relative;
  }

  .desktop-nav {
    display: flex;
  }

  #bottomNav {
    display: none !important;
  }

  .setting-menu {
    font-size: 65%;
  }

  #general {
    display: block;
  }

  .mincalendar,
  #weather-widget,
  .notes-inner-content,
  #quick-container,
  #pdf-bookmarks-widget,
  #l2l-spares-widget,
  #l2l-stats-widget {
    width: calc(50% - 20px);
    margin: 10px;
  }

  .l2l-spares-status {
    margin-top: 8px;
    text-align: left;
  }

  h1 {
    font-size: 1.5em;
  }

  #Tab3,
  #Tab4 {
    padding-top: 75px;
  }

  body::-webkit-scrollbar {
    display: none;
  }

  .modal-body {
    padding-top: 0;
    height: 100%;
  }

  .modal-content {
    position: relative;
    width: 80%;
    height: 75%;
    font-size: 2vw;
    border-radius: 15px;
    top: calc(25% / 2);
    overflow: scroll;
    box-shadow: 2px 2px 10px 2px rgb(0 0 0 / 20%);
  }

  .clear-ohms,
  .ohms-law {
    font-size: 1vw;
  }

  #maintenance-grid,
  #ip-grid {
    justify-self: center;
    margin: 50px 0 0 0;
    max-width: calc(var(--width) / 2);
  }

  .collapsible-maintenance {
    max-width: calc(var(--width) / 2);
  }

  .maintenance-lines-panel,
  .maintenance-ops-panel {
    width: 100%;
  }

  .universal-table {
    font-size: 1rem;
  }

  .universal-table td {
    display: table-cell;
    font-size: 1rem;
    text-align: center;
    padding: 5px;
    border: 1px solid #45484c;
    border-left: 0;
    border-top: 0;
  }

  .universal-table td::before {
    content: "";
  }

  .universal-table tr th {
    display: table-cell;
  }

  .universal-table tr td:last-child {
    border-bottom: 1px solid #45484c;
  }

  #maintenance-guide-header {
    height: 110px;
    padding: 30px 30px 30px;
    align-items: center;
  }

  .log-sort-wrapper {
    left: calc(100% - 120px);
  }

  .log-sort-popover {
    top: calc(100% - 6px);
    left: -40px;
  }

  #guide-search2 {
    position: absolute;
    left: 20px;
    width: 25%;
  }

  .universal-table tr th:nth-child(2),
  .universal-table tr th:nth-child(3) {
    padding: 20px 50px;
  }

  #ip-modal .log-table .universal-table tr th {
    display: table-cell !important;
  }

  #ip-modal .log-table .universal-table thead tr:last-child {
    display: table-row !important;
  }

  #ip-modal .log-table .universal-table thead th .Input {
    position: absolute;
    width: 25%;
    top: 15px;
  }

  .three,
  .hicon {
    top: calc(3px + env(safe-area-inset-top));
  }

  #Tab1,
  #Tab2 {
    padding: calc(75px + var(--iOSPadding)) 0 0;
  }

  tbody#uni-fanuc tr td:first-of-type,
  #fanuc-table.universal-table tr th:first-of-type {
    display: table-cell;
  }

  #searchPanel {
    flex-direction: row;
    flex-wrap: wrap;
    width: var(--width);
  }

  #searchHeader {
    position: absolute;
    top: 0;
    left: 10px;
    width: calc(var(--width) / 2);
  }

  #uni-form {
    position: absolute !important;
    visibility: hidden;
    top: 24px;
    left: unset;
    right: 20px;
    width: calc(var(--width) / 2 - 155px);
  }

  #search_dock {
    position: absolute;
    top: 30px;
    right: 20px;
    width: calc(var(--width) / 2 - 30px - env(safe-area-inset-left));
  }

  #option-container {
    position: absolute;
    top: 120px;
    right: 20px;
    width: calc(var(--width) / 2 - 30px - env(safe-area-inset-left));
    overflow: scroll;
    max-height: 60%;
  }

  #option-container.ai {
    height: calc(var(--height) - 150px) !important;
    width: calc(100% - 30px);
    right: unset;
    margin-top: 15px;
    position: relative;
  }

  #searchresults {
    width: calc(var(--width) / 2 - 30px);
    position: absolute;
    top: 80px;
    right: unset;
    left: 20px;
    overflow-y: scroll;
    height: auto;
    max-height: var(--height);
  }

  #searchresults.expand {
    left: 0;
  }

  #searchresults li {
    width: calc(var(--width) / 4 - 35px);
    max-width: 100%;
  }

  .close-search-button {
    left: unset;
    top: 10px;
  }

  #voice.close-search-button {
    left: 72px;
    top: 21px;
    position: absolute;
  }

  .modal-form-content form {
    gap: 20px;
  }

  .sortable-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
  }

  .item {
    width: calc(50% - 20px);
  }

  .resistor-shell {
    width: 50%;
    height: 100%;
    background: var(--fgColor);
  }

  .resistor-shell:nth-of-type(2) {
    margin-top: 0;
  }

  .resistor-shell.light {
    background: #f2f2f2;
  }

  #content {
    flex-direction: row;
    column-gap: 10px;
    padding: 10px;
  }

  #resH2 {
    margin-top: 10px;
  }

  #eSeriesInfo {
    position: absolute;
    top: 56%;
    left: unset;
    width: calc(50% - 40px);
    right: 20px;
  }

  #eSeriesMenu li {
    background: var(--bgColor);
  }

  .clrSelectorArea {
    width: 50%;
    left: 25%;
    height: 80%;
    top: 10%;
    padding: 10px;
  }

  .clrSelectorField {
    width: 15%;
  }

  dialog#history_img {
    position: relative;
    justify-content: flex-start;
    max-width: 80%;
    max-height: 90%;
    width: 80%;
    top: 0;
    overflow: hidden;
    box-shadow: 0px 0px 5px 2px rgb(0 0 0 / 20%);
  }

  #modal-image {
    object-fit: cover;
  }

  :root {
    --iOSPadding: 0px;
    --navbar-padding: 0px;
  }

  .browser-modal-footer {
    bottom: 15px;
    width: 50%;
    left: 25%;
    border-radius: 12px;
    box-shadow: 1px 2px 10px 1px rgb(0 0 0 / 0.15);
  }

  .browser-list {
    display: flex;
    flex-direction: row;
    gap: 15px;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .browser-list .browser-item {
    width: calc(50% - 8px);
  }

  #info-block {
    border-radius: 0;
    background: var(--dialog-info);
  }

  #history_pop.light #info-block div {
    background: #fff;
  }

  div#myTopnav.operation {
    background: none;
    display: flex;
    top: calc(70px + var(--iOSPadding));
    left: 0;
    width: calc(100% / 2);
    align-items: flex-start;
    justify-content: flex-start;
  }

  div#myTopnav.stores {
    background: var(--color);
    top: calc(78px + var(--iOSPadding));
    width: 40%;
    height: calc(66px + env(safe-area-inset-top));
  }

  #myTopnav.stores select#custom_CS {
    width: 85%;
    left: 10%;
    height: 49px;
    border-radius: 999px;
  }

  #myTopnav.operation select#custom_CS {
    display: flex;
    width: 55%;
    left: 15px;
    position: relative;
    height: 40px;
    margin-bottom: 0px;
    top: 18px;
  }

  .line-admin-status {
    width: 30%;
    text-indent: unset;
  }

  .line-operation-table {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    padding: 20px;
  }

  .line-operation-row {
    width: calc(100% / 2 - 10px);
  }
  .l2l-dispatch-grid {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  }

  #l2l-dispatch-widget .l2l-spares-header {
    flex-direction: row;
    flex-wrap: wrap;
  }
  #Tab9 .notes-content {
    padding: 20px 15px 15px;
  }

  #adminContainer {
    grid-template-columns: 1fr 1fr;
    max-width: unset;
    align-items: flex-start;
    padding: 40px;
    gap: 40px;
  }

  #entry-block div {
    width: calc(50% - 5px);
  }

  .bulletin-ticket {
    width: calc(100% / 3 - 8px);
  }
  .drag-resize-handle {
    display: block;
  }
  .drag.drag-maximized .drag-resize-handle {
    display: none;
  }

  .drag-handle {
    cursor: move;
    user-select: none;
    -webkit-user-select: none;
  }
  .chat-message:has(.chat-msg-attach) {
    width: 20% !important;
  }
}

/* Three-pane dispatch monitor layout for desktop widths. */
@media screen and (min-width: 800px) {
  #Tab9.tabcontent {
    overflow: hidden;
    padding: calc(76px + var(--iOSPadding)) 0px
      calc(var(--navbar-padding) + env(safe-area-inset-bottom));
    padding-top: calc(76px + var(--iOSPadding));
  }

  #Tab9 .notes-content {
    height: calc(
      100vh - 70px - var(--iOSPadding, 0px) - var(--navbar-padding, 0px)
    );
    max-height: calc(
      100vh - 70px - var(--iOSPadding, 15px) - var(--navbar-padding, 0px)
    );
    padding: 0;
    display: block;
    overflow: hidden;
    box-sizing: border-box;
  }

  #l2l-dispatch-widget {
    display: grid;
    grid-template-areas:
      "pagination filters"
      "results    filters";
    grid-template-columns: minmax(0, 1fr) 350px;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    border-radius: 0;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-tabs {
    grid-area: filters;
    border-radius: 0;
    border: none;
    background: var(--bgTrans);
    overflow: visible;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    max-height: 100%;
    margin-bottom: 0;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-tab-bar [data-monitor-tab] {
    display: none;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-tab-bar {
    display: flex;
    border: 0;
    flex-wrap: nowrap;
    gap: 12px;
    align-items: center;
  }

  #l2l-dispatch-widget .l2l-dispatch-tab-btn {
    flex: unset;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-new-tab-btn {
    flex: 0 0 auto;
    background: var(--l2l-action-background);
    border: var(--l2l-action-border) !important;
    border-radius: 12px;
    padding: 0 12px;
    min-height: 36px;
    width: 36px;
    max-height: 32px;
    font-size: 0.85rem;
    gap: 6px;
    opacity: 1;
  }

  #l2l-dispatch-widget-header {
    display: flex;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-count-tab-btn {
    justify-content: center;
    border: none;
    border-right: none;
    border-bottom: none;
  }

  #l2l-dispatch-widget
    .l2l-dispatch-monitor-count-tab-btn
    #l2l-open-dispatch-count {
    display: flex;
    background: var(--l2l-action-background);
    border: var(--l2l-action-border);
    border-radius: 12px;
    padding: 5px 10px;
    height: 36px;
    font-size: 0.87rem;
    font-weight: bold;
    align-items: center;
  }

  /* Always show all panes on desktop */
  #l2l-dispatch-widget .l2l-dispatch-monitor-tab-body {
    max-height: none;
    padding: 0;
    background: transparent;
    transition: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  #l2l-dispatch-widget .l2l-dispatch-monitor-tab-body .l2l-dispatch-tab-pane {
    display: grid;
    gap: 10px;
  }

  #l2l-dispatch-widget
    .l2l-dispatch-monitor-tab-body
    .l2l-dispatch-tab-pane[data-monitor-pane="filters"] {
    width: 100%;
  }

  #l2l-dispatch-widget #l2l-dispatch-status {
    order: -1;
    border-radius: 10px;
  }

  #l2l-dispatch-results {
    grid-area: results;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    max-height: 100%;
    width: 100%;
    padding: 15px;
    overflow: scroll;
  }

  #l2l-dispatch-widget .l2l-dispatch-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }

  #l2l-dispatch-pagination {
    grid-area: pagination;
    margin-top: 0;
    position: sticky;
    top: 7px;
    z-index: 2;
    background: var(--bgColor);
    padding: 15px;
  }

  #l2l-dispatch-status {
    opacity: 1;
    max-height: 200px;
    padding: 20px 10px;
    margin: 6px 0 0;
    border-width: 1px;
    pointer-events: auto;
  }
}
@media screen and (min-width: 700px) and (max-height: 700px) {
  .browser-modal-footer {
    display: flex;
    left: unset;
    right: 0;
    height: calc(100% - 115px);
    max-height: unset !important;
    bottom: 0;
    width: 35%;
    flex-direction: column;
    align-content: flex-start;
    border-radius: 0;
    padding: 10px !important;
    flex-wrap: nowrap;
    padding: 20px 0px 20px 35px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    transition: none !important;
    z-index: 1;
    justify-content: center;
    align-items: flex-start;
  }

  #browserContent {
    width: 65%;
    padding: 40px 25px;
  }

  .browser-list {
    justify-content: unset;
  }

  .browser-modal-footer .browser-tools .browser-icon-btn {
    width: 25%;
  }

  #browserTools {
    justify-content: flex-start;
  }

  .browser-item:hover,
  .browser-item:has(.browser-item-dir):hover {
    transform: unset;
  }

  #browser-list .browser-item {
    border-radius: 8px;
  }
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation: pagefade 0.3s ease both;
}

@keyframes pagefade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

#voice,
#closeSearchUI {
  width: 48px;
  height: 48px;
}

@supports not (-webkit-touch-callout: none) {
  :root {
    --iOSPadding: 0px;
  }

  html {
    min-height: 100%;
    position: fixed;
  }

  .drag-header {
    align-items: flex-end;
  }
}

@supports (-webkit-touch-callout: none) {
  .avatar {
    top: 55px;
  }
}

@supports (-webkit-touch-callout: none) {
  @media screen and (max-width: 600px) {
    dialog#history_img {
      max-height: 30%;
    }
  }
}

@supports (-webkit-touch-callout: none) {
  @media screen and (min-width: 600px) {
    dialog#history_img {
      max-height: 80%;
    }

    .update-button {
      bottom: calc(100px + var(--navbar-padding));
    }
  }
}

@media screen and (max-width: 760px) {
  .browser-modal-footer {
    justify-content: center;
  }

  .browser-footer-status {
    width: 100%;
    text-align: center;
  }

  .browser-tools {
    width: 100%;
    justify-content: center;
  }

  .browser-footer-actions {
    width: 100%;
    justify-content: center;
  }

  #browserContent:has(~ .browser-modal-footer.is-visible) {
    padding-bottom: 195px;
  }

  #browserContent:has(> .browser-list) {
    padding: 10px 10px 40px;
  }
}

@media screen and (min-width: 1000px) {
  .browser-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 30px 15px;
  }
  .drag-titlebar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: 8px;
    width: 100%;
    padding: 5px 10px;
  }

  .drag-titlebar > span {
    grid-column: 1;
    justify-self: left;
    text-align: left;
    padding-left: 20px;
  }

  .drag-titlebar > .drag-actions {
    grid-column: 3;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }

  .drag-titlebar > button:not(.drag-minimize):not(.drag-maximize) {
    grid-column: 1;
    justify-self: start;
  }

  .drag-actions > .close_maintenance,
  .drag-actions > button {
    position: static !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
  }

  .drag.drag-maximized {
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .drag {
    width: calc(var(--width) / 1.25);
    max-width: 900px;
    height: auto;
  }
  .file-browser-desktop-window {
    background: transparent;
    backdrop-filter: none;
    padding: 0;
    overflow: visible;
    width: min(980px, calc(100vw - 48px));
    max-width: 980px;
    height: min(80vh, 780px);
    min-height: 460px;
    max-height: 80vh;
  }

  .file-browser-desktop-window .browser-modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 0 16px 4px rgb(0 0 0 / 28%);
  }

  .file-browser-desktop-window .browser-modal-header {
    padding: 10px 10px;
    height: 64px !important;
    position: relative;
  }

  .file-browser-desktop-window .browser-modal-header h2 {
    left: 0;
    max-width: 100%;
  }

  .file-browser-desktop-window .browser-breadcrumb-bar {
    height: 58px !important;
    padding: 10px;
    box-shadow: none;
    border-bottom: var(--l2l-action-border);
  }

  .file-browser-desktop-window .browser-modal-content {
    display: grid !important;
    grid-template-rows: auto 1fr;
    grid-template-columns: 240px 1fr;
  }

  .file-browser-desktop-window .browser-header-container {
    grid-column: 1 / -1;
    grid-row: 1;
    background: #2a2b2e;
  }

  .file-browser-desktop-window .browser-header-container.light,
  .file-browser-desktop-window .browser-header-container.midnight {
    background: var(--dialog-info);
  }

  /* Favorites sidebar — always visible, left column */
  .file-browser-desktop-window .browser-favorites-panel {
    display: flex;
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    width: 100%;
    height: 100%;
    flex-direction: column;
    padding: 12px;
    gap: 4px;
    z-index: 2;
    border-right: var(--l2l-action-border);
    border-radius: 0 0 0 16px;
    overflow-y: auto;
    background: var(--bgTrans);
  }

  .file-browser-desktop-window .browser-favorites-panel.light {
    background: var(--dialog-info);
  }

  .file-browser-desktop-window #browserContent {
    grid-column: 2;
    grid-row: 2;
    overflow-y: auto;
    padding: 20px;
  }

  .file-browser-desktop-window #browserContent.light {
    background: #fff;
  }

  /* Footer hidden in desktop windowed mode — tools are in the context menu */
  .file-browser-desktop-window .browser-modal-footer {
    display: none !important;
  }

  .browser-item[data-type="dir"] {
    border: 0 !important;
  }
  .browser-item {
    max-width: 180px;
    border: var(--l2l-action-border);
  }

  .browser-list .browser-item {
    max-width: 320px;
    border: var(--l2l-action-border) !important;
  }

  .breadcrumb-separator,
  .browser-modal-header .btn-view-toggle .view-toggle-label,
  .browser-upload-btn:before,
  .private-folder::before,
  .breadcrumb-item.root span,
  .browser-modal-header button.drag-minimize span,
  .browser-modal-close span,
  .browser-new-window-btn::before {
    background: var(--buttonColor);
  }

  .browser-modal-header button.drag-minimize,
  .browser-modal-header button.drag-maximize,
  .breadcrumb-item.root,
  .browser-modal-close,
  .browser-upload-btn,
  .private-folder,
  .browser-modal-header .btn-view-toggle,
  .browser-new-window-btn,
  #browserBreadcrumb {
    background: 0;
    border: 0;
    box-shadow: none;
  }

  .browser-modal-header .btn-view-toggle,
  #browserBreadcrumb {
    background: var(--bgTrans);
  }

  .file-browser-desktop-window .browser-modal-header h2 {
    color: var(--buttonColor);
  }

  #browserBreadcrumb .breadcrumb-item {
    background: var(--bgColor);
    color: #fff;
    box-shadow: none;
    top: 0px;
    left: 1px;
    max-height: 30px;
    border: 0;
  }

  #browserBreadcrumb.midnight .breadcrumb-item,
  #browserBreadcrumb.light .breadcrumb-item {
    background: var(--dialog-info);
    color: var(--buttonColor);
  }

  #browserBreadcrumb {
    padding: 0.5px 4px 0 5px;
    gap: 0 5px;
  }

  .browser-modal-header .btn-view-toggle .view-toggle-thumb {
    top: 4px;
    left: 5px;
    width: 32px;
    height: 32px;
    border: 0;
    box-shadow: none;
  }

  .browser-modal-header .btn-view-toggle .view-toggle-label {
    top: 2px;
    left: 1px;
  }
  .browser-modal-header .btn-view-toggle .view-toggle-label:nth-of-type(2) {
    left: 0;
    top: 0.5px;
  }

  .browser-modal-header
    .btn-view-toggle[aria-pressed="true"]
    .view-toggle-label:nth-of-type(2) {
    background: var(--buttonColor);
  }

  .browser-modal-header
    .btn-view-toggle[aria-pressed="false"]
    .view-toggle-label:nth-of-type(1) {
    background: var(--buttonColor);
  }

  .browser-upload-btn::before {
    width: 16px;
    height: 16px;
  }

  .private-folder::before {
    width: 22px;
    height: 22px;
  }
  .browser-new-window-btn::before {
    width: 22px;
    height: 22px;
  }

  .drag-minimize:hover .drag-minimize-icon,
  .browser-modal-close:hover span,
  .browser-new-window-btn:hover::before,
  .browser-upload-btn:hover::before,
  .private-folder:hover::before,
  .breadcrumb-item.root:hover span {
    background: var(--color);
  }

  .drag-maximize:hover .drag-maximize-icon {
    border-color: var(--color);
  }

  .drag.drag-maximized .drag-maximize:hover .drag-maximize-icon {
    border: 3px solid var(--color);
    box-shadow:
      3px -3px 0 -1px var(--bgColor),
      4px -4px 0 0 var(--color);
  }

  .drag-maximize,
  .drag-minimize {
    display: inline-flex;
  }
}

@media screen and (min-width: 1200px) {
  .browser-list .browser-item {
    width: calc(var(--width) / 3 - 30px);
  }

  .browser-item:hover,
  .browser-item:has(.browser-item-dir):hover {
    transform: translateY(-4px);
    box-shadow: 0 0 15px var(--color);
  }

  .browser-item:has(.browser-file-icon-text):hover,
  .browser-item:has(.browser-file-icon-doc):hover {
    background: #668de9;
  }

  .browser-item:has(.browser-file-icon-generic):hover {
    background: #6f7c8d;
  }

  .browser-item:has(.browser-file-icon-xls):hover {
    background: #389c5b;
  }

  .browser-item:has(.browser-file-icon-pdf):hover {
    background: #ec2929;
  }

  .browser-item:has(.browser-file-icon-video):hover {
    background: #a23f6f;
  }

  .line-operation-row {
    width: calc(100% / 3 - 15px);
  }
}

@media screen and (min-width: 1500px) {
  .line-operation-row {
    width: calc(100% / 4 - 15px);
  }
}

.p-wormwrap span {
  background: #ffa691;
  border-right: 1px solid #ff9069;
}

.p-wormwrap span:nth-child(1) {
  position: relative;
  height: 23px;
  width: 27px;
  top: 3px;
  background: #ffa691;
  border: 1px solid #fa7990;
  border-radius: 50px 50px 25px 25px;
  rotate: 2deg;
}

.p-wormwrap span:nth-child(1)::before {
  z-index: 0 !important;
  rotate: 0deg;
  width: 6px;
  height: 6px;
  bottom: -2px;
  left: 2px;
  border-radius: 50%;
  border: 0;
}

.p-wormwrap span:nth-child(1)::after {
  width: 3px;
  height: 11px;
  bottom: -4.5px;
  left: 9px;
  background: #ff92a5;
  border-radius: 23px;
  z-index: 0 !important;
  rotate: 0deg;
  box-shadow: inset 1px 1px 4px rgb(0 0 0 / 37%);
}

.p-wormwrap span:nth-child(13) {
  z-index: -14;
  box-shadow: 2px 2px 3px rgb(0 0 0 / 99%);
}

.p-wormwrap span:nth-child(13)::before {
  content: "";
  display: flex;
  position: absolute;
  width: 20px;
  height: 20px;
  z-index: 1;
  border: 1px solid #ff7757;
  border-top: 0;
  background: #ffa691;
  border-radius: 11px 50% 50%;
  box-shadow: -2px 1px 4px 1px rgb(0 0 0 / 40%);
}

.p-wormwrap span:nth-child(13)::after {
  content: "";
  display: flex;
  position: absolute;
  right: 6px;
  width: 20px;
  height: 20px;
  background: #ffa691;
  border: 1px solid #ff7757;
  border-radius: 11px 50% 50%;
  box-shadow: 1px 6px 3px 0px rgb(0 0 0 / 24%);
}

#prd-dashboard {
  padding: 12px;
  max-width: 960px;
  margin: 0 auto;
}

.prd-header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.prd-header-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.prd-line-select {
  flex: 1;
  min-width: 150px;
  max-width: 380px;
}

.prd-refresh-btn {
  white-space: nowrap;
  flex-shrink: 0;
  width: 75px;
}

.prd-status {
  font-size: 0.78rem;
  color: rgb(255 255 255 / 50%);
  margin: 0;
  min-height: 1.1em;
}

.prd-status-error {
  color: #ff6b6b;
}

.prd-cards {
  display: flex;
  gap: 10px;
  width: 100%;
  grid-auto-flow: row;
  flex-direction: column;
}

@media (min-width: 540px) {
  .prd-cards {
    grid-template-columns: repeat(4, 1fr);
  }
  .prd-card-wide {
    grid-column: span 2;
  }
}

@media (max-width: 539px) {
  .prd-card-wide {
    grid-column: span 2;
  }
}

.prd-card {
  background: var(--bgTrans);
  border: var(--l2l-action-border);
  border-radius: 12px;
  padding: 16px 14px 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  transition: border-color 0.25s;
}

.prd-card-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--buttonColor);
}

.prd-card-value {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color, var(--buttonColor));
  letter-spacing: -0.02em;
}

.prd-card-sub {
  font-size: 0.75rem;
  color: var(--buttonColor);
  margin-top: 2px;
}

.prd-card-running-ok {
  border-color: rgba(52, 199, 89, 0.8);
  background: rgba(52, 199, 89, 0.6);
}

.prd-card-running-ok .prd-card-value {
  color: #02ff42;
  text-shadow: 1px 1px 3px rgb(0 0 0 / 30%);
}

.prd-card-running-down {
  border-color: rgba(255, 59, 48, 0.8);
  background: rgba(255, 59, 48, 0.6);
}

.prd-card-running-down .prd-card-value {
  color: #ff0e00;
  text-shadow: 1px 1px 3px rgb(0 0 0 / 30%);
}

.prd-card-eff-good .prd-card-value {
  color: #34c759;
}

.prd-card-eff-warn .prd-card-value {
  color: #ff9f0a;
}

.prd-card-eff-bad .prd-card-value {
  color: #ff3b30;
}

.prd-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--buttonColor);
  font-size: 0.9rem;
}

.prd-card-clickable {
  cursor: pointer;
  text-align: left;
  width: 100%;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease;
}

.prd-card-clickable:hover,
.prd-card-clickable:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgb(0 0 0 / 20%);
  border-color: rgb(255 255 255 / 22%);
}

.prd-card-tap-hint {
  font-size: 0.65rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--buttonColor);
  margin-left: 6px;
}

.prd-downtime-frame {
  padding: 18px 0 8px;
}

.prd-downtime-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  color: var(--buttonColor);
}

.prd-downtime-list {
  overflow-y: auto;
  height: 100%;
  max-height: calc(88vh - 80px);
  padding: 8px 0 10px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.prd-downtime-empty {
  padding: 28px 18px;
  text-align: center;
  color: var(--buttonColor);
  font-size: 0.9rem;
}

.prd-dt-row {
  padding: 13px 18px;
  border-bottom: var(--l2l-action-border);
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.prd-dt-row:last-child {
  border-bottom: 0;
}

.prd-dt-row-open {
  background: rgba(255, 59, 48, 0.05);
}

.prd-dt-header {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.prd-dt-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  background: rgb(255 255 255 / 12%);
  color: var(--buttoncolor);
  white-space: nowrap;
}

.prd-dt-open-tag {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  background: rgba(255, 59, 48, 0.18);
  color: #ff3b30;
  white-space: nowrap;
}

.prd-dt-number {
  font-size: 0.75rem;
  color: rgb(255 255 255 / 45%);
}

.prd-dt-status {
  font-size: 0.72rem;
  font-weight: 600;
  margin-left: auto;
}

.prd-dt-desc {
  font-size: 0.88rem;
  color: var(--buttonColor);
  margin: 0;
  line-height: 1.4;
}

.prd-dt-footer {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.prd-dt-meta {
  font-size: 0.72rem;
  color: rgb(255 255 255 / 40%);
}

#prd-downtime-dialog .l2l-dispatch-dialog-close {
  mask: url(../images/sketchpad/close.svg) center / contain no-repeat;
  background: var(--buttonColor);
  color: var(--buttonColor);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.prd-dt-row-clickable {
  width: 100%;
  height: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  transition: background 0.15s;
}

.prd-dt-row-clickable:hover,
.prd-dt-row-clickable:focus-visible {
  background: rgb(255 255 255 / 5%);
  outline: none;
}

.light .prd-dt-row-clickable:hover,
.light .prd-dt-row-clickable:focus-visible {
  background: rgb(0 0 0 / 4%);
}

.prd-dt-row-clickable .prd-dt-desc {
  pointer-events: none;
}

#l2l-machines-importer {
  display: none;
}
/* ── Desktop two-column layout ──────────────────────────────────────── */
@media (min-width: 720px) {
  #chat-module {
    flex-direction: row;
    align-items: stretch;
    top: 4px;
  }

  #chat-room-list {
    width: 35%;
    max-width: 420px;
    flex-shrink: 0;
    border-right: 1px solid var(--dialog-info);
    display: flex !important;
    z-index: 4;
    background: var(--bgTrans);
  }

  #chat-room-list.light {
    background: #ecf0f3;
    border-right: 1px solid #ccc;
  }

  .chat-thread-header {
    padding: 15px;
    background: var(--bgTrans);
    border-bottom: var(--l2l-action-border);
    box-shadow: none;
  }

  .chat-thread-header.light {
    background: #ecf0f3;
  }

  .chat-thread-name {
    color: var(--buttonColor);
  }

  .chat-rename-btn span,
  .chat-members-btn span {
    background: var(--buttonColor);
  }

  #chat-thread,
  #chat-thread[hidden] {
    flex: 1;
    min-width: 0;
    display: flex !important;
    position: relative;
  }
}

/* ── Reports page (Tab12) ─────────────────────────────────────────────────── */

.navicon-reports {
  width: 20px;
  height: 20px;
  display: inline-block;
  background: currentColor;
  -webkit-mask-image: url("../images/navigation/list-check.svg");
  mask-image: url("../images/navigation/list-check.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.reports-page {
  padding: 14px 12px;
  max-width: 900px;
  margin: 0 auto;
  box-sizing: border-box;
}

.report-card {
  background: var(--fgColor);
  border: var(--border);
  border-radius: 18px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 8%);
}

.report-card-header {
  margin-bottom: 14px;
}

.report-card-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  color: var(--color);
}

.report-filter-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.report-filter-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.report-filter-row-block {
  align-items: flex-start;
}

.report-filter-label {
  flex: 0 0 80px;
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.8;
}

.report-filter-select {
  flex: 1;
  width: 100%;
  min-height: 38px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 10px;
  padding: 7px 12px;
  background: rgb(0 0 0 / 16%);
  color: inherit;
  font-family: var(--font);
  font-size: 0.8rem;
  -webkit-appearance: none;
  appearance: none;
}

.light .report-filter-select,
#l2l-spares-widget.light .report-filter-select {
  background: rgb(0 0 0 / 4%);
  border-color: rgb(0 0 0 / 10%);
}

/* Saved filters row */

.report-saved-controls {
  flex: 1;
  display: flex;
  gap: 6px;
  align-items: center;
}

.report-saved-select {
  flex: 1;
  min-width: 0;
}

.report-saved-btn {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 10px;
  background: rgb(255 255 255 / 8%);
  color: inherit;
  font-family: var(--font);
  font-size: 0.78rem;
  cursor: pointer;
  white-space: nowrap;
  touch-action: manipulation;
}

.report-saved-btn:hover {
  background: rgb(255 255 255 / 14%);
}

.report-saved-btn-delete:not(:disabled):hover {
  background: rgb(220 50 50 / 30%);
  border-color: rgb(220 50 50 / 50%);
}

.report-saved-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.light .report-saved-btn {
  background: rgb(0 0 0 / 6%);
  border-color: rgb(0 0 0 / 12%);
}

.light .report-saved-btn:hover {
  background: rgb(0 0 0 / 12%);
}

.report-custom-date-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-left: 0;
}

/* Lines multi-select */

.report-line-checkboxes {
  flex: 1;
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 10px;
  padding: 6px 8px;
  background: rgb(0 0 0 / 10%);
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.report-line-btn-row {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

.report-line-ctrl-btn {
  background: rgb(255 255 255 / 8%);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 6px;
  color: inherit;
  font-family: var(--font);
  font-size: 0.7rem;
  padding: 3px 10px;
  cursor: pointer;
}

.report-line-ctrl-btn:hover {
  background: rgb(255 255 255 / 14%);
}

.report-line-item {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 3px 4px;
  border-radius: 6px;
  font-size: 0.78rem;
  cursor: pointer;
  user-select: none;
}

.report-line-item:hover {
  background: rgb(255 255 255 / 6%);
}

.report-line-item input[type="checkbox"] {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  accent-color: var(--color, #4a9eff);
  cursor: pointer;
}

.report-filter-hint {
  font-size: 0.75rem;
  opacity: 0.6;
  margin: 4px 0;
  padding: 0;
}

/* Action buttons */

.report-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.report-run-btn {
  min-height: 40px;
  padding: 0 20px;
  border: none;
  border-radius: 10px;
  background: var(--bubble2);
  color: var(--fontcolor);
  font-family: var(--font);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
}

.report-run-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.report-action-btn {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 10px;
  background: var(--l2l-action-background, rgb(255 255 255 / 8%));
  color: inherit;
  font-family: var(--font);
  font-size: 0.8rem;
  cursor: pointer;
}

.report-action-btn:hover:not(:disabled) {
  background: rgb(255 255 255 / 14%);
}

.report-action-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Status + results */

.report-status {
  margin: 10px 0 0;
  font-size: 0.82rem;
  opacity: 0.85;
  min-height: 1.2em;
}

.report-status-error {
  color: #ff9d9d;
}

.report-empty {
  text-align: center;
  padding: 24px 0;
  opacity: 0.6;
  font-size: 0.88rem;
}

.report-results {
  margin-top: 12px;
}

.report-table-wrap {
  overflow-x: auto;
  border-radius: 12px;
  border: 1px solid rgb(255 255 255 / 10%);
}

.report-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.8rem;
  min-width: 400px;
}

.report-table th,
.report-table td {
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
  white-space: nowrap;
}

.report-table th {
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.85;
  background: rgb(0 0 0 / 18%);
  position: sticky;
  top: 0;
}

.report-table tbody tr:last-child td {
  border-bottom: none;
}

.report-table tbody tr:hover td {
  background: rgb(255 255 255 / 4%);
}

.report-row-totals td {
  font-weight: 700;
  background: rgb(255 255 255 / 6%);
  border-top: 1px solid rgb(255 255 255 / 16%);
}

/* Light-mode overrides */

.light .report-card {
  background: #fff;
  border-color: rgb(0 0 0 / 10%);
}

.light .report-table th {
  background: rgb(0 0 0 / 5%);
}

.light .report-table th,
.light .report-table td {
  border-bottom-color: rgb(0 0 0 / 8%);
}

.light .report-table tbody tr:hover td {
  background: rgb(0 0 0 / 3%);
}

.light .report-row-totals td {
  background: rgb(0 0 0 / 4%);
  border-top-color: rgb(0 0 0 / 12%);
}

.light .report-line-checkboxes {
  background: rgb(0 0 0 / 3%);
  border-color: rgb(0 0 0 / 10%);
}

.light .report-line-item:hover {
  background: rgb(0 0 0 / 4%);
}

.light .report-line-ctrl-btn {
  background: rgb(0 0 0 / 5%);
  border-color: rgb(0 0 0 / 12%);
}

.light .report-table-wrap {
  border-color: rgb(0 0 0 / 10%);
}

@media (max-width: 480px) {
  .report-filter-label {
    flex: 0 0 60px;
    font-size: 0.72rem;
  }

  .reports-page {
    padding: 10px 8px;
  }
}

/* ── Spreadsheet Editor ─────────────────────────────────────────────────── */

.se-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10200;
  background: var(--bgColor);
  flex-direction: column;
  padding-bottom: env(safe-area-inset-bottom);
}

.se-modal.active {
  display: flex;
}

.se-modal-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.se-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--iOSPadding, 0px) + 10px + env(safe-area-inset-top)) 12px
    10px;
  background: var(--color);
  color: var(--fontcolor);
  flex-shrink: 0;
  gap: 12px;
  min-height: calc(55px + var(--iOSPadding, 0px) + env(safe-area-inset-top));
}

.se-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.se-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.se-close-btn {
  background: var(--dark);
  border: 1px solid var(--darker);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.se-close-btn::before {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  background: var(--fontcolor);
  mask: url(../images/navigation/cross.svg) center / contain no-repeat;
}

.se-filename {
  font-weight: 600;
  font-size: 1rem;
  color: var(--fontcolor);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  text-align: center;
  width: 100%;
}

.se-native-btn {
  display: flex;
  width: 64px;
  background: var(--dark);
  color: var(--fontcolor);
  border: 1px solid var(--darker);
  padding: 5px 5px;
  border-radius: 8px;
  gap: 2px;
  font-size: 0.85rem;
  font-weight: bold;
  cursor: pointer;
  white-space: nowrap;
  opacity: 0.8;
  transition: opacity 0.15s;
}

.se-native-btn::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: var(--fontcolor);
  mask: url(../images/navigation/pencil.svg) center / contain no-repeat;
}

.se-native-btn:hover {
  opacity: 1;
}

.se-grid-container {
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--bgColor);
}

.se-onlyoffice-frame {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
  flex: 1;
}
