@charset "UTF-8";

/* node_modules/leaflet-draw/dist/leaflet.draw.css */
.leaflet-draw-section {
  position: relative;
}
.leaflet-draw-toolbar {
  margin-top: 12px;
}
.leaflet-draw-toolbar-top {
  margin-top: 0;
}
.leaflet-draw-toolbar-notop a:first-child {
  border-top-right-radius: 0;
}
.leaflet-draw-toolbar-nobottom a:last-child {
  border-bottom-right-radius: 0;
}
.leaflet-draw-toolbar a {
  background-image: url("./media/spritesheet.png");
  background-image: linear-gradient(transparent, transparent), url("./media/spritesheet.svg");
  background-repeat: no-repeat;
  background-size: 300px 30px;
  background-clip: padding-box;
}
.leaflet-retina .leaflet-draw-toolbar a {
  background-image: url("./media/spritesheet-2x.png");
  background-image: linear-gradient(transparent, transparent), url("./media/spritesheet.svg");
}
.leaflet-draw a {
  display: block;
  text-align: center;
  text-decoration: none;
}
.leaflet-draw a .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.leaflet-draw-actions {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 26px;
  top: 0;
  white-space: nowrap;
}
.leaflet-touch .leaflet-draw-actions {
  left: 32px;
}
.leaflet-right .leaflet-draw-actions {
  right: 26px;
  left: auto;
}
.leaflet-touch .leaflet-right .leaflet-draw-actions {
  right: 32px;
  left: auto;
}
.leaflet-draw-actions li {
  display: inline-block;
}
.leaflet-draw-actions li:first-child a {
  border-left: 0;
}
.leaflet-draw-actions li:last-child a {
  -webkit-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.leaflet-right .leaflet-draw-actions li:last-child a {
  -webkit-border-radius: 0;
  border-radius: 0;
}
.leaflet-right .leaflet-draw-actions li:first-child a {
  -webkit-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
}
.leaflet-draw-actions a {
  background-color: #919187;
  border-left: 1px solid #AAA;
  color: #FFF;
  font:
    11px/19px "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
  line-height: 28px;
  text-decoration: none;
  padding-left: 10px;
  padding-right: 10px;
  height: 28px;
}
.leaflet-touch .leaflet-draw-actions a {
  font-size: 12px;
  line-height: 30px;
  height: 30px;
}
.leaflet-draw-actions-bottom {
  margin-top: 0;
}
.leaflet-draw-actions-top {
  margin-top: 1px;
}
.leaflet-draw-actions-top a,
.leaflet-draw-actions-bottom a {
  height: 27px;
  line-height: 27px;
}
.leaflet-draw-actions a:hover {
  background-color: #a0a098;
}
.leaflet-draw-actions-top.leaflet-draw-actions-bottom a {
  height: 26px;
  line-height: 26px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-polyline {
  background-position: -2px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-polyline {
  background-position: 0 -1px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-polygon {
  background-position: -31px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-polygon {
  background-position: -29px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-rectangle {
  background-position: -62px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-rectangle {
  background-position: -60px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-circle {
  background-position: -92px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-circle {
  background-position: -90px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-marker {
  background-position: -122px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-marker {
  background-position: -120px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-draw-circlemarker {
  background-position: -273px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-circlemarker {
  background-position: -271px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-edit-edit {
  background-position: -152px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-edit {
  background-position: -150px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-edit-remove {
  background-position: -182px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-remove {
  background-position: -180px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-edit-edit.leaflet-disabled {
  background-position: -212px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-edit.leaflet-disabled {
  background-position: -210px -1px;
}
.leaflet-draw-toolbar .leaflet-draw-edit-remove.leaflet-disabled {
  background-position: -242px -2px;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-remove.leaflet-disabled {
  background-position: -240px -2px;
}
.leaflet-mouse-marker {
  background-color: #fff;
  cursor: crosshair;
}
.leaflet-draw-tooltip {
  background: #363636;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid transparent;
  -webkit-border-radius: 4px;
  border-radius: 4px;
  color: #fff;
  font:
    12px/18px "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
  margin-left: 20px;
  margin-top: -21px;
  padding: 4px 8px;
  position: absolute;
  visibility: hidden;
  white-space: nowrap;
  z-index: 6;
}
.leaflet-draw-tooltip:before {
  border-right: 6px solid black;
  border-right-color: rgba(0, 0, 0, 0.5);
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  content: "";
  position: absolute;
  top: 7px;
  left: -7px;
}
.leaflet-error-draw-tooltip {
  background-color: #f2dede;
  border: 1px solid #e6b6bd;
  color: #b94a48;
}
.leaflet-error-draw-tooltip:before {
  border-right-color: #e6b6bd;
}
.leaflet-draw-tooltip-single {
  margin-top: -12px;
}
.leaflet-draw-tooltip-subtext {
  color: #f8d5e4;
}
.leaflet-draw-guide-dash {
  font-size: 1%;
  opacity: .6;
  position: absolute;
  width: 5px;
  height: 5px;
}
.leaflet-edit-marker-selected {
  background-color: rgba(254, 87, 161, 0.1);
  border: 4px dashed rgba(254, 87, 161, 0.6);
  -webkit-border-radius: 4px;
  border-radius: 4px;
  box-sizing: content-box;
}
.leaflet-edit-move {
  cursor: move;
}
.leaflet-edit-resize {
  cursor: pointer;
}
.leaflet-oldie .leaflet-draw-toolbar {
  border: 1px solid #999;
}

/* node_modules/leaflet/dist/leaflet.css */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
  position: absolute;
  left: 0;
  top: 0;
}
.leaflet-container {
  overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
.leaflet-tile::selection {
  background: transparent;
}
.leaflet-safari .leaflet-tile {
  image-rendering: -webkit-optimize-contrast;
}
.leaflet-safari .leaflet-tile-container {
  width: 1600px;
  height: 1600px;
  -webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
  display: block;
}
.leaflet-container .leaflet-overlay-pane svg {
  max-width: none !important;
  max-height: none !important;
}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
  width: auto;
  padding: 0;
}
.leaflet-container img.leaflet-tile {
  mix-blend-mode: plus-lighter;
}
.leaflet-container.leaflet-touch-zoom {
  -ms-touch-action: pan-x pan-y;
  touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
  -ms-touch-action: pinch-zoom;
  touch-action: none;
  touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
  -ms-touch-action: none;
  touch-action: none;
}
.leaflet-container {
  -webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
  -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
  filter: inherit;
  visibility: hidden;
}
.leaflet-tile-loaded {
  visibility: inherit;
}
.leaflet-zoom-box {
  width: 0;
  height: 0;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 800;
}
.leaflet-overlay-pane svg {
  -moz-user-select: none;
}
.leaflet-pane {
  z-index: 400;
}
.leaflet-tile-pane {
  z-index: 200;
}
.leaflet-overlay-pane {
  z-index: 400;
}
.leaflet-shadow-pane {
  z-index: 500;
}
.leaflet-marker-pane {
  z-index: 600;
}
.leaflet-tooltip-pane {
  z-index: 650;
}
.leaflet-popup-pane {
  z-index: 700;
}
.leaflet-map-pane canvas {
  z-index: 100;
}
.leaflet-map-pane svg {
  z-index: 200;
}
.leaflet-vml-shape {
  width: 1px;
  height: 1px;
}
.lvml {
  behavior: url(#default#VML);
  display: inline-block;
  position: absolute;
}
.leaflet-control {
  position: relative;
  z-index: 800;
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
  position: absolute;
  z-index: 1000;
  pointer-events: none;
}
.leaflet-top {
  top: 0;
}
.leaflet-right {
  right: 0;
}
.leaflet-bottom {
  bottom: 0;
}
.leaflet-left {
  left: 0;
}
.leaflet-control {
  float: left;
  clear: both;
}
.leaflet-right .leaflet-control {
  float: right;
}
.leaflet-top .leaflet-control {
  margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
  margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
  margin-left: 10px;
}
.leaflet-right .leaflet-control {
  margin-right: 10px;
}
.leaflet-fade-anim .leaflet-popup {
  opacity: 0;
  -webkit-transition: opacity 0.2s linear;
  -moz-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
  opacity: 1;
}
.leaflet-zoom-animated {
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
svg.leaflet-zoom-animated {
  will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
  -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
  -webkit-transition: none;
  -moz-transition: none;
  transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
  visibility: hidden;
}
.leaflet-interactive {
  cursor: pointer;
}
.leaflet-grab {
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
  cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
  cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
  cursor: move;
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
}
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
  pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-container {
  background: #ddd;
  outline-offset: 1px;
}
.leaflet-container a {
  color: #0078A8;
}
.leaflet-zoom-box {
  border: 2px dotted #38f;
  background: rgba(255, 255, 255, 0.5);
}
.leaflet-container {
  font-family:
    "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
}
.leaflet-bar {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65);
  border-radius: 4px;
}
.leaflet-bar a {
  background-color: #fff;
  border-bottom: 1px solid #ccc;
  width: 26px;
  height: 26px;
  line-height: 26px;
  display: block;
  text-align: center;
  text-decoration: none;
  color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
  background-position: 50% 50%;
  background-repeat: no-repeat;
  display: block;
}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
  background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
  cursor: default;
  background-color: #f4f4f4;
  color: #bbb;
}
.leaflet-touch .leaflet-bar a {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
  font:
    bold 18px "Lucida Console",
    Monaco,
    monospace;
  text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in,
.leaflet-touch .leaflet-control-zoom-out {
  font-size: 22px;
}
.leaflet-control-layers {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  background: #fff;
  border-radius: 5px;
}
.leaflet-control-layers-toggle {
  background-image: url("./media/layers.png");
  width: 36px;
  height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
  background-image: url("./media/layers-2x.png");
  background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
  width: 44px;
  height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
  display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
  display: block;
  position: relative;
}
.leaflet-control-layers-expanded {
  padding: 6px 10px 6px 6px;
  color: #333;
  background: #fff;
}
.leaflet-control-layers-scrollbar {
  overflow-y: scroll;
  overflow-x: hidden;
  padding-right: 5px;
}
.leaflet-control-layers-selector {
  margin-top: 2px;
  position: relative;
  top: 1px;
}
.leaflet-control-layers label {
  display: block;
  font-size: 13px;
  font-size: 1.08333em;
}
.leaflet-control-layers-separator {
  height: 0;
  border-top: 1px solid #ddd;
  margin: 5px -10px 5px -6px;
}
.leaflet-default-icon-path {
  background-image: url("./media/marker-icon.png");
}
.leaflet-container .leaflet-control-attribution {
  background: #fff;
  background: rgba(255, 255, 255, 0.8);
  margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
  padding: 0 5px;
  color: #333;
  line-height: 1.4;
}
.leaflet-control-attribution a {
  text-decoration: none;
}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
  text-decoration: underline;
}
.leaflet-attribution-flag {
  display: inline !important;
  vertical-align: baseline !important;
  width: 1em;
  height: 0.6669em;
}
.leaflet-left .leaflet-control-scale {
  margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
  margin-bottom: 5px;
}
.leaflet-control-scale-line {
  border: 2px solid #777;
  border-top: none;
  line-height: 1.1;
  padding: 2px 5px 1px;
  white-space: nowrap;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.8);
  text-shadow: 1px 1px #fff;
}
.leaflet-control-scale-line:not(:first-child) {
  border-top: 2px solid #777;
  border-bottom: none;
  margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
  border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  border: 2px solid rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}
.leaflet-popup {
  position: absolute;
  text-align: center;
  margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
  padding: 1px;
  text-align: left;
  border-radius: 12px;
}
.leaflet-popup-content {
  margin: 13px 24px 13px 20px;
  line-height: 1.3;
  font-size: 13px;
  font-size: 1.08333em;
  min-height: 1px;
}
.leaflet-popup-content p {
  margin: 17px 0;
  margin: 1.3em 0;
}
.leaflet-popup-tip-container {
  width: 40px;
  height: 20px;
  position: absolute;
  left: 50%;
  margin-top: -1px;
  margin-left: -20px;
  overflow: hidden;
  pointer-events: none;
}
.leaflet-popup-tip {
  width: 17px;
  height: 17px;
  padding: 1px;
  margin: -10px auto 0;
  pointer-events: auto;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: white;
  color: #333;
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
}
.leaflet-container a.leaflet-popup-close-button {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  text-align: center;
  width: 24px;
  height: 24px;
  font:
    16px/24px Tahoma,
    Verdana,
    sans-serif;
  color: #757575;
  text-decoration: none;
  background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
  color: #585858;
}
.leaflet-popup-scrolled {
  overflow: auto;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
  -ms-zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
  width: 24px;
  margin: 0 auto;
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
  filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
  border: 1px solid #999;
}
.leaflet-div-icon {
  background: #fff;
  border: 1px solid #666;
}
.leaflet-tooltip {
  position: absolute;
  padding: 6px;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 3px;
  color: #222;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.leaflet-tooltip.leaflet-interactive {
  cursor: pointer;
  pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  position: absolute;
  pointer-events: none;
  border: 6px solid transparent;
  background: transparent;
  content: "";
}
.leaflet-tooltip-bottom {
  margin-top: 6px;
}
.leaflet-tooltip-top {
  margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
  left: 50%;
  margin-left: -6px;
}
.leaflet-tooltip-top:before {
  bottom: 0;
  margin-bottom: -12px;
  border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
  top: 0;
  margin-top: -12px;
  margin-left: -6px;
  border-bottom-color: #fff;
}
.leaflet-tooltip-left {
  margin-left: -6px;
}
.leaflet-tooltip-right {
  margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  top: 50%;
  margin-top: -6px;
}
.leaflet-tooltip-left:before {
  right: 0;
  margin-right: -12px;
  border-left-color: #fff;
}
.leaflet-tooltip-right:before {
  left: 0;
  margin-left: -12px;
  border-right-color: #fff;
}
@media print {
  .leaflet-control {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* src/styles.scss */
:root {
  --white-primary: rgba(255, 255, 255, 0.95);
  --white-secondary: rgba(255, 255, 255, 0.9);
  --white-tertiary: rgba(255, 255, 255, 0.7);
  --white-muted: rgba(255, 255, 255, 0.55);
  --white-border: rgba(255, 255, 255, 0.15);
  --white-hover: rgba(255, 255, 255, 0.12);
  --white-bg-active: rgba(255, 255, 255, 0.15);
  --white-bg-light: rgba(255, 255, 255, 0.08);
  --white-bg-lighter: rgba(255, 255, 255, 0.05);
  --transition-fast: all 0.2s ease-in-out;
  --transition-standard: all 0.3s ease-in-out;
  --transition-slow: all 0.5s ease-in-out;
  --dropdown-arrow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='%23ffffff' d='M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>");
  --spacing-xs: 0.125rem;
  --spacing-sm: 0.25rem;
  --spacing-md: 0.5rem;
  --spacing-lg: 0.75rem;
  --spacing-xl: 1rem;
  --spacing-2xl: 1.5rem;
  --spacing-3xl: 2rem;
}
.ui-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
  border-radius: 0.375rem;
  cursor: pointer;
  transition: var(--transition-fast);
}
.ui-item:hover {
  background-color: var(--white-hover);
}
.ui-item:active {
  background-color: var(--white-bg-active);
}
.ui-button-toggle {
  width: 40px;
  height: 2rem;
  background: transparent;
  border: none;
  border-radius: 0.375rem;
  color: var(--white-tertiary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition-fast);
}
.ui-button-toggle:hover {
  background: var(--white-hover);
  border: 1px solid var(--white-border);
  color: var(--white-primary);
  transform: translateY(-1px);
}
.ui-button-toggle:active {
  transform: translateY(0);
  background: var(--white-bg-active);
}
.ui-button-toggle.active {
  background: var(--white-bg-active);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: white;
}
.ui-button-toggle i {
  font-size: 16px;
  transition: transform 0.2s ease-in-out;
}
.ui-button-toggle:hover i {
  transform: scale(1.1);
}
.ui-select {
  width: calc(100% - 1rem);
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: 0.375rem;
  border: 1px solid var(--white-border);
  background: var(--white-bg-light);
  color: white;
  font-size: 14px;
  font-weight: 500;
  transition: var(--transition-fast);
  appearance: none;
  background-image: var(--dropdown-arrow);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 14px;
  padding-right: 2.5rem;
}
.ui-select:hover {
  background-color: var(--white-hover);
  border-color: rgba(255, 255, 255, 0.2);
  background-image: var(--dropdown-arrow);
}
.ui-select:focus {
  outline: none;
  border-color: var(--brand-400);
  box-shadow: 0 0 0 2px rgba(145, 115, 217, 0.2);
  background-color: rgba(255, 255, 255, 0.15);
  background-image: var(--dropdown-arrow);
}
.ui-select option {
  background: var(--brand-900);
  color: white;
}
.ui-checkbox {
  appearance: none;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 0.125rem;
  border: 2px solid var(--white-muted);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: all 0.12s ease;
}
.ui-checkbox:checked {
  background: white;
  border-color: white;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><circle cx='9' cy='9' r='4' fill='%2320134b'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 8px;
}
.ui-checkbox:focus-visible {
  outline: 2px solid var(--white-muted);
  outline-offset: 2px;
}
.ui-checkbox:active {
  transform: scale(0.94);
}
.ui-label {
  font-size: 14px;
  font-weight: 500;
  color: white;
  cursor: pointer;
  line-height: 1.5;
  -webkit-user-select: none;
  user-select: none;
}
.ui-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.375rem;
  background-color: #ef4444;
  color: white;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 0.75rem;
  line-height: 1;
}
.ui-icon {
  flex-shrink: 0;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.9;
  transition: opacity 0.2s ease;
}
.ui-icon-small {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.ui-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top: 2px solid white;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.sidebar-container {
  width: 256px;
  height: 100%;
  flex-shrink: 0;
  background: var(--brand-900);
  color: white;
  display: flex;
  flex-direction: column;
  transition: var(--transition-standard);
  position: relative;
  overflow: hidden;
}
.sidebar-container.collapsed {
  width: 56px;
}
.sidebar-container.loading {
  opacity: 0.7;
  pointer-events: none;
}
.sidebar-container.dark {
  background: var(--brand-900);
}
.sidebar-nav-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 1rem;
  gap: 0.5rem;
  overflow-y: auto;
  height: 100%;
  transition: var(--transition-standard);
}
.sidebar-nav-container.collapsed {
  padding: 0.5rem;
  gap: 0.125rem;
}
.sidebar-project-selector {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 0.5rem;
  background: var(--brand-900);
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  margin-bottom: 1rem;
}
.sidebar-section {
  margin-bottom: 0.25rem;
  transition: var(--transition-standard);
}
.sidebar-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 0;
  padding: 0.375rem 0.5rem;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: var(--transition-fast);
  position: relative;
}
.sidebar-section-title:hover {
  background-color: var(--white-hover);
  color: white;
}
.sidebar-section-title i {
  width: 1rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
}
.sidebar-menu-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.5rem;
  margin-bottom: 0.0625rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.9);
  cursor: pointer;
  transition: var(--transition-fast);
  position: relative;
}
.sidebar-menu-item:hover {
  background-color: var(--white-hover);
  color: white;
}
.sidebar-menu-item:active {
  background-color: var(--white-bg-active);
}
.sidebar-menu-item i {
  width: 1rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
}
.sidebar-menu-item:hover i {
  color: var(--brand-300);
}
.sidebar-submenu {
  display: flex;
  flex-direction: column;
  gap: 0.0625rem;
  margin-top: 0.0625rem;
  padding-left: 0.125rem;
  border-left: 2px solid rgba(255, 255, 255, 0.2);
  animation: slideDown 0.3s ease-out;
}
.sidebar-submenu-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 0.25rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: var(--transition-fast);
  position: relative;
  margin: 0 auto;
}
.sidebar-submenu-item:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
  transform: scale(1.05);
}
.sidebar-submenu-item:active {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(0.95);
}
.sidebar-submenu-item.active {
  background: var(--brand-500);
  border-color: var(--brand-400);
  box-shadow: 0 0 0 2px rgba(145, 115, 217, 0.3);
}
.sidebar-submenu-item.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.sidebar-submenu-item i {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.2s ease;
}
.sidebar-submenu-item:hover i {
  color: var(--brand-300);
}
.sidebar-submenu-item.active i {
  color: white;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
    max-height: 0;
  }
  to {
    opacity: 1;
    transform: translateY(0);
    max-height: 200px;
  }
}
.sidebar-nav-container::-webkit-scrollbar {
  width: 6px;
}
.sidebar-nav-container::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}
.sidebar-nav-container::-webkit-scrollbar-thumb {
  background: var(--brand-500);
  border-radius: 3px;
  opacity: 0.85;
}
.sidebar-nav-container::-webkit-scrollbar-thumb:hover {
  opacity: 1;
}
:root {
  --topbar-h: 64px;
  --surface: #f9fafb;
  --surface-card: #ffffff;
  --border: #eef2f7;
  --text: #0f172a;
  --muted: #64748b;
  --bg-hover: rgba(139, 92, 246, 0.05);
  --text-primary: #0f172a;
  --chip-fg: #ffffff;
  --brand-900: #20134b;
  --brand-700: #3a237a;
  --brand-600: #4b2e9a;
  --brand-500: #6b48c4;
  --brand-400: #9173d9;
  --brand-300: #b5a0e8;
  --brand-50: #f5f3ff;
  --error: #ef4444;
  --success: #10b981;
  --warning: #f59e0b;
}
.dark {
  --surface: #0b1020;
  --surface-card: #0f172a;
  --border: rgba(255, 255, 255, 0.08);
  --text: #e5e7eb;
  --muted: #94a3b8;
  --text-primary: #e5e7eb;
  --chip-fg: #ffffff;
}
button.rounded-xl.border {
  background: var(--surface-card);
  color: var(--text);
  transition: all 0.2s ease-in-out;
}
button.rounded-xl.border:hover {
  background: var(--text);
  color: var(--surface-card);
  border-color: var(--text);
}
#closeModal i,
#closeForgot i,
#closeProject i {
  line-height: 1;
}
html:not(.dark) #closeModal:hover i,
html:not(.dark) #closeForgot:hover i,
html:not(.dark) #closeProject:hover i {
  color: var(--brand-50);
}
html.dark #closeModal:hover i,
html.dark #closeForgot:hover i,
html.dark #closeProject:hover i {
  color: var(--brand-600);
}
#loginModal .bg-\[color\:var\(--surface-card\)\] {
  background-color: var(--surface-card) !important;
}
#forgotModal .bg-\[color\:var\(--surface-card\)\] {
  background-color: var(--surface-card) !important;
}
#projectModal .bg-\[color\:var\(--surface-card\)\] {
  background-color: var(--surface-card) !important;
}
.modal-content {
  background-color: var(--surface-card);
  color: var(--text);
  border-color: var(--border);
}
.modal-content input {
  background-color: var(--surface-card);
  color: var(--text);
  border-color: var(--border);
}
.modal-content button {
  background-color: var(--surface-card);
  color: var(--text);
  border-color: var(--border);
}
.btn,
.btn-text,
.btn-outline-info,
.btn-outline-danger,
.btn-outline-warning,
.btn-outline-success,
.btn-outline-secondary,
.btn-outline-primary,
.btn-secondary,
.btn-primary,
.btn-square {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
  border: 1px solid var(--border);
  padding: 0.75rem 1rem;
}
.btn:hover,
.btn-text:hover,
.btn-outline-info:hover,
.btn-outline-danger:hover,
.btn-outline-warning:hover,
.btn-outline-success:hover,
.btn-outline-secondary:hover,
.btn-outline-primary:hover,
.btn-secondary:hover,
.btn-primary:hover,
.btn-square:hover {
  opacity: 0.9;
}
.btn:disabled,
.btn-text:disabled,
.btn-outline-info:disabled,
.btn-outline-danger:disabled,
.btn-outline-warning:disabled,
.btn-outline-success:disabled,
.btn-outline-secondary:disabled,
.btn-outline-primary:disabled,
.btn-secondary:disabled,
.btn-primary:disabled,
.btn-square:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn:focus,
.btn-text:focus,
.btn-outline-info:focus,
.btn-outline-danger:focus,
.btn-outline-warning:focus,
.btn-outline-success:focus,
.btn-outline-secondary:focus,
.btn-outline-primary:focus,
.btn-secondary:focus,
.btn-primary:focus,
.btn-square:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--brand-400);
  border-color: var(--brand-500);
}
.btn-square {
  aspect-ratio: 1;
  width: 2.5rem;
  height: 2.5rem;
}
.btn-primary {
  background-color: var(--brand-500);
  color: white;
  border-color: var(--brand-500);
  font-weight: 500;
}
.btn-primary:hover {
  background-color: var(--brand-600);
  border-color: var(--brand-600);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(107, 72, 196, 0.3);
}
.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(107, 72, 196, 0.3);
}
.btn-secondary {
  background-color: transparent;
  color: var(--text);
  border-color: var(--border);
  font-weight: 500;
}
.btn-secondary:hover {
  background-color: var(--border);
  color: var(--text);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.btn-secondary:active {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.btn-outline-primary {
  background-color: transparent;
  color: var(--brand-500);
  border-color: var(--brand-500);
  font-weight: 500;
}
.btn-outline-primary:hover {
  background-color: var(--brand-500);
  color: white;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(107, 72, 196, 0.3);
}
.btn-outline-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(107, 72, 196, 0.3);
}
.btn-outline-secondary {
  background-color: transparent;
  color: var(--text);
  border-color: var(--border);
  font-weight: 500;
}
.btn-outline-secondary:hover {
  background-color: var(--border);
  color: var(--text);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.btn-outline-secondary:active {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.btn-outline-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.btn-submit-modern {
  width: 100%;
  height: 56px;
  border: none;
  border-radius: 16px;
  background:
    linear-gradient(
      135deg,
      var(--brand-500) 0%,
      var(--brand-600) 100%);
  color: white;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 8px 24px rgba(107, 72, 196, 0.3);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.btn-submit-modern:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(107, 72, 196, 0.4);
}
.btn-submit-modern:active:not(:disabled) {
  transform: translateY(0);
}
.btn-submit-modern:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.btn-submit-modern i {
  font-size: 18px;
}
.btn-submit-modern span {
  display: inline-block;
}
.btn-outline-success {
  background-color: transparent;
  color: var(--success);
  border-color: var(--success);
}
.btn-outline-success:hover {
  background-color: var(--success);
  color: white;
}
.btn-outline-warning {
  background-color: transparent;
  color: var(--warning);
  border-color: var(--warning);
}
.btn-outline-warning:hover {
  background-color: var(--warning);
  color: white;
}
.btn-outline-danger {
  background-color: transparent;
  color: var(--error);
  border-color: var(--error);
}
.btn-outline-danger:hover {
  background-color: var(--error);
  color: white;
}
.btn-outline-info {
  background-color: transparent;
  color: var(--info-color, #06b6d4);
  border-color: var(--info-color, #06b6d4);
}
.btn-outline-info:hover {
  background-color: var(--info-color, #06b6d4);
  color: white;
}
.btn-text {
  background-color: transparent;
  border: none;
  color: var(--brand-500);
}
.btn-text:hover {
  text-decoration: underline;
  color: var(--brand-600);
}
.btn-sm {
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
}
.btn-md {
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
}
.btn-lg {
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}
.btn-primary i {
  margin-right: 0.5rem;
  font-size: 0.875rem;
}
.btn-secondary i {
  margin-right: 0.5rem;
  font-size: 0.875rem;
}
.btn-outline-primary i,
.btn-outline-secondary i {
  margin-right: 0.5rem;
  font-size: 0.875rem;
}
.btn i + span,
.btn i + *,
.btn-square i + *,
.btn-primary i + *,
.btn-secondary i + *,
.btn-outline-primary i + *,
.btn-outline-secondary i + *,
.btn-outline-success i + *,
.btn-outline-warning i + *,
.btn-outline-danger i + *,
.btn-outline-info i + *,
.btn-text i + * {
  margin-left: 0.5rem;
}
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown-toggle {
  position: relative;
  padding-right: 2rem;
}
.dropdown-toggle::after {
  content: "";
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid currentColor;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 1000;
  display: none;
  min-width: 160px;
  padding: 0.5rem 0;
  margin: 0.125rem 0 0;
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.dropdown:hover .dropdown-menu {
  display: block;
}
.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.5rem 1rem;
  clear: both;
  font-weight: 400;
  color: var(--text);
  text-align: inherit;
  text-decoration: none;
  white-space: nowrap;
  background: none;
  border: 0;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.dropdown-item:hover {
  background: var(--muted);
  color: var(--text);
}
.dropdown-item i {
  margin-right: 0.5rem;
  width: 1rem;
  text-align: center;
}
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.space-y-4 > * + * {
  margin-top: 1rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.shadow-2xl {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.hover\:opacity-90:hover {
  opacity: 0.9;
}
.focus\:ring-2:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--brand-400);
}
.focus\:border-brand-500:focus {
  border-color: var(--brand-500);
}
.transition-all {
  transition: all 0.2s ease-in-out;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-60 {
  z-index: 60;
}
.z-70 {
  z-index: 70;
}
.z-80 {
  z-index: 80;
}
.bg-black\/50 {
  background-color: rgba(0, 0, 0, 0.5);
}
.backdrop-blur-\[2px\] {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
:root {
  --input-bg: var(--surface-card);
  --input-border: var(--border);
  --input-text: var(--text);
  --input-placeholder: var(--text-muted);
  --input-focus-ring: var(--brand-400);
  --input-focus-border: var(--brand-500);
  --input-error-border: var(--error);
  --input-error-text: var(--error);
}
.form-container {
  width: 100%;
  max-width: 24rem;
  margin: 0 auto;
}
.form-group {
  margin-bottom: 1rem;
}
.form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.25rem;
  color: var(--text);
}
.form-input,
.form-input-password,
.form-input-email {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--input-border);
  background-color: var(--input-bg);
  color: var(--input-text);
  font-size: 0.875rem;
  transition: all 0.2s ease-in-out;
}
.form-input::placeholder,
.form-input-password::placeholder,
.form-input-email::placeholder {
  color: var(--input-placeholder);
}
.form-input:focus,
.form-input-password:focus,
.form-input-email:focus {
  outline: none;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 2px var(--input-focus-ring);
}
.form-input:disabled,
.form-input-password:disabled,
.form-input-email:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.form-input.error,
.error.form-input-password,
.error.form-input-email {
  border-color: var(--input-error-border);
  color: var(--input-error-text);
}
.form-input-modern {
  width: 100%;
  padding: 16px 20px;
  border: 2px solid var(--border);
  border-radius: 16px;
  background: var(--surface-ground);
  color: var(--text);
  font-size: 16px;
  transition: all 0.3s ease;
}
.form-input-modern::placeholder {
  color: var(--muted);
}
.form-input-modern:focus {
  outline: none;
  border-color: var(--brand-500);
  background: var(--surface-card);
  box-shadow: 0 0 0 4px rgba(107, 72, 196, 0.1);
  transform: translateY(-2px);
}
.password-input-wrapper {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
}
.password-input-wrapper .form-input,
.password-input-wrapper .form-input-email,
.password-input-wrapper .form-input-password,
.password-input-wrapper .form-input-modern,
.password-input-wrapper .login-form-input {
  padding-right: 50px;
}
.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  transition: color 0.2s ease;
  z-index: 1;
}
.password-toggle-btn:hover {
  color: var(--brand-500);
}
.password-toggle-btn:focus {
  outline: 2px solid var(--brand-500);
  outline-offset: 2px;
  border-radius: 4px;
}
html.dark .password-toggle-btn {
  color: var(--text);
}
html.dark .password-toggle-btn:hover {
  color: var(--brand-400);
}
.password-toggle-btn i {
  font-size: 18px;
}
.form-error {
  color: var(--input-error-text);
  font-size: 0.875rem;
  margin-top: 0.25rem;
  display: none;
}
.form-error.show {
  display: block;
}
.error-message {
  color: var(--input-error-text);
  font-size: 0.75rem;
  margin-top: 0.25rem;
  font-weight: 500;
}
.form-info {
  color: var(--text-muted);
  font-size: 0.875rem;
  margin-top: 0.25rem;
}
.form-input.valid,
.valid.form-input-email,
.valid.form-input-password {
  border-color: #10b981;
  background: #f0fdf4;
  color: #065f46;
}
.form-input.invalid,
.invalid.form-input-email,
.invalid.form-input-password {
  border-color: #ef4444;
  background: #fef2f2;
  color: #991b1b;
}
.validation-message {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.5rem;
  border-radius: 0.375rem;
  transition: all 0.2s ease;
}
.validation-message.valid {
  background: #f0fdf4;
  color: #065f46;
  border: 1px solid #10b981;
}
.validation-message.invalid {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #ef4444;
}
.validation-message i {
  font-size: 0.875rem;
}
.space-y-4 > * + * {
  margin-top: 1rem;
}
.text-center {
  text-align: center;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-sm {
  max-width: 24rem;
}
.p-6 {
  padding: 1.5rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.hidden {
  display: none;
}
.block {
  display: block;
}
.inline-flex {
  display: inline-flex;
}
.items-center {
  align-items: center;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.text-sm {
  font-size: 0.875rem;
}
.text-lg {
  font-size: 1.125rem;
}
.text-xl {
  font-size: 1.25rem;
}
.text-2xl {
  font-size: 1.5rem;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.font-bold {
  font-weight: 700;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.text-brand-500 {
  color: var(--brand-500);
}
.text-brand-600 {
  color: var(--brand-600);
}
.text-muted {
  color: var(--text-muted);
}
.text-red-600 {
  color: var(--error);
}
.border {
  border: 1px solid var(--border);
}
.border-brand-500 {
  border-color: var(--brand-500);
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.shadow-2xl {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.focus\:outline-none:focus {
  outline: none;
}
.focus\:ring-2:focus {
  box-shadow: 0 0 0 2px var(--input-focus-ring);
}
.focus\:border-brand-500:focus {
  border-color: var(--input-focus-border);
}
.transition-all {
  transition: all 0.2s ease-in-out;
}
.relative {
  position: relative;
}
.absolute {
  position: absolute;
}
.fixed {
  position: fixed;
}
.z-50 {
  z-index: 50;
}
.z-60 {
  z-index: 60;
}
.z-70 {
  z-index: 70;
}
.z-80 {
  z-index: 80;
}
.bg-black\/50 {
  background-color: rgba(0, 0, 0, 0.5);
}
.backdrop-blur-\[2px\] {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.inset-0 {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.inset-y-0 {
  top: 0;
  bottom: 0;
}
.w-10 {
  width: 2.5rem;
}
.h-10 {
  height: 2.5rem;
}
.w-12 {
  width: 3rem;
}
.h-12 {
  height: 3rem;
}
.aspect-square {
  aspect-ratio: 1;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-auto {
  overflow: auto;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.select-none {
  -webkit-user-select: none;
  user-select: none;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (min-width: 640px) {
  .sm\:text-2xl {
    font-size: 1.5rem;
  }
}
.hover\:underline:hover {
  text-decoration: underline;
}
.hover\:text-brand-600:hover {
  color: var(--brand-600);
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.combobox-container {
  position: relative;
  z-index: 9999;
}
.combobox-trigger {
  border: 2px solid var(--border);
  color: var(--text);
  font-size: 16px;
}
.combobox-trigger:hover {
  border-color: var(--brand-500);
  background: var(--surface-hover);
  transform: translateY(-1px);
}
.combobox-trigger:focus {
  outline: none;
  border-color: var(--brand-500);
  background: var(--surface-card);
  box-shadow: 0 0 0 4px rgba(107, 72, 196, 0.1);
}
.combobox-trigger[aria-expanded=true] .combobox-arrow {
  transform: rotate(180deg);
}
.combobox-text {
  flex: 1;
  text-align: left;
  font-weight: 500;
}
.combobox-arrow {
  color: var(--muted);
  font-size: 14px;
  transition: transform 0.3s ease;
}
.combobox-option-text {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--brand-600);
}
.dark .combobox-option-text {
  color: var(--text);
}
.combobox-check {
  color: var(--brand-500);
  font-size: 14px;
  margin-left: 12px;
}
.component-container {
  padding: 1.5rem;
  background: var(--surface-card);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  min-height: 100%;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.component-container.loading {
  position: relative;
  pointer-events: none;
}
.component-container.loading::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 0.5rem;
  z-index: 10;
}
.component-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--surface-card);
}
.header-content {
  flex: 1;
}
.component-title {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 0.5rem 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.component-title i {
  color: var(--brand-500);
  font-size: 1.5rem;
}
.component-title img {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%);
}
.component-description {
  font-size: 1rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}
.header-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.catalog-pane {
  background: var(--surface);
}
.catalog-content-wrapper {
  padding: 1.5rem;
  background: transparent;
}
.catalog-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--surface-card);
  border-radius: 0.75rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.catalog-inner-header {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
.permissions-list {
  padding: 20px;
  background: var(--surface-card) !important;
  border-radius: 1rem;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--border);
}
.mock-data {
  margin-top: 20px;
  padding: 15px;
  background: var(--surface);
  border-radius: 0.75rem;
  border: 1px solid var(--border);
}
.dark-mode .permissions-list,
.dark .permissions-list {
  background: var(--surface-card) !important;
  border-color: var(--border);
}
.dark-mode .mock-data,
.dark .mock-data {
  background: var(--surface) !important;
  border-color: var(--border);
}
.dark-mode .bg-white,
.dark-mode .bg-gray-50,
.dark .bg-white,
.dark .bg-gray-50 {
  background-color: var(--surface-card) !important;
}
.dark-mode .bg-white .catalog-inner-title,
.dark-mode .bg-white .catalog-inner-description {
  color: var(--text) !important;
}
.dark .bg-white .catalog-inner-title,
.dark .bg-white .catalog-inner-description {
  color: var(--text) !important;
}
.section-container {
  margin-bottom: 2rem;
  background: var(--surface-card);
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  overflow: hidden;
}
.section-header {
  background: var(--surface);
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--border);
}
.section-title {
  margin: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  transition: color 0.2s ease;
}
.section-title:hover {
  color: var(--brand-500);
}
.section-title i:first-child {
  margin-right: 0.5rem;
  color: var(--brand-500);
}
.section-toggle {
  transition: transform 0.2s ease;
}
.section-toggle.rotated {
  transform: rotate(180deg);
}
.section-content {
  padding: 1.5rem;
  transition: all 0.3s ease;
}
.section-content.collapsed {
  display: none;
}
.item-count {
  font-size: 0.875rem;
  color: var(--muted);
  font-weight: 400;
}
@media (max-width: 1024px) {
  .component-container {
    padding: 1rem;
  }
  .component-header {
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
  }
  .header-actions {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  .section-content {
    padding: 1rem;
  }
  .component-title {
    font-size: 1.5rem;
  }
  .section-header {
    padding: 0.75rem 1rem;
  }
}
@media (max-width: 480px) {
  .component-container {
    padding: 0.75rem;
  }
  .component-title {
    font-size: 1rem;
  }
  .section-content {
    padding: 0.75rem;
  }
  .component-description {
    display: none;
  }
}
.quick-access-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
  padding: 1rem 0;
  width: 100%;
}
.quick-access-module-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.25rem 1rem;
  min-height: 120px;
  border-radius: 0.75rem;
  border: 1px solid var(--border);
  background: var(--surface-card);
  color: var(--text);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}
.quick-access-module-btn:hover {
  background: var(--surface);
  border-color: var(--brand-500);
  box-shadow: 0 4px 12px rgba(107, 72, 196, 0.15);
  transform: translateY(-2px);
}
.quick-access-module-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(107, 72, 196, 0.1);
}
.quick-access-module-btn mat-icon {
  font-size: 2rem;
  width: 2rem;
  height: 2rem;
  color: var(--brand-500);
  transition: all 0.2s ease-in-out;
}
.quick-access-module-btn:hover mat-icon {
  color: var(--brand-400);
  transform: scale(1.1);
}
.quick-access-module-btn .mdc-button__label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
  text-align: center;
  line-height: 1.4;
}
.quick-access-module-btn:hover .mdc-button__label {
  color: var(--brand-500);
}
.quick-access-module-btn .mat-mdc-button-ripple,
.quick-access-module-btn .mdc-button__ripple {
  background-color: var(--brand-500);
  opacity: 0.1;
}
.dark .quick-access-module-btn {
  background: var(--surface-card);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.dark .quick-access-module-btn:hover {
  background: rgba(107, 72, 196, 0.1);
  border-color: var(--brand-400);
  box-shadow: 0 4px 12px rgba(107, 72, 196, 0.25);
}
.dark .quick-access-module-btn mat-icon {
  color: var(--brand-400);
}
.dark .quick-access-module-btn:hover mat-icon {
  color: var(--brand-300);
}
.dark .quick-access-module-btn .mdc-button__label {
  color: var(--text);
}
.dark .quick-access-module-btn:hover .mdc-button__label {
  color: var(--brand-300);
}
@media (max-width: 768px) {
  .quick-access-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
  }
  .quick-access-module-btn {
    min-height: 100px;
    padding: 1rem 0.75rem;
    gap: 0.5rem;
  }
  .quick-access-module-btn mat-icon {
    font-size: 1.75rem;
    width: 1.75rem;
    height: 1.75rem;
  }
  .quick-access-module-btn .mdc-button__label {
    font-size: 0.8125rem;
  }
}
@media (max-width: 480px) {
  .quick-access-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
  .quick-access-module-btn {
    min-height: 90px;
    padding: 0.75rem 0.5rem;
  }
  .quick-access-module-btn mat-icon {
    font-size: 1.5rem;
    width: 1.5rem;
    height: 1.5rem;
  }
  .quick-access-module-btn .mdc-button__label {
    font-size: 0.75rem;
  }
}
.table-container {
  position: relative;
  overflow-y: auto;
  overflow-x: auto;
  max-height: 100%;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.data-table,
.pdls-table,
.censuses-table,
.users-table,
.incidents-table,
.work-orders-table,
.catalog-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border);
  background: var(--surface-card);
  font-size: 14px;
}
.data-table thead,
.pdls-table thead,
.censuses-table thead,
.users-table thead,
.incidents-table thead,
.work-orders-table thead,
.catalog-table thead {
  position: sticky;
  top: 0;
  z-index: 100;
  display: table-header-group;
  background: var(--surface) !important;
  opacity: 1 !important;
}
.data-table th,
.pdls-table th,
.censuses-table th,
.users-table th,
.incidents-table th,
.work-orders-table th,
.catalog-table th {
  background: var(--surface) !important;
  background-color: var(--surface) !important;
  color: var(--text);
  font-weight: 600;
  padding: 16px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border);
  border-left: 1px solid var(--border);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  opacity: 1 !important;
}
.data-table th:first-child,
.pdls-table th:first-child,
.censuses-table th:first-child,
.users-table th:first-child,
.incidents-table th:first-child,
.work-orders-table th:first-child,
.catalog-table th:first-child {
  border-left: none;
}
.data-table th:last-child,
.pdls-table th:last-child,
.censuses-table th:last-child,
.users-table th:last-child,
.incidents-table th:last-child,
.work-orders-table th:last-child,
.catalog-table th:last-child {
  border-right: none;
}
.data-table th.sortable,
.pdls-table th.sortable,
.censuses-table th.sortable,
.users-table th.sortable,
.incidents-table th.sortable,
.work-orders-table th.sortable,
.catalog-table th.sortable {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: background-color 0.2s ease;
}
.data-table th.sortable:hover,
.pdls-table th.sortable:hover,
.censuses-table th.sortable:hover,
.users-table th.sortable:hover,
.incidents-table th.sortable:hover,
.work-orders-table th.sortable:hover,
.catalog-table th.sortable:hover {
  background: var(--surface) !important;
  background-color: var(--surface) !important;
  opacity: 1 !important;
}
.data-table th.sortable span,
.pdls-table th.sortable span,
.censuses-table th.sortable span,
.users-table th.sortable span,
.incidents-table th.sortable span,
.work-orders-table th.sortable span,
.catalog-table th.sortable span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sort-icon {
  font-size: 0.8rem;
  color: var(--text-secondary);
  transition: all 0.2s ease;
}
.sort-icon.asc {
  color: var(--primary-color);
  transform: rotate(180deg);
}
.sort-icon.desc {
  color: var(--primary-color);
}
.actions-header {
  text-align: center;
  width: 120px;
}
.data-table td,
.pdls-table td,
.censuses-table td,
.users-table td,
.incidents-table td,
.work-orders-table td,
.catalog-table td {
  padding: 16px 12px;
  background: var(--surface-card);
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border);
  border-left: 1px solid var(--border);
  vertical-align: middle;
  min-height: 60px;
  box-sizing: border-box;
}
.data-table td:first-child,
.pdls-table td:first-child,
.censuses-table td:first-child,
.users-table td:first-child,
.incidents-table td:first-child,
.work-orders-table td:first-child,
.catalog-table td:first-child {
  border-left: none;
}
.data-table td:last-child,
.pdls-table td:last-child,
.censuses-table td:last-child,
.users-table td:last-child,
.incidents-table td:last-child,
.work-orders-table td:last-child,
.catalog-table td:last-child {
  border-right: none;
}
.data-table tbody tr:last-child td,
.pdls-table tbody tr:last-child td,
.censuses-table tbody tr:last-child td,
.users-table tbody tr:last-child td,
.incidents-table tbody tr:last-child td,
.work-orders-table tbody tr:last-child td,
.catalog-table tbody tr:last-child td {
  border-bottom: 1px solid var(--border);
}
.data-table tbody tr,
.pdls-table tbody tr.pdl-row,
.censuses-table tbody tr.census-row,
.pdls-table tbody tr,
.users-table tbody tr.user-row,
.users-table tbody tr,
.incidents-table tbody tr.incident-row,
.incidents-table tbody tr,
.work-orders-table tbody tr.work-order-row,
.work-orders-table tbody tr,
.catalog-table tbody tr {
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.data-table tbody tr:hover,
.pdls-table tbody tr.pdl-row:hover,
.censuses-table tbody tr.census-row:hover,
.censuses-table tbody tr:hover,
.pdls-table tbody tr:hover,
.users-table tbody tr.user-row:hover,
.users-table tbody tr:hover,
.incidents-table tbody tr.incident-row:hover,
.incidents-table tbody tr:hover,
.work-orders-table tbody tr.work-order-row:hover,
.work-orders-table tbody tr:hover,
.catalog-table tbody tr:hover {
  background-color: var(--bg-hover, rgba(139, 92, 246, 0.05));
}
.data-table tbody tr.selected,
.pdls-table tbody tr.pdl-row.selected,
.censuses-table tbody tr.census-row.selected,
.censuses-table tbody tr.selected,
.pdls-table tbody tr.selected,
.users-table tbody tr.user-row.selected,
.users-table tbody tr.selected,
.incidents-table tbody tr.incident-row.selected,
.incidents-table tbody tr.selected,
.work-orders-table tbody tr.work-order-row.selected,
.work-orders-table tbody tr.selected,
.catalog-table tbody tr.selected {
  background-color: rgba(107, 72, 196, 0.15) !important;
  border-left: 3px solid var(--brand-500);
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.15);
}
.data-table tbody tr.selected td,
.pdls-table tbody tr.pdl-row.selected td,
.censuses-table tbody tr.census-row.selected td,
.censuses-table tbody tr.selected td,
.pdls-table tbody tr.selected td,
.users-table tbody tr.user-row.selected td,
.users-table tbody tr.selected td,
.incidents-table tbody tr.incident-row.selected td,
.incidents-table tbody tr.selected td,
.work-orders-table tbody tr.work-order-row.selected td,
.work-orders-table tbody tr.selected td,
.catalog-table tbody tr.selected td {
  background-color: rgba(107, 72, 196, 0.15) !important;
}
.data-table tbody tr.selected:hover,
.pdls-table tbody tr.pdl-row.selected:hover,
.censuses-table tbody tr.census-row.selected:hover,
.censuses-table tbody tr.selected:hover,
.pdls-table tbody tr.selected:hover,
.users-table tbody tr.user-row.selected:hover,
.users-table tbody tr.selected:hover,
.incidents-table tbody tr.incident-row.selected:hover,
.incidents-table tbody tr.selected:hover,
.work-orders-table tbody tr.work-order-row.selected:hover,
.work-orders-table tbody tr.selected:hover,
.catalog-table tbody tr.selected:hover {
  background-color: rgba(107, 72, 196, 0.2) !important;
}
.data-table tbody tr.selected:hover td,
.pdls-table tbody tr.pdl-row.selected:hover td,
.censuses-table tbody tr.census-row.selected:hover td,
.censuses-table tbody tr.selected:hover td,
.pdls-table tbody tr.selected:hover td,
.users-table tbody tr.user-row.selected:hover td,
.users-table tbody tr.selected:hover td,
.incidents-table tbody tr.incident-row.selected:hover td,
.incidents-table tbody tr.selected:hover td,
.work-orders-table tbody tr.work-order-row.selected:hover td,
.work-orders-table tbody tr.selected:hover td,
.catalog-table tbody tr.selected:hover td {
  background-color: rgba(107, 72, 196, 0.2) !important;
}
.data-table .actions,
.pdls-table .actions,
.censuses-table .actions,
.users-table .actions,
.incidents-table .actions,
.work-orders-table .actions,
.catalog-table .actions {
  width: 100px;
  min-width: 100px;
  padding: 16px 12px;
  text-align: center;
  vertical-align: middle;
}
.data-table .action-buttons,
.pdls-table .action-buttons,
.censuses-table .action-buttons,
.users-table .action-buttons,
.incidents-table .action-buttons,
.work-orders-table .action-buttons,
.catalog-table .action-buttons {
  display: flex;
  gap: 0.375rem;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
}
.data-table .action-buttons .btn-sm,
.pdls-table .action-buttons .btn-sm,
.censuses-table .action-buttons .btn-sm,
.users-table .action-buttons .btn-sm,
.incidents-table .action-buttons .btn-sm,
.work-orders-table .action-buttons .btn-sm,
.catalog-table .action-buttons .btn-sm {
  width: clamp(22px, 2.2vw, 24px);
  height: clamp(22px, 2.2vw, 24px);
  padding: 0 !important;
  border-width: 1px;
  border-style: solid;
  border-radius: 4px;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
  font-size: clamp(0.625rem, 0.7vw, 0.6875rem);
  line-height: 1 !important;
  margin: 0 !important;
}
.data-table .action-buttons .btn-sm i,
.pdls-table .action-buttons .btn-sm i,
.censuses-table .action-buttons .btn-sm i,
.users-table .action-buttons .btn-sm i,
.incidents-table .action-buttons .btn-sm i,
.work-orders-table .action-buttons .btn-sm i,
.catalog-table .action-buttons .btn-sm i {
  font-size: clamp(0.625rem, 0.7vw, 0.6875rem);
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  width: 100%;
  height: 100%;
}
.data-table .action-buttons .btn-sm:hover,
.pdls-table .action-buttons .btn-sm:hover,
.censuses-table .action-buttons .btn-sm:hover,
.users-table .action-buttons .btn-sm:hover,
.incidents-table .action-buttons .btn-sm:hover,
.work-orders-table .action-buttons .btn-sm:hover,
.catalog-table .action-buttons .btn-sm:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.4);
}
.data-table .action-buttons .btn-outline-primary:hover,
.pdls-table .action-buttons .btn-outline-primary:hover,
.censuses-table .action-buttons .btn-outline-primary:hover,
.users-table .action-buttons .btn-outline-primary:hover,
.incidents-table .action-buttons .btn-outline-primary:hover,
.work-orders-table .action-buttons .btn-outline-primary:hover {
  background: var(--brand-700);
  border-color: var(--brand-700);
}
.data-table .action-buttons .btn-sm:active,
.pdls-table .action-buttons .btn-sm:active,
.censuses-table .action-buttons .btn-sm:active,
.users-table .action-buttons .btn-sm:active,
.incidents-table .action-buttons .btn-sm:active,
.work-orders-table .action-buttons .btn-sm:active {
  transform: scale(0.95);
}
.loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 2px solid var(--border-color, #e5e7eb);
  border-top: 2px solid var(--primary-color, #3b82f6);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.pagination-container {
  flex-shrink: 0;
  margin-top: 0 !important;
  padding-top: 1.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
  background-color: var(--surface-card, #ffffff);
  z-index: 10;
  width: 100%;
  min-height: auto;
  overflow: visible;
  box-sizing: border-box;
  position: sticky;
  bottom: 0;
}
@media (min-width: 640px) {
  .pagination-container.sm\:py-4,
  .pagination-container[class*="sm:py-4"] {
    padding-top: 1rem;
    padding-bottom: 1.5rem;
  }
}
.pagination-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: nowrap;
  width: 100%;
  padding: 0;
  margin: 0;
  position: relative;
  height: 2.75rem;
  box-sizing: border-box;
}
.pagination-right {
  display: flex;
  align-items: center;
  justify-content: flex-end !important;
  flex-shrink: 0;
  min-width: 0;
  gap: 1rem;
  position: relative;
  z-index: 2;
  height: 100%;
}
.pagination-buttons {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pagination-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--border, #d1d5db);
  border-radius: 0.375rem;
  background-color: var(--surface-card, #ffffff);
  color: var(--text, #374151);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.875rem;
}
.pagination-btn:hover:not(.disabled) {
  background-color: var(--bg-hover, #f3f4f6);
  border-color: var(--primary-color, #8b5cf6);
  color: var(--primary-color, #8b5cf6);
}
.pagination-btn.disabled,
.pagination-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background-color: var(--bg-secondary, #f9fafb);
  border-color: var(--border-light, #e5e7eb);
  color: var(--text-secondary, #9ca3af);
}
.page-numbers {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.page-number {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid var(--border, #d1d5db);
  border-radius: 0.375rem;
  background-color: var(--surface-card, #ffffff);
  color: var(--text, #374151);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.page-number:hover {
  background-color: var(--bg-hover, #f3f4f6);
  border-color: var(--primary-color, #8b5cf6);
  color: var(--primary-color, #8b5cf6);
}
.page-number.active {
  background-color: var(--primary-color, #8b5cf6);
  border-color: var(--primary-color, #8b5cf6);
  color: #ffffff;
  font-weight: 600;
}
.pagination-size {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  white-space: nowrap;
}
.pagination-label {
  font-size: 0.875rem;
  color: var(--text, #374151);
  font-weight: 500;
}
.pagination-select {
  padding: 0.375rem 0.5rem;
  border: 1px solid var(--border, #d1d5db);
  border-radius: 0.375rem;
  background-color: var(--surface-card, #ffffff);
  color: var(--text, #374151);
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 4rem;
}
.pagination-select:focus {
  outline: none;
  border-color: var(--primary-color, #8b5cf6);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
}
.pagination-select:hover {
  border-color: var(--primary-color, #8b5cf6);
}
@media (max-width: 1024px) {
  .pagination-controls {
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  .pagination-right {
    width: 100%;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .data-table,
  .pdls-table,
  .censuses-table,
  .users-table,
  .incidents-table,
  .work-orders-table {
    font-size: 0.75rem;
  }
  .data-table th,
  .data-table td,
  .pdls-table th,
  .pdls-table td,
  .censuses-table th,
  .censuses-table td,
  .users-table th,
  .users-table td,
  .incidents-table th,
  .incidents-table td,
  .work-orders-table th,
  .work-orders-table td {
    padding: 0.75rem 0.5rem;
  }
  .pagination-controls {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    height: auto;
  }
  .pagination-right {
    width: 100%;
    justify-content: center;
    flex-direction: column;
    gap: 0.75rem;
  }
}
@media (max-width: 480px) {
  .data-table,
  .pdls-table,
  .censuses-table,
  .users-table,
  .incidents-table,
  .work-orders-table {
    font-size: 0.7rem;
  }
  .data-table th,
  .data-table td,
  .pdls-table th,
  .pdls-table td,
  .censuses-table th,
  .censuses-table td,
  .users-table th,
  .users-table td,
  .incidents-table th,
  .incidents-table td,
  .work-orders-table th,
  .work-orders-table td {
    padding: 0.5rem 0.25rem;
  }
  .page-numbers {
    flex-wrap: wrap;
    justify-content: center;
  }
  .pagination-container {
    padding: 1rem;
  }
}
.data-table-container {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface-card);
  border-radius: 0;
  overflow: hidden;
  transition: all 0.2s ease-in-out;
  flex: 1 1 auto;
  box-sizing: border-box;
  z-index: 50;
}
.data-table-container.loading {
  opacity: 0.7;
}
.data-table-container.error {
  background: #fef2f2;
  border: 1px solid #fecaca;
}
.center-toggle-group {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.table-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.table-title i {
  color: var(--brand-500);
  font-size: 14px;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.view-mode-toggle {
  display: flex;
  align-items: center;
  background: var(--surface-section);
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  padding: 0.125rem;
  gap: 0.125rem;
}
.toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.5rem;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border-radius: 0.25rem;
  transition: all 0.2s ease-in-out;
  white-space: nowrap;
  flex: 0 0 auto;
}
.toggle-btn:hover {
  background: var(--surface-hover);
  color: var(--text);
}
.toggle-btn.active {
  background: var(--brand-500);
  color: white;
  font-weight: 600;
}
.toggle-btn.active:hover {
  background: var(--brand-600);
}
.toggle-btn i {
  font-size: 12px;
  line-height: 12px;
}
.toggle-btn .toggle-icon {
  width: 16px;
  height: 16px;
  display: inline-block;
  object-fit: contain;
  vertical-align: middle;
  margin: 0;
}
.toggle-btn {
  min-height: 32px;
  line-height: 1;
  padding: 0 0.5rem;
}
.toggle-btn span {
  display: inline-block;
  line-height: 1;
}
.button-filters {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 13px;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease-in-out;
  z-index: 100;
}
.clear-filters-button {
  background: var(--surface-card);
  color: var(--text);
  border: 1px solid var(--border);
}
.filter-manager-button {
  background: var(--brand-500);
  color: white;
  border: 1px solid var(--brand-500);
  margin-right: 0.5rem;
}
.filter-manager-button:hover {
  background: var(--brand-600);
  border-color: var(--brand-600);
}
.filter-manager-button i {
  font-size: 14px;
}
.status-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
}
.status-badge.encendida {
  background-color: #dcfce7;
  color: #166534;
}
.status-badge.apagada {
  background-color: #fee2e2;
  color: #991b1b;
}
.status-badge.intermitente {
  background-color: #fef3c7;
  color: #92400e;
}
.action-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 500;
  background-color: #e0e7ff;
  color: #3730a3;
  text-transform: capitalize;
}
.priority-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
}
.priority-badge.alta {
  background-color: #fee2e2;
  color: #991b1b;
}
.priority-badge.media {
  background-color: #fef3c7;
  color: #92400e;
}
.priority-badge.baja {
  background-color: #dcfce7;
  color: #166534;
}
.status-badge-success {
  background-color: #28a745;
  color: #ffffff;
}
.status-badge-danger {
  background-color: #dc3545;
  color: #ffffff;
}
.status-badge-warning {
  background-color: #ffc107;
  color: #000000;
}
.status-badge-info {
  background-color: #17a2b8;
  color: #ffffff;
}
.status-badge-secondary {
  background-color: #6b7280;
  color: #ffffff;
}
.status-badge-purple {
  background-color: #8b5cf6;
  color: #ffffff;
}
.status-badge-danger-dark {
  background-color: #dc2626;
  color: #ffffff;
}
.status-badge-cyan {
  background-color: #06b6d4;
  color: #ffffff;
}
.status-badge-orange {
  background-color: #f97316;
  color: #ffffff;
}
.status-badge-success-light {
  background-color: #22c55e;
  color: #ffffff;
}
.clear-filters-button:hover {
  background: var(--surface-hover);
  border-color: var(--brand-500);
}
.clear-filters-button i {
  font-size: 14px;
}
.table-filters {
  padding: 1rem 1rem;
  background: var(--surface, #0b1020);
  border-bottom: 1px solid var(--border);
  position: relative;
}
.filters-collapse-btn {
  position: absolute;
  top: 0.5rem;
  right: 1rem;
  background: transparent;
  border: none;
  color: var(--text);
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  transition: transform 0.15s ease;
}
.filters-collapse-btn:hover {
  background: rgba(0, 0, 0, 0.06);
}
.table-filters.collapsed .filter-group > .filter-input,
.table-filters.collapsed .filter-group > .filter-select,
.table-filters.collapsed .filter-group > .search-input,
.table-filters.collapsed .filter-group > .search-input-wrapper {
  display: none;
}
.table-filters.collapsed {
  padding: 0.25rem 1rem;
  height: 48px;
}
.table-filters.collapsed .filter-group {
  min-height: 0;
  height: 48px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.table-filters.collapsed .filter-header {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: var(--text) !important;
  font-size: 12px;
  margin: 0;
}
.table-filters.collapsed .filters-row {
  grid-auto-rows: 48px;
}
.filters-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  gap: 0.75rem;
  align-items: end;
  margin-bottom: 0;
}
.filters-row:last-child {
  margin-bottom: 0;
}
.table-filters + .table-wrapper .data-table thead {
  display: none;
}
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.filter-header {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding-bottom: 0;
  border-bottom: none;
}
.filter-header i {
  color: var(--brand-500);
  font-size: 10px;
}
.filter-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  margin: 0;
}
.search-input-wrapper {
  position: relative;
}
.filter-input {
  font-size: 13px;
  border-radius: 0.25rem;
  border: 1px solid var(--border);
  background: var(--surface-card);
}
.filter-input[type=date] {
  padding: 0.35rem 0.5rem;
}
.search-icon {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: 14px;
  pointer-events: none;
}
.search-input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  background: var(--surface-card);
  color: var(--text);
  font-size: 14px;
  transition: all 0.2s ease-in-out;
}
.search-input:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 2px rgba(107, 72, 196, 0.1);
}
.search-input::placeholder {
  color: var(--muted);
}
.filter-input {
  width: 100%;
  padding: 0 0.5rem;
  height: 36px;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  background: var(--surface-card);
  color: var(--text);
  font-size: 12px;
  transition: all 0.2s ease-in-out;
}
.filter-input[type=date] {
  height: 36px;
}
.filter-input:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 2px rgba(107, 72, 196, 0.1);
}
.filter-input::placeholder {
  color: var(--muted);
}
.filter-select {
  border: 1px solid var(--border);
  background: var(--surface-card);
  color: var(--text);
}
.filter-select:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 2px rgba(107, 72, 196, 0.1);
}
.table-wrapper {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: auto;
  position: relative;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  table-layout: fixed;
  flex: 1 1 auto;
  height: 100%;
}
.data-table thead {
  background: var(--surface-section);
  position: sticky;
  top: 0;
  z-index: 10;
}
.data-table th {
  padding: 0.75rem 1.5rem;
  text-align: left;
  font-weight: 600;
  color: var(--text);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.data-table th:nth-child(1) {
  width: 20%;
}
.data-table th:nth-child(2) {
  width: 20%;
}
.data-table th:nth-child(3) {
  width: 20%;
}
.data-table th:nth-child(4) {
  width: 20%;
}
.data-table th:nth-child(5) {
  width: 20%;
}
.sortable-header {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: background-color 0.2s ease-in-out;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}
.sortable-header:hover {
  background: var(--surface-hover);
}
.sortable-header i {
  font-size: 12px;
  color: var(--muted);
  transition: color 0.2s ease-in-out;
  flex-shrink: 0;
}
.sortable-header:hover i {
  color: var(--brand-500);
}
.data-table tbody tr {
  border-bottom: 1px solid var(--border);
  transition: all 0.2s ease-in-out;
  cursor: pointer;
}
.data-table tbody tr:hover {
  background: var(--surface-hover);
}
.data-table tbody tr.selected {
  background: rgba(107, 72, 196, 0.1);
  border-left: 3px solid var(--brand-500);
}
.data-table td {
  padding: 0.75rem 1.5rem;
  vertical-align: middle;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.folio-cell {
  font-weight: 500;
  color: var(--text);
}
.location-cell {
  min-width: 0;
}
.location-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}
.address {
  font-weight: 500;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.poste {
  font-size: 12px;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.type-cell {
  font-weight: 500;
  color: var(--text);
}
.status-cell {
  text-align: center;
}
.service-cell {
  font-size: 13px;
  color: var(--text);
}
.action-cell {
  text-align: center;
}
.action-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border: none;
  border-radius: 0.375rem;
  color: white;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  text-transform: capitalize;
}
.action-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.action-button i {
  font-size: 12px;
}
.crew-cell {
  font-weight: 500;
  color: var(--text);
}
.priority-cell {
  text-align: center;
}
.no-data-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
  text-align: center;
  color: var(--muted);
}
.no-data-message i {
  font-size: 48px;
  margin-bottom: 1rem;
  opacity: 0.5;
}
.no-data-message h4 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
  color: var(--text);
}
.no-data-message p {
  font-size: 14px;
  margin: 0;
}
.loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.loading-content {
  text-align: center;
  color: var(--text);
}
.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(107, 72, 196, 0.1);
  border-top: 4px solid var(--brand-500);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 1rem;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.loading-content p {
  font-size: 14px;
  color: var(--muted);
  margin: 0;
}
.error-overlay {
  position: absolute;
  inset: 0;
  background: rgba(254, 242, 242, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.error-content {
  text-align: center;
  color: #dc2626;
  max-width: 300px;
  padding: 2rem;
}
.error-icon {
  font-size: 48px;
  margin-bottom: 1rem;
  opacity: 0.7;
}
.error-content h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.error-content p {
  font-size: 14px;
  margin-bottom: 1.5rem;
  color: #7f1d1d;
}
.retry-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: #dc2626;
  color: white;
  border: none;
  border-radius: 0.375rem;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.retry-button:hover {
  background: #b91c1c;
  transform: translateY(-1px);
}
.retry-button i {
  font-size: 14px;
}
@media (max-width: 1024px) {
  .filters-row {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }
  .data-table {
    font-size: 13px;
  }
  .data-table th,
  .data-table td {
    padding: 0.5rem;
  }
}
@media (max-width: 768px) {
  .table-header {
    padding: 0.75rem 1rem;
  }
  .table-filters {
    padding: 1rem 1rem;
  }
  .filters-row {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .data-table {
    font-size: 12px;
  }
  .data-table th,
  .data-table td {
    padding: 0.375rem;
  }
  .action-button span {
    display: none;
  }
  .action-button {
    padding: 0.5rem;
  }
  .button-filters span {
    display: none;
  }
}
@media (max-width: 640px) {
  .table-title {
    font-size: 15px;
  }
  .data-table {
    min-width: 600px;
  }
  .table-wrapper {
    overflow-x: auto;
    flex: 1 1 auto;
    min-height: 0;
  }
}
.pagination-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem;
  background: var(--surface-card);
  border-top: 1px solid var(--border);
  gap: 1rem;
  flex-wrap: wrap;
  height: 60px;
  box-sizing: border-box;
}
.pagination-info {
  display: flex;
  align-items: center;
}
.pagination-text {
  font-size: 14px;
  color: var(--muted);
  font-weight: 500;
}
.pagination-buttons {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pagination-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  background: var(--surface-card);
  color: var(--text);
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 12px;
}
.pagination-btn:hover:not(.disabled) {
  background: var(--surface-hover);
  border-color: var(--brand-500);
  color: var(--brand-500);
}
.pagination-btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.page-numbers {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.page-number {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  background: var(--surface-card);
  color: var(--text);
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 14px;
  font-weight: 500;
  padding: 0 0.5rem;
}
.page-number:hover:not(.ellipsis) {
  background: var(--surface-hover);
  border-color: var(--brand-500);
  color: var(--brand-500);
}
.page-number.active {
  background: var(--brand-500);
  color: white;
  border-color: var(--brand-500);
}
.page-number.ellipsis {
  cursor: default;
  border: none;
  background: transparent;
}
.page-number.ellipsis:hover {
  background: transparent;
  color: var(--text);
}
.pagination-size {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pagination-label {
  font-size: 14px;
  color: var(--muted);
  font-weight: 500;
}
.pagination-select {
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--border);
  background: var(--surface-card);
  color: var(--text);
  border-radius: 0.375rem;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.pagination-select:hover {
  border-color: var(--brand-500);
}
.pagination-select:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(107, 72, 196, 0.1);
}
@media (max-width: 768px) {
  .pagination-controls {
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
  }
  .pagination-buttons {
    order: 1;
  }
  .pagination-info {
    order: 2;
  }
  .pagination-size {
    order: 3;
  }
  .page-numbers {
    gap: 0.125rem;
  }
  .page-number {
    min-width: 28px;
    height: 28px;
    font-size: 12px;
  }
  .pagination-btn {
    width: 28px;
    height: 28px;
  }
  .button-filters {
    padding: 0.5rem 0.5rem;
  }
}
.login-form-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 1rem;
  position: relative;
}
.login-card-modern {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 420px;
  padding: 48px 32px;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(255, 255, 255, 0.05) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow:
    0 25px 50px -12px rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(255, 255, 255, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  animation: loginCardEntrance 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.login-card-modern:hover {
  transform: translateY(-8px);
  box-shadow:
    0 32px 64px -12px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.login-card-modern.dark {
  background:
    linear-gradient(
      135deg,
      rgba(0, 0, 0, 0.3) 0%,
      rgba(0, 0, 0, 0.1) 100%);
  border-color: rgba(255, 255, 255, 0.05);
}
.login-card-header {
  text-align: center;
  margin-bottom: 40px;
}
.login-card-logo {
  width: 70%;
  object-fit: contain;
  margin-bottom: 24px;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
  transition: transform 0.3s ease;
}
.login-card-subtitle {
  font-size: 16px;
  color: var(--muted);
  font-weight: 400;
  margin-bottom: 1rem;
}
.environment-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 12px;
  background-color: var(--surface-card);
  border: 1px solid var(--border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: 1rem;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.environment-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--brand-500);
  box-shadow: 0 0 0 2px rgba(var(--brand-500-rgb), 0.3);
  animation: pulse 1.5s infinite;
}
@keyframes pulse {
  0% {
    transform: scale(0.8);
    opacity: 0.7;
  }
  50% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.8);
    opacity: 0.7;
  }
}
.login-card-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 64px;
  padding: 0 32px;
  border: none;
  border-radius: 20px;
  background:
    linear-gradient(
      135deg,
      var(--brand-500) 0%,
      var(--brand-600) 100%);
  color: white;
  font-weight: 600;
  font-size: 18px;
  cursor: pointer;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow:
    0 8px 32px rgba(107, 72, 196, 0.3),
    0 0 0 1px rgba(107, 72, 196, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  margin-bottom: 40px;
}
.login-card-button:hover {
  transform: translateY(-4px);
  box-shadow:
    0 16px 48px rgba(107, 72, 196, 0.4),
    0 0 0 1px rgba(107, 72, 196, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.login-card-button:active {
  transform: translateY(-2px);
}
.login-card-button-content {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  z-index: 2;
}
.login-card-icon {
  font-size: 20px;
  transition: transform 0.3s ease;
}
.login-card-button:hover .login-card-icon {
  transform: scale(1.1);
}
.login-card-button-text {
  font-family:
    "Inter",
    -apple-system,
    BlinkMacSystemFont,
    sans-serif;
  letter-spacing: 0.025em;
}
.login-card-arrow {
  font-size: 16px;
  transition: transform 0.3s ease;
}
.login-card-button:hover .login-card-arrow {
  transform: translateX(6px);
}
.login-card-button-shine {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.3),
      transparent);
  transition: left 0.6s ease;
}
.login-card-button:hover .login-card-button-shine {
  left: 100%;
}
.login-card-button-particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image:
    radial-gradient(
      circle at 20% 80%,
      rgba(255, 255, 255, 0.1) 0%,
      transparent 50%),
    radial-gradient(
      circle at 80% 20%,
      rgba(255, 255, 255, 0.1) 0%,
      transparent 50%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.login-card-button:hover .login-card-button-particles {
  opacity: 1;
}
.login-card-footer {
  width: 100%;
}
.login-card-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.feature-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 8px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}
.feature-item:hover {
  background: rgba(255, 255, 255, 0.1);
}
.feature-item span {
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
}
.feature-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  margin-bottom: 8px;
  opacity: 0.9;
  transition: all 0.3s ease;
  filter: brightness(0) saturate(100%) invert(15%) sepia(70%) saturate(4000%) hue-rotate(247deg) brightness(75%) contrast(100%);
}
.feature-item:hover .feature-icon {
  opacity: 1;
  transform: scale(1.1);
}
html.dark .feature-icon {
  filter: brightness(0) invert(1);
}
.login-card-bg-elements {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
}
.bg-circle {
  position: absolute;
  border-radius: 50%;
  background:
    linear-gradient(
      135deg,
      var(--brand-400) 0%,
      var(--brand-600) 100%);
  opacity: 0.1;
  animation: float 6s ease-in-out infinite;
}
.bg-circle-1 {
  width: 120px;
  height: 120px;
  top: -60px;
  right: -60px;
  animation-delay: 0s;
}
.bg-circle-2 {
  width: 80px;
  height: 80px;
  bottom: -40px;
  left: -40px;
  animation-delay: 2s;
}
.bg-circle-3 {
  width: 60px;
  height: 60px;
  top: 50%;
  right: -30px;
  animation-delay: 4s;
}
.login-modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
}
.login-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 24, 40, 0.4);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  animation: modalBackdropFadeIn 0.3s ease-out;
}
.login-modal-container {
  position: relative;
  width: 100%;
  max-width: 480px;
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: 28px;
  box-shadow:
    0 32px 64px -12px rgba(16, 24, 40, 0.12),
    0 0 0 1px var(--border),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  padding: 48px 40px;
  animation: modalSlideIn 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}
html.dark .login-modal-container {
  background: var(--surface-card);
  border-color: var(--border);
}
.login-modal-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface-card);
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.3s ease;
  z-index: 100;
}
.login-modal-close-btn:hover {
  background: var(--surface-hover);
  transform: scale(1.1) rotate(90deg);
  color: var(--brand-500);
}
.login-modal-header {
  text-align: center;
  margin-bottom: 40px;
}
.login-modal-logo {
  margin-bottom: 24px;
}
.login-modal-logo-img {
  width: 70%;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
}
.login-modal-subtitle {
  font-size: 16px;
  color: var(--muted);
  font-weight: 400;
}
.login-modal-form {
  margin-bottom: 32px;
}
.login-form-field {
  margin-bottom: 24px;
}
.login-form-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.login-form-icon {
  color: var(--brand-500);
  font-size: 16px;
}
.login-form-input {
  width: 100%;
  padding: 16px 20px;
  border: 2px solid var(--border);
  border-radius: 16px;
  background: var(--surface-ground);
  color: var(--text);
  font-size: 16px;
  transition: all 0.3s ease;
}
.login-form-input::placeholder {
  color: var(--muted);
}
.login-form-input:focus {
  outline: none;
  border-color: var(--brand-500);
  background: var(--surface-card);
  box-shadow: 0 0 0 4px rgba(107, 72, 196, 0.1);
  transform: translateY(-2px);
}
.login-form-input.login-form-input-error {
  border-color: var(--error);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}
.login-form-recaptcha {
  display: flex;
  justify-content: center;
  margin: 32px 0;
  padding: 20px;
  border-radius: 16px;
  background: var(--surface-ground);
  border: 1px solid var(--border);
}
.login-form-recaptcha .g-recaptcha {
  transform: scale(0.9);
  transform-origin: center;
}
.login-form-error {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: rgba(220, 38, 38, 0.1);
  border: 1px solid rgba(220, 38, 38, 0.3);
  border-radius: 12px;
  color: #dc2626;
  font-size: 14px;
  margin-bottom: 24px;
  animation: errorShake 0.5s ease-in-out;
}
.login-form-error i {
  font-size: 16px;
}
.login-form-submit {
  width: 100%;
  height: 56px;
  border: none;
  border-radius: 16px;
  background:
    linear-gradient(
      135deg,
      var(--brand-500) 0%,
      var(--brand-600) 100%);
  color: white;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 8px 24px rgba(107, 72, 196, 0.3);
  position: relative;
  overflow: hidden;
}
.login-form-submit:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(107, 72, 196, 0.4);
}
.login-form-submit:active:not(:disabled) {
  transform: translateY(0);
}
.login-form-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.login-form-submit i {
  font-size: 18px;
}
.login-form-submit-text,
.login-form-submit-loading {
  color: white !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.login-modal-footer {
  text-align: center;
}
.login-modal-forgot-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.3s ease;
}
.login-modal-forgot-link:hover {
  color: var(--brand-600);
  transform: translateY(-1px);
}
.login-modal-forgot-link i {
  font-size: 14px;
}
.login-modal-decoration {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
}
.decoration-circle {
  position: absolute;
  border-radius: 50%;
  background:
    linear-gradient(
      135deg,
      var(--brand-400) 0%,
      var(--brand-600) 100%);
  opacity: 0.05;
  animation: decorationFloat 8s ease-in-out infinite;
}
.decoration-circle-1 {
  width: 100px;
  height: 100px;
  top: -50px;
  right: -50px;
  animation-delay: 0s;
}
.decoration-circle-2 {
  width: 60px;
  height: 60px;
  bottom: -30px;
  left: -30px;
  animation-delay: 4s;
}
.login-form-input#login {
  text-transform: uppercase;
}
@keyframes float {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-20px) rotate(180deg);
  }
}
@keyframes loginCardEntrance {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.9);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes modalBackdropFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes errorShake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-5px);
  }
  75% {
    transform: translateX(5px);
  }
}
@keyframes decorationFloat {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-15px) rotate(180deg);
  }
}
@media (max-width: 640px) {
  .login-card-modern {
    padding: 32px 24px;
    max-width: 100%;
    margin: 0 16px;
  }
  .login-card-modern .login-card-logo {
    width: 64%;
  }
  .login-card-modern .login-card-button {
    height: 56px;
    font-size: 16px;
  }
  .login-card-modern .login-card-features {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .login-card-modern .feature-item {
    padding: 12px;
  }
  .login-modal-container {
    padding: 15px 24px;
    margin: 16px;
    border-radius: 24px;
  }
  .login-modal-container .login-modal-logo {
    margin-bottom: 0px;
  }
  .login-modal-container .login-modal-logo .login-modal-logo-img {
    width: 60%;
  }
  .login-modal-container .login-form-input {
    padding: 14px 16px;
    font-size: 16px;
  }
  .login-modal-container .login-form-submit {
    height: 52px;
    font-size: 16px;
  }
  .login-form-recaptcha {
    padding: 16px;
    margin: 24px 0;
  }
  .login-form-recaptcha .g-recaptcha {
    transform: scale(0.8);
  }
}
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1040;
  padding: 1rem;
}
.modal-content {
  background: var(--surface-card);
  color: var(--text);
  border-radius: 1rem;
  animation: modalSlideIn 0.3s ease-out;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  max-width: 600px;
  width: 100%;
  min-width: 500px;
  max-height: 95vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border);
}
.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(1rem, 1.2vw, 1.25rem);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
  flex-shrink: 0;
}
.modal-title {
  margin: 0;
  font-size: clamp(1rem, 1.15vw, 1.125rem);
  font-weight: 600;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: clamp(0.375rem, 0.5vw, 0.5rem);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.modal-title h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.modal-title h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.modal-title i {
  color: var(--brand-500);
}
.modal-close {
  background: none;
  border: none;
  color: var(--text-secondary);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem;
  border-radius: 0.25rem;
  transition: all 0.2s ease;
}
.close-button {
  background: none;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0.5rem;
  border-radius: 0.25rem;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.close-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--text-secondary);
  transition: color 0.2s ease;
}
.modal-close:hover {
  background: var(--bg-hover);
  color: var(--text);
}
.close-button:hover {
  background: var(--bg-hover);
  color: var(--text);
}
.close-button:hover .close-icon {
  color: var(--text);
}
.modal-close-modern {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface-card);
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.3s ease;
  border: 1px solid var(--border);
  z-index: 100;
}
.modal-close-modern:hover {
  background: var(--surface-hover);
  transform: scale(1.1) rotate(90deg);
  color: var(--brand-500);
}
.modal-body {
  padding: clamp(1rem, 1.2vw, 1.25rem);
  background: var(--surface-card);
  color: var(--text);
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1;
  min-height: 0;
}
.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: clamp(0.625rem, 0.8vw, 0.75rem);
  padding: clamp(0.75rem, 0.9vw, 0.875rem) clamp(1rem, 1vw, 1rem);
  border-top: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  flex-shrink: 0;
}
.modal-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.user-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.pdl-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.5rem, 0.7vw, 0.75rem);
  margin-bottom: clamp(0.25rem, 0.4vw, 0.5rem);
}
.form-row.flex-row {
  display: flex;
  gap: 0;
  margin-bottom: 0;
}
.form-group {
  display: flex;
  flex-direction: column;
}
.form-group.full-width {
  grid-column: 1/-1;
  flex: 1 1 100%;
}
.form-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted);
  margin-bottom: clamp(0.25rem, 0.35vw, 0.375rem);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.form-label.required::after {
  content: " *";
  color: var(--error);
}
.form-input {
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  background-color: var(--surface-card);
  color: var(--text);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.form-input:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(107, 72, 196, 0.1);
}
.form-input.error {
  border-color: var(--error);
}
.form-input.error:focus {
  border-color: var(--error);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}
.form-select {
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  background-color: var(--surface-card);
  color: var(--text);
  cursor: pointer;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.form-select:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(107, 72, 196, 0.1);
}
.form-select.error {
  border-color: var(--error);
}
.form-select.error:focus {
  border-color: var(--error);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}
.form-textarea {
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  background-color: var(--surface-card);
  color: var(--text);
  resize: vertical;
  min-height: 100px;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.form-textarea:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(107, 72, 196, 0.1);
}
.form-textarea.error {
  border-color: var(--error);
}
.form-textarea.error:focus {
  border-color: var(--error);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}
.form-error {
  font-size: 0.75rem;
  color: var(--error);
  margin-top: 0.25rem;
}
.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.component-controls {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.component-select {
  flex: 1;
  padding: 0.5rem;
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  background: var(--surface-card);
  color: var(--text);
  font-size: 0.9rem;
  transition: all 0.3s ease;
}
.component-select:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(107, 72, 196, 0.1);
}
.component-select:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--bg-disabled, #f3f4f6);
}
.component-add-btn {
  padding: 0.5rem;
  min-width: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.folio-generation {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.folio-generation .form-input {
  flex: 1;
  background-color: var(--surface);
  color: var(--muted);
  cursor: not-allowed;
}
.folio-generation .form-input:focus {
  border-color: var(--border);
  box-shadow: none;
}
.folio-generation .btn {
  white-space: nowrap;
  min-width: 100px;
  flex-shrink: 0;
}
.folio-generation .btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.folio-generation .btn-primary {
  min-width: 120px;
}
.folio-generation .btn-secondary {
  min-width: 80px;
}
@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes modalSlideInModern {
  from {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.modal-container-modern {
  animation: modalSlideInModern 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (max-width: 768px) {
  .modal-overlay {
    padding: 0.5rem;
  }
  .modal-header {
    padding: 1rem;
  }
  .modal-body {
    padding: 1rem;
  }
  .modal-footer {
    padding: 1rem;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .form-actions {
    flex-direction: column;
  }
}
@media (max-width: 480px) {
  .modal-overlay {
    padding: 0;
  }
  .modal-content {
    max-width: none;
    max-height: min(90vh, 90dvh);
    border-radius: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 0.75rem;
  }
}
.modal-overlay.dark {
  background: rgba(0, 0, 0, 0.7);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.modal-overlay:not(.dark) {
  background: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 24, 40, 0.4);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  animation: modalBackdropFadeIn 0.3s ease-out;
}
@keyframes modalBackdropFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.modal-overlay.z-high {
  z-index: 1050;
}
.modal-overlay.z-higher {
  z-index: 1060;
}
.modal-overlay.z-highest {
  z-index: 1070;
}
.modal-container {
  background: var(--surface-card);
  border-radius: 0.75rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  width: 95%;
  max-width: 1200px;
  max-height: 95vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.modal-container.large {
  max-width: 1600px;
  max-height: 98vh;
}
.modal-container.extra-large {
  max-width: 1800px;
  max-height: 98vh;
}
.modal-container.medium {
  max-width: 900px;
}
.modal-container.small {
  max-width: 600px;
}
.creating-state {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 400px;
  padding: 3rem;
}
.creating-content {
  text-align: center;
  max-width: 400px;
}
.creating-content h4 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  margin: 1.5rem 0 0.75rem 0;
}
.creating-content p {
  font-size: 1rem;
  color: var(--muted);
  margin: 0 0 1.5rem 0;
}
.pdl-form,
.modal-form {
  width: 100%;
}
.form-row.wrap {
  flex-wrap: wrap;
}
.mini-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 2rem;
  border-top: 1px solid var(--border);
  background: var(--surface);
  gap: 1rem;
}
.mini-footer .view-button {
  background: transparent;
  border: 1px solid var(--brand-500);
  color: var(--brand-500);
  padding: 0.625rem 1.25rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.mini-footer .view-button:hover:not(:disabled) {
  background: var(--brand-500);
  color: var(--chip-fg);
}
.mini-footer .view-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.modal-title-icon {
  width: 20px;
  height: 20px;
  margin-right: 8px;
  vertical-align: middle;
}
@media (max-width: 768px) {
  .modal-content {
    min-width: auto;
    max-width: 95vw;
    margin: 0.5rem;
  }
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 0.75rem;
  }
}
@media (max-width: 480px) {
  .modal-content {
    margin: 0;
    border-radius: 0;
    max-height: min(90vh, 90dvh);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 1rem;
  }
}
.form-input.readonly,
.form-input[readonly] {
  background-color: var(--surface);
  color: var(--muted);
  border-color: var(--border);
  cursor: not-allowed;
}
.form-input.readonly:focus,
.form-input[readonly]:focus {
  border-color: var(--border);
  box-shadow: none;
}
.form-select.readonly,
.form-select[readonly] {
  background-color: var(--surface);
  color: var(--muted);
  border-color: var(--border);
  cursor: not-allowed;
}
.form-select.readonly:focus,
.form-select[readonly]:focus {
  border-color: var(--border);
  box-shadow: none;
}
.form-textarea.readonly,
.form-textarea[readonly] {
  background-color: var(--surface);
  color: var(--muted);
  border-color: var(--border);
  cursor: not-allowed;
  resize: none;
}
.form-info-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1rem;
  margin-top: 1.5rem;
}
.info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
}
.info-row:last-child {
  border-bottom: none;
}
.info-label {
  font-weight: 600;
  color: var(--text);
}
.info-value {
  color: var(--muted);
  font-family: "Courier New", monospace;
}
.form-input[maxlength="150"] {
  min-height: 60px;
}
.form-input[maxlength="100"] {
  min-height: 50px;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.appended-to-body {
  position: fixed !important;
  z-index: 2147483647 !important;
  left: 0 !important;
  top: 0 !important;
  width: auto !important;
  min-width: 200px;
  background-color: var(--surface-card);
  border: 2px solid var(--brand-500);
  border-top: none;
  border-radius: 0 0 0.5rem 0.5rem;
  max-height: 200px;
  overflow-y: auto;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  animation: slideDown 0.2s ease-out;
  margin-top: 0;
  will-change: transform;
}
.combobox-container.appended-to-body {
  position: fixed !important;
  z-index: 2147483647 !important;
  left: 0;
  top: 0;
  width: auto;
  box-sizing: border-box;
}
.filters-section {
  margin-bottom: 2rem;
  background: var(--surface-card);
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  overflow: visible;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
  position: relative;
  z-index: 1;
}
.filters-header {
  background: var(--surface);
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--border);
}
.filters-header .section-title {
  margin: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  transition: color 0.2s ease;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.filters-header .section-title:hover {
  color: var(--brand-500);
}
.filters-header .section-title i:first-child {
  margin-right: 0.5rem;
  color: var(--brand-500);
}
.section-toggle {
  transition: transform 0.2s ease;
}
.section-toggle.rotated {
  transform: rotate(180deg);
}
.filters-content {
  padding: 1.5rem;
  transition: all 0.3s ease;
  position: relative;
}
.filters-content.collapsed {
  display: none;
}
.search-bar {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
  align-items: center;
}
.search-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-shrink: 0;
}
.search-input-wrapper {
  position: relative;
  flex: 1;
  max-width: 500px;
}
.search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-secondary, #6b7280);
  z-index: 1;
}
.search-input {
  width: 100%;
  padding: 0.75rem 1rem 0.75rem 2.75rem;
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  font-size: 1rem;
  background: var(--surface-card);
  color: var(--text);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.search-input:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.search-input:disabled {
  background: var(--bg-disabled, #f3f4f6);
  color: var(--text-disabled, #9ca3af);
  cursor: not-allowed;
}
.specific-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
  position: relative;
}
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.filter-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
}
.specific-filters .form-input {
  width: 100%;
}
.specific-filters .form-input:hover:not(:disabled) {
  border-color: var(--brand-500);
}
.specific-filters .form-input:disabled {
  background-color: var(--bg-disabled, #f3f4f6);
  color: var(--text-disabled, #9ca3af);
  cursor: not-allowed;
  border-color: var(--border-light, #e5e7eb);
}
.combobox-container {
  position: relative;
  width: 100%;
}
.combobox-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.combobox-container .form-input {
  padding-right: clamp(2rem, 2.5vw, 2.5rem);
  cursor: text;
}
.combobox-container .form-input:not(:disabled):hover {
  border-color: var(--brand-500);
  background-color: var(--surface-card);
}
.combobox-container .form-input:not(:disabled):focus {
  border-color: var(--brand-500);
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--brand-500-rgb, 107, 70, 193), 0.1);
}
.combobox-arrow {
  position: absolute;
  right: clamp(0.75rem, 1vw, 1rem);
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
  transition: transform 0.3s ease, color 0.2s ease;
  z-index: 1;
}
.combobox-input-wrapper:hover .combobox-arrow,
.combobox-container .form-input:not(:disabled):focus ~ .combobox-arrow {
  color: var(--brand-500);
}
.combobox-arrow.rotated {
  transform: translateY(-50%) rotate(180deg);
}
.dropdown-item {
  padding: 0.75rem 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  font-weight: 500;
  background-color: var(--surface-card);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border: none;
  border-radius: 0;
  width: 100%;
  text-align: left;
  font-family: inherit;
  font-size: inherit;
}
.dropdown-item:hover {
  background-color: var(--brand-500);
  color: white;
}
.dropdown-item[aria-selected=true],
.dropdown-item.selected {
  background-color: var(--brand-50, #f5f3ff);
  color: var(--brand-700, #3a237a);
  font-weight: 600;
}
.dropdown-item:focus {
  outline: 2px solid var(--brand-500);
  outline-offset: -2px;
}
.dropdown-item:last-child {
  border-bottom: none;
  border-radius: 0 0 0.5rem 0.5rem;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.filter-select:hover:not(:disabled) {
  border-color: var(--brand-500);
}
.filter-select:disabled {
  background: var(--bg-disabled, #f3f4f6);
  color: var(--text-disabled, #9ca3af);
  cursor: not-allowed;
}
.filter-select option {
  padding: 0.75rem 1rem;
  color: var(--text);
  background-color: var(--surface-card);
  font-weight: 500;
  font-size: 0.875rem;
}
.filter-select option:checked,
.filter-select option:hover,
.filter-select option:focus {
  background-color: var(--brand-500) !important;
  color: white !important;
}
.filter-select option[value=""] {
  color: var(--muted);
  font-style: italic;
}
.filter-select:active {
  border-color: var(--brand-500);
}
.filters-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  padding: 1rem;
  background: var(--surface);
  border-radius: 0.375rem;
  border: 1px solid var(--border);
}
.summary-text {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted);
}
.filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.75rem;
  background: var(--brand-500);
  color: white;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 500;
}
.tag-remove {
  background: none;
  border: none;
  color: white;
  cursor: pointer;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
}
.tag-remove:hover {
  background: rgba(255, 255, 255, 0.2);
}
.filters-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
@media (max-width: 1024px) {
  .specific-filters {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .search-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .search-input-wrapper {
    max-width: none;
  }
  .filters-content {
    padding: 1rem;
  }
  .filters-actions {
    flex-direction: column;
  }
}
@media (max-width: 480px) {
  .filters-header {
    padding: 0.75rem 1rem;
  }
  .filters-content {
    padding: 0.75rem;
  }
  .filters-summary {
    padding: 0.75rem;
  }
}
.dark-mode,
.modal-dark {
  background-color: #1f2937;
  color: #f3f4f6;
}
.dark-mode .modal-header,
.dark-mode .header-dark,
.modal-dark .modal-header,
.modal-dark .header-dark {
  background-color: #1f2937;
  border-color: #4b5563;
  color: #f3f4f6;
}
.dark-mode .modal-header h1,
.dark-mode .modal-header h2,
.dark-mode .modal-header h3,
.dark-mode .modal-header h4,
.dark-mode .modal-header h5,
.dark-mode .modal-header h6,
.dark-mode .header-dark h1,
.dark-mode .header-dark h2,
.dark-mode .header-dark h3,
.dark-mode .header-dark h4,
.dark-mode .header-dark h5,
.dark-mode .header-dark h6,
.modal-dark .modal-header h1,
.modal-dark .modal-header h2,
.modal-dark .modal-header h3,
.modal-dark .modal-header h4,
.modal-dark .modal-header h5,
.modal-dark .modal-header h6,
.modal-dark .header-dark h1,
.modal-dark .header-dark h2,
.modal-dark .header-dark h3,
.modal-dark .header-dark h4,
.modal-dark .header-dark h5,
.modal-dark .header-dark h6 {
  color: #f3f4f6;
}
.dark-mode .modal-body,
.dark-mode .content-dark,
.modal-dark .modal-body,
.modal-dark .content-dark {
  background-color: #1f2937;
  color: #f3f4f6;
}
.dark-mode .modal-footer,
.dark-mode .footer-dark,
.modal-dark .modal-footer,
.modal-dark .footer-dark {
  background-color: #374151;
  border-color: #4b5563;
}
.dark-mode input,
.dark-mode select,
.dark-mode textarea,
.dark-mode .form-input,
.dark-mode .form-control,
.modal-dark input,
.modal-dark select,
.modal-dark textarea,
.modal-dark .form-input,
.modal-dark .form-control {
  background-color: #374151;
  color: #f3f4f6;
  border-color: #4b5563;
}
.dark-mode input:focus,
.dark-mode select:focus,
.dark-mode textarea:focus,
.dark-mode .form-input:focus,
.dark-mode .form-control:focus,
.modal-dark input:focus,
.modal-dark select:focus,
.modal-dark textarea:focus,
.modal-dark .form-input:focus,
.modal-dark .form-control:focus {
  border-color: #6b48c4;
  background-color: #374151;
  color: #f3f4f6;
}
.dark-mode input::placeholder,
.dark-mode select::placeholder,
.dark-mode textarea::placeholder,
.dark-mode .form-input::placeholder,
.dark-mode .form-control::placeholder,
.modal-dark input::placeholder,
.modal-dark select::placeholder,
.modal-dark textarea::placeholder,
.modal-dark .form-input::placeholder,
.modal-dark .form-control::placeholder {
  color: #9ca3af;
}
.dark-mode label,
.dark-mode .form-label,
.modal-dark label,
.modal-dark .form-label {
  color: #f3f4f6;
}
.dark-mode a,
.modal-dark a {
  color: #60a5fa;
}
.dark-mode a:hover,
.modal-dark a:hover {
  color: #93c5fd;
}
.dark-mode p,
.dark-mode span,
.dark-mode div,
.modal-dark p,
.modal-dark span,
.modal-dark div {
  color: #f3f4f6;
}
.dark-mode table,
.dark-mode .table,
.modal-dark table,
.modal-dark .table {
  background-color: #374151;
  color: #f3f4f6;
  border-color: #4b5563;
}
.dark-mode table thead,
.dark-mode .table thead,
.modal-dark table thead,
.modal-dark .table thead {
  background-color: #374151;
  border-color: #4b5563;
}
.dark-mode table tbody tr,
.dark-mode .table tbody tr,
.modal-dark table tbody tr,
.modal-dark .table tbody tr {
  border-color: #4b5563;
}
.dark-mode table tbody tr:hover,
.dark-mode .table tbody tr:hover,
.modal-dark table tbody tr:hover,
.modal-dark .table tbody tr:hover {
  background-color: #4b5563;
}
.dark-mode::-webkit-scrollbar,
.modal-dark::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.dark-mode::-webkit-scrollbar-track,
.modal-dark::-webkit-scrollbar-track {
  background-color: #374151;
}
.dark-mode::-webkit-scrollbar-thumb,
.modal-dark::-webkit-scrollbar-thumb {
  background-color: #4b5563;
  border-radius: 4px;
}
.dark-mode::-webkit-scrollbar-thumb:hover,
.modal-dark::-webkit-scrollbar-thumb:hover {
  background-color: #6b7280;
}
.dark-transition {
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
}
.hierarchy-structure {
  height: 100%;
  padding: clamp(0.1rem, 0.15vw, 0.15rem);
  display: flex;
  flex-direction: column;
  gap: clamp(0.075rem, 0.1vw, 0.1rem);
  justify-content: flex-start;
  align-items: flex-end;
  align-content: flex-start;
  overflow: visible;
  box-sizing: border-box;
}
.hierarchy-structure .hierarchy-item {
  border: none !important;
  background: transparent !important;
  transition: all 0.2s ease;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(0.15rem, 0.25vw, 0.25rem);
  margin: 0;
  padding: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  align-items: flex-end;
}
.hierarchy-structure > .hierarchy-item {
  width: 100% !important;
  min-width: 0;
  max-width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: flex-end;
}
.hierarchy-structure > .hierarchy-item::before,
.hierarchy-structure > .hierarchy-item::after {
  display: none !important;
}
.hierarchy-structure .hierarchy-item .hierarchy-item {
  position: relative;
  margin-left: auto;
  margin-right: 0 !important;
  margin-top: clamp(0.1rem, 0.15vw, 0.125rem);
  margin-bottom: clamp(0.1rem, 0.15vw, 0.125rem);
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: calc(100% - clamp(0.5rem, 0.7vw, 0.75rem)) !important;
  max-width: calc(100% - clamp(0.5rem, 0.7vw, 0.75rem));
  min-width: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: flex-end;
}
.hierarchy-structure .hierarchy-item .hierarchy-item::before {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(0.5rem, 0.7vw, 0.75rem));
  top: 0;
  width: 2px;
  height: 24px;
  background-color: var(--muted);
  z-index: 1;
  transition: all 0.2s ease;
}
.hierarchy-structure .hierarchy-item .hierarchy-item::after {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(0.5rem, 0.7vw, 0.75rem));
  top: 24px;
  width: clamp(0.5rem, 0.7vw, 0.75rem);
  height: 2px;
  background-color: var(--muted);
  transform: translateY(-50%);
  z-index: 1;
  transition: all 0.2s ease;
}
.hierarchy-structure .hierarchy-item .hierarchy-item .item-content {
  position: relative;
  z-index: 2;
  margin-left: 0;
  margin-right: 0 !important;
  background-color: inherit;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.hierarchy-structure .item-content {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  width: 100%;
  max-width: 100%;
  gap: clamp(0.75rem, 0.9vw, 0.875rem);
  padding: clamp(0.75rem, 0.85vw, 0.875rem) clamp(0.875rem, 1.1vw, 1.125rem);
  position: relative;
  min-height: clamp(48px, 5.5vh, 52px);
  max-height: clamp(52px, 6vh, 56px);
  box-sizing: border-box;
  overflow: hidden;
}
.item-content span:first-of-type {
  flex-grow: 1;
  text-align: left;
}
.hierarchy-structure .hierarchy-item .item-content > i {
  font-size: clamp(0.875rem, 1vw, 1rem);
  color: var(--brand-500);
  flex-shrink: 0;
}
.hierarchy-structure .hierarchy-item .item-content > span:not(.item-counter) {
  flex: 1;
  text-align: left;
  font-weight: 600;
  font-size: clamp(0.875rem, 0.95vw, 0.9375rem);
  color: var(--text);
  margin: 0 clamp(0.75rem, 0.85vw, 0.875rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.base-item .item-content,
.poste-item .item-content,
.brazo-item .item-content,
.luminaria-item .item-content {
  justify-content: flex-start;
  border: 2px solid var(--brand-500);
  border-radius: 6px;
}
.item-counter {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: clamp(0.3125rem, 0.35vw, 0.375rem) clamp(0.625rem, 0.7vw, 0.75rem);
  font-size: clamp(0.8125rem, 0.9vw, 0.875rem);
  font-weight: 600;
  color: var(--text);
  margin-left: auto;
  flex-shrink: 0;
  cursor: default;
  min-width: 2.75rem;
  text-align: center;
  white-space: nowrap;
}
.add-button,
.remove-button {
  border: none;
  border-radius: 4px;
  width: clamp(24px, 2.4vw, 28px);
  height: clamp(24px, 2.4vw, 28px);
  min-width: 24px;
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: clamp(0.875rem, 0.95vw, 0.9375rem);
  flex-shrink: 0;
  padding: 0;
}
.add-button {
  background: var(--brand-500);
  color: var(--chip-fg);
}
.add-button:hover:not(:disabled) {
  background: var(--brand-700);
  transform: scale(1.1);
}
.add-button:disabled {
  background: var(--muted);
  color: var(--surface);
  cursor: not-allowed;
}
.remove-button {
  background: var(--error);
  color: var(--chip-fg);
  margin-left: clamp(0.375rem, 0.5vw, 0.5rem);
}
.remove-button:hover {
  opacity: 0.8;
  transform: scale(1.1);
}
.hierarchy-guide {
  font-size: clamp(0.6875rem, 0.8vw, 0.75rem);
  margin: 0;
  color: var(--muted);
  font-weight: 600;
}
.empty-hierarchy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 200px;
  color: var(--text-secondary);
  text-align: center;
}
.empty-hierarchy .empty-text {
  font-size: 1.1rem;
  font-weight: 500;
  margin: 0 0 0.5rem 0;
}
.empty-hierarchy .empty-subtext {
  font-size: 0.9rem;
  margin: 0;
  opacity: 0.8;
}
.modal-overlay.z-highest {
  z-index: 1050 !important;
}
.loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 2px solid var(--border);
  border-top: 2px solid var(--brand-500);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
input.form-input.readonly-input,
input.form-input[readonly],
input[readonly].form-input,
input.readonly-input.form-input,
.form-input.readonly-input,
.form-input[readonly].readonly-input {
  color: var(--text-secondary, #6b7280) !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
  cursor: default !important;
  border-color: var(--border-light, #e5e7eb) !important;
  background-image: none !important;
}
input.form-input.readonly-input:focus,
input.form-input[readonly]:focus,
input[readonly].form-input:focus,
input.readonly-input.form-input:focus,
.form-input.readonly-input:focus,
.form-input[readonly].readonly-input:focus {
  border-color: var(--border-light, #e5e7eb) !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
}
input.form-input.readonly-input:hover,
input.form-input[readonly]:hover,
input[readonly].form-input:hover,
input.readonly-input.form-input:hover,
.form-input.readonly-input:hover,
.form-input[readonly].readonly-input:hover {
  border-color: var(--border-light, #e5e7eb) !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
}
textarea.form-input.readonly-textarea,
textarea.form-input[readonly],
textarea[readonly].form-input,
textarea.readonly-textarea.form-input,
.form-input.readonly-textarea,
.form-input[readonly].readonly-textarea {
  color: var(--text-secondary, #6b7280) !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
  cursor: default !important;
  border-color: var(--border-light, #e5e7eb) !important;
  background-image: none !important;
  min-height: 3rem !important;
  resize: vertical;
  padding: 0.75rem !important;
  font-size: 0.875rem !important;
  line-height: 1.4 !important;
}
textarea.form-input.readonly-textarea:focus,
textarea.form-input[readonly]:focus,
textarea[readonly].form-input:focus,
textarea.readonly-textarea.form-input:focus,
.form-input.readonly-textarea:focus,
.form-input[readonly].readonly-textarea:focus {
  border-color: var(--border-light, #e5e7eb) !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
}
textarea.form-input.readonly-textarea:hover,
textarea.form-input[readonly]:hover,
textarea[readonly].form-input:hover,
textarea.readonly-textarea.form-input:hover,
.form-input.readonly-textarea:hover,
.form-input[readonly].readonly-textarea:hover {
  border-color: var(--border-light, #e5e7eb) !important;
  background-color: var(--bg-secondary, #f3f4f6) !important;
}
.dark input.form-input.readonly-input,
.dark input.form-input[readonly],
.dark input[readonly].form-input,
.dark input.readonly-input.form-input,
.dark .form-input.readonly-input,
.dark .form-input[readonly].readonly-input {
  color: var(--text-secondary, rgba(255, 255, 255, 0.7)) !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
}
.dark input.form-input.readonly-input:focus,
.dark input.form-input[readonly]:focus,
.dark input[readonly].form-input:focus,
.dark input.readonly-input.form-input:focus,
.dark .form-input.readonly-input:focus,
.dark .form-input[readonly].readonly-input:focus {
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
}
.dark input.form-input.readonly-input:hover,
.dark input.form-input[readonly]:hover,
.dark input[readonly].form-input:hover,
.dark input.readonly-input.form-input:hover,
.dark .form-input.readonly-input:hover,
.dark .form-input[readonly].readonly-input:hover {
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
}
.dark textarea.form-input.readonly-textarea,
.dark textarea.form-input[readonly],
.dark textarea[readonly].form-input,
.dark textarea.readonly-textarea.form-input,
.dark .form-input.readonly-textarea,
.dark .form-input[readonly].readonly-textarea {
  color: var(--text-secondary, rgba(255, 255, 255, 0.7)) !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
}
.dark textarea.form-input.readonly-textarea:focus,
.dark textarea.form-input[readonly]:focus,
.dark textarea[readonly].form-input:focus,
.dark textarea.readonly-textarea.form-input:focus,
.dark .form-input.readonly-textarea:focus,
.dark .form-input[readonly].readonly-textarea:focus {
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
}
.dark textarea.form-input.readonly-textarea:hover,
.dark textarea.form-input[readonly]:hover,
.dark textarea[readonly].form-input:hover,
.dark textarea.readonly-textarea.form-input:hover,
.dark .form-input.readonly-textarea:hover,
.dark .form-input[readonly].readonly-textarea:hover {
  border-color: var(--border-light, rgba(255, 255, 255, 0.1)) !important;
  background-color: var(--bg-secondary, rgba(0, 0, 0, 0.2)) !important;
}
.custom-combobox {
  position: relative;
  width: 100%;
}
.custom-combobox.error .combobox-input {
  border-color: var(--error-500);
  box-shadow: 0 0 0 2px rgba(var(--error-500-rgb), 0.1);
}
.combobox-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 200px;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.375rem;
  background-color: var(--bg);
  color: var(--text);
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
.combobox-input:hover {
  border-color: var(--brand-300);
}
.combobox-input:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 2px rgba(var(--brand-500-rgb), 0.1);
}
.combobox-value {
  flex: 1;
  min-width: 0;
  text-align: left;
  font-weight: 600;
  color: var(--brand-600);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.combobox-value.placeholder {
  color: var(--text-muted);
  font-weight: 400;
}
.dark .combobox-value:not(.placeholder) {
  color: var(--text);
}
.combobox-arrow {
  color: var(--text-muted);
  transition: transform 0.2s ease;
  margin-left: 0.5rem;
}
.combobox-arrow.rotated {
  transform: rotate(180deg);
}
.combobox-option {
  padding: 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid var(--border-light);
  transition: background-color 0.15s ease;
  color: var(--text);
  border-left: none;
  border-right: none;
  border-top: none;
  border-radius: 0;
  width: 100%;
  text-align: left;
  font-family: inherit;
  font-size: inherit;
  background-color: transparent;
}
.combobox-option:last-child {
  border-bottom: none;
}
.combobox-option:hover,
.combobox-option.focused {
  background-color: rgba(107, 72, 196, 0.1);
}
.combobox-option .option-code {
  font-weight: 600;
  color: var(--brand-600);
  font-size: 0.875rem;
}
.dark .combobox-option {
  border-bottom-color: var(--border);
  color: var(--text);
}
.dark .combobox-option:hover,
.dark .combobox-option.focused {
  background-color: rgba(107, 72, 196, 0.15);
  color: var(--text);
}
.dark .combobox-option .option-code {
  color: var(--text);
}
.combobox-no-results {
  padding: 1rem;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.875rem;
  font-style: italic;
}
.coordinate-valid {
  border-color: #10b981 !important;
  background-color: #f0fdf4 !important;
  color: #065f46 !important;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1) !important;
}
.coordinate-invalid {
  border-color: #ef4444 !important;
  background-color: #fef2f2 !important;
  color: #991b1b !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}
.coordinate-error-message {
  display: flex;
  align-items: center;
  gap: clamp(0.375rem, 0.5vw, 0.5rem);
  margin-top: clamp(0.25rem, 0.3vw, 0.375rem);
  font-size: clamp(0.6875rem, 0.8vw, 0.75rem);
  color: #991b1b;
  background-color: #fef2f2;
  padding: clamp(0.375rem, 0.4vw, 0.5rem) clamp(0.5rem, 0.6vw, 0.625rem);
  border-radius: clamp(0.25rem, 0.3vw, 0.375rem);
  border: 1px solid #fecaca;
}
.coordinate-error-message i {
  color: #ef4444;
  font-size: clamp(0.75rem, 0.85vw, 0.875rem);
  flex-shrink: 0;
}
.coordinate-success-message {
  display: flex;
  align-items: center;
  gap: clamp(0.375rem, 0.5vw, 0.5rem);
  margin-top: clamp(0.25rem, 0.3vw, 0.375rem);
  font-size: clamp(0.6875rem, 0.8vw, 0.75rem);
  color: #065f46;
  background-color: #f0fdf4;
  padding: clamp(0.375rem, 0.4vw, 0.5rem) clamp(0.5rem, 0.6vw, 0.625rem);
  border-radius: clamp(0.25rem, 0.3vw, 0.375rem);
  border: 1px solid #86efac;
}
.coordinate-success-message i {
  color: #10b981;
  font-size: clamp(0.75rem, 0.85vw, 0.875rem);
  flex-shrink: 0;
}
.save-button-wrapper {
  position: relative;
  display: inline-block;
}
.save-button-wrapper .btn {
  width: 100%;
}
.save-button-wrapper.disabled {
  cursor: not-allowed;
}
.save-button-wrapper.disabled .btn[disabled] {
  pointer-events: none;
}
.save-button-wrapper.disabled::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  cursor: not-allowed;
}
.form-input[maxlength="150"],
.form-input[maxlength="200"] {
  min-height: 2.5rem;
}
.form-input[type=number],
.form-input[type=text][inputmode=decimal] {
  text-align: left;
}
.form-input[type=number]::-webkit-outer-spin-button,
.form-input[type=number]::-webkit-inner-spin-button,
.form-input[type=text][inputmode=decimal]::-webkit-outer-spin-button,
.form-input[type=text][inputmode=decimal]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.form-input[type=number][type=number],
.form-input[type=text][inputmode=decimal][type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}
@media (max-width: 768px) {
  .modal-content {
    min-width: auto;
    max-width: 95vw;
    margin: 0.5rem;
  }
  .form-row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .form-info-section .info-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }
  .combobox-option {
    padding: 0.5rem;
  }
}
@media (max-width: 480px) {
  .modal-content {
    margin: 0;
    border-radius: 0;
    max-height: 100vh;
  }
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 1rem;
  }
}
.pdl-detail-modal,
.census-detail-modal {
  max-width: min(90%, 1000px);
  width: 100%;
  max-height: min(85vh, 85dvh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.modal-header,
.modal-footer {
  min-height: 70px;
  flex-shrink: 0;
  position: relative;
}
.pdl-folio-header,
.census-folio-header {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdl-folio-badge,
.census-folio-badge {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  background: var(--brand-500);
  color: white;
  border-radius: 20px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}
.modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
}
.pdl-detail-content,
.census-detail-content {
  display: flex;
  gap: 2rem;
  min-height: min-content;
}
.graphic-panel {
  flex: 0 0 400px;
  min-width: 400px;
  height: 580px;
  max-height: 580px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--surface-card);
  border-radius: 12px;
  padding: 2rem;
  border: 2px solid var(--border);
  position: relative;
  gap: 1.5rem;
}
.hierarchy-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.pdl-info-header,
.census-info-header {
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1.5rem;
}
.pdl-folio,
.census-folio {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 0.5rem 0;
}
.pdl-description,
.census-description {
  font-size: 1rem;
  color: var(--muted);
  margin: 0;
}
.pdl-graphic-svg,
.census-graphic-svg {
  width: 100%;
  flex: 1;
  max-width: 400px;
  max-height: 600px;
  display: block;
  margin: 0 auto;
}
.info-badges {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0.5rem 0;
}
.info-badge {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--brand-500);
  padding: 1rem 1.5rem;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(139, 92, 246, 0.3);
  animation: slideIn 0.3s ease;
  min-width: 280px;
  max-width: 280px;
  min-height: 70px;
  max-height: 70px;
}
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.badge-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: white;
  font-size: 24px;
}
.badge-icon-img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}
.badge-content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.badge-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: white;
  letter-spacing: 0.5px;
}
.badge-subtitle {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}
.svg-base,
.svg-post,
.svg-arm,
.svg-luminaire,
.svg-arm-left,
.svg-luminaire-left,
.svg-shorting-cap,
.svg-shorting-cap-left {
  cursor: pointer;
  transition: all 0.3s ease;
  opacity: 0.4;
}
.svg-base.visible,
.svg-post.visible,
.svg-arm.visible,
.svg-luminaire.visible,
.svg-arm-left.visible,
.svg-luminaire-left.visible,
.svg-shorting-cap.visible,
.svg-shorting-cap-left.visible {
  opacity: 1;
}
.svg-base.active ellipse,
.svg-base.active rect {
  fill: url(#base-gradient);
  stroke: #8b5cf6;
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(139, 92, 246, 0.6));
}
.base-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-base.active .base-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.post-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-post.active .post-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.arm-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-arm.active .arm-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.luminaire-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-luminaire.active .luminaire-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.arm-left-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-arm-left.active .arm-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.svg-arm.active .arm-icon,
.svg-arm-left.active .arm-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.luminaire-left-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-luminaire-left.active .luminaire-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.svg-luminaire.active .luminaire-icon,
.svg-luminaire-left.active .luminaire-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.shorting-cap-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-shorting-cap.active .shorting-cap-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.shorting-cap-left-icon {
  filter: brightness(0) saturate(100%) invert(60%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
  transition: all 0.3s ease;
}
.svg-shorting-cap-left.active .shorting-cap-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.svg-shorting-cap.active .shorting-cap-icon,
.svg-shorting-cap-left.active .shorting-cap-left-icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(237deg) brightness(104%) contrast(97%) drop-shadow(0 0 12px rgba(139, 92, 246, 0.8));
}
.svg-post.active rect,
.svg-post.active line {
  fill: url(#post-gradient);
  stroke: #8b5cf6;
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(139, 92, 246, 0.6));
}
.svg-arm.active path,
.svg-arm.active rect,
.svg-arm.active circle {
  fill: url(#arm-gradient);
  stroke: #8b5cf6;
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(139, 92, 246, 0.6));
}
.svg-luminaire.active path,
.svg-luminaire.active rect {
  fill: #8b5cf6;
  stroke: #7c3aed;
  stroke-width: 3;
  filter: drop-shadow(0 0 10px rgba(139, 92, 246, 0.8));
}
.svg-luminaire.active .light-effect {
  opacity: 0.8 !important;
  animation: pulse-light 2s ease-in-out infinite;
}
@keyframes pulse-light {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.1);
  }
}
.svg-luminaire.active circle[fill="#fbbf24"] {
  fill: #fbbf24;
  opacity: 1 !important;
  filter: drop-shadow(0 0 4px rgba(251, 191, 36, 0.8));
}
.svg-base:hover:not(.active),
.svg-post:hover:not(.active),
.svg-arm:hover:not(.active),
.svg-luminaire:hover:not(.active),
.svg-shorting-cap:hover:not(.active),
.svg-shorting-cap-left:hover:not(.active) {
  opacity: 0.8;
  transform: scale(1.02);
}
.hierarchy-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(0.625rem, 0.75vw, 0.75rem);
  background: var(--brand-500);
  border-radius: 8px;
  color: white;
  min-height: clamp(50px, 5.5vw, 56px);
}
.element-title {
  font-size: clamp(1rem, 1.1vw, 1.125rem);
  font-weight: 600;
  margin: 0;
}
.page-navigation {
  display: flex;
  align-items: center;
  gap: clamp(0.25rem, 0.35vw, 0.35rem);
}
.nav-arrow-btn {
  width: clamp(22px, 2vw, 24px);
  height: clamp(22px, 2vw, 24px);
  border: 2px solid rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.1);
  color: white;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: clamp(0.625rem, 0.7vw, 0.6875rem);
}
.nav-arrow-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.2);
  border-color: white;
  transform: scale(1.05);
}
.nav-arrow-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.page-indicator {
  display: flex;
  align-items: center;
  gap: clamp(0.2rem, 0.3vw, 0.3rem);
  background: rgba(255, 255, 255, 0.2);
  padding: clamp(0.2rem, 0.3vw, 0.3rem) clamp(0.45rem, 0.65vw, 0.6875rem);
  border-radius: 16px;
  font-weight: 600;
  color: white;
  min-width: clamp(46px, 5vw, 52px);
  justify-content: center;
}
.current-page {
  font-size: clamp(0.75rem, 0.85vw, 0.8125rem);
  color: white;
}
.page-separator {
  font-size: clamp(0.5625rem, 0.65vw, 0.625rem);
  color: rgba(255, 255, 255, 0.7);
}
.total-pages {
  font-size: clamp(0.5625rem, 0.65vw, 0.625rem);
  color: rgba(255, 255, 255, 0.9);
}
.page-input {
  width: 60px;
  height: 36px;
  background: rgba(255, 255, 255, 0.9);
  border: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: 6px;
  padding: 0.25rem 0.5rem;
  color: var(--brand-500);
  font-weight: 600;
  text-align: center;
  font-size: 0.875rem;
  transition: all 0.2s ease;
}
.page-input:focus {
  outline: none;
  border-color: white;
  background: var(--surface-card);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
}
.page-input::-webkit-inner-spin-button,
.page-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.page-buttons {
  display: flex;
  gap: 0.5rem;
}
.page-btn {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: transparent;
  color: white;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.875rem;
  font-weight: 500;
}
.page-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
}
.page-btn.active {
  background: var(--surface-card);
  color: var(--brand-500);
  border-color: white;
}
.page-arrow {
  color: white;
  font-size: 1rem;
  margin-left: 0.5rem;
}
.hierarchy-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(0.25rem, 0.4vw, 0.375rem);
  padding: clamp(0.4rem, 0.5vw, 0.5rem) clamp(0.625rem, 0.9vw, 0.875rem);
  background: var(--surface-card);
  border-radius: 8px;
  border: 1px solid var(--border);
  max-height: min(280px, 50vh);
  overflow-y: auto;
  transition: max-height 0.3s ease;
}
.hierarchy-list.few-items {
  max-height: min(180px, 35vh);
}
.hierarchy-list.single-item {
  max-height: min(120px, 25vh);
}
.hierarchy-item {
  border: 2px solid var(--border);
  border-radius: 6px;
  padding: clamp(0.4rem, 0.6vw, 0.5rem);
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  background: var(--surface-card);
}
.hierarchy-item:hover {
  border-color: var(--brand-500);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(139, 92, 246, 0.15);
}
.hierarchy-item.active {
  border-color: var(--brand-500) !important;
  border-width: 1px;
  background: rgba(107, 72, 196, 0.15) !important;
  box-shadow: none !important;
  transform: none;
}
.hierarchy-item.active:hover {
  border-color: var(--brand-500) !important;
  background: rgba(107, 72, 196, 0.2) !important;
  box-shadow: none !important;
  transform: none;
}
.item-content {
  display: flex;
  align-items: center;
  gap: clamp(0.4rem, 0.6vw, 0.5rem);
}
.item-number {
  width: clamp(20px, 2vw, 22px);
  height: clamp(20px, 2vw, 22px);
  background: var(--brand-500);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: clamp(0.5625rem, 0.65vw, 0.625rem);
  flex-shrink: 0;
}
.item-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.item-name {
  font-size: clamp(0.8125rem, 0.9vw, 0.875rem);
  font-weight: 600;
  color: var(--text);
}
.item-counter {
  font-size: clamp(0.75rem, 0.9vw, 0.875rem);
  color: var(--muted);
  background: var(--surface);
  padding: clamp(0.25rem, 0.4vw, 0.375rem) clamp(0.5rem, 0.6vw, 0.625rem);
  border-radius: 6px;
  font-weight: 600;
  min-width: 3rem;
  text-align: center;
  white-space: nowrap;
}
.edit-button {
  width: clamp(22px, 2.2vw, 24px);
  height: clamp(22px, 2.2vw, 24px);
  background: var(--brand-500);
  color: white;
  border: none;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: clamp(0.625rem, 0.7vw, 0.6875rem);
  flex-shrink: 0;
  margin-left: clamp(0.25rem, 0.4vw, 0.375rem);
}
.edit-button i {
  font-size: 0.875rem;
}
.edit-button:hover {
  background: var(--brand-700);
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.4);
}
.edit-button:active {
  transform: scale(0.95);
}
.hierarchy-item:not(:first-child) {
  position: relative;
  margin-left: 1.25rem;
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.hierarchy-item:not(:first-child)::before {
  content: "";
  position: absolute;
  left: -0.75rem;
  top: 0px;
  width: 2px;
  height: 32px;
  background-color: var(--muted);
  z-index: 1;
}
.hierarchy-item:not(:first-child)::after {
  content: "";
  position: absolute;
  left: -0.75rem;
  top: 32px;
  width: 0.625rem;
  height: 2px;
  background-color: var(--muted);
  transform: translateY(-50%);
  z-index: 1;
}
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  text-align: center;
  color: var(--muted);
}
.empty-icon {
  width: 4rem;
  height: 4rem;
  object-fit: contain;
  margin-bottom: 1rem;
  opacity: 0.6;
}
.empty-text {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
}
.empty-subtext {
  font-size: 0.875rem;
  margin: 0;
  opacity: 0.8;
}
.element-details {
  padding: clamp(0.52rem, 0.64vw, 0.64rem);
  background: var(--surface);
  border-radius: 8px;
  border: 1px solid var(--border);
  min-height: 197px;
  max-height: 197px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: min-height 0.3s ease, max-height 0.3s ease;
}
.element-details.compensated {
  min-height: 297px;
  max-height: 297px;
}
.element-details.fully-compensated {
  min-height: 357px;
  max-height: 357px;
}
.details-title {
  font-size: clamp(0.696rem, 0.77vw, 0.75rem);
  font-weight: 600;
  color: var(--text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: clamp(0.257rem, 0.34vw, 0.343rem);
  padding-bottom: clamp(0.343rem, 0.43vw, 0.43rem);
  border-bottom: 2px solid var(--brand-500);
  flex-shrink: 0;
  position: sticky;
  top: 0;
  background: var(--surface);
  z-index: 1;
}
.details-content {
  color: var(--muted);
  display: flex;
  flex-direction: column;
  gap: clamp(0.343rem, 0.43vw, 0.43rem);
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1;
  min-height: 0;
  padding-top: clamp(0.343rem, 0.43vw, 0.43rem);
}
.detail-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: clamp(0.343rem, 0.43vw, 0.43rem);
  background: var(--surface-card);
  border-radius: 6px;
  border-left: 3px solid var(--brand-500);
  transition: all 0.2s ease;
}
.detail-row:hover {
  background: var(--surface);
  border-left-color: var(--brand-700);
  transform: translateX(4px);
}
.detail-label {
  font-weight: 600;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: clamp(0.3rem, 0.4vw, 0.4rem);
  font-size: clamp(0.6875rem, 0.8vw, 0.75rem);
  min-width: 120px;
}
.detail-label i {
  color: var(--brand-500);
  font-size: clamp(0.6875rem, 0.75vw, 0.75rem);
}
.detail-value {
  font-weight: 400;
  color: var(--muted);
  text-align: right;
  flex: 1;
  font-size: clamp(0.6875rem, 0.8vw, 0.75rem);
}
.status-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 0.875rem;
  font-weight: 600;
  background: var(--error);
  color: white;
}
.status-badge.status-active {
  background: var(--success);
}
.map-container {
  width: 100%;
  height: 100%;
  min-height: 400px;
  position: relative;
  background: #f8f9fa;
  border-radius: 0;
  overflow: hidden;
  transition: all 0.2s ease-in-out;
  overscroll-behavior: none;
  touch-action: pan-x pan-y;
}
.map-container.loading {
  opacity: 0.7;
}
.map-container.error {
  background: #fef2f2;
  border: 1px solid #fecaca;
}
.map-view {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
#map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  border-radius: 0;
  overscroll-behavior: none;
  touch-action: pan-x pan-y;
}
.loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(16, 24, 40, 0.75);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  animation: fadeIn 0.3s ease-in-out;
}
html.dark .loading-overlay {
  background: rgba(0, 0, 0, 0.85);
}
.drawing-mode-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background:
    linear-gradient(
      135deg,
      #10b981 0%,
      #059669 100%);
  border-radius: 0.375rem;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.25);
  animation: slideIn 0.3s ease-out;
  flex-shrink: 0;
}
.drawing-mode-indicator.vertex-editing-mode {
  background:
    linear-gradient(
      135deg,
      #2563eb 0%,
      #1d4ed8 100%);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
}
.drawing-mode-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: white;
  font-weight: 600;
  font-size: 12.5px;
  white-space: nowrap;
  line-height: 1;
}
.drawing-mode-badge i {
  font-size: 13px;
  animation: penPulse 1.5s ease-in-out infinite;
}
.exit-drawing-mode-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 0.25rem;
  color: white;
  cursor: pointer;
  font-size: 11px;
  transition: all 0.2s ease-in-out;
  flex-shrink: 0;
}
.exit-drawing-mode-btn:hover {
  background: rgba(255, 255, 255, 0.35);
  border-color: rgba(255, 255, 255, 0.5);
  transform: scale(1.05);
}
.exit-drawing-mode-btn:active {
  transform: scale(0.95);
}
.loading-content {
  text-align: center;
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.loading-animation {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.map-icon-loader {
  font-size: 4rem;
  color: white;
  animation: mapPulse 2s ease-in-out infinite;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.3));
}
.loading-dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.loading-dots span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: white;
  animation: dotBounce 1.4s ease-in-out infinite;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.loading-dots span:nth-child(1) {
  animation-delay: 0s;
}
.loading-dots span:nth-child(2) {
  animation-delay: 0.2s;
}
.loading-dots span:nth-child(3) {
  animation-delay: 0.4s;
}
.loading-text {
  font-size: 1.125rem;
  font-weight: 600;
  color: white;
  margin: 0;
  letter-spacing: 0.5px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  animation: textFade 2s ease-in-out infinite;
}
.error-overlay {
  position: absolute;
  inset: 0;
  background: rgba(254, 242, 242, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.error-content {
  text-align: center;
  color: #dc2626;
  max-width: 300px;
  padding: 2rem;
}
.error-content h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.error-content p {
  font-size: 14px;
  margin-bottom: 1.5rem;
  color: #7f1d1d;
}
.error-icon {
  font-size: 48px;
  margin-bottom: 1rem;
  opacity: 0.7;
}
.retry-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: #dc2626;
  color: white;
  border: none;
  border-radius: 0.375rem;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.retry-button:hover {
  background: #b91c1c;
  transform: translateY(-1px);
}
.retry-button i {
  font-size: 14px;
}
.map-actions {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.action-button {
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 0.375rem;
  color: var(--text);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
}
.action-button:hover {
  background: white;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.action-button i {
  font-size: 14px;
}
.leaflet-container {
  border-radius: 0 !important;
  overscroll-behavior: none !important;
  touch-action: pan-x pan-y !important;
}
.leaflet-map-pane,
.leaflet-tile-pane {
  border-radius: 0 !important;
}
.custom-marker {
  background: transparent !important;
  border: none !important;
}
.marker-cluster {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  animation: clusterFadeIn 0.4s ease-out, clusterScaleIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: center center;
}
.marker-cluster:hover {
  transform: scale(1.05);
  filter: brightness(1.1);
  transition: transform 0.2s ease-out, filter 0.2s ease-out;
}
.center-search-button {
  position: absolute;
  left: 10px;
  bottom: 20px;
  z-index: 35;
  background-color: var(--brand-900);
  opacity: 0.7;
  color: white;
  border: 2px solid var(--brand-900);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease-in-out;
  padding: 0;
  margin: 0;
}
.center-search-button:hover {
  opacity: 0.9;
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.center-search-button:active {
  opacity: 1;
  transform: scale(0.95);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}
.center-search-button .center-icon {
  width: 24px;
  height: 24px;
  display: block;
}
.halo-fixed-container {
  position: absolute;
  width: 60px;
  height: 60px;
  pointer-events: none;
  z-index: 499;
  display: none;
}
.halo-fixed-container .halo-pulse-animation {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(147, 51, 234, 0.4) 0%,
      rgba(147, 51, 234, 0.1) 100%);
  border: 2px solid rgba(147, 51, 234, 0.6);
  box-shadow: 0 0 20px rgba(147, 51, 234, 0.3);
  animation: haloPulse 2s ease-in-out infinite;
}
.halo-pulse-animation {
  animation: haloPulse 2s ease-in-out infinite !important;
}
.lamp-popup {
  font-family: inherit;
  font-size: 14px;
  line-height: 1.4;
}
.lamp-popup h4 {
  margin: 0 0 0.5rem 0;
  color: var(--brand-500);
  font-weight: 600;
}
.lamp-popup p {
  margin: 0.25rem 0;
  color: var(--text);
}
.lamp-popup strong {
  color: var(--brand-700);
}
.leaflet-popup-content .lamp-popup p {
  margin: 10px 0 !important;
}
.lamp-popup .popup-actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.lamp-popup .popup-btn {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: none;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
}
.lamp-popup .popup-btn i {
  font-size: 0.875rem;
}
.lamp-popup .popup-btn-primary {
  background-color: var(--brand-600);
  color: white;
}
.lamp-popup .popup-btn-primary:hover {
  background-color: var(--brand-700);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.lamp-popup .popup-btn-secondary {
  background-color: var(--surface-hover);
  color: var(--text);
  border: 1px solid var(--border);
}
.lamp-popup .popup-btn-secondary:hover {
  background-color: var(--surface-active);
  border-color: var(--brand-500);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.lamp-popup .popup-btn-tertiary {
  background-color: transparent;
  color: var(--text);
  border: 1px solid var(--border);
}
.lamp-popup .popup-btn-tertiary:hover {
  background-color: var(--surface-hover);
  border-color: var(--brand-500);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.lamp-popup .popup-btn:active {
  transform: translateY(0);
}
.leaflet-top.leaflet-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  top: 15% !important;
  transform: translateY(-15%) !important;
  left: 1.5rem !important;
  gap: 1.5rem;
}
.leaflet-left .leaflet-control {
  margin-left: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.leaflet-bar {
  box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}
.leaflet-bar a {
  background-color: var(--surface-card) !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
  border-radius: 0.75rem !important;
  width: 40px !important;
  height: 40px !important;
  line-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--text) !important;
  margin-bottom: 0.5rem !important;
  font-size: 1.1rem !important;
  transition: all 0.2s ease !important;
  border-bottom: 1px solid var(--border) !important;
}
.leaflet-bar a:last-child {
  margin-bottom: 0 !important;
}
.leaflet-bar a:hover {
  background-color: var(--brand-500) !important;
  color: white !important;
  border-color: var(--brand-500) !important;
  transform: scale(1.05) !important;
}
.leaflet-bar a.leaflet-disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  pointer-events: none;
}
.leaflet-bar a.leaflet-disabled:hover {
  background-color: var(--surface-card) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
  transform: none !important;
}
.leaflet-draw-toolbar a {
  background-image: none !important;
  text-decoration: none !important;
}
.leaflet-draw-toolbar-top,
.leaflet-draw-toolbar {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}
.leaflet-draw-draw-polygon::before {
  content: "\f5eb";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1rem;
  display: block;
}
.leaflet-draw-edit-edit::before {
  content: "\f044";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1rem;
  display: block;
}
.leaflet-draw-edit-remove::before {
  content: "\f1f8";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1rem;
  display: block;
}
.leaflet-control-zoom a + a {
  margin-bottom: 0 !important;
}
.leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.9) !important;
  color: var(--muted) !important;
  font-size: 11px !important;
  padding: 2px 6px !important;
  border-radius: 0.25rem !important;
}
.map-top-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: var(--surface-card);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  padding: 12px 20px;
  border-radius: 0;
}
.top-bar-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  max-width: 100%;
}
.map-info-section {
  display: flex;
  gap: 20px;
  align-items: center;
}
.map-info-section .info-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text);
  font-weight: 500;
}
.map-info-section .info-item i {
  color: var(--brand-500);
  font-size: 16px;
}
.map-legend-section {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.map-legend-section .legend-header-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.map-legend-section h4 {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  white-space: nowrap;
}
.map-legend-section .legend-mode-dropdown {
  position: relative;
}
.map-legend-section .legend-mode-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.map-legend-section .legend-mode-btn:hover {
  background: var(--surface-hover);
}
.map-legend-section .legend-mode-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 190px;
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
  padding: 6px;
  z-index: 1200;
}
.map-legend-section .legend-mode-option {
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.map-legend-section .legend-mode-option:hover {
  background: var(--surface-hover);
}
.map-legend-section .legend-mode-option.active {
  background: var(--brand-50);
  border-color: var(--brand-500);
  color: var(--brand-700);
  font-weight: 600;
}
.map-legend-section .legend-items {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.map-legend-section .legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text);
  background: none;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 6px 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.map-legend-section .legend-item:hover {
  background-color: var(--surface-hover);
  border-color: var(--border);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.map-legend-section .legend-item.active {
  background-color: var(--brand-50);
  border-color: var(--brand-500);
  color: var(--brand-700);
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.map-legend-section .legend-item.active .legend-color {
  border-color: var(--brand-500);
  box-shadow: 0 0 0 2px var(--brand-100);
}
.map-legend-section .legend-color {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.map-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 100;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.map-watermark.visible {
  opacity: 1;
}
.watermark-text {
  font-size: 3rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.85);
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.65),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 0 2px rgba(255, 255, 255, 0.35);
  margin: 0;
  padding: 0;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
html.dark .watermark-text {
  color: rgba(0, 0, 0, 0.85);
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.65),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 0 2px rgba(255, 255, 255, 0.35);
}
.test-watermark-button {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1001;
  background: rgba(59, 130, 246, 0.9);
  color: white;
  border: none;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: background-color 0.2s;
}
.test-watermark-button:hover {
  background: rgb(59, 130, 246);
}
.test-watermark-button i {
  font-size: 14px;
}
.geofence-modal-overlay {
  z-index: 99999 !important;
  align-items: flex-start !important;
  padding-top: 9vh !important;
  padding-bottom: 5vh !important;
}
.geofence-modal-overlay .modal-content {
  z-index: 99999 !important;
  position: relative;
  margin-top: 3.25rem;
  max-height: 70vh;
}
.geofence-modal-content {
  max-width: 500px;
  min-width: 400px;
}
.geofence-modal-content .form-info {
  background: var(--surface);
  padding: 1rem;
  border-radius: 0.5rem;
  margin-bottom: 1.25rem;
  border: 1px solid var(--border);
}
.geofence-modal-content .form-info p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text);
}
.geofence-modal-content .form-info strong {
  color: var(--brand-500);
  font-weight: 600;
}
.geofence-modal-content .form-textarea {
  resize: vertical;
  min-height: 80px;
  font-family: inherit;
}
.geofence-modal-content .text-error {
  color: var(--error);
  font-weight: 600;
}
.geofence-modal-content .text-muted {
  color: var(--text-muted);
  font-weight: normal;
}
.snap-marker {
  z-index: 10000 !important;
  pointer-events: none !important;
  animation: snapPulse 1s ease-in-out infinite;
}
.vertices-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.vertices-row .vertices-value {
  margin-left: 0.5rem;
}
.vertices-row .vertices-edit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
}
.vertices-row .vertices-edit-btn i {
  margin: 0;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes penPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1) rotate(-5deg);
  }
}
@keyframes mapPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}
@keyframes dotBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes textFade {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
@keyframes clusterFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes clusterScaleIn {
  from {
    transform: scale(0.8);
  }
  to {
    transform: scale(1);
  }
}
@keyframes haloPulse {
  0%, 100% {
    r: 15px;
    opacity: 0.8;
  }
  50% {
    r: 25px;
    opacity: 0.4;
  }
}
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes snapPulse {
  0%, 100% {
    opacity: 0.8;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}
@media (max-width: 1024px) {
  .top-bar-content {
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
  }
  .map-info-section {
    gap: 16px;
  }
  .map-legend-section {
    gap: 12px;
  }
  .map-legend-section .legend-items {
    gap: 12px;
  }
}
@media (max-width: 768px) {
  .map-top-bar {
    padding: 10px 16px;
  }
  .map-controls {
    top: 0.5rem;
    right: 0.5rem;
  }
  .action-button {
    width: 32px;
    height: 32px;
  }
  .action-button i {
    font-size: 12px;
  }
  .map-container .leaflet-container .leaflet-control-zoom {
    top: 100px !important;
    right: 8px !important;
  }
  .map-info-section {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }
  .map-info-section .info-item {
    font-size: 11px;
  }
  .map-legend-section {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }
  .map-legend-section .legend-items {
    flex-wrap: wrap;
    gap: 8px;
  }
  .map-legend-section .legend-item {
    font-size: 12px;
  }
  .map-legend-section h4 {
    font-size: 13px;
  }
  .watermark-text {
    font-size: 20px;
  }
  .lamp-popup p {
    margin: 6px 0 !important;
  }
  .layers-panel {
    width: calc(100% - 40px);
    right: 20px;
    left: 20px;
    max-width: 320px;
    margin: 0 auto;
  }
  .center-search-button {
    width: 36px;
    height: 36px;
  }
  .center-search-button .center-icon {
    width: 20px;
    height: 20px;
  }
}
@media (max-width: 480px) {
  .map-container .leaflet-container .leaflet-control-zoom {
    top: 140px !important;
    right: 6px !important;
  }
  .map-top-bar {
    padding: 8px 12px;
  }
  .map-legend-section {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .map-legend-section .legend-items {
    flex-direction: row;
    align-items: flex-start;
    gap: 6px;
  }
  .map-legend-section .legend-items span {
    display: none;
  }
  .watermark-text {
    font-size: 20px;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.h-full {
  height: 100%;
}
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.absolute-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.m-0 {
  margin: 0;
}
.m-1 {
  margin: 0.25rem;
}
.m-2 {
  margin: 0.5rem;
}
.m-4 {
  margin: 1rem;
}
.m-6 {
  margin: 1.5rem;
}
.mt-0 {
  margin-top: 0;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mb-0 {
  margin-bottom: 0;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.ml-0 {
  margin-left: 0;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-4 {
  margin-left: 1rem;
}
.mr-0 {
  margin-right: 0;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-4 {
  margin-right: 1rem;
}
.p-0 {
  padding: 0;
}
.p-1 {
  padding: 0.25rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-4 {
  padding: 1rem;
}
.p-6 {
  padding: 1.5rem;
}
.pt-0 {
  padding-top: 0;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pb-0 {
  padding-bottom: 0;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pl-0 {
  padding-left: 0;
}
.pl-1 {
  padding-left: 0.25rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pr-0 {
  padding-right: 0;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-4 {
  padding-right: 1rem;
}
.text-xs {
  font-size: 0.75rem;
}
.text-sm {
  font-size: 0.875rem;
}
.text-base {
  font-size: 1rem;
}
.text-lg {
  font-size: 1.125rem;
}
.text-xl {
  font-size: 1.25rem;
}
.text-2xl {
  font-size: 1.5rem;
}
.font-normal {
  font-weight: 400;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.font-bold {
  font-weight: 700;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.inline-flex {
  display: inline-flex;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-60 {
  z-index: 60;
}
.z-70 {
  z-index: 70;
}
.z-80 {
  z-index: 80;
}
.z-90 {
  z-index: 90;
}
.z-100 {
  z-index: 100;
}
.border {
  border: 1px solid var(--border);
}
.border-0 {
  border: 0;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-sm {
  border-radius: 0.125rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-full {
  border-radius: 9999px;
}
.shadow-sm {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.shadow {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.shadow-md {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.shadow-lg {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.shadow-2xl {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.cursor-auto {
  cursor: auto;
}
.cursor-default {
  cursor: default;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-wait {
  cursor: wait;
}
.cursor-text {
  cursor: text;
}
.cursor-move {
  cursor: move;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-visible {
  overflow: visible;
}
.overflow-scroll {
  overflow: scroll;
}
.transition-none {
  transition-property: none;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition {
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.scale-0 {
  transform: scale(0);
}
.scale-50 {
  transform: scale(0.5);
}
.scale-75 {
  transform: scale(0.75);
}
.scale-90 {
  transform: scale(0.9);
}
.scale-95 {
  transform: scale(0.95);
}
.scale-100 {
  transform: scale(1);
}
.scale-105 {
  transform: scale(1.05);
}
.scale-110 {
  transform: scale(1.1);
}
.scale-125 {
  transform: scale(1.25);
}
.scale-150 {
  transform: scale(1.5);
}
.opacity-0 {
  opacity: 0;
}
.opacity-25 {
  opacity: 0.25;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-75 {
  opacity: 0.75;
}
.opacity-100 {
  opacity: 1;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.select-none {
  -webkit-user-select: none;
  user-select: none;
}
.select-text {
  -webkit-user-select: text;
  user-select: text;
}
.select-all {
  -webkit-user-select: all;
  user-select: all;
}
.select-auto {
  -webkit-user-select: auto;
  user-select: auto;
}
*,
::before,
::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
 */
*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}
::before,
::after {
  --tw-content: "";
}
html,
:host {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  font-family:
    ui-sans-serif,
    system-ui,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol",
    "Noto Color Emoji";
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
}
body {
  margin: 0;
  line-height: inherit;
}
hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}
abbr:where([title]) {
  text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
a {
  color: inherit;
  text-decoration: inherit;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    "Liberation Mono",
    "Courier New",
    monospace;
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-size: 1em;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
button,
select {
  text-transform: none;
}
button,
input:where([type=button]),
input:where([type=reset]),
input:where([type=submit]) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
:-moz-focusring {
  outline: auto;
}
:-moz-ui-invalid {
  box-shadow: none;
}
progress {
  vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
summary {
  display: list-item;
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
  padding: 0;
}
legend {
  padding: 0;
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
dialog {
  padding: 0;
}
textarea {
  resize: vertical;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}
button,
[role=button] {
  cursor: pointer;
}
:disabled {
  cursor: default;
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}
img,
video {
  max-width: 100%;
  height: auto;
}
[hidden]:where(:not([hidden=until-found])) {
  display: none;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-right-1 {
  right: -0.25rem;
}
.-right-10 {
  right: -2.5rem;
}
.-top-1 {
  top: -0.25rem;
}
.-top-10 {
  top: -2.5rem;
}
.bottom-0 {
  bottom: 0px;
}
.left-0 {
  left: 0px;
}
.left-1 {
  left: 0.25rem;
}
.left-1\/2 {
  left: 50%;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.right-0 {
  right: 0px;
}
.right-4 {
  right: 1rem;
}
.right-\[20px\] {
  right: 20px;
}
.top-0 {
  top: 0px;
}
.top-1 {
  top: 0.25rem;
}
.top-1\/2 {
  top: 50%;
}
.top-4 {
  top: 1rem;
}
.top-\[80px\] {
  top: 80px;
}
.top-full {
  top: 100%;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-\[1000\] {
  z-index: 1000;
}
.z-\[100\] {
  z-index: 100;
}
.z-\[1080\] {
  z-index: 1080;
}
.z-\[1090\] {
  z-index: 1090;
}
.z-\[10\] {
  z-index: 10;
}
.z-\[1100\] {
  z-index: 1100;
}
.z-\[11\] {
  z-index: 11;
}
.z-\[2000\] {
  z-index: 2000;
}
.z-\[200\] {
  z-index: 200;
}
.z-\[500\] {
  z-index: 500;
}
.z-\[8\] {
  z-index: 8;
}
.z-\[9\] {
  z-index: 9;
}
.col-span-1 {
  grid-column: span 1 / span 1;
}
.col-span-12 {
  grid-column: span 12 / span 12;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-full {
  grid-column: 1 / -1;
}
.m-0 {
  margin: 0px;
}
.m-6 {
  margin: 1.5rem;
}
.m-auto {
  margin: auto;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-10 {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}
.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-2\.5 {
  margin-bottom: 0.625rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-4 {
  margin-right: 1rem;
}
.ms-auto {
  margin-inline-start: auto;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.table-row {
  display: table-row;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-20 {
  height: 5rem;
}
.h-24 {
  height: 6rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\/4 {
  height: 75%;
}
.h-32 {
  height: 8rem;
}
.h-4 {
  height: 1rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[12px\] {
  height: 12px;
}
.h-\[14px\] {
  height: 14px;
}
.h-\[16px\] {
  height: 16px;
}
.h-\[18px\] {
  height: 18px;
}
.h-\[1px\] {
  height: 1px;
}
.h-\[24px\] {
  height: 24px;
}
.h-\[260px\] {
  height: 260px;
}
.h-\[32px\] {
  height: 32px;
}
.h-\[46px\] {
  height: 46px;
}
.h-\[55px\] {
  height: 55px;
}
.h-\[72vh\] {
  height: 72vh;
}
.h-\[85vh\] {
  height: 85vh;
}
.h-\[calc\(100vh-64px\)\] {
  height: calc(100vh - 64px);
}
.h-\[clamp\(20px\,2vw\,22px\)\] {
  height: clamp(20px, 2vw, 22px);
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-20 {
  max-height: 5rem;
}
.max-h-32 {
  max-height: 8rem;
}
.max-h-60 {
  max-height: 15rem;
}
.max-h-\[320px\] {
  max-height: 320px;
}
.max-h-\[480px\] {
  max-height: 480px;
}
.max-h-\[72vh\] {
  max-height: 72vh;
}
.max-h-\[75vh\] {
  max-height: 75vh;
}
.max-h-\[83vh\] {
  max-height: 83vh;
}
.max-h-\[85vh\] {
  max-height: 85vh;
}
.max-h-\[90vh\] {
  max-height: 90vh;
}
.max-h-\[calc\(100vh-120px\)\] {
  max-height: calc(100vh - 120px);
}
.max-h-full {
  max-height: 100%;
}
.min-h-0 {
  min-height: 0px;
}
.min-h-\[100px\] {
  min-height: 100px;
}
.min-h-\[110px\] {
  min-height: 110px;
}
.min-h-\[16px\] {
  min-height: 16px;
}
.min-h-\[200px\] {
  min-height: 200px;
}
.min-h-\[32px\] {
  min-height: 32px;
}
.min-h-\[350px\] {
  min-height: 350px;
}
.min-h-\[400px\] {
  min-height: 400px;
}
.min-h-\[44px\] {
  min-height: 44px;
}
.min-h-\[48px\] {
  min-height: 48px;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-1\/2 {
  width: 50%;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-16 {
  width: 4rem;
}
.w-2 {
  width: 0.5rem;
}
.w-20 {
  width: 5rem;
}
.w-24 {
  width: 6rem;
}
.w-3 {
  width: 0.75rem;
}
.w-32 {
  width: 8rem;
}
.w-4 {
  width: 1rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-7 {
  width: 1.75rem;
}
.w-8 {
  width: 2rem;
}
.w-9 {
  width: 2.25rem;
}
.w-\[10\%\] {
  width: 10%;
}
.w-\[11\%\] {
  width: 11%;
}
.w-\[12\%\] {
  width: 12%;
}
.w-\[14px\] {
  width: 14px;
}
.w-\[15\%\] {
  width: 15%;
}
.w-\[16px\] {
  width: 16px;
}
.w-\[18px\] {
  width: 18px;
}
.w-\[20\%\] {
  width: 20%;
}
.w-\[240px\] {
  width: 240px;
}
.w-\[24px\] {
  width: 24px;
}
.w-\[25\%\] {
  width: 25%;
}
.w-\[260px\] {
  width: 260px;
}
.w-\[280px\] {
  width: 280px;
}
.w-\[30\%\] {
  width: 30%;
}
.w-\[32px\] {
  width: 32px;
}
.w-\[35\%\] {
  width: 35%;
}
.w-\[45\%\] {
  width: 45%;
}
.w-\[46px\] {
  width: 46px;
}
.w-\[70\%\] {
  width: 70%;
}
.w-\[70px\] {
  width: 70px;
}
.w-\[8\%\] {
  width: 8%;
}
.w-\[90vw\] {
  width: 90vw;
}
.w-\[clamp\(20px\,2vw\,22px\)\] {
  width: clamp(20px, 2vw, 22px);
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-\[1000px\] {
  min-width: 1000px;
}
.min-w-\[1200px\] {
  min-width: 1200px;
}
.min-w-\[12px\] {
  min-width: 12px;
}
.min-w-\[140px\] {
  min-width: 140px;
}
.min-w-\[16px\] {
  min-width: 16px;
}
.min-w-\[2\.75rem\] {
  min-width: 2.75rem;
}
.min-w-\[20px\] {
  min-width: 20px;
}
.min-w-\[300px\] {
  min-width: 300px;
}
.min-w-\[32px\] {
  min-width: 32px;
}
.min-w-\[3rem\] {
  min-width: 3rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.max-w-\[1400px\] {
  max-width: 1400px;
}
.max-w-\[150px\] {
  max-width: 150px;
}
.max-w-\[200px\] {
  max-width: 200px;
}
.max-w-\[280px\] {
  max-width: 280px;
}
.max-w-\[326px\] {
  max-width: 326px;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-none {
  flex: none;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.table-fixed {
  table-layout: fixed;
}
.border-collapse {
  border-collapse: collapse;
}
.border-separate {
  border-collapse: separate;
}
.border-spacing-0 {
  --tw-border-spacing-x: 0px;
  --tw-border-spacing-y: 0px;
  border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
}
.origin-top-right {
  transform-origin: top right;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-full {
  --tw-translate-y: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-3 {
  --tw-rotate: 3deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-95 {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-\[0\.95\] {
  --tw-scale-x: 0.95;
  --tw-scale-y: 0.95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-\[1\.02\] {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\!transform-none {
  transform: none !important;
}
@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}
.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}
@keyframes pulse {
  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.resize-none {
  resize: none;
}
.resize {
  resize: both;
}
.appearance-none {
  appearance: none;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-rows-\[0fr\/1fr\] {
  grid-template-rows: 0fr/1fr;
}
.grid-rows-\[0fr\] {
  grid-template-rows: 0fr;
}
.grid-rows-\[1fr\] {
  grid-template-rows: 1fr;
}
.flex-row {
  flex-direction: row;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-0 {
  gap: 0px;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-\[clamp\(0\.2rem\,0\.3vw\,0\.3rem\)\] {
  gap: clamp(0.2rem, 0.3vw, 0.3rem);
}
.gap-\[clamp\(0\.4rem\,0\.6vw\,0\.5rem\)\] {
  gap: clamp(0.4rem, 0.6vw, 0.5rem);
}
.gap-x-10 {
  column-gap: 2.5rem;
}
.gap-x-3\.5 {
  column-gap: 0.875rem;
}
.gap-x-8 {
  column-gap: 2rem;
}
.gap-y-2\.5 {
  row-gap: 0.625rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-4 {
  row-gap: 1rem;
}
.gap-y-6 {
  row-gap: 1.5rem;
}
.gap-y-7 {
  row-gap: 1.75rem;
}
.-space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-\[\#94a3b8\]\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(148 163 184 / 0.1);
}
.divide-\[color\:var\(--border\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--border);
}
.divide-white\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.1);
}
.self-stretch {
  align-self: stretch;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overflow-y-hidden {
  overflow-y: hidden;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-ellipsis {
  text-overflow: ellipsis;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-\[1\.5rem\] {
  border-radius: 1.5rem;
}
.rounded-\[1\.8rem\] {
  border-radius: 1.8rem;
}
.rounded-\[2\.5rem\] {
  border-radius: 2.5rem;
}
.rounded-\[2rem\] {
  border-radius: 2rem;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-b-\[2\.5rem\] {
  border-bottom-right-radius: 2.5rem;
  border-bottom-left-radius: 2.5rem;
}
.rounded-t-lg {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-b-2 {
  border-bottom-width: 2px;
}
.border-l-4 {
  border-left-width: 4px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-0 {
  border-top-width: 0px;
}
.border-solid {
  border-style: solid;
}
.border-dashed {
  border-style: dashed;
}
.border-none {
  border-style: none;
}
.\!border-brand-500 {
  border-color: var(--brand-500) !important;
}
.border-\[\#94a3b8\]\/10 {
  border-color: rgb(148 163 184 / 0.1);
}
.border-\[\#94a3b8\]\/20 {
  border-color: rgb(148 163 184 / 0.2);
}
.border-\[\#94a3b8\]\/30 {
  border-color: rgb(148 163 184 / 0.3);
}
.border-\[\#E5E7EB\] {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-\[color\:var\(--border\)\] {
  border-color: var(--border);
}
.border-\[color\:var\(--surface-card\)\] {
  border-color: var(--surface-card);
}
.border-\[var\(--border\)\] {
  border-color: var(--border);
}
.border-black\/5 {
  border-color: rgb(0 0 0 / 0.05);
}
.border-border {
  border-color: var(--border);
}
.border-brand-500 {
  border-color: var(--brand-500);
}
.border-brand-600 {
  border-color: var(--brand-600);
}
.border-error {
  border-color: var(--error);
}
.border-gray-100 {
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
}
.border-green-500\/20 {
  border-color: rgb(34 197 94 / 0.2);
}
.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.border-red-500\/20 {
  border-color: rgb(239 68 68 / 0.2);
}
.border-red-500\/30 {
  border-color: rgb(239 68 68 / 0.3);
}
.border-rose-300\/60 {
  border-color: rgb(253 164 175 / 0.6);
}
.border-transparent {
  border-color: transparent;
}
.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/30 {
  border-color: rgb(255 255 255 / 0.3);
}
.border-white\/5 {
  border-color: rgb(255 255 255 / 0.05);
}
.border-l-brand-500 {
  border-left-color: var(--brand-500);
}
.border-t-brand-500 {
  border-top-color: var(--brand-500);
}
.border-t-white {
  --tw-border-opacity: 1;
  border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.\!bg-\[\#312e81\]\/60 {
  background-color: rgb(49 46 129 / 0.6) !important;
}
.bg-\[\#0b1020\] {
  --tw-bg-opacity: 1;
  background-color: rgb(11 16 32 / var(--tw-bg-opacity, 1));
}
.bg-\[\#10b981\] {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.bg-\[\#130739\] {
  --tw-bg-opacity: 1;
  background-color: rgb(19 7 57 / var(--tw-bg-opacity, 1));
}
.bg-\[\#1e1b32\] {
  --tw-bg-opacity: 1;
  background-color: rgb(30 27 50 / var(--tw-bg-opacity, 1));
}
.bg-\[\#20134b\] {
  --tw-bg-opacity: 1;
  background-color: rgb(32 19 75 / var(--tw-bg-opacity, 1));
}
.bg-\[\#20134b\]\/95 {
  background-color: rgb(32 19 75 / 0.95);
}
.bg-\[\#2d1b69\] {
  --tw-bg-opacity: 1;
  background-color: rgb(45 27 105 / var(--tw-bg-opacity, 1));
}
.bg-\[\#4F46E5\] {
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}
.bg-\[\#4F46E5\]\/10 {
  background-color: rgb(79 70 229 / 0.1);
}
.bg-\[\#94a3b8\]\/10 {
  background-color: rgb(148 163 184 / 0.1);
}
.bg-\[\#94a3b8\]\/20 {
  background-color: rgb(148 163 184 / 0.2);
}
.bg-\[\#94a3b8\]\/30 {
  background-color: rgb(148 163 184 / 0.3);
}
.bg-\[\#ef4444\] {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-\[\#ffffff\]\/5 {
  background-color: rgb(255 255 255 / 0.05);
}
.bg-\[color\:var\(--surface\)\] {
  background-color: var(--surface);
}
.bg-\[color\:var\(--surface-card\)\] {
  background-color: var(--surface-card);
}
.bg-\[var\(--surface\)\] {
  background-color: var(--surface);
}
.bg-\[var\(--surface-card\)\] {
  background-color: var(--surface-card);
}
.bg-\[var\(--surface-section\)\] {
  background-color: var(--surface-section);
}
.bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}
.bg-amber-400\/70 {
  background-color: rgb(251 191 36 / 0.7);
}
.bg-amber-500\/15 {
  background-color: rgb(245 158 11 / 0.15);
}
.bg-black\/5 {
  background-color: rgb(0 0 0 / 0.05);
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-brand-400 {
  background-color: var(--brand-400);
}
.bg-brand-500 {
  background-color: var(--brand-500);
}
.bg-brand-600 {
  background-color: var(--brand-600);
}
.bg-current {
  background-color: currentColor;
}
.bg-emerald-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));
}
.bg-emerald-400\/70 {
  background-color: rgb(52 211 153 / 0.7);
}
.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.bg-emerald-500\/15 {
  background-color: rgb(16 185 129 / 0.15);
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
}
.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.bg-green-500\/10 {
  background-color: rgb(34 197 94 / 0.1);
}
.bg-green-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}
.bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}
.bg-orange-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
}
.bg-purple-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-red-500\/10 {
  background-color: rgb(239 68 68 / 0.1);
}
.bg-red-500\/5 {
  background-color: rgb(239 68 68 / 0.05);
}
.bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.bg-rose-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 113 133 / var(--tw-bg-opacity, 1));
}
.bg-rose-400\/70 {
  background-color: rgb(251 113 133 / 0.7);
}
.bg-rose-500\/10 {
  background-color: rgb(244 63 94 / 0.1);
}
.bg-rose-500\/15 {
  background-color: rgb(244 63 94 / 0.15);
}
.bg-sky-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(56 189 248 / var(--tw-bg-opacity, 1));
}
.bg-sky-400\/70 {
  background-color: rgb(56 189 248 / 0.7);
}
.bg-sky-500\/15 {
  background-color: rgb(14 165 233 / 0.15);
}
.bg-sky-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
}
.bg-slate-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
.bg-slate-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.bg-success {
  background-color: var(--success);
}
.bg-surface {
  background-color: var(--surface);
}
.bg-surface-card {
  background-color: var(--surface-card);
}
.bg-transparent {
  background-color: transparent;
}
.bg-violet-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
.bg-violet-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(167 139 250 / var(--tw-bg-opacity, 1));
}
.bg-violet-400\/70 {
  background-color: rgb(167 139 250 / 0.7);
}
.bg-violet-500\/15 {
  background-color: rgb(139 92 246 / 0.15);
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
.bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/30 {
  background-color: rgb(255 255 255 / 0.3);
}
.bg-white\/40 {
  background-color: rgb(255 255 255 / 0.4);
}
.bg-white\/5 {
  background-color: rgb(255 255 255 / 0.05);
}
.bg-white\/50 {
  background-color: rgb(255 255 255 / 0.5);
}
.bg-white\/80 {
  background-color: rgb(255 255 255 / 0.8);
}
.bg-white\/90 {
  background-color: rgb(255 255 255 / 0.9);
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.to-surface {
  --tw-gradient-to: var(--surface) var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.object-contain {
  object-fit: contain;
}
.p-0 {
  padding: 0px;
}
.p-0\.5 {
  padding: 0.125rem;
}
.p-1 {
  padding: 0.25rem;
}
.p-1\.5 {
  padding: 0.375rem;
}
.p-12 {
  padding: 3rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-2\.5 {
  padding: 0.625rem;
}
.p-20 {
  padding: 5rem;
}
.p-24 {
  padding: 6rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-3\.5 {
  padding: 0.875rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-8 {
  padding: 2rem;
}
.p-\[clamp\(0\.4rem\,0\.6vw\,0\.5rem\)\] {
  padding: clamp(0.4rem, 0.6vw, 0.5rem);
}
.p-\[clamp\(0\.4rem\,0\.6vw\,0\.6rem\)\] {
  padding: clamp(0.4rem, 0.6vw, 0.6rem);
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-\[clamp\(0\.5rem\,0\.6vw\,0\.625rem\)\] {
  padding-left: clamp(0.5rem, 0.6vw, 0.625rem);
  padding-right: clamp(0.5rem, 0.6vw, 0.625rem);
}
.px-\[clamp\(0\.5rem\,0\.7vw\,0\.7rem\)\] {
  padding-left: clamp(0.5rem, 0.7vw, 0.7rem);
  padding-right: clamp(0.5rem, 0.7vw, 0.7rem);
}
.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-32 {
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-\[clamp\(0\.25rem\,0\.4vw\,0\.375rem\)\] {
  padding-top: clamp(0.25rem, 0.4vw, 0.375rem);
  padding-bottom: clamp(0.25rem, 0.4vw, 0.375rem);
}
.py-\[clamp\(0\.4rem\,0\.5vw\,0\.5rem\)\] {
  padding-top: clamp(0.4rem, 0.5vw, 0.5rem);
  padding-bottom: clamp(0.4rem, 0.5vw, 0.5rem);
}
.pb-0\.5 {
  padding-bottom: 0.125rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-0 {
  padding-left: 0px;
}
.pl-1 {
  padding-left: 0.25rem;
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-11 {
  padding-left: 2.75rem;
}
.pl-12 {
  padding-left: 3rem;
}
.pl-14 {
  padding-left: 3.5rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pl-9 {
  padding-left: 2.25rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-10 {
  padding-right: 2.5rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pr-\[9px\] {
  padding-right: 9px;
}
.pt-0 {
  padding-top: 0px;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.font-mono {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    "Liberation Mono",
    "Courier New",
    monospace;
}
.font-nunito {
  font-family:
    Nunito,
    Ubuntu,
    sans-serif;
}
.font-sans {
  font-family:
    ui-sans-serif,
    system-ui,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol",
    "Noto Color Emoji";
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-\[10\.2px\] {
  font-size: 10.2px;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11\.9px\] {
  font-size: 11.9px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12\.5px\] {
  font-size: 12.5px;
}
.text-\[12\.75px\] {
  font-size: 12.75px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[14px\] {
  font-size: 14px;
}
.text-\[15\.3px\] {
  font-size: 15.3px;
}
.text-\[15px\] {
  font-size: 15px;
}
.text-\[22px\] {
  font-size: 22px;
}
.text-\[24px\] {
  font-size: 24px;
}
.text-\[28px\] {
  font-size: 28px;
}
.text-\[8px\] {
  font-size: 8px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-\[clamp\(0\.5625rem\,0\.65vw\,0\.625rem\)\] {
  font-size: clamp(0.5625rem, 0.65vw, 0.625rem);
}
.text-\[clamp\(0\.75rem\,0\.9vw\,0\.875rem\)\] {
  font-size: clamp(0.75rem, 0.9vw, 0.875rem);
}
.text-\[clamp\(0\.8125rem\,0\.9vw\,0\.875rem\)\] {
  font-size: clamp(0.8125rem, 0.9vw, 0.875rem);
}
.text-\[clamp\(0\.9rem\,1vw\,1rem\)\] {
  font-size: clamp(0.9rem, 1vw, 1rem);
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-black {
  font-weight: 900;
}
.font-bold {
  font-weight: 700;
}
.font-extrabold {
  font-weight: 800;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.italic {
  font-style: italic;
}
.leading-\[1\.4\] {
  line-height: 1.4;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[0\.05em\] {
  letter-spacing: 0.05em;
}
.tracking-\[0\.15em\] {
  letter-spacing: 0.15em;
}
.tracking-\[0\.1em\] {
  letter-spacing: 0.1em;
}
.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}
.tracking-\[0\.3em\] {
  letter-spacing: 0.3em;
}
.tracking-\[0\.4em\] {
  letter-spacing: 0.4em;
}
.tracking-\[0\.5em\] {
  letter-spacing: 0.5em;
}
.tracking-\[0\.5px\] {
  letter-spacing: 0.5px;
}
.tracking-normal {
  letter-spacing: 0em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-tighter {
  letter-spacing: -0.05em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-\[\#111827\] {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-\[\#4F46E5\] {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}
.text-\[--text\] {
  color: var(--text);
}
.text-\[color\:var\(--muted\)\] {
  color: var(--muted);
}
.text-\[color\:var\(--text\)\] {
  color: var(--text);
}
.text-\[var\(--brand-500\)\] {
  color: var(--brand-500);
}
.text-\[var\(--text\)\] {
  color: var(--text);
}
.text-amber-400 {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-brand-400 {
  color: var(--brand-400);
}
.text-brand-500 {
  color: var(--brand-500);
}
.text-brand-600 {
  color: var(--brand-600);
}
.text-emerald-400 {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}
.text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}
.text-error {
  color: var(--error);
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}
.text-muted {
  color: var(--muted);
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-rose-400 {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}
.text-rose-500 {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}
.text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}
.text-sky-400 {
  --tw-text-opacity: 1;
  color: rgb(56 189 248 / var(--tw-text-opacity, 1));
}
.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.text-success {
  color: var(--success);
}
.text-text {
  color: var(--text);
}
.text-violet-400 {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}
.text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}
.text-white\/50 {
  color: rgb(255 255 255 / 0.5);
}
.text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}
.text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}
.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
.text-white\/95 {
  color: rgb(255 255 255 / 0.95);
}
.accent-brand-500 {
  accent-color: var(--brand-500);
}
.opacity-0 {
  opacity: 0;
}
.opacity-10 {
  opacity: 0.1;
}
.opacity-100 {
  opacity: 1;
}
.opacity-20 {
  opacity: 0.2;
}
.opacity-30 {
  opacity: 0.3;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-80 {
  opacity: 0.8;
}
.\!shadow-none {
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow) !important;
}
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-\[0_4px_15px_rgba\(107\,72\,196\,0\.5\)\] {
  --tw-shadow: 0 4px 15px rgba(107,72,196,0.5);
  --tw-shadow-colored: 0 4px 15px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-\[0_4px_6px_rgba\(139\,92\,246\,0\.3\)\] {
  --tw-shadow: 0 4px 6px rgba(139,92,246,0.3);
  --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-\[4px_0_24px_rgba\(0\,0\,0\,0\.2\)\] {
  --tw-shadow: 4px 0 24px rgba(0,0,0,0.2);
  --tw-shadow-colored: 4px 0 24px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-inner {
  --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.shadow-\[\#2d1b69\]\/20 {
  --tw-shadow-color: rgb(45 27 105 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.ring-\[\#20134b\] {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(32 19 75 / var(--tw-ring-opacity, 1));
}
.ring-black\/5 {
  --tw-ring-color: rgb(0 0 0 / 0.05);
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-3xl {
  --tw-backdrop-blur: blur(64px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.\[scrollbar-color\:rgba\(99\,102\,241\,0\.2\)_transparent\] {
  scrollbar-color: rgba(99, 102, 241, 0.2) transparent;
}
.\[scrollbar-width\:thin\] {
  scrollbar-width: thin;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
@font-face {
  font-family: "Nunito";
  src: url(/assets/fonts/Nunito/Nunito-VariableFont_wght.ttf) format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Ubuntu";
  src: url("./media/Ubuntu-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
html {
  overscroll-behavior: none;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
body {
  font-family:
    "Nunito",
    "Ubuntu",
    "Geneva",
    Verdana,
    sans-serif;
  background-color: var(--surface);
  color: var(--text);
  line-height: 1.6;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  overscroll-behavior: none;
  overflow: hidden;
  touch-action: pan-y;
  width: 100%;
  height: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
.leaflet-popup-content-wrapper {
  border-radius: 0.5rem !important;
  padding: 2px !important;
}
.leaflet-popup-content {
  margin: 12px 16px !important;
  width: auto !important;
  min-width: 220px;
}
.leaflet-popup-content .lamp-popup p {
  margin: 4px 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mapPulse {
  0%, 100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
  50% {
    transform: scale(1.1) rotate(5deg);
    opacity: 0.8;
  }
}
@keyframes dotBounce {
  0%, 80%, 100% {
    transform: translateY(0) scale(1);
    opacity: 0.7;
  }
  40% {
    transform: translateY(-20px) scale(1.2);
    opacity: 1;
  }
}
@keyframes textFade {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}
@keyframes clusterFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes clusterScaleIn {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes svgFadeIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes markerFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes markerSlideIn {
  0% {
    transform: translateY(-10px) scale(0.8);
  }
  60% {
    transform: translateY(2px) scale(1.05);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
@keyframes haloPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.3;
  }
  50% {
    transform: scale(1.2);
    opacity: 0.5;
  }
}
@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.marker-cluster {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  animation: clusterFadeIn 0.4s ease-out, clusterScaleIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: center center;
}
.marker-cluster-svg {
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.marker-cluster-svg:hover {
  transform: scale(1.1);
}
.marker-cluster-small,
.marker-cluster-small .cluster-svg {
  width: 36px !important;
  height: 36px !important;
}
.marker-cluster-medium,
.marker-cluster-medium .cluster-svg {
  width: 44px !important;
  height: 44px !important;
}
.marker-cluster-large,
.marker-cluster-large .cluster-svg {
  width: 52px !important;
  height: 52px !important;
}
.leaflet-marker-icon {
  animation: markerFadeIn 0.5s ease-out, markerSlideIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: bottom center;
  transition: opacity 0.3s ease-out, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.leaflet-control-layers {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: rgba(255, 255, 255, 0.95) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  border-radius: 0.375rem !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  z-index: 1000 !important;
}
.leaflet-control-layers-toggle {
  width: 36px !important;
  height: 36px !important;
  background: var(--surface-card) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'><path d='M12 2l1.09 6.26L20 9l-6.91 6.74L12 22l-1.09-6.26L4 9l6.91-0.74L12 2z' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 20px 20px !important;
  border: 1px solid var(--border) !important;
  border-radius: 0.375rem !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.leaflet-control-layers-toggle:hover {
  background-color: var(--surface-hover) !important;
  border-color: var(--brand-500) !important;
}
.leaflet-control-layers-expanded {
  padding: 10px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  border-radius: 0.375rem !important;
  margin-top: 10px !important;
}
.leaflet-control-layers-list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.leaflet-control-layers-base,
.leaflet-control-layers-overlays {
  margin: 5px 0 !important;
}
.leaflet-control-layers-selector {
  margin-right: 8px !important;
}
.leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.9) !important;
  color: var(--muted) !important;
  font-size: 11px !important;
  padding: 2px 6px !important;
  border-radius: 0.25rem !important;
}
.layers-panel {
  position: absolute;
  top: 80px;
  right: 20px;
  width: 280px;
  max-height: calc(100vh - 120px);
  background: var(--surface-card);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: slideInRight 0.3s ease-out;
}
.layers-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-card);
}
.layers-panel-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.layers-panel-title i {
  color: var(--brand-500);
}
.layers-panel-close {
  background: transparent;
  border: none;
}
.placeholder\:text-white\/50::placeholder {
  color: rgb(255 255 255 / 0.5);
}
.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}
.after\:left-\[2px\]::after {
  content: var(--tw-content);
  left: 2px;
}
.after\:top-\[2px\]::after {
  content: var(--tw-content);
  top: 2px;
}
.after\:h-4::after {
  content: var(--tw-content);
  height: 1rem;
}
.after\:w-4::after {
  content: var(--tw-content);
  width: 1rem;
}
.after\:rounded-full::after {
  content: var(--tw-content);
  border-radius: 9999px;
}
.after\:border::after {
  content: var(--tw-content);
  border-width: 1px;
}
.after\:border-gray-300::after {
  content: var(--tw-content);
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.after\:bg-white::after {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.after\:transition-all::after {
  content: var(--tw-content);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.after\:content-\[\'\'\]::after {
  --tw-content: "";
  content: var(--tw-content);
}
.last\:mb-0:last-child {
  margin-bottom: 0px;
}
.last\:border-none:last-child {
  border-style: none;
}
.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:-translate-y-\[1px\]:hover {
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:translate-x-1:hover {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-110:hover {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-\[1\.02\]:hover {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:border-\[\#94a3b8\]\/30:hover {
  border-color: rgb(148 163 184 / 0.3);
}
.hover\:border-brand-400:hover {
  border-color: var(--brand-400);
}
.hover\:border-brand-500:hover {
  border-color: var(--brand-500);
}
.hover\:border-indigo-400\/60:hover {
  border-color: rgb(129 140 248 / 0.6);
}
.hover\:border-red-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.hover\:border-white\/10:hover {
  border-color: rgb(255 255 255 / 0.1);
}
.hover\:bg-\[\#059669\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[\#3a2283\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(58 34 131 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[\#3d2b79\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(61 43 121 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[\#4338CA\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[\#dc2626\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[color\:var\(--surface\)\]:hover {
  background-color: var(--surface);
}
.hover\:bg-\[color\:var\(--surface-card\)\]:hover {
  background-color: var(--surface-card);
}
.hover\:bg-blue-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-400:hover {
  background-color: var(--brand-400);
}
.hover\:bg-brand-50:hover {
  background-color: var(--brand-50);
}
.hover\:bg-brand-500:hover {
  background-color: var(--brand-500);
}
.hover\:bg-brand-600:hover {
  background-color: var(--brand-600);
}
.hover\:bg-brand-700:hover {
  background-color: var(--brand-700);
}
.hover\:bg-emerald-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}
.hover\:bg-green-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}
.hover\:bg-orange-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}
.hover\:bg-purple-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-500\/20:hover {
  background-color: rgb(239 68 68 / 0.2);
}
.hover\:bg-sky-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}
.hover\:bg-white\/15:hover {
  background-color: rgb(255 255 255 / 0.15);
}
.hover\:bg-white\/5:hover {
  background-color: rgb(255 255 255 / 0.05);
}
.hover\:text-brand-500:hover {
  color: var(--brand-500);
}
.hover\:text-brand-600:hover {
  color: var(--brand-600);
}
.hover\:text-brand-700:hover {
  color: var(--brand-700);
}
.hover\:text-red-500:hover {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.hover\:text-text:hover {
  color: var(--text);
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:shadow-\[0_4px_12px_rgba\(139\,92\,246\,0\.15\)\]:hover {
  --tw-shadow: 0 4px 12px rgba(139,92,246,0.15);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.hover\:shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.hover\:shadow-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.focus\:border-brand-400:focus {
  border-color: var(--brand-400);
}
.focus\:border-brand-500:focus {
  border-color: var(--brand-500);
}
.focus\:border-slate-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
.focus\:border-violet-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(167 139 250 / var(--tw-border-opacity, 1));
}
.focus\:border-white\/40:focus {
  border-color: rgb(255 255 255 / 0.4);
}
.focus\:bg-white:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.focus\:bg-white\/10:focus {
  background-color: rgb(255 255 255 / 0.1);
}
.focus\:bg-white\/20:focus {
  background-color: rgb(255 255 255 / 0.2);
}
.focus\:bg-white\/5:focus {
  background-color: rgb(255 255 255 / 0.05);
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-4:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-slate-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1));
}
.focus\:ring-violet-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity, 1));
}
.focus-visible\:outline-red-600:focus-visible {
  outline-color: #dc2626;
}
.focus-visible\:outline-sky-600:focus-visible {
  outline-color: #0284c7;
}
.active\:scale-90:active {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}
.disabled\:scale-100:disabled {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:bg-slate-50:disabled {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.disabled\:opacity-30:disabled {
  opacity: 0.3;
}
.disabled\:opacity-40:disabled {
  opacity: 0.4;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:grayscale:disabled {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.disabled\:hover\:scale-100:hover:disabled {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:focus-within .group-focus-within\:text-brand-500 {
  color: var(--brand-500);
}
.group\/dropdown:hover .group-hover\/dropdown\:visible {
  visibility: visible;
}
.group:hover .group-hover\:visible {
  visibility: visible;
}
.group\/loc:hover .group-hover\/loc\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/next:hover .group-hover\/next\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/prev:hover .group-hover\/prev\:-translate-x-1 {
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/sel:hover .group-hover\/sel\:translate-y-0\.5 {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/dropdown:hover .group-hover\/dropdown\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/table:hover .group-hover\/table\:rotate-0 {
  --tw-rotate: 0deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:rotate-12 {
  --tw-rotate: 12deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/btn-del:hover .group-hover\/btn-del\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/btn-edit:hover .group-hover\/btn-edit\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/btn:hover .group-hover\/btn\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/dropdown:hover .group-hover\/dropdown\:scale-100 {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes pulse {
  50% {
    opacity: .5;
  }
}
.group:hover .group-hover\:animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.group:hover .group-hover\:bg-black\/10 {
  background-color: rgb(0 0 0 / 0.1);
}
.group:hover .group-hover\:bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.group:hover .group-hover\:bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
.group:hover .group-hover\:bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}
.group\/dropdown:hover .group-hover\/dropdown\:text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.group\/sel:hover .group-hover\/sel\:text-brand-500 {
  color: var(--brand-500);
}
.group\/select:hover .group-hover\/select\:text-brand-500 {
  color: var(--brand-500);
}
.group:hover .group-hover\:text-brand-500 {
  color: var(--brand-500);
}
.group:hover .group-hover\:text-brand-600 {
  color: var(--brand-600);
}
.group:hover .group-hover\:text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.group\/cat:hover .group-hover\/cat\:opacity-20 {
  opacity: 0.2;
}
.group\/cell:hover .group-hover\/cell\:opacity-70 {
  opacity: 0.7;
}
.group\/cell:hover .group-hover\/cell\:opacity-90 {
  opacity: 0.9;
}
.group\/dropdown:hover .group-hover\/dropdown\:opacity-100 {
  opacity: 1;
}
.group\/status:hover .group-hover\/status\:opacity-20 {
  opacity: 0.2;
}
.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}
.group:hover .group-hover\:opacity-60 {
  opacity: 0.6;
}
.group:hover .group-hover\:shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow:
    var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000),
    var(--tw-shadow);
}
.group:hover .group-hover\:shadow-red-500\/10 {
  --tw-shadow-color: rgb(239 68 68 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}
.peer:checked ~ .peer-checked\:translate-x-4 {
  --tw-translate-x: 1rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.peer:checked ~ .peer-checked\:bg-brand-500 {
  background-color: var(--brand-500);
}
.peer:checked ~ .peer-checked\:after\:translate-x-full::after {
  content: var(--tw-content);
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.peer:checked ~ .peer-checked\:after\:border-white::after {
  content: var(--tw-content);
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.peer:focus ~ .peer-focus\:outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.group:has(:checked) .group-has-\[\:checked\]\:bg-brand-500 {
  background-color: var(--brand-500);
}
.group:has(:checked) .group-has-\[\:checked\]\:text-brand-600 {
  color: var(--brand-600);
}
@media (min-width: 640px) {
  .sm\:max-h-40 {
    max-height: 10rem;
  }
  .sm\:w-full {
    width: 100%;
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:flex-col {
    flex-direction: column;
  }
  .sm\:items-stretch {
    align-items: stretch;
  }
  .sm\:justify-center {
    justify-content: center;
  }
  .sm\:gap-3 {
    gap: 0.75rem;
  }
  .sm\:px-3\.5 {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }
  .sm\:py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }
  .sm\:py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .sm\:text-\[28px\] {
    font-size: 28px;
  }
  .sm\:text-\[32px\] {
    font-size: 32px;
  }
  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .sm\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }
}
@media (min-width: 768px) {
  .md\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .md\:col-span-4 {
    grid-column: span 4 / span 4;
  }
  .md\:col-span-8 {
    grid-column: span 8 / span 8;
  }
  .md\:flex {
    display: flex;
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .lg\:col-span-12 {
    grid-column: span 12 / span 12;
  }
  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }
  .lg\:block {
    display: block;
  }
  .lg\:flex {
    display: flex;
  }
  .lg\:w-56 {
    width: 14rem;
  }
  .lg\:w-\[320px\] {
    width: 320px;
  }
  .lg\:w-auto {
    width: auto;
  }
  .lg\:max-w-\[min\(92\%\,1150px\)\] {
    max-width: min(92%, 1150px);
  }
  .lg\:flex-\[0\.35\] {
    flex: 0.35;
  }
  .lg\:flex-\[0\.4\] {
    flex: 0.4;
  }
  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-\[1fr_380px\] {
    grid-template-columns: 1fr 380px;
  }
  .lg\:flex-row {
    flex-direction: row;
  }
  .lg\:flex-wrap {
    flex-wrap: wrap;
  }
  .lg\:justify-end {
    justify-content: flex-end;
  }
  .lg\:gap-3 {
    gap: 0.75rem;
  }
  .lg\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 1280px) {
  .xl\:col-span-1 {
    grid-column: span 1 / span 1;
  }
  .xl\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .xl\:col-span-5 {
    grid-column: span 5 / span 5;
  }
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media (prefers-color-scheme: dark) {
  .dark\:border-\[\#374151\] {
    --tw-border-opacity: 1;
    border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
  }
  .dark\:border-red-500\/20 {
    border-color: rgb(239 68 68 / 0.2);
  }
  .dark\:border-white\/10 {
    border-color: rgb(255 255 255 / 0.1);
  }
  .dark\:bg-\[\#4F46E5\]\/20 {
    background-color: rgb(79 70 229 / 0.2);
  }
  .dark\:bg-red-500\/10 {
    background-color: rgb(239 68 68 / 0.1);
  }
  .dark\:bg-slate-500\/10 {
    background-color: rgb(100 116 139 / 0.1);
  }
  .dark\:bg-slate-700 {
    --tw-bg-opacity: 1;
    background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
  }
  .dark\:bg-slate-800\/40 {
    background-color: rgb(30 41 59 / 0.4);
  }
  .dark\:bg-slate-900 {
    --tw-bg-opacity: 1;
    background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
  }
  .dark\:bg-slate-900\/40 {
    background-color: rgb(15 23 42 / 0.4);
  }
  .dark\:bg-slate-900\/50 {
    background-color: rgb(15 23 42 / 0.5);
  }
  .dark\:bg-slate-900\/90 {
    background-color: rgb(15 23 42 / 0.9);
  }
  .dark\:bg-violet-500\/10 {
    background-color: rgb(139 92 246 / 0.1);
  }
  .dark\:bg-white\/10 {
    background-color: rgb(255 255 255 / 0.1);
  }
  .dark\:text-\[\#F9FAFB\] {
    --tw-text-opacity: 1;
    color: rgb(249 250 251 / var(--tw-text-opacity, 1));
  }
  .dark\:text-gray-300 {
    --tw-text-opacity: 1;
    color: rgb(209 213 219 / var(--tw-text-opacity, 1));
  }
  .dark\:text-red-400 {
    --tw-text-opacity: 1;
    color: rgb(248 113 113 / var(--tw-text-opacity, 1));
  }
  .dark\:text-slate-300 {
    --tw-text-opacity: 1;
    color: rgb(203 213 225 / var(--tw-text-opacity, 1));
  }
  .dark\:text-violet-300 {
    --tw-text-opacity: 1;
    color: rgb(196 181 253 / var(--tw-text-opacity, 1));
  }
  .dark\:opacity-25 {
    opacity: 0.25;
  }
  .dark\:disabled\:bg-slate-800\/50:disabled {
    background-color: rgb(30 41 59 / 0.5);
  }
  .group\/cat:hover .dark\:group-hover\/cat\:opacity-30 {
    opacity: 0.3;
  }
  .group\/status:hover .dark\:group-hover\/status\:opacity-30 {
    opacity: 0.3;
  }
}
.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb {
  border-radius: 9999px;
}
.\[\&\:\:-webkit-scrollbar-track\]\:bg-transparent::-webkit-scrollbar-track {
  background-color: transparent;
}
.\[\&\:\:-webkit-scrollbar\]\:h-\[6px\]::-webkit-scrollbar {
  height: 6px;
}
.\[\&\:\:-webkit-scrollbar\]\:w-\[3px\]::-webkit-scrollbar {
  width: 3px;
}
.\[\&\:\:-webkit-scrollbar\]\:w-\[4px\]::-webkit-scrollbar {
  width: 4px;
}
.\[\&\:\:-webkit-scrollbar\]\:w-\[5px\]::-webkit-scrollbar {
  width: 5px;
}
.\[\&\:\:-webkit-scrollbar\]\:w-\[6px\]::-webkit-scrollbar {
  width: 6px;
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
