/* Custom styles for trailerslite */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

body {
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  background: #ffffff;
  background-image: url('/static/assets/page_back-x-lite.jpg'); 
  background-repeat: repeat-x;
  color: var(--body-text);
  margin: 0;
  padding: 0;
  font-size: 13px;
}

.include-padding {
    padding: 1rem;
}

.w-auto {
    width: auto !important;
}
.w-30 {
    width: 30px !important;
}
.w-50 {
    width: 50px !important;
}
.w-100 {
    width: 100px !important;
}
.w-200 {
    width: 200px !important;
}
.w-300 {
    width: 300px !important;
}

.back-lightgray {
    background-color: #f9f9f9;
}

.back-white {
    background-color: #ffffff !important;
}

.rounded {
    border-radius: 4px;
}

label {
    font-weight: 600;
    font-size: small;
    text-transform: capitalize;
}
h1 {
    font-weight: 400;
    font-size: 2rem;
    color: var(--active);
    margin: 0 0 1rem 0 !important;
}
h2 {
    font-weight: 400;
    font-size: 1.3rem;
    color: var(--secondary);
    margin: 0 0 .5rem 0 !important;
    text-shadow: 0px 2px 0px rgb(255, 255, 255);
}
h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 400;
    font-size: 1rem;
    color: var(--active);
    margin: 0 0 1rem 0 !important;
    text-shadow: 0px 2px 0px rgb(255, 255, 255);
}
.shadow {
    box-shadow: inset 0 0 20px rgb(233, 233, 233);
}
.shadow-bottom {
    box-shadow: 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
.lite-background {
    background-color: var(--separators)
}

.dark-background {
    background-color: var(--primary)
}

.sticky-header {
    position: sticky;
    top: 0;
    z-index: 100;
}

.sticky-tabs {
    position: sticky;
    top: 90px; /* Adjust based on header height */
    z-index: 90;
    padding-bottom: 10px;
    background-color: #ffffff;
}

.sticky-title {
    position: sticky;
    top: 135px; /* Adjust based on header height */
    z-index: 90;
    padding-bottom: 10px;
    background-color: #ffffff;
}

.sticky-containers {
    /* position: -webkit-sticky; */
    position: sticky;
    top: 80px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    z-index: 50;
}

.border-none {
    border: none !important;
}

.lh-taller {
    line-height: 1.4em !important;
}

  /* HTML: <div class="loader"></div> */
.loader {
  width: 50px;
  aspect-ratio: 1;
  display: grid;
  border: 4px solid #0000;
  border-radius: 50%;
  border-right-color: var(--primary);
  animation: l15 1s infinite linear;
}
.loader::before,
.loader::after {    
  content: "";
  grid-area: 1/1;
  margin: 2px;
  border: inherit;
  border-radius: 50%;
  animation: l15 2s infinite;
}
.loader::after {
  margin: 8px;
  animation-duration: 3s;
}
@keyframes l15{ 
  100%{transform: rotate(1turn)}
}

.small-loader-container {
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.loader-small {
  width: 7.5px; /* was 15px */
  aspect-ratio: 1;
  border-radius: 50%;
  animation: l5-small 1s infinite linear alternate;
}

@keyframes l5-small {
  0%   {box-shadow: 10px 0 #000,  -10px 0 #0002; background: #000 }
  33%  {box-shadow: 10px 0 #000,  -10px 0 #0002; background: #0002}
  66%  {box-shadow: 10px 0 #0002, -10px 0 #000;  background: #0002}
  100% {box-shadow: 10px 0 #0002, -10px 0 #000;  background: #000 }
}

@keyframes l15 { 
  100% { transform: rotate(1turn) }
}

/* Full page loader overlay */
.loader-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.9);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loader-overlay p {
  margin-top: 20px;
  font-size: 16px;
  color: #666;
  font-weight: 500;
}

.loader-container {
    width: 70px;
    height: 70px;
    margin: 30px auto;
}

.modal {
  position: fixed;
  z-index: 1;
  border-radius: 5px;
  border-color: var(--primary);
  padding: 0;
  border: none;
  max-height: 90vh;
  overflow: auto;
}
.modal:focus {
    outline: none !important;
    box-shadow: none !important;
}

.modal::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}
.modal-content {
  padding: 20px;
  background-color: white;
  border-radius: 5px;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
.modal-content-not-allowed {
  position: relative;
}
.modal-content-not-allowed::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.45);
  border-radius: 5px;
  pointer-events: all;
  cursor: not-allowed;
  z-index: 100;
}
.modal-large {
    width: 600px;
}
.modal-xlarge {
    width: 960px;
    max-width: 96vw;
}
.modal-medium {
    width: 400px;
}
.modal-small {
    width: 300px;
}
.pointer {
    cursor: pointer;
}

/* GROUP COLUMN CLASSES */
.group {
    max-width: 100%;
    padding: 6px;
    display: grid;
    gap: 0;
    align-items: start;
}
.group-trunc {
    max-width: 100%;
    padding: 6px;
    display: grid;
    gap: 0;
    align-items: start;
}
.group-trunc > * {
    min-width: 0;
}
.grp-1 {
    grid-template-columns: auto;
}
.grp-2 {
    grid-template-columns: 1fr 1fr;
}
.grp-3 {
    grid-template-columns: 1fr 1fr 1fr;
}
.grp-4 {
    grid-template-columns: 1fr 1fr 1fr 1fr;
}
.grp-5 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}
.grp-6 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}
.grp-7 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}
.grp-8 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}
.grp-9 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}
.grp-10 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}
.grp-3-sm-mid {
    grid-template-columns: 4fr 2fr 4fr;
}
.grp-3-lg-mid {
    grid-template-columns: 2fr 6fr 2fr;
}
.grp-2-sm-start {
    grid-template-columns: 3fr 7fr;
}
.grp-2-sm-end {
    grid-template-columns: 7fr 3fr;
}
.grp-3-start-lg {
    grid-template-columns: 6fr 2fr 2fr;
}
.grp-4-components {
    grid-template-columns: 2.5fr 2.5fr 5fr 2fr;
}
.grp-4-dealer-users {
    grid-template-columns: 4fr 2fr 2fr 1fr;
}
.grp-7-boms {
    grid-template-columns: 1.5fr 2fr 5fr 1.5fr 1.5fr 1fr 1fr;
}
.grp-7-stocklist {
    grid-template-columns: 1.5fr 6fr 1.5fr 1.5fr 2fr 1fr 2fr;
}
.grp-4-stocklist {
    grid-template-columns: 2fr 5fr 2fr 2fr;
}
.grp-7-rules {
    grid-template-columns: 1.5fr 1.5fr 2fr 4fr 4fr 1fr 1fr;
}
.grp-5-lg-start {
    grid-template-columns: 9fr 1fr 1fr 1fr 1fr;
}
.grp-2-portal {
    grid-template-columns: 6fr 4fr;
}
.grp-8-quotes{
    grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr 2fr 1fr 1.5fr 1.5fr;
}
.grp-7-orders {
    grid-template-columns: .8fr 1.5fr 1.5fr 1.5fr 2.5fr .8fr 1fr;
}
.grp-6-orders {
    grid-template-columns: 1fr 2fr 3fr 2fr 1fr 3fr;
}
.grp-6-order-units {
    grid-template-columns: 2fr 2fr 2fr 1.5fr 1.5fr 1.5fr;
}
.grp-6-dealers {
    grid-template-columns: 3fr 2fr 2fr 2fr 2fr 1fr;
}
.grp-7-dealers {
    grid-template-columns: 3fr 1fr 2fr 2fr 2fr 2fr 1fr;
}
/* END GROUP CLASSES */

