/* 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;
}

.include-padding {
    padding: 1rem;
}

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;
}
h3 {
    font-weight: 400;
    font-size: 1rem;
    color: var(--text-accent);
    margin: 0 0 .2rem 0 !important;
}
.shadow {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06);
}
.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)
}

  /* 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);
}
.modal-large {
    width: 600px;
}
.modal-medium {
    width: 400px;
}
.modal-small {
    width: 300px;
}
.gray-background {
    background-color: #f9fafb;
}


/* GROUP COLUMN CLASSES */
.group {
    max-width: 100%;
    /* border: 1px solid #c9c9c9; */
    padding: 6px;
    display: grid;
    gap: 0;
    align-items: start;
}
.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-4-components {
    grid-template-columns: 2fr 3fr 5fr 2fr;
}
/* END GROUP CLASSES */

/* TEXT CLASSES */
.text-red {
    color: #ff0000;
}
.text-right {
    text-align: right !important;
}
.text-left {
    text-align: left;
}
.text-center {
    text-align: center;
}
.text-center-vertical {
    align-items: baseline !important;
}
.text-bold {
    font-weight: 600;
}
.text-small {
    font-size: 12px;
}
.text-medium {
    font-size: 16px;
}
.text-large {
    font-size: 20px;
}
.text-lite {
    color: var(--separators) !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-top {
    border-top: 1px solid #888888;
    padding-top: 4px;
    margin-top: 8px;
}
.border {
    border: 1px solid #888888;
    padding: 4px;
    border-radius: 4px;
}
.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:hover {
    background-color: var(--accent-text);
}
.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;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
.clear-btn:hover {
    color: var(--accent-text);
}
.btn-active {
  background-color: var(--active) !important;
}
.btn-primary {
  background-color: var(--primary);
}
.btn-secondary {
  background-color: var(--secondary);
}
.logout-button {
    width: 50px !important;
    height: 40px !important;
    padding: 6px !important;
}
.btn-small {
    width: 60px !important;
    height: 26px !important;
}
.btn-medium {
    width: 75px !important;
    height: 35px !important;
}
.btn-large {
    width: 100px !important;
    height: 40px !important;
}
.btn-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;
}
/* 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:focus {
    border: 1px solid var(--primary);
    outline: none;
}
/* 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;
}
.mt-1 {
    margin-top: 1px;
}
.mt-2 {
    margin-top: 2px;
}
.mt-3 {
    margin-top: 3px;
}
.mt-4 {
    margin-top: 4px;
}
.mt-5 {
    margin-top: 5px;
}
.mt-6 {
    margin-top: 6px;
}
.mt-7 {
    margin-top: 7px;
}
.mt-8 {
    margin-top: 8px;
}
.mt-9 {
    margin-top: 9px;
}
.mb-0 {
    margin-bottom: 0px !important;
}
.mb-1 {
    margin-bottom: 1px;
}
.mb-2 {
    margin-bottom: 2px;
}
.mb-3 {
    margin-bottom: 3px;
}
.mb-4 {
    margin-bottom: 4px;
}
.mb-5 {
    margin-bottom: 5px;
}
.my-1 {
    margin-top: 1px;
    margin-bottom: 1px;
}
.my-2 {
    margin-top: 2px;
    margin-bottom: 2px;
}
.my-3 {
    margin-top: 3px;
    margin-bottom: 3px;
}
.my-4 {
    margin-top: 4px;
    margin-bottom: 4px;
}
.my-5 {
    margin-top: 5px;
    margin-bottom: 5px;
}
.mx-1 {
    margin-left: 1px;
    margin-right: 1px;
}
.mx-2 {
    margin-left: 2px;
    margin-right: 2px;
}
.mx-3 {
    margin-left: 3px;
    margin-right: 3px;
}
.mx-4 {
    margin-left: 4px;
    margin-right: 4px;
}
.mx-5 {
    margin-left: 5px;
    margin-right: 5px;
}
.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;
}
.mr-6 {
    margin-right: 6px;
}
.mr-7 {
    margin-right: 7px;
}
.mr-8 {
    margin-right: 8px;
}
.ml-1 {
    margin-left: 1px;
}
.ml-2 {
    margin-left: 2px;
}
.ml-3 {
    margin-left: 3px;
}
.ml-4 {
    margin-left: 4px;
}
.ml-5 {
    margin-left: 5px;
}
.ml-6 {
    margin-left: 6px;
}
.ml-7 {
    margin-left: 7px;
}
.ml-8 {
    margin-left: 8px;
}
.ml-9 {
    margin-left: 9px;
}
.pt-1 {
    padding-top: 1px;
}
.pt-2 {
    padding-top: 2px;
}
.pt-3 {
    padding-top: 3px;
}
.pt-4 {
    padding-top: 4px;
}
.pt-5 {
    padding-top: 5px;
}
.pt-6 {
    padding-top: 6px;
}
.pt-7 {
    padding-top: 7px;
}
.pt-8 {
    padding-top: 8px;
}
.pt-9 {
    padding-top: 9px;
}
.pb-1 {
    padding-bottom: 1px;
}
.pb-2 {
    padding-bottom: 2px;
}
.pb-3 {
    padding-bottom: 3px;
}
.pb-4 {
    padding-bottom: 4px;
}
.pb-5 {
    padding-bottom: 5px;
}
.py-1 {
    padding-top: 1px;
    padding-bottom: 1px;
}
.py-2 {
    padding-top: 2px;
    padding-bottom: 2px;
}
.py-3 {
    padding-top: 3px;
    padding-bottom: 3px;
}
.py-4 {
    padding-top: 4px;
    padding-bottom: 4px;
}
.py-5 {
    padding-top: 5px;
    padding-bottom: 5px;
}
.py-6 {
    padding-top: 6px;
    padding-bottom: 6px;
}
.py-7 {
    padding-top: 7px;
    padding-bottom: 7px;
}
.py-8 {
    padding-top: 8px;
    padding-bottom: 8px;
}
.py-9 {
    padding-top: 9px;
    padding-bottom: 9px;
}
.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;
}
.pl-1 {
    padding-left: 1px;
}
.pl-2 {
    padding-left: 2px;
}
.pl-3 {
    padding-left: 3px;
}
.pl-4 {
    padding-left: 4px;
}
.pl-5 {
    padding-left: 5px;
}
.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;
}
.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;
}
.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;
}
/* 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);
}
/* 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;
}

/* 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;
}

/* ============================= */
/* Print Label Styles */
/* ============================= */