/* TEXT CLASSES */
.text-red {
    color: #ff0000;
}
.text-gray {
    color: #939393 !important;
}
.text-active {
    color: var(--active) !important;
}
.text-primary {
    color: var(--primary) !important;
}
.text-accent {
    color: var(--accent-text) !important;
}
.text-muted {
    color: #acacac !important;
}
.text-right {
    text-align: right !important;
}
.text-left {
    text-align: left !important;
}
.text-nowrap {
    white-space: nowrap !important;
}
.text-center {
    text-align: center !important;
}
.text-center-vertical {
    align-items: baseline !important;
}
.text-capitalize {
    text-transform: capitalize !important;
}
.text-bold {
    font-weight: 600 !important;
}
.text-small {
    font-size: 12px !important;
}
.text-xsmall {
    font-size: 10px !important;
}
.text-medium {
    font-size: 14px !important;
}
.text-bigger {
    font-size: 16px !important;
}
.text-large {
    font-size: 20px !important;
}
.text-xlarge {
    font-size: 2rem !important;
}
.text-uppercase {
    text-transform: uppercase !important;
}
.text-lite {
    color: var(--separators) !important;
}
.text-truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; 
  padding-right: 6px;
}
.hide-overflow {
  white-space: nowrap;
  overflow: hidden !important; 
}
.error {
    color: #ff0000;
    font-weight: bold;
}
.h1 {
  margin: 0;
  font-size: 1.75rem;
}
.border-bottom {
    border-bottom: 1px solid #888888;
    padding-bottom: 4px;
    margin-bottom: 8px;
}
.border-bottom-dotted {
    border-bottom: 1px dashed #d8d8d8;
    padding-bottom: 5px !important;
    margin-bottom: 5px !important;
}
.border-top {
    border-top: 1px solid #888888;
    padding-top: 4px;
    margin-top: 8px;
}
.border {
    border: 1px solid #888888;
    padding: 4px;
    border-radius: 4px;
}
.border-light {
    border: 1px solid #d8d8d8;
    border-radius: 4px;
}
.border-bottom-light {
    border-bottom: 1px solid #d8d8d8;
    padding-bottom: 4px;
    margin-bottom: 8px;
}
.border-right {
    border-right: 1px solid #888888;
    padding-right: 4px;
    margin-right: 4px;
}
.border-left {
    border-left: 1px solid #888888;
    padding-left: 4px;
    margin-left: 4px;
}
/* END TEXT CLASSES */