/* Label preview and print styles */
.label-preview {
    margin: 20px 0;
    display: flex;
    justify-content: center;
}

.print-label {
    width: 3.5in;
    height: 2.4in;
    border: 2px solid #ccc;
    padding: 0.15in;
    background: white;
    box-sizing: border-box;
    overflow: hidden;
}

.label-content {
    display: flex;
    flex-direction: row;
    height: 100%;
    align-items: center;
    justify-content: space-between;
}

.label-text-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    padding-right: 0.1in;
}

.label-title {
    font-size: 11pt;
    font-weight: bold;
    text-align: center;
    margin-bottom: 4px;
}

.label-description {
    font-size: 9pt;
    text-align: center;
    margin-bottom: 6px;
}

.label-barcode-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.label-barcode {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 4px;
}

.label-barcode svg {
    max-width: 100%;
    height: auto;
}

.label-id {
    font-size: 7pt;
    text-align: center;
    font-weight: bold;
}

/* Print styles */
@media print {
    @page {
        size: 3.5in 2.4in;
        margin: 0;
    }
    
    html, body {
        width: 3.5in;
        height: 2.4in;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    
    * {
        visibility: hidden;
    }
    
    .print-label,
    .print-label *,
    .label-content,
    .label-content *,
    .label-text-section,
    .label-text-section *,
    .label-barcode-section,
    .label-barcode-section * {
        visibility: visible;
    }
    
    .print-label {
        position: absolute;
        left: 0;
        top: 0;
        width: 3.5in;
        height: 2.4in;
        border: none;
        margin: 0;
        padding: 0.15in;
        box-sizing: border-box;
        overflow: hidden;
        page-break-after: avoid;
        page-break-inside: avoid;
    }
}