/* BUTTON CLASSES */
.button {
    background-color: var(--primary);
    border: black;
    color: white;
    padding: 6px 12px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 11px;
    margin: 4px 4px;
    cursor: pointer;
    border-radius: 5px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    font-weight: bold;
}
.button-list {
    background-color: var(--primary);
    border: black;
    color: white;
    padding: 6px 12px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 11px;
    margin: 4px 4px;
    cursor: pointer;
    border-radius: 5px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    font-weight: bold;
    width: 98%;
}
.button-list:hover {
    background-color: var(--accent-text);
}
.button:hover {
    background-color: var(--accent-text);
}
.float-left {
    float: left;
}
.float-right {
    float: right;
}
.float-center {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.reset-password-button {
    background: none;
    border: none;
    color: #313131;
    text-decoration: none;
    cursor: pointer;
    padding: 0;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    /* font-weight: bold; */
}
.reset-password-button:hover {
    color: var(--accent-text);
    text-decoration: underline;
}
.link-button {
    background: none;
    border: none;
    color: #313131;
    text-decoration: none;
    cursor: pointer;
    padding: 0;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    /* font-weight: bold; */
}
.clear-btn {
    background: none;
    border: none;
    color: #313131;
    text-decoration: none;
    cursor: pointer;
    padding: 0;
    outline: none;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
.clear-btn:hover {
    color: var(--accent-text);
}
.clear-btn-sorting {
    background: none;
    border: none;
    color: #939393;
    text-decoration: none;
    cursor: pointer;
    padding: 0;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
.clear-btn-sorting:hover {
    color: var(--accent-text);
}
.btn-glow {
    box-shadow: 0px 0px 20px 20px #ffffff !important;
}
.btn-active {
  background-color: var(--active) !important;
}
.btn-primary {
  background-color: var(--primary);
}
.btn-secondary {
  background-color: var(--secondary) !important;
}
.btn-light {
  background-color: #a7acb8 !important;
}
.logout-button {
    width: 50px !important;
    height: 40px !important;
    padding: 6px !important;
}
.btn-big-square:hover {
    border: #5f5f5f 1px solid !important;
    box-shadow: inset 0 0 40px rgb(227, 230, 232);
    cursor: pointer;
}
.btn-small {
    width: 70px !important;
    height: 26px !important;
}
.btn-medium {
    width: 75px !important;
    height: 26px !important;
}
.btn-large {
    width: 100px !important;
    height: 40px !important;
}
.btn-disabled,
button[disabled] {
    background-color: var(--separators) !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    color: #6c6c6c !important;
}
.clear-btn-disabled {
    color: #6c6c6c !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}
.btn-app {
    width: 120px !important;
    height: 120px !important;
    padding: 12px !important;
}
.button-group {
    display: flex; /* For horizontal layout */
    /* Add other styles like border, border-radius, etc. for the group container */
    /* border: 1px solid #ccc; */
    border-radius: 5px;
    overflow: hidden; /* Important for clean border-radius with individual button borders */
}
.button-group .btn {
    padding: 6px 12px;
    background-color: var(--primary);
    color: white;
    border: none; /* Remove individual button borders if the group has a single border */
    cursor: pointer;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    font-weight: bold;
    font-size: 13px;
    text-decoration: none;
    /* Add hover effects, etc. */
}

/* Add borders between buttons for a distinct look */
.button-group .btn:last-child {
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}
.button-group .btn:first-child {
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}
.button-group .btn:hover {
    background-color: var(--accent-text);
}
.disabled-btn {
    background-color: #c9c9c9 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    color: #6c6c6c !important;
}
/* Switch wrapper: makes the toggle + text lay out inline and fully clickable */
.switch-wrapper {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  gap: 8px;
}

/* The switch - the box around the slider */
.switch {
  position: relative;
  display: inline-block;
  width: 30px;   /* was 60px */
  height: 17px;  /* was 34px */
}

/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 13px;   /* was 26px */
  width: 13px;    /* was 26px */
  left: 2px;      /* was 4px */
  bottom: 2px;    /* was 4px */
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: var(--primary);
}

input:focus + .slider {
  box-shadow: 0 0 1px var(--primary);
}

input:checked + .slider:before {
  -webkit-transform: translateX(13px); /* was 26px */
  -ms-transform: translateX(13px);
  transform: translateX(13px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 17px; /* was 34px */
}

.slider.round:before {
  border-radius: 50%;
}

/* END BUTTON CLASSES */

/* INPUT/FORM CLASSES */
.input {
    width: 100%;
    padding: 6px 10px;
    margin: 4px 0;
    box-sizing: border-box;
    border: 1px solid #c9c9c9;
    border-radius: 4px;
}
.input-slim {
    padding: 4px 6px !important;
    margin: 0 !important;
}
.input:focus {
    border: 1px solid var(--primary);
    outline: none;
}
.input-small {
    width: 30px !important;
    padding: 2px 2px !important;
}
.input-number {
    width: 60px !important;
}
/* For Chrome, Safari, Edge, and Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* For Firefox */
input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield; /* Standard property for other browsers, though support varies */
}
/* END INPUT/FORM CLASSES */

/* MARGIN AND PADDING CLASSES */
.loader-margin {
    margin-top: 50px;
    margin-left: 90px;
}
.loader-margin-3 {
    margin-top: 50px;
    margin-left: 150px;
}
.m-0 {
    margin: 0px !important;
}
.mt-0 {
    margin-top: 0px !important;
}
.mt-1 {
    margin-top: 1px !important;
}
.mt-2 {
    margin-top: 2px !important;
}
.mt-3 {
    margin-top: 3px !important;
}
.mt-4 {
    margin-top: 4px !important;
}
.mt-5 {
    margin-top: 5px !important;
}
.mt-6 {
    margin-top: 6px !important;
}
.mt-7 {
    margin-top: 7px !important;
}
.mt-8 {
    margin-top: 8px !important;
}
.mt-9 {
    margin-top: 9px !important;
}
.mt-10 {
    margin-top: 10px !important;
}
.mt-15 {
    margin-top: 15px !important;
}
.mt-20 {
    margin-top: 20px !important;
}
.mt-30 {
    margin-top: 30px !important;
}
.mb-0 {
    margin-bottom: 0px !important;
}
.mb-1 {
    margin-bottom: 1px !important;
}
.mb-2 {
    margin-bottom: 2px !important;
}
.mb-3 {
    margin-bottom: 3px !important;
}
.mb-4 {
    margin-bottom: 4px !important;
}
.mb-5 {
    margin-bottom: 5px !important;
}
.mb-8 {
    margin-bottom: 8px !important;
}
.mb-10 {
    margin-bottom: 10px !important;
}
.mb-15 {
    margin-bottom: 15px !important;
}
.mb-20 {
    margin-bottom: 20px !important;
}
.mb-40 {
    margin-bottom: 40px !important;
}
.my-1 {
    margin-top: 1px !important;
    margin-bottom: 1px !important;
}
.my-2 {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
}
.my-3 {
    margin-top: 3px !important;
    margin-bottom: 3px !important;
}
.my-4 {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
}
.my-5 {
    margin-top: 5px !important;
    margin-bottom: 5px !important;
}
.my-10 {
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}
.mx-1 {
    margin-left: 1px !important;
    margin-right: 1px !important;
}
.mx-2 {
    margin-left: 2px !important;
    margin-right: 2px !important;
}
.mx-3 {
    margin-left: 3px !important;
    margin-right: 3px !important;
}
.mx-4 {
    margin-left: 4px !important;
    margin-right: 4px !important;
}
.mx-5 {
    margin-left: 5px !important;
    margin-right: 5px !important;
}
.mr-0 {
    margin-right: 0px;
}
.mr-1 {
    margin-right: 1px;
}
.mr-2 {
    margin-right: 2px;
}
.mr-3 {
    margin-right: 3px;
}
.mr-4 {
    margin-right: 4px;
}
.mr-5 {
    margin-right: 5px !important;
}
.mr-6 {
    margin-right: 6px !important;
}
.mr-7 {
    margin-right: 7px !important;
}
.mr-8 {
    margin-right: 8px !important;
}
.mr-9 {
    margin-right: 9px !important;
}
.mr-10 {
    margin-right: 10px !important;
}
.ml-0 {
    margin-left: 0px !important;
}
.ml-1 {
    margin-left: 1px !important;
}
.ml-2 {
    margin-left: 2px !important;
}
.ml-3 {
    margin-left: 3px !important;
}
.ml-5 {
    margin-left: 5px !important;
}
.ml-10 {
    margin-left: 10px !important;
}
.ml-20 {
    margin-left: 20px !important;
}
.ml-100 {
    margin-left: 100px !important;
}
.ml-3 {
    margin-left: 3px !important;
}
.ml-4 {
    margin-left: 4px !important;
}
.ml-5 {
    margin-left: 5px !important;
}
.ml-6 {
    margin-left: 6px !important;
}
.ml-7 {
    margin-left: 7px !important;
}
.ml-8 {
    margin-left: 8px !important;
}
.ml-9 {
    margin-left: 9px !important;
}
.pt-0 {
    padding-top: 0px !important;
}
.pt-1 {
    padding-top: 1px !important;
}
.pt-2 {
    padding-top: 2px !important;
}
.pt-3 {
    padding-top: 3px !important;
}
.pt-4 {
    padding-top: 4px !important;
}
.pt-5 {
    padding-top: 5px !important;
}
.pt-6 {
    padding-top: 6px !important;
}
.pt-7 {
    padding-top: 7px !important;
}
.pt-8 {
    padding-top: 8px !important;
}
.pt-9 {
    padding-top: 9px !important;
}
.pt-10 {
    padding-top: 10px !important;
}
.pt-15 {
    padding-top: 15px !important;
}
.pt-16 {
    padding-top: 16px !important;
}
.pt-18 {
    padding-top: 18px !important;
}
.pt-20 {
    padding-top: 20px !important;
}
.pt-24 {
    padding-top: 24px !important;
}
.pt-25 {
    padding-top: 25px !important;
}
.pt-28 {
    padding-top: 28px !important;
}
.pb-1 {
    padding-bottom: 1px !important;
}
.pb-2 {
    padding-bottom: 2px !important;
}
.pb-3 {
    padding-bottom: 3px !important;
}
.pb-4 {
    padding-bottom: 4px !important;
}
.pb-5 {
    padding-bottom: 5px !important;
}
.pb-6 {
    padding-bottom: 6px !important;
}
.pb-7 {
    padding-bottom: 7px !important;
}
.pb-8 {
    padding-bottom: 8px !important;
}
.pb-9 {
    padding-bottom: 9px !important;
}
.pb-10 {
    padding-bottom: 10px !important;
}
.pb-20 {
    padding-bottom: 20px !important;
}
.py-1 {
    padding-top: 1px !important;
    padding-bottom: 1px !important;
}
.py-2 {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
}
.py-3 {
    padding-top: 3px !important;
    padding-bottom: 3px !important;
}
.py-4 {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}
.py-5 {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}
.py-6 {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}
.py-7 {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
}
.py-8 {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
.py-9 {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}
.px-0 {
    padding-left: 0px;
    padding-right: 0px;
}
.px-1 {
    padding-left: 1px;
    padding-right: 1px;
}
.px-2 {
    padding-left: 2px;
    padding-right: 2px;
}
.px-3 {
    padding-left: 3px;
    padding-right: 3px;
}
.px-4 {
    padding-left: 4px;
    padding-right: 4px;
}
.px-5 {
    padding-left: 5px;
    padding-right: 5px;
}
.pr-1 {
    padding-right: 1px;
}
.pr-2 {
    padding-right: 2px;
}
.pr-3 {
    padding-right: 3px;
}
.pr-4 {
    padding-right: 4px;
}
.pr-5 {
    padding-right: 5px !important;
}
.pr-10 {
    padding-right: 10px !important;
}
.pr-20 {
    padding-right: 20px !important;
}
.pl-1 {
    padding-left: 1px !important;
}
.pl-2 {
    padding-left: 2px !important;
}
.pl-3 {
    padding-left: 3px !important;
}
.pl-4 {
    padding-left: 4px !important;
}
.pl-5 {
    padding-left: 5px !important;
}
.pl-6 {
    padding-left: 6px;
}
.pl-7 {
    padding-left: 7px;
}
.pl-8 {
    padding-left: 8px;
}
.pl-9 {
    padding-left: 9px;
}
.pl-10 {
    padding-left: 10px !important;
}
.pl-11 {
    padding-left: 11px;
}
.pl-12 {
    padding-left: 12px;
}
.pl-13 {
    padding-left: 13px;
}
.pl-14 {
    padding-left: 14px;
}
.pl-15 {
    padding-left: 15px;
}
.pl-20 {
    padding-left: 20px !important;
}
.p-0 {
    padding: 0px;
}
.p-1 {
    padding: 1px;
}
.p-2 {
    padding: 2px;
}
.p-3 {
    padding: 3px;
}
.p-4 {
    padding: 4px;
}
.p-5 {
    padding: 5px;
}
.p-6 {
    padding: 6px;
}
.p-7 {
    padding: 7px;
}
.p-8 {
    padding: 8px;
}
.p-9 {
    padding: 9px;
}
.p-10 {
    padding: 10px;
}
.p-12 {
    padding: 12px !important;
}
.p-16 {
    padding: 16px !important;
}
.p-20 {
    padding: 20px !important;
}
.p-30 {
    padding: 30px !important;
}
.p-40 {
    padding: 40px !important;
}
/* END MARGIN AND PADDING CLASSES */

/* LIST CLASSES */
.list {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(31, 41, 55, 0.08);
    overflow: hidden;
    border: 1px solid #e5e7eb;
}

.list-item {
    padding: 1px 1px;
    border-bottom: 1px solid #f3f4f6;
    background: #ffffff;
    transition: all 0.2s ease;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    font-size: 14px;
}

.list-item:last-child {
    border-bottom: none;
}

.list-hover .list-item:hover {
    background-color: #f9fafb;
    transform: translateX(2px);
}

.list-clickable .list-item {
    cursor: pointer;
    user-select: none;
}

.list-clickable .list-item:hover {
    background-color: #f3f4f6;
}

.list-item-active {
    /* background-color: #fef3f2 !important; */
    background-color: var(--separators) !important;
    border-left: 4px solid var(--primary) !important;
    color: #1f2937;
}

.list-item-active:hover {
    background-color: #f9fafb !important;
}

.list-item-active .text-bold {
  color: var(--primary);
}

.list-title {
    align-items: center;
    height: 25px;
    font-weight: 600;
    font-size: 14px;
    color: #939393
}
/* END LIST CLASSES */

/* Firefox */
  * {
    scrollbar-width: thin;
    scrollbar-color: var(--primary) #ffffff;
  }

  /* Chrome, Edge, and Safari */
  *::-webkit-scrollbar {
    width: 5px;
  }

  *::-webkit-scrollbar-track {
    background: #ffffff;
  }

  *::-webkit-scrollbar-thumb {
    background-color: var(--primary);
    border-radius: 0px;
    border: 3px solid #000000;
  }
  /* END WEB SCROLLBAR CLASSES */

/* Alert styles */
.alert {
  padding: 1rem;
  border-radius: 8px;
  border: 1px solid transparent;
  font-size: 0.9rem;
}

.alert-info {
  background-color: #e3f2fd;
  border-color: #2196f3;
  color: #0d47a1;
}

.alert-success {
  background-color: #d4edda;
  border-color: #28a745;
  color: #155724;
}

.alert-error {
  background-color: #f8d7da;
  border-color: #dc3545;
  color: #721c24;
}

.alert-warning {
  background-color: #fff3cd;
  border-color: #ffc107;
  color: #856404;
}

/* Tooltip styles */
.tooltip-wrapper {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

.tooltip-wrapper .tooltip-text {
  visibility: hidden;
  opacity: 0;
  width: 250px;
  background-color: var(--primary);
  color: #fff;
  text-align: left;
  border-radius: 6px;
  padding: 10px 12px;
  position: absolute;
  z-index: 1000;
  top: 125%; /* Position below the icon by default */
  left: 50%;
  margin-left: -125px; /* Center the tooltip */
  transition: opacity 0.3s, visibility 0.3s;
  font-size: 0.85rem;
  line-height: 1.4;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  white-space: normal;
}

/* Tooltip arrow for bottom position (default) */
.tooltip-wrapper .tooltip-text::after {
  content: "";
  position: absolute;
  bottom: 100%; /* Arrow at the top of tooltip */
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent var(--primary) transparent;
}

/* Tooltip positioned on top (when needed) */
.tooltip-wrapper.tooltip-top .tooltip-text {
  top: auto;
  bottom: 125%;
}

.tooltip-wrapper.tooltip-top .tooltip-text::after {
  top: 100%;
  bottom: auto;
  border-color: var(--primary) transparent transparent transparent;
}

/* Show tooltip on hover */
.tooltip-wrapper:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* Badge styles */
.badge {
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 10px;
    font-weight: bold;
    color: #fff;
    display: inline-block;
}
/* Status badges — keyed by status ID */
.badge-status-1 { background-color: #7b2fbe; } /* Ordered    — Purple      */
.badge-status-2 { background-color: #c45c00; } /* Building   — Dark Orange */
.badge-status-3 { background-color: #b81c2e; } /* Incomplete — Crimson     */
.badge-status-4 { background-color: #1d9b2a; } /* Finished   — Green       */
.badge-status-5 { background-color: #1565c0; } /* Shipped    — Blue        */
.badge-status-6 { background-color: #6f8c99; } /* Backlog    — Slate      */
.badge-status-7 { background-color: #e67e00; } /* Quoting    — Amber       */

/* Order progress bar */
.order-progress-bar { display: flex; width: 100%; height: 16px; overflow: hidden; border-radius: 10px; }
.order-progress-segment { display: flex; align-items: center; justify-content: center; color: #fff; font-weight: bold; font-size: 8px; min-width: 0; }

.pb-status-1 { background-color: #7b2fbe; } /* Ordered    — Purple      */
.pb-status-2 { background-color: #c45c00; } /* Building   — Dark Orange */
.pb-status-3 { background-color: #b81c2e; } /* Incomplete — Crimson     */
.pb-status-4 { background-color: #1d9b2a; } /* Finished   — Green       */
.pb-status-5 { background-color: #1565c0; } /* Shipped    — Blue        */

.badge-primary { background-color: var(--primary); } 
.badge-accent { background-color: var(--accent-text); } 
.badge-good { background-color: green; } 
.badge-bad { background-color: red; } 

hr {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
    margin: 20px;
}

/* Dropdown/context dropdown menu */
.rc-dropdown {
    position: fixed;
    z-index: 1001;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    min-width: 140px;
    overflow: hidden;
}
.rc-dropdown-item {
    padding: 8px 14px;
    cursor: pointer;
    font-size: 13px;
}
.rc-dropdown-item:hover {
    background: var(--separators);
}
.rc-dropdown-item.disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}
.rc-dropdown-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;
}



/* Print styles */
@media print {
  @page {
    size: 3in 2.3in;
    margin: 0;
  }
  
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    width: 3in !important;
    height: 2.3in !important;
    overflow: hidden !important;
    max-height: 2.3in !important;
  }
  
  header, footer, nav, .sidebar, .do-not-print {
    display: none !important;
    visibility: hidden !important;
  }
  
  body * {
    visibility: hidden !important;
  }
  
  /* Hide dialogs completely during print */
  dialog,
  .modal,
  #printModal {
    display: none !important;
    visibility: hidden !important;
    outline: none !important;
    box-shadow: none !important;
  }
  
  #printSection,
  #printSection * {
    visibility: visible !important;
  }
  
  #printSection {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 2.9in !important;
    height: 2.3in !important;
    max-height: 2.3in !important;
    overflow: hidden !important;

    break-after: avoid-page !important;
    break-inside: avoid-page !important;
    break-before: avoid-page !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }
  
  #printSection table,
  #printSection div {
    page-break-inside: avoid !important;
  }
  
  /* Ensure text is visible */
  #printSection .label-title,
  #printSection .label-id,
  #printSection div {
    visibility: visible !important;
    display: block !important;
  }
  
  #printSection svg {
    visibility: visible !important;
    display: block !important;
  }
}

/* Sticky Button Container */
.sticky-button-container {
  position: sticky;
  bottom: 20px;
  right: 0;
  /* background: linear-gradient(to top, rgb(255, 255, 255) 70%, rgba(255, 255, 255, 0)); */
  padding: 0;
  margin-top: 1rem;
  z-index: 1000;
  /* backdrop-filter: blur(1px); */
}

.z-100 {
  z-index: 100 !important;
}