/**
 * TEMP
 *
 * @format
 */

#vplus-lot-list [type="checkbox"] {
  display: none;
}

:root {
  --gray-300: #dee2e6;
  --vplus-surface-canvas: #f6f7f9;
  --vplus-surface-panel: #ffffff;
  --vplus-surface-panel-alt: #f8f9fa;
  --vplus-surface-subtle: #f6f8fb;
  --vplus-border-default: #d9e1ea;
  --vplus-border-strong: #e5eaf0;
  --vplus-text-primary: #1f2933;
  --vplus-text-secondary: #5f6c7b;
  --vplus-text-muted: #4b5563;
  --vplus-heading-accent: #003566;
  --vplus-link-subtle: #53627a;
  --vplus-accent-text: #0f4c81;
  --vplus-accent-soft: #e8f1fb;
  --vplus-ring-color: rgba(13, 110, 253, 0.18);
  --vplus-info-soft: rgba(13, 110, 253, 0.1);
  --vplus-info-border: rgba(13, 110, 253, 0.24);
  --vplus-info-text: #0f4c81;
  --vplus-warning-soft: rgba(255, 193, 7, 0.12);
  --vplus-warning-border: rgba(255, 193, 7, 0.28);
  --vplus-warning-text: #8a6d1f;
  --vplus-success-soft: rgba(40, 167, 69, 0.14);
  --vplus-success-text: #1f7a35;
  --vplus-danger-soft: rgba(220, 53, 69, 0.14);
  --vplus-danger-text: #b42332;
  /* Motion tokens — shared vocabulary for transitions/animations across the suite. */
  --vplus-motion-fast: 120ms;
  --vplus-motion-base: 180ms;
  --vplus-motion-slow: 280ms;
  --vplus-ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --vplus-ease-in: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  --vplus-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  --vplus-stagger-step: 45ms;
}

b,
strong {
  font-weight: bold;
}

#main {
  padding-top: 1rem;
}

/* BASIC */
small {
  display: inline-block;
}

/* CORE */
@media (max-width: 420px) {
  .hidden-xxs {
    display: none !important;
  }
}

.padding-top-10 {
  padding-top: 10px;
}
.padding-top-20 {
  padding-top: 20px;
}
.padding-bottom-10 {
  padding-bottom: 10px;
}
.padding-bottom-20 {
  padding-bottom: 20px;
}
.hidden {
  display: none;
}
.relative {
  position: relative;
}
.on-top,
.filter-panel.on-top {
  z-index: 999;
}
.disable-link {
  pointer-events: none;
  cursor: default;
}
.grey-text {
  color: #999;
}
.strikethrough {
  text-decoration: line-through;
}
.margin-top-20 {
  margin-top: 20px;
}
.margin-bottom-20 {
  margin-bottom: 20px;
}

.vplus-delete-prompt .btn-block + .btn-block {
  margin-top: 0;
}

/* FORM */
sup.required {
  color: #e84242;
}
input.error {
  color: #e84242;
  background: red;
  border-color: #e84242;
}

#vplus-login {
  width: 100px;
}
/* USER LOGGED IN */
.vplus-login-info {
  text-align: right;
  margin-bottom: 20px;
}
.vplus-login-nav {
  margin-bottom: 20px;
}

/* SEARCH FORM - FILTER PANEL */
.vplus-js-on .vplus-search-form {
  display: none;
}
.filter-panel * {
  font-weight: normal;
}
.filter-panel.on-top {
  background: rgba(255, 255, 255, 0.9);
  opacity: 1;
}
.filter-panel {
  position: absolute;
  background: #fff;
  padding: 20px;
  box-shadow: #ccc 0 3px 5px;
  margin-top: 8px;
  margin-left: -8px;
  width: 100%;
  min-width: 200px;
  z-index: 100;
  opacity: 0.9;
}
th.filter-heading.filter-active {
  background: #fff;
  position: relative;
}
.collapse-all {
  float: right;
}
/* LOT META */
.vplus-status-draft {
  color: #999;
  background: transparent !important;
}
.vplus-status-review {
  color: #f3be1e;
  background: transparent !important;
}
.vplus-status-accepted {
  color: #24b532;
  background: transparent !important;
}
.vplus-status-rejected {
  color: #e84242;
  background: transparent !important;
}
.vplus-status-box {
  line-height: 1;
  display: inline-block;
  padding: 5px 8px;
  border-radius: 3px;
}
.vplus-status-box.vplus-status-draft {
  background-color: #999;
  color: #fff;
}
.vplus-status-box.vplus-status-review {
  background-color: #f3be1e;
  color: #fff;
}
.vplus-status-box.vplus-status-accepted {
  background-color: #24b532;
  color: #fff;
}
.vplus-status-box.vplus-status-rejected {
  background-color: #e84242;
  color: #fff;
}
.vplus-meta-data {
  margin: 40px 0;
}
.vplus-meta-data li {
  line-height: 1.8em;
}
.bid-override {
  color: #c00;
}
/* VP LINKS */
.vplus-link,
.vplus-link:hover,
.vplus-link:focus,
.vplus-link:visited,
.vplus-link:active {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
}

.vplus-link,
.vplus-link:active {
  transform: scale(1);
}
.vplus-link:hover {
  transform: scale(1.1);
}

/* LOT CATALOGUE */
#vplus-lot-list .table > thead > tr > th {
  vertical-align: top;
}
#vplus-lot-list .table-striped > tbody > tr:nth-of-type(odd) {
  background-color: rgba(200, 200, 200, 0.2);
}
#vplus-lot-list {
  min-height: 200px;
}
#vplus-lot-actions {
  display: flex;
  align-items: stretch;
  flex-direction: row;
}
.vplus-submission-final-actions {
  display: flex;
  align-items: stretch;
  flex-direction: row;
}
#vplus-submission-splash {
  position: absolute;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 3rem;
  background: rgba(255, 255, 255, 0.97);
  border-radius: 0.5rem;
}
.vplus-blueflag-heading-icon {
  color: #495057;
}
@media (max-width: 767.98px) {
  #vplus-lot-actions {
    flex-direction: column !important;
  }
  .vplus-submission-final-actions {
    flex-direction: column !important;
  }
}

.vplus-gallery-main .swiper-slide {
  position: relative;
}

.vplus-gallery-slide-label {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  z-index: 3;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background: rgba(17, 24, 39, 0.78);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
}

.table-heading th a {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}
.table-heading th [data-filter] {
  cursor: pointer;
  transform: scale(1);
}
.table-heading th [data-filter]:hover {
  transform: scale(1.1);
  color: #2272b9;
}
.no-results {
  padding: 50px 0;
}
/* LOT TABLE JS LOADING */
.table-loading {
  position: relative;
}
.table-loading tbody {
  opacity: 0.5;
}
.table-loading:before {
  content: "";
  position: absolute;
  border: 3px dotted #2272b9;
  z-index: 1000;
  margin-left: -15px;
  margin-top: -15px;
  height: 30px;
  width: 30px;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  z-index: 1000;
  animation: dashicons-spin 5s linear infinite;
}

/* MESSAGE BOX (for logs) */
.log-box {
  margin-top: 5px;
}
.log-box.log-box ul {
  margin-top: 10px;
  margin-bottom: 10px;
}
.message-box + .log-box {
  margin-top: 10px;
}
ul.text-status {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
ul.text-error {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
ul.text-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
ul.text-success {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
ul.text-status,
ul.text-error,
ul.text-warning,
ul.text-success {
  padding: 15px 0 15px 30px;
  margin-bottom: 20px;
  border: 1px solid transparent;
  border-radius: 0;
  list-style-type: circle;
  list-style-position: outside;
}

/* VP BUTTON NAVIGATION */
.vplus-navigation-bar {
  text-align: center;
  margin-bottom: 40px;
}
.vplus-navigation-bar a {
  width: 120px;
}
/* AJAX STYLES */
.deleting {
  background: pink;
}

/* PAGINATION */
.pagination a {
  cursor: pointer;
}

/* JQUERY UPLOAD DROPZONE */
#dropzone {
  text-align: center;
  font-size: 3rem;
}
@media (min-width: 450px) {
  #dropzone {
    padding: 0;
    background: #eee;
    border: 1px dashed var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    width: 100%;
    height: 250px;
    line-height: 250px;
    text-align: center;
    font-weight: bold;
    font-size: 4rem;
  }
}
@media (max-width: 449px) {
  #dropzone .fileinput-container {
    transform: scale(0.8);
  }
}
#dropzone .fileinput-container {
  line-height: 1;
  display: inline-block;
  vertical-align: middle;
}
#dropzone .fileinput-button {
  vertical-align: top;
  color: #0073aa;
}
#dropzone .fileinput-button.disabled {
  vertical-align: top;
  color: #ccc;
}
#dropzone.hover {
  background: #d9edf3;
}
#dropzone.fade {
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  opacity: 1;
}

/* MEDIA OPTIONS */
.vplus-media-files {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
}

@media (min-width: 576px) {
  .vplus-media-files {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 768px) {
  .vplus-media-files {
    grid-template-columns: repeat(5, 1fr);
  }
}

@media (min-width: 992px) {
  .vplus-media-files {
    grid-template-columns: repeat(8, 1fr);
  }
}
/*.vplus-media-option,
.vplus-media-option:visited {
padding:5px;
text-decoration: none;
border-radius: 50%;
background:rgba(255,255,255,0.8);
box-shadow: #ccc 0 2px 2px;
}*/
/*.vplus-media-files .vplus-media-option {
position: absolute;
width: auto;
height: auto;
padding: 5px;
border-radius: 50%;
background: #fff;
box-shadow: #ccc 0 2px 2px;
}
.vplus-media-files .image-box .vplus-media-option {
top: -5px;
}
.vplus-media-option:hover,
.vplus-media-option:focus {
text-decoration: none;
cursor: pointer;
transform: scale(1.1);
}

.vplus-media-option:active {
text-decoration: none;
transform: scale(1);
}*/
.vplus-media-option.disabled.disabled {
  color: #ccc;
}
.attachment-container:nth-child(even) .file-item {
  background-color: #eee;
}
.vplus-media-files .image-box {
  border: 1px solid #ccc;
  border-radius: 0.5rem;
  overflow: hidden;
}
/* Pending upload tiles start with a 1x1 transparent placeholder (the small
   downscaled preview / server thumbnail swaps in async). Hold a stable square
   so the tile doesn't collapse to a 1px sliver and jump when the image loads. */
.vplus-media-files .vplus-file-container .image-box {
  aspect-ratio: 1 / 1;
  background-color: #f3f4f6;
}
.vplus-media-files .vplus-file-container .image-box .photo,
.vplus-media-files .vplus-file-container .image-box .photo img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.vplus-media-files .vplus-file-container {
  overflow: visible;
}
.vplus-media-files .file-item {
  padding: 10px;
}
.vplus-media-files .file-radio {
  cursor: pointer;
}
.vplus-media-files .image-box .preview-link {
  left: -5px;
}
/*.delete-link {
color: #e84242;
}
.delete-link:hover {
color: #dc3636;
}*/
/*.vplus-media-files .image-box .delete-link {
right: -5px;
}*/
.vplus-media-files .file-item .file-date {
  position: absolute;
  right: 100px;
  text-align: right;
}
.vplus-media-files .file-item .log-link {
  right: 50px;
  top: 4px;
  padding: 5px;
}
.vplus-media-files .file-item .delete-link {
  top: 4px;
  right: 10px;
}
/*.vplus-media-files .delete-prompt {
width: 100%;
height:100%;
background-color: rgba(0,0,0,0.4);
position: absolute;
z-index: 5;
top: 0;
left: 0;
}*/
/*.vplus-media-files .delete-yes,
.vplus-media-files .delete-no {
border-radius: 50%;
background: #fff;
box-shadow: #666 0 2px 2px;
width: auto;
height:auto;
position: absolute;
}
.vplus-media-files .delete-no:hover,
.vplus-media-files .delete-yes:hover,
.vplus-media-files .delete-no:active,
.vplus-media-files .delete-yes:active {
cursor: pointer;
transform: scale(1.1);
}
.vplus-media-files .delete-yes.dashicons-admin-generic {
padding: 10px 14px;
color: #666;
}
.vplus-media-files .delete-yes {
color: #e84242;
}
.vplus-media-files .image-box .delete-no {
position: absolute;
right: -5px;
top: -5px;
color: #e84242;
padding: 5px;
}
.vplus-media-files .file-item .delete-no {
top: 4px;
right: 10px;
padding: 5px;
}*/
.vplus-media-files .file-item .delete-yes {
  top: 4px;
  right: 50px;
  padding: 5px;
}
.vplus-media-files .image-box .delete-yes {
  top: 50%;
  left: 50%;
  font-size: 4em;
  margin-left: -38px;
  margin-top: -38px;
  padding: 10px;
}
.vplus-media-files .image-box .message-box {
  text-align: center;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 100;
  opacity: 0.85;
}
.vplus-media-files .image-box .message-box .text-danger {
  background: #a94442;
  color: #fff;
}
.vplus-media-files .image-box .photo img {
  width: 100%;
  height: auto;
  display: block;
}
.vplus-media-files .file-item .icon {
  margin: 0 0 0 5px;
}
.vplus-media-files .image-box .file-name {
  position: absolute;
  bottom: 0;
  text-align: center;
  font-size: 0.8em;
  line-height: 1;
  width: 100%;
  padding: 15px 5px;
  z-index: 2;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
}
.vplus-media-files .image-box .vplus-set-default {
  position: absolute;
  bottom: 5px;
  right: 5px;
  z-index: 99;
}
.progress {
  position: relative;
  width: 100%;
  height: 12px;
  border-radius: 2px;
  top: auto;
  bottom: 0;
  background: rgba(0,0,0,0.1);
  overflow: hidden;
}
.progress .progress-bar {
  background-color: #22c55e;
  height: 100%;
  border-radius: 2px;
  transition: width 0.3s ease;
}

.image-box > .progress,
.relative.image-box > .progress,
.vplus-media-files .image-box > .progress,
.vplus-file-container .image-box > .progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

.vplus-image-container {
  border-radius: 0.5rem;
}
.vplus-image-container[data-deleted="true"] .vplus-media-option .delete-state {
  display: none;
}
.vplus-image-container[data-deleted="false"] .vplus-media-option .un-delete-state {
  display: none;
}
.vplus-image-container[data-deleted="true"] .photo img {
  opacity: 0.5;
  transition: opacity 0.25s ease-in;
}
.vplus-primary-image {
  position: absolute;
  top: 1px;
  margin-left: 1px;
  font-size: 1.4rem;
  padding: 0.5rem 1rem;
  border-radius: 0 0 5px 0;
}

/* BOOTSTRAP - CUSTOM */
.btn-prev {
  position: absolute;
  top: 0;
  left: 0;
}

.popover.popover .row {
  border-bottom: 1px solid #f2f2f2;
}
.popover.popover .row:last-child {
  border-bottom: 0;
}

@media (min-width: 420px) {
  .popover.popover {
    max-width: max-content;
  }
  .popover.popover .row {
    width: 300px;
  }
}
/* TINY MCE - CUSTOM */
#vplus-vendor-lot-form .wp-editor-container {
  border: 1px solid #ddd;
  border-radius: 3px 0 3px 3px;
  overflow: hidden;
}

/* DASHICONS - CUSTOM */
.dashicons-filter-small {
  font-size: 1em;
  line-height: 1.2em;
}
.dashicons-spin {
  -webkit-animation: dashicons-spin 2s infinite linear;
  animation: dashicons-spin 2s infinite linear;
}

/* ANIMATIONS */
@-webkit-keyframes dashicons-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes dashicons-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

.vplus-set-default .vplus-check-bg {
  color: #fff;
}
.vplus-set-default .vplus-check-border {
  color: #000;
}
.vplus-set-default .vplus-check {
  color: #ccc;
}
.vplus-set-default.vplus-checked .vplus-check-border {
  color: gold;
}
.vplus-set-default.vplus-checked .vplus-check-bg {
  color: #e08e20;
}
.vplus-set-default.vplus-checked .vplus-check {
  color: gold;
  display: inline-block;
}

.table > tbody > tr.header-row > td {
  vertical-align: bottom;
}
.table > tbody > tr > td > * {
  vertical-align: middle;
}
.table > tbody > tr:last-child > td {
  border-bottom: 0;
}

.chart-legend-box {
  width: 14px;
  height: 14px;
  display: inline-block;
  vertical-align: text-top;
  margin-right: 5px;
  opacity: 0;
  border-radius: 3px;
}

.vplus-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  padding: 0.3em 0.7em;
  font-size: 0.72em;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.015em;
  border-radius: 1rem;
  white-space: nowrap;
  vertical-align: middle;
}
/* --- Semantic colour variants --- */
.vplus-badge-pending   { background: #fff3cd; color: #664d03; }
.vplus-badge-approved  { background: #d1e7dd; color: #0f5132; }
.vplus-badge-rejected  { background: #f8d7da; color: #842029; }
.vplus-badge-assigned  { background: #cff4fc; color: #055160; }
.vplus-badge-live      { background: #d1e7dd; color: #0f5132; }
.vplus-badge-sold      { background: #d1e7dd; color: #0f5132; }
.vplus-badge-unsold    { background: #e9ecef; color: #495057; }
.vplus-badge-withdrawn { background: #e9ecef; color: #495057; }
/* --- Functional variants --- */
.vplus-badge-info      { background: #cff4fc; color: #055160; }
.vplus-badge-success   { background: #d1e7dd; color: #0f5132; }
.vplus-badge-warning   { background: #fff3cd; color: #664d03; }
.vplus-badge-danger    { background: #f8d7da; color: #842029; }
.vplus-badge-primary   { background: #cfe2ff; color: #084298; }
.vplus-badge-secondary { background: #e9ecef; color: #495057; }
.vplus-badge-dark      { background: #343a40; color: #fff; }
/* --- Context-specific --- */
.vplus-badge-required  { background: #f8d7da; color: #842029; font-size: 0.65em; }
.vplus-badge-recommended { background: #d1e7dd; color: #0f5132; font-size: 0.65em; }
.vplus-badge-optional  { background: #e9ecef; color: #495057; font-size: 0.65em; }
.vplus-badge-timed     { background: #cfe2ff; color: #084298; }
.vplus-badge-webcast   { background: #f8d7da; color: #842029; }
.vplus-badge-marketplace { background: #343a40; color: #fff; }

.badge-lighter {
  background: #e9eef6;
  color: var(--bs-gray-800);
}
.badge-light {
  background: #e9eef6;
  color: var(--bs-gray-800);
}

/* ── Multi-select checkbox dropdown ── */
.vplus-multi-select-dropdown .form-select {
  height: calc(3.5rem + calc(var(--bs-border-width) * 2));
  padding: 1rem 2.25rem 1rem 0.75rem;
  color: var(--bs-body-color);
  cursor: pointer;
}
.vplus-multi-select-dropdown .dropdown-menu {
  max-height: 280px;
  overflow-y: auto;
  border-radius: var(--bs-border-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.vplus-multi-select-dropdown .form-check {
  margin-bottom: 0;
}
.vplus-multi-select-dropdown .form-check-label {
  cursor: pointer;
  font-size: 0.9rem;
}
/* Prevent double caret: .form-select adds bg-image caret, .dropdown-toggle adds ::after caret */
.vplus-multi-select-dropdown .dropdown-toggle::after {
  content: none;
}

.vplus-sale-status {
  font-size: 1.2em;
  padding: 10px 20px;
  margin-bottom: 20px;
  font-weight: 100;
  display: inline-block;
  background: #fff;
  box-shadow: #eee 0px 1px 3px;
}
.vplus-draft {
  border-left: 5px solid lightgrey;
}
.vplus-preview {
  border-left: 5px solid lightblue;
}
.vplus-live {
  border-left: 5px solid darkseagreen;
}
.vplus-reconciliation {
  border-left: 5px solid mediumpurple;
}
.vplus-archived {
  border-left: 5px solid brown;
}
.vplus-badge-floor {
  display: inline-block;
  cursor: help;
  padding: 3px 5px;
  margin-left: 3px;
  font-size: 10px;
  line-height: 1;
  color: #fff;
  text-align: center;
  vertical-align: baseline;
  background-color: #337ab7;
  border-radius: 3px;
}
.vplus-badge-commission {
  display: inline-block;
  cursor: help;
  padding: 3px 5px;
  margin-left: 3px;
  font-size: 10px;
  line-height: 1;
  color: #fff;
  text-align: center;
  vertical-align: baseline;
  background-color: #ff7565;
}

#vplus-sync-photos-wrapper {
  margin-top: 40px;
}
#vplus-load-icon {
  margin-bottom: 20px;
}

#woaBidHistoryModal .modal-body {
  padding: 0 15px;
}
.vplus-bid-history-items {
  padding: 10px 0;
}
.vplus-bid-history-items:nth-child(odd) {
  background-color: #f1f1f1;
}
.vplus-bid-history-items-info-2 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.vplus-bid-history-items-username {
  font-size: 0.825rem;
  font-weight: bold;
  display: flex;
  align-items: center;
}
.vplus-bid-history-items-amount {
  text-align: right;
  font-weight: bold;
  font-size: 1.2rem;
  min-width: 150px;
}
.vplus-bid-history-items-time {
  font-size: 0.825rem;
}
@media (min-width: 768px) {
  .vplus-bid-history-items-username {
    margin-bottom: 0;
  }
  .vplus-col-name {
    width: 50%;
  }
}
.vplus-bid-status--unknown .vplus-bid-history-items-amount {
  color: purple;
  opacity: 0.5;
}
.vplus-bid-status--double .vplus-bid-history-items-amount {
  text-decoration: line-through;
  color: darkorange;
  opacity: 0.5;
}
.vplus-bid-status--suspended .vplus-bid-history-items-amount {
  text-decoration: line-through;
  color: darkred;
  opacity: 0.5;
}
.vplus-bid-status--cancelled .vplus-bid-history-items-amount {
  text-decoration: line-through;
  opacity: 0.5;
}

#woa-download-invoice {
  margin-left: 1rem;
}

/* Styles */
.vplus-logo {
  margin: 1rem 0;
}
.header > .container:after {
  border-bottom: 1px solid #d9d9d9;
  content: " ";
  display: block;
}

/* Desktop container width */
@media (min-width: 1200px) {
  .container {
    max-width: 1800px;
  }
}

.btn-collapse-toggle {
  padding: 0 1rem;
  color: #666;
}
.btn-collapse-toggle:not(.collapsed) span[class*="fa-"] {
  transform: rotate(180deg);
}
.btn-collapse-toggle:focus {
  border-color: transparent;
  background: #f5f5f5;
}
.btn-collapse-toggle:focus {
  outline: none;
  border-color: transparent;
}
.card {
  margin-bottom: 1rem;
}
.card h5 {
  color: #6b6b6b;
  font-size: 0.825rem;
  text-transform: uppercase;
  font-weight: bold;
  margin: 0;
}
.card-body + .card-body.collapse,
.card-body + .card-body.collapsing {
  padding-top: 0;
}
.card-body > .row {
  row-gap: 1rem;
}
/* .input-group .form-control {
  border-right-color: transparent;
}
.input-group .input-group-text + div > .form-control {

} */

.file-upload {
  padding: 1rem 0.75rem;
  font-weight: 300;
  color: #666;
  border-top-left-radius: var(--bs-border-radius) !important;
  border-bottom-left-radius: var(--bs-border-radius) !important;
}
.file-upload--hidden + .file-upload {
  border-right: 0;
}
.file-upload--hidden + .file-upload + .btn {
  border-left: 0;
}
.file-upload--hidden.d-none + .file-upload,
.file-upload--hidden.d-none + .file-upload + .btn {
  background-color: var(--bs-secondary-bg);
}
.file-upload--hidden.d-none + .file-upload + .btn {
  border-color: var(--bs-border-color);
  color: var(--bs-gray-700);
}

.input-group .file-upload--hidden {
  position: absolute;
  opacity: 0;
  width: 100%;
  z-index: 3;
  height: 100%;
}
.input-group.input-group div ~ button {
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-left-color: transparent;
}
.input-group.input-group div ~ button:hover {
  background: transparent;
  color: var(--bs-primary);
}
.input-group:has(.form-floating + button) input {
  border-right-color: transparent;
}

.vplus-form-status:empty,
.vplus-file-photo-ai-uploaded:empty {
  display: none;
}
.vplus-file-photo-ai-uploaded {
  position: relative;
}
.vplus-file-photo-ai-uploaded img {
  border: 1px solid #f2f2f2;
  max-width: 100%;
  height: auto;
  border-radius: var(--bs-border-radius);
}

/* Minimum Offer Amount field highlight (red border) */
.vplus-minimum-offer-highlight {
  border: 2px solid var(--bs-danger);
  border-radius: var(--bs-border-radius);
}
.vplus-minimum-offer-highlight .input-group-text {
  border: 0;
}
.vplus-minimum-offer-highlight .form-control {
  border: 0;
}

.form-check-wrapper,
.form-radio-wrapper {
  min-height: 3.625rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* .form-row:not(:last-child) {
  margin-bottom: 1rem;
} */

.alert p:last-child {
  margin-bottom: 0;
}

.btn-link-toggle {
  padding: 0 0.5rem;
  line-height: 1rem;
}

.btn-link-toggle + .collapsing {
  transition: all 0.3s ease-in;
}
.btn-link-toggle + .collapse {
  margin-top: 0;
}
.btn-link-toggle + .collapse.show,
.btn-link-toggle + .collapsing {
  margin-top: 1rem;
}
.btn-link-toggle:focus,
.btn-link-toggle:active {
  outline: none;
  --bs-btn-active-border-color: transparent;
}
.btn-link-toggle[aria-expanded="false"] .fa-toggle-on,
.btn-link-toggle[aria-expanded="false"] .fa-toggle-large-on {
  display: none;
}
.btn-link-toggle[aria-expanded="true"] .fa-toggle-off,
.btn-link-toggle[aria-expanded="true"] .fa-toggle-large-off {
  display: none;
}

.card-body .tab-content {
  padding: 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius);
  border-top: 0;
}

.card-body .row {
  row-gap: 1rem;
}

.vplus-upload-status {
  font-weight: bold;
  font-size: 0.75rem;
}

#vplus-video-tabs-content + .vplus-upload-status {
  margin-top: 1rem;
}

/* This code is from v1 of AI photo upload area */
/* .vplus-file-wrapper {
  padding-top: 0%;
  position: relative;
  transition: padding-top 0.5s ease-out;
}
.vplus-file-wrapper.init,
.vplus-file-wrapper:has(img) {
  padding-top: 75%;
}
.vplus-file-loading {
  display: none;
}
.vplus-file-wrapper.init + .vplus-file-loading {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3rem;
  color: #666;
}
.vplus-file-wrapper img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
} */

blockquote {
  border-left: calc(1rem / 2) solid #d4edff;
  padding-left: 0.75rem;
  font-weight: 300;
}

p,
ul,
ol,
li {
  font-weight: 400;
}

.vplus-file-wrapper {
  display: none;
  padding: 1rem;
  border: 1px dashed var(--gray-300);
  border-radius: var(--bs-border-radius);
  /* Prevent accidental text selection during drag/scroll gestures */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.vplus-file-wrapper.show {
  display: block !important;
  margin-top: 1rem;
}

.toast-close.toast-close {
  position: absolute;
  top: 0.25rem;
  right: 0.25rem;
  font-size: 0.75em;
}

@media (max-width: 575px) {
  .toastify {
    font-size: 0.825rem;
  }
}

.vplus-media-option {
  display: flex;
  pointer-events: none;
  opacity: 0;
  position: absolute;
  bottom: calc(100% - 0.5rem);
  z-index: -1;
  transition: bottom 0.3s ease-in, opacity 0.3s ease-in;
}
.vplus-media-option.show {
  border: 1px solid #eee;
  opacity: 1;
  pointer-events: auto;
  border-radius: 5px;
  z-index: 100;
  background: #fff;
  bottom: calc(100% + 1rem);
  left: 50%;
  transform: translateX(-50%);
}
.vplus-media-option:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 10px;
  border-style: solid;
  border-color: #eee transparent transparent transparent;
}
.vplus-media-option:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 8px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}

@media (max-width: 575.98px) {
  .vplus-media-option.show {
    position: fixed;
    left: 0.75rem;
    right: 0.75rem;
    bottom: max(0.75rem, env(safe-area-inset-bottom));
    transform: none;
    width: auto;
    max-width: none;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem;
    border-radius: 12px 12px 10px 10px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
    z-index: 1060;
  }

  .vplus-media-option:before,
  .vplus-media-option:after {
    display: none;
  }

  .vplus-media-option > .btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .vplus-media-option .vplus-delete-prompt.show {
    width: 100%;
    max-width: 22rem;
  }
}

.vplus-file-container:has(> .vplus-delete-prompt.show) > .vplus-media-option,
.vplus-file-item:has(> .vplus-delete-prompt.show) > .vplus-file-delete {
  display: none;
}

.vplus-delete-prompt {
  display: none;
}
.vplus-delete-prompt.show {
  display: flex;
  flex-direction: column;
  width: max-content;
  max-width: min(240px, calc(100vw - 2rem));
  justify-content: center;
  align-items: stretch;
  gap: 0.5rem;
  min-height: 0;
  padding: 0.7rem;
}
.vplus-delete-prompt-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-width: 0;
  width: 100%;
}
.vplus-delete-prompt-label {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 0;
  color: #212529;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
.vplus-delete-prompt-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: #842029;
  font-size: 0.95rem;
}
.vplus-file-container .vplus-delete-prompt.show {
  position: absolute;
  bottom: calc(100% + 0.5rem);
  left: 50%;
  transform: translateX(-50%);
  min-width: 190px;
  z-index: 200;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
}

.vplus-upload-status {
  display: none;
  margin-bottom: 1rem;
}

.vplus-file-container {
  position: relative;
}
.vplus-file-container.selected .image-box {
  box-shadow: 0px 0px 0 4px rgba(var(--bs-primary-rgb), 0.25);
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}
.vplus-file-container.selected .image-box .photo {
  opacity: 0.75;
}
.vplus-file-container.already-synced .image-box {
  border-color: var(--bs-teal);
}
.vplus-file-container.to-be-synced .image-box {
  border-color: var(--bs-blue);
}
.vplus-file-container .vplus-cloud-check {
  color: var(--bs-teal);
  border-color: var(--bs-teal);
}
.vplus-file-container .vplus-cloud-upload {
  color: var(--bs-blue);
  border-color: var(--bs-blue);
}
.vplus-file-container .vplus-cloud-check,
.vplus-file-container .vplus-cloud-upload,
.vplus-file-container [class*=" vplus-cloud-"] {
  position: absolute;
  right: -0.5rem;
  bottom: calc(100% - 1rem);
  border: 1px solid;
  border-radius: 50%;
  background: #fff;
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
}

.vplus-auctioneer-defaults-badge {
  cursor: pointer;
  transition: box-shadow 0.15s ease, filter 0.15s ease, transform 0.15s ease;
}

.vplus-auctioneer-defaults-badge:hover,
.vplus-auctioneer-defaults-badge:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, 0.2);
}

.vplus-auctioneer-defaults-badge.is-active {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.35), 0 0.25rem 0.65rem rgba(0, 0, 0, 0.16);
}

#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-tabs {
  gap: 0;
  justify-content: center;
}

#vplus-card--auctioneer-defaults {
  text-align: center;
}

#vplus-card--auctioneer-defaults > .d-flex {
  justify-content: center !important;
}

#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button {
  border-color: rgba(255, 255, 255, 0.5);
  color: #fff;
  font-weight: 600;
  min-height: 2.25rem;
  transition: box-shadow 0.15s ease, filter 0.15s ease, transform 0.15s ease;
}

#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button.bg-warning,
#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button.bg-info {
  color: #1f2933;
}

#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button:hover,
#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, 0.2);
}

#vplus-card--auctioneer-defaults .vplus-auctioneer-defaults-button.active {
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.85), 0 0 0 0.2rem rgba(13, 110, 253, 0.28);
  filter: saturate(1.12) brightness(1.04);
}
.vplus-file-item .vplus-delete-prompt.show {
  width: max-content;
  right: 0;
  border-radius: var(--bs-border-radius);
  max-width: 100%;
}

.vplus-delete-prompt--file.show {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  width: 100%;
  max-width: 100%;
  padding: 0.75rem 1rem;
}

.vplus-delete-prompt--file .vplus-delete-prompt-icon {
  flex: 0 0 auto;
}

.vplus-delete-prompt--file .vplus-delete-prompt-label {
  flex: 1 1 auto;
  width: auto;
  margin: 0;
}

.vplus-delete-prompt--file .vplus-delete-prompt-heading {
  order: 1;
  flex: 1 1 auto;
}

.vplus-delete-prompt--file > .delete-yes {
  order: 3;
  flex: 0 0 auto;
}

.vplus-delete-prompt--file > .delete-no {
  order: 4;
  flex: 0 0 auto;
}

.vplus-delete-prompt .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 36px;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.35rem 0.65rem;
  border-radius: 0.35rem;
  text-decoration: none;
  gap: 0.25rem;
}
.vplus-delete-prompt .btn span {
  line-height: 1;
}
.vplus-delete-prompt .delete-no {
  color: #495057;
  background: #e9ecef;
  border-color: #dee2e6;
}
.vplus-delete-prompt .delete-no:hover {
  background: #dee2e6;
}
.vplus-delete-prompt .delete-yes {
  color: #fff;
  background: var(--bs-danger);
  border-color: var(--bs-danger);
}
.vplus-delete-prompt .delete-yes:hover,
.vplus-delete-prompt .delete-yes:focus {
  color: #fff;
  background: #bb2d3b;
  border-color: #b02a37;
}
.vplus-delete-prompt--video .delete-yes {
  background: #6f42c1;
  border-color: #6f42c1;
}
.vplus-delete-prompt--video .delete-yes:hover,
.vplus-delete-prompt--video .delete-yes:focus {
  background: #5a34a0;
  border-color: #5a34a0;
}
.processing {
  display: none;
  gap: 0.25rem;
  padding: 0.5rem;
  min-height: 38px;
  align-items: center;
}
.processing.show {
  display: flex;
}
.vplus-featured-image-icon {
  position: absolute;
  z-index: 50;
  color: #ffa500;
  font-size: 1.5rem;
  bottom: calc(100% - 0.5rem);
  line-height: 1rem;
  left: -0.25rem;
  transform: rotate(-15deg);
  text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.2);
}

.vplus-ai-file-icon {
  display: none;
  position: absolute;
  color: var(--bs-primary);
  z-index: 50;
  font-size: 1.25rem;
  bottom: calc(100% - 1rem);
  line-height: 1rem;
  right: -0.5rem;
  border: 1px solid #eee;
  padding: 0.25rem;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
  border-radius: 1rem;
  background: #fff;
}

#vplus-ai-form-panel .vplus-ai-file-icon,
#vplus-ai-form-panel .ai-link {
  display: block;
}

a.delete-link {
  color: var(--bs-danger);
}
a.ai-link {
  color: purple;
  display: none;
}
a.process-link {
  color: var(--bs-warning);
  display: none;
}
.vplus-img-proc-enabled a.process-link {
  display: block;
}

.vplus-process-prompt {
  display: none;
}
.vplus-process-prompt.show {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  min-width: 150px;
  padding: 0.5rem;
}
.vplus-process-prompt .btn-proc {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 500;
  padding: 0.4rem 0.75rem;
  min-height: 36px;
  border-radius: 2rem;
  white-space: nowrap;
  border: 1px solid #dee2e6;
  background: #f8f9fa;
  color: #333;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.vplus-process-prompt .btn-proc:hover {
  background: #e9ecef;
  border-color: #ced4da;
  color: #111;
  text-decoration: none;
}
.vplus-process-prompt .btn-proc:active {
  background: #dee2e6;
}
.vplus-process-prompt .process-revert {
  border-color: var(--bs-warning);
  color: #856404;
  background: #fff8e1;
}
.vplus-process-prompt .process-revert:hover {
  background: #fff3cd;
  border-color: #c69500;
  color: #664d03;
}
.vplus-process-prompt .process-cancel {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1rem;
  padding: 0.15rem;
  min-height: 28px;
  text-decoration: none;
  transition: color 0.15s ease;
}
.vplus-process-prompt .process-cancel:hover {
  color: #555;
}
.vplus-process-prompt .processing {
  display: none;
  text-align: center;
  color: #888;
  font-size: 0.8rem;
  padding: 0.25rem 0;
}
.vplus-process-prompt .processing.show {
  display: block;
}
.vplus-media-option:has(.vplus-process-prompt.show) > .btn {
  display: none;
}

.vplus-file-container.vplus-processing .image-box::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 10;
  border-radius: inherit;
}
/* Processing progress overlay (replaces gear spinner) */
.vplus-proc-overlay {
  position: absolute;
  inset: 0;
  z-index: 11;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  pointer-events: none;
}
.vplus-proc-overlay .vplus-proc-label {
  color: #fff;
  font-size: 0.65rem;
  font-weight: 600;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  white-space: nowrap;
}
.vplus-proc-overlay .vplus-proc-track {
  width: 70%;
  height: 8px;
  background: rgba(255,255,255,0.25);
  border-radius: 2px;
  overflow: hidden;
}
.vplus-proc-overlay .vplus-proc-fill {
  height: 100%;
  width: 0%;
  background: #f97316;
  border-radius: 2px;
  transition: width 0.4s ease;
}

.vplus-processed-badge {
  position: absolute;
  z-index: 50;
  color: var(--bs-warning);
  font-size: 1rem;
  top: -0.35rem;
  right: -0.35rem;
  border: 1px solid #eee;
  padding: 0.15rem;
  box-shadow: 1px 2px 5px rgba(0,0,0,0.1);
  border-radius: 1rem;
  background: #fff;
  line-height: 1;
}

/* ================================
   Image Editor Modal (Cropper.js)
   ================================ */
.vplus-editor-modal .modal-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.vplus-editor-canvas {
  flex: 1 1 auto;
  min-height: 300px;
  max-height: 60vh;
  overflow: hidden;
  background: #1a1a2e;
  position: relative;
}
.vplus-editor-canvas.vplus-editor-loading::after {
  content: "\f110";
  font-family: "Font Awesome 6 Pro";
  font-weight: 400;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2rem;
  color: rgba(255, 255, 255, 0.7);
  animation: fa-spin 1s linear infinite;
}
.vplus-editor-canvas img {
  display: block;
  max-width: 100%;
}
.vplus-editor-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: #f8f9fa;
  border-top: 1px solid #dee2e6;
  flex-wrap: wrap;
}
.vplus-editor-tools {
  display: flex;
  gap: 2px;
}
.vplus-editor-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: #fff;
  color: #333;
  font-size: 0.85rem;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.vplus-editor-btn:hover {
  background: #e9ecef;
  border-color: #ced4da;
}
.vplus-editor-btn:active {
  background: #dee2e6;
}
.vplus-editor-ratios {
  display: flex;
  gap: 2px;
}
.vplus-editor-ratio {
  padding: 0.25rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 600;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: #fff;
  color: #555;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.vplus-editor-ratio:hover {
  background: #e9ecef;
}
.vplus-editor-ratio.active {
  background: var(--bs-primary, #3b82f6);
  border-color: var(--bs-primary, #3b82f6);
  color: #fff;
}
@media (max-width: 575.98px) {
  .vplus-editor-canvas {
    max-height: 50vh;
  }
  .vplus-editor-toolbar {
    justify-content: center;
  }
}

.form-floating > label {
  color: #000000;
  font-weight: var(--vplus-font-weight-light);
  opacity: 1;
}

.input-group.input-group.input-group:has(.invalid-feedback) .input-group-text + .form-floating .form-control {
  border-right: 1px solid var(--bs-border-color);
}
.input-group.input-group.input-group:has(.invalid-feedback) .input-group-text + .form-floating .form-control,
.input-group.input-group.input-group:has(.invalid-feedback) .form-floating + .btn,
.input-group.input-group.input-group:has(.invalid-feedback) .form-floating + .input-group-text {
  border-top-right-radius: var(--bs-border-radius);
  border-bottom-right-radius: var(--bs-border-radius);
}

.card-featured {
  --bs-card-border-color: var(--bs-warning);
  border-color: var(--bs-warning) !important;
  box-shadow: 0 0 12px 4px rgba(var(--bs-warning-rgb), 0.4), 0 0 0 2px rgba(var(--bs-warning-rgb), 0.6);
}

.form-field-combine {
  display: flex;
}
.form-field-combine > .form-field-combine-item {
  flex: 1;
}
.form-field-combine > .form-field-combine-item:not(:last-child) input,
.form-field-combine > .form-field-combine-item:not(:last-child) select {
  border-radius: 0;
  border-right: 0;
}
.form-field-combine > .form-field-combine-item:first-child input,
.form-field-combine > .form-field-combine-item:first-child select {
  border-radius: var(--bs-border-radius) 0 0 var(--bs-border-radius);
  border-right: 0;
}
.form-field-combine > .form-field-combine-item:last-child input,
.form-field-combine > .form-field-combine-item:last-child select {
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
  border-left-style: dashed;
}

/* Auction Date & Time combine groups (Bidding Start/End): the date + time
   fields sit side-by-side (flex, 50/50). In the narrow ~360px tablet-portrait
   col-md-6 the time field's floating label clips ("Bidding Start Time" →
   "Bidding Start…"). Below lg, stack the two items so each gets the full column
   width and its label fits, separated by a gap. Scoped to the date/time block
   so other form-field-combine groups are untouched. */
@media (max-width: 991.98px) {
  #vplus-auction-datetime .form-field-combine {
    flex-direction: column;
    gap: 0.5rem;
  }
}

#vplus-sign-in-form .row {
  gap: 1rem;
}

[data-ref].invalid-feedback:empty {
  display: none;
}
[data-ref].invalid-feedback {
  display: block;
}

.row > div > blockquote:last-child {
  margin: 0;
}

.alert:empty {
  display: none;
}

.vplus-table-header {
  font-weight: bold;
}
.ghost-item > div:not(.image-box) {
  display: none;
}
.ghost-item .image-box {
  opacity: 0.5;
  border: 2px dashed #ccc;
}
.ghost-item img {
  opacity: 0;
}

.vplus-file-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  /* Prevent accidental text selection during drag/scroll gestures */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.vplus-file-item {
  --bs-card-border-width: var(--bs-border-width);
  --bs-card-border-color: var(--bs-border-color-translucent);
  --bs-card-border-radius: var(--bs-border-radius);
  --bs-card-bg: var(--bs-body-bg);
  position: relative;
  display: flex;
  color: var(--bs-body-color);
  background-color: var(--bs-card-bg);
  background-clip: border-box;
  border: var(--bs-card-border-width) solid var(--bs-card-border-color);
  border-radius: var(--bs-card-border-radius);
  align-items: center;
}

.vplus-file-item .vplus-file-name {
  flex: 1 0;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  /* Allow text selection on file names for copy purposes */
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}
.vplus-file-item .vplus-file-icon {
  flex: 0 1 auto;
  display: block;
  padding: 1rem;
  color: var(--bs-gray-500);
}
.vplus-file-item .vplus-file-delete {
  flex: 0 1 auto;
  color: var(--bs-gray-800);
}

.vplus-file-item .vplus-file-progress {
  flex: 0 0 100px;
  padding: 0 0.5rem;
  position: relative;
}
.vplus-file-item .vplus-file-progress .progress {
  position: relative;
  width: 100%;
  height: 12px;
  margin: 0;
  top: auto;
  border-radius: 2px;
  background: #e9ecef;
}
.vplus-file-item .vplus-file-cancel {
  flex: 0 1 auto;
  color: var(--bs-gray-500);
  border: none;
  background: transparent;
  padding: 0.5rem 1rem;
}
.vplus-file-item .vplus-file-cancel:hover {
  color: var(--bs-danger);
}

.vplus-file-wrapper.vplus-file-wrapper:not(:has(.vplus-file-container)) {
  display: none;
}

.ql-editor.ql-editor > * {
  margin-bottom: 1rem;
}

.btn.btn.vplus-file-move-handle {
  position: absolute;
  bottom: 0;
  right: 0;
  border-radius: var(--bs-border-radius) 0 0 0;
  border-bottom: 0;
  border-right: 0;
}

.vplus-sales-list .card {
  overflow: visible;
}
.vplus-submission-card {
  overflow: visible !important;
}
#vplus-sale-filter .card,
.vplus-settings-card {
  overflow: visible !important;
}
.vplus-sales-list .card-body {
  row-gap: 0.25rem;
}
@media (max-width: 575px) {
  .vplus-sales-list .card-body {
    padding-top: 0.5rem;
  }
}
.vplus-sales-list .card-body > div {
  align-self: center;
}
.vplus-sales-list .card-body .dropdown {
  margin-right: -0.5rem;
}
.vplus-sales-list .card-body .dropdown-toggle {
  line-height: 1;
  padding: 0.25rem 0.625rem;
}
.vplus-sales-list .card-body .dropdown-toggle.show {
  background: #e9eef6;
}
.vplus-sales-list .sale-name-link {
  display: inline-block;
}
.vplus-sales-list .col-sale-date {
  min-width: 100px;
  font-size: 80%;
  display: inline-block;
}
.vplus-sales-list .col-sale-id {
  min-width: 60px;
  font-size: 80%;
  display: inline-block;
}
.vplus-status-live,
.vplus-status-live-synced {
  color: #2fa358;
}
.badge.vplus-status-sold {
  background-color: #49b5e4;
  color: #ffffff;
}
.vplus-status-sold-floor {
  color: #0a58ca;
  background-color: rgba(10, 88, 202, 0.15);
}
.vplus-status-draft,
.vplus-status-draft-synced {
  color: #5a7ab8;
  background-color: rgba(90, 122, 184, 0.15);
}
.vplus-status-preview,
.vplus-status-pending {
  color: #c99212;
  background-color: transparent;
}
.vplus-status-pending-floor {
  color: #c96712;
  background-color: rgba(246, 145, 83, 0.15);
}
.vplus-status-reconciled,
.vplus-status-reconciliation,
.vplus-status-withdrawn {
  color: #a03f32;
  background-color: transparent;
}
.vplus-status-withdrawn-ended {
  color: #a03f32;
  background-color: transparent;
}
.vplus-status-archived {
  color: #666;
  background-color: rgba(153, 153, 153, 0.15);
}
.vplus-status-unsold {
  color: #ce2610;
  background-color: transparent;
}
.vplus-status-suspended {
  color: #c99212;
  background-color: transparent;
}
.vplus-status-sold-bidding {
  color: #4859db;
  background-color: transparent;
}
.vplus-status-sold-make-offer {
  color: #ebd62d;
  background-color: transparent;
}
.vplus-status-sold-buy-now {
  color: #902deb;
  background-color: transparent;
}

.vplus-badge .vplus-status-preview,
.vplus-badge .vplus-status-pending,
.vplus-badge .vplus-status-reconciled,
.vplus-badge .vplus-status-reconciliation,
.vplus-badge .vplus-status-withdrawn,
.vplus-badge .vplus-status-withdrawn-ended,
.vplus-badge .vplus-status-unsold,
.vplus-badge .vplus-status-suspended,
.vplus-badge .vplus-status-sold-bidding,
.vplus-badge .vplus-status-sold-make-offer,
.vplus-badge .vplus-status-sold-buy-now,
.vplus-status-filter-label .vplus-status-preview,
.vplus-status-filter-label .vplus-status-pending,
.vplus-status-filter-label .vplus-status-reconciled,
.vplus-status-filter-label .vplus-status-reconciliation,
.vplus-status-filter-label .vplus-status-withdrawn,
.vplus-status-filter-label .vplus-status-withdrawn-ended,
.vplus-status-filter-label .vplus-status-unsold,
.vplus-status-filter-label .vplus-status-suspended,
.vplus-status-filter-label .vplus-status-sold-bidding,
.vplus-status-filter-label .vplus-status-sold-make-offer,
.vplus-status-filter-label .vplus-status-sold-buy-now {
  background: transparent !important;
  background-color: transparent !important;
}

.vplus-sale-meta {
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.vplus-sale-meta #print {
  margin-left: auto;
}

.vplus-lot-status-badge[data-status-synced="1"] {
  cursor: pointer;
}

.vplus-lot-status-badge.is-status-menu-open,
.vplus-lot-status-badge.has-pending-status,
.vplus-experimental-visibility-toggle.has-pending-visibility {
  outline: 2px solid rgba(13, 110, 253, 0.3);
  outline-offset: 2px;
}

/* Duplicate Lot Number badge — BidLogix requires unique numbers within an auction,
   so highlight collisions in red the same way we outline queued status edits in blue. */
.vplus-lot-number.is-duplicate-number {
  outline: 2px solid #dc3545;
  outline-offset: 2px;
  cursor: help;
}

/* Highlight the entire row when its Lot Number collides — covers the case where
   the colliding lot is outside the user's current viewport. */
.vplus-list-item.has-duplicate-number {
  position: relative;
  border-left: 4px solid #dc3545;
  background: rgba(220, 53, 69, 0.04);
}

/* Sticky banner above the lot list listing duplicate-number collisions so the
   user can find and fix them. Sits between the filter panel and the list. */
.vplus-duplicate-number-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  margin: 0.75rem 0;
  border: 1px solid #dc3545;
  border-left-width: 4px;
  border-radius: 6px;
  background: #fff4f4;
  color: #842029;
}

.vplus-duplicate-number-banner .vplus-duplicate-number-banner-icon {
  flex-shrink: 0;
  font-size: 1.15rem;
  line-height: 1.4;
  color: #dc3545;
}

.vplus-duplicate-number-banner .vplus-duplicate-number-banner-body {
  flex: 1 1 auto;
  font-size: 0.9rem;
  line-height: 1.45;
}

.vplus-duplicate-number-banner .vplus-duplicate-number-banner-body strong {
  display: block;
  margin-bottom: 0.15rem;
}

.vplus-duplicate-number-banner .vplus-duplicate-number-group {
  display: block;
  margin-top: 0.35rem;
}

.vplus-duplicate-number-banner .vplus-duplicate-number-group-label {
  font-weight: 600;
  color: #dc3545;
  margin-right: 0.35rem;
}

.vplus-duplicate-number-banner a.vplus-duplicate-jump {
  color: #842029;
  text-decoration: underline;
  cursor: pointer;
}

.vplus-duplicate-number-banner a.vplus-duplicate-jump:hover {
  color: #58151c;
}

/* Missing Lot Number — show the badge with an em-dash placeholder and a softer
   outline so the user knows the badge is clickable to set a number. */
.vplus-lot-number.is-missing-number {
  outline: 1px dashed rgba(108, 117, 125, 0.6);
  outline-offset: 2px;
  opacity: 0.85;
}

.vplus-lot-number.is-missing-number .vplus-lot-meta-badge-value {
  font-style: italic;
  opacity: 0.7;
}

/* Sequencing target — after a Transfer/Duplicate, the badge of the first lot in
   the queue gets this orange pulse to nudge the user to set its number, which
   then cascades sequentially to the rest of the queue. */
@keyframes vplus-lot-number-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(253, 126, 20, 0.55); }
  50%      { box-shadow: 0 0 0 6px rgba(253, 126, 20, 0); }
}

.vplus-lot-number.is-sequencing-target {
  outline: 2px solid #fd7e14;
  outline-offset: 2px;
  animation: vplus-lot-number-pulse 1.5s ease-in-out infinite;
  cursor: pointer;
}

.vplus-dashboard-status-menu,
.vplus-experimental-status-menu {
  display: block;
  min-width: 9rem;
  margin-top: 0.25rem;
  z-index: 1060;
}

.vplus-dashboard-status-sync-btn,
.vplus-experimental-status-sync-btn {
  margin-left: 0.35rem;
  vertical-align: middle;
}

.vplus-experimental-visibility-toggle {
  padding: 0.1rem 0.25rem;
  color: inherit;
  line-height: 1;
  vertical-align: middle;
}

.vplus-experimental-visibility-toggle:hover,
.vplus-experimental-visibility-toggle:focus {
  color: #0d6efd;
}

.vplus-express-mode .form-row-separator {
  display: none;
}

.card {
  transition: box-shadow 0.3s ease-in, border-color 0.3s ease-in;
}

/* Orange glow for Express Mode card only */
.vplus-express-form .card {
  --bs-card-border-color: rgb(255, 69, 0, 0.5);
  box-shadow: 0 0 0 2px rgba(255, 165, 0, 0.5), 0 0 0 4px rgba(255, 165, 0, 0.25);
}

/* Charcoal/dark glow for Full Mode section cards */
.vplus-full-mode-cards .card {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.btn-check:checked + .btn {
  font-weight: var(--vplus-font-weight-normal);
}

/* Express Mode toggle button - orange styling */
.btn-check:checked + .btn[for="vplus-lot-mode-express"],
.btn-check:checked + .btn[for="vplus-sale-mode-express"] {
  background: linear-gradient(45deg, #ff4500, #ffa500);
  color: #fff;
  border-color: rgba(172, 43, 11, 1);
  text-shadow: 1px 1px 2px rgba(172, 43, 11, 1);
  box-shadow: inset 0 0 0 2px rgba(172, 43, 11, 0.25), inset 0 0 0 4px rgba(255, 69, 0, 0.25);
}
.btn[for="vplus-lot-mode-express"]:hover,
.btn[for="vplus-sale-mode-express"]:hover {
  background: linear-gradient(45deg, #ff4500, #ffa500);
  color: #fff;
  border-color: rgba(172, 43, 11, 1);
}

/* Full Mode toggle button - dark styling */
.btn-check:checked + .btn[for="vplus-lot-mode-full"],
.btn-check:checked + .btn[for="vplus-sale-mode-full"] {
  background: linear-gradient(135deg, #4a5568, #1a202c);
  color: #fff;
  border-color: #1a202c;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  box-shadow: inset 0 0 0 2px rgba(74, 85, 104, 0.25), inset 0 0 0 4px rgba(26, 32, 44, 0.25);
}

hr.dashed {
  border-style: dashed;
  margin: 0;
}

.card-body .ql-toolbar.ql-snow {
  border: 0;
  border-bottom: 1px solid var(--bs-border-color);
}
.card-body .ql-editor {
  padding: 1rem 0;
}
/* The submission description editor sits inside a .card-body, so the rule above
   strips its horizontal padding and the text runs flush to the field edges.
   Restore left/right breathing room for this editor specifically (matches the
   vertical 1rem above; higher specificity wins without !important). */
.card-body .vplus-submission-description-editor .ql-editor,
.vplus-submission-description-editor .ql-editor {
  padding-left: 1rem;
  padding-right: 1rem;
}
.card-body .ql-container {
  font-family: var(--vplus-font-family-base);
  font-size: 1rem;
}
.card-body .ql-container *:not(strong) {
  font-weight: var(--vplus-font-weight-normal);
}
.card-body .ql-container.ql-snow {
  border: 0;
}

.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  z-index: 100;
}

.form-row .btn-group .btn {
  padding: .75rem 1rem;
  border-color: #ccc;
}
.form-row .btn-group .btn .vplus-po-sublabel,
.form-row .btn-group .btn .vplus-type-sublabel {
  font-size: .7rem;
  line-height: 1.2;
  margin-top: .15rem;
  opacity: .7;
  color: var(--bs-secondary-color);
}
.form-row .btn-group .btn-check:checked + .btn .vplus-po-sublabel,
.form-row .btn-group .btn-check:checked + .btn .vplus-type-sublabel {
  color: inherit;
  opacity: .85;
}
/* Preserve Express/Full mode toggle custom gradients */
.vplus-form-mode-toggle .btn-group .btn {
  padding: .5rem 1.5rem;
  border-color: revert;
}

.form-control.disabled {
  background-color: var(--bs-secondary-bg);
  opacity: 1;
}

.floating-buttons:has(#vplus-prev-lot.hidden).floating-buttons:has(#vplus-sync-photos.hidden).floating-buttons:has(#vplus-next-lot.hidden) {
  display: none;
}
.floating-buttons {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  padding: 1rem 0;
}

#vplus-next-lot {
  margin-left: auto;
}
#vplus-sync-photos {
  margin-left: auto;
  margin-right: auto;
}
/* 
#vplus-photo-files:not(:has(.vplus-file-container)):before {
  content: "No photos uploaded";
} */

.table-responsive.card > .table {
  margin-bottom: 0;
}

.nav-tabs:has(+ .card) {
  border-bottom: 0;
}
.nav-tabs:has(+ .card) .nav-link {
  border: 1px solid #ddd;
  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.05);
  margin-bottom: 0;
}
.nav-tabs:has(+ .card) .nav-link.active {
  border-bottom-color: #fff;
  color: var(--bs-primary);
}
.nav-tabs:has(+ .card) .nav-link:not(.active) {
  background: rgba(255, 255, 255, 0.25);
  color: #a1a1a1;
}

.nav-tabs .nav-link {
  font-weight: bold;
}
.nav-tabs + .card:has(.tab-content) {
  border-bottom: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.card-body > .tab-content {
  padding: 0;
  border: 0;
}

.vplus-column--lot-name {
  margin-bottom: 0.5rem;
  flex-basis: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
}
.vplus-column--lot-name strong {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.vplus-column--lot-number {
  font-size: 0.85rem;
  padding-right: 0;
  display: flex;
  flex-basis: 100%;
  align-items: center;
}
.vplus-column--lot-number .fa-hashtag {
  font-size: 0.5rem;
  margin-right: 0.15rem;
}
.vplus-column--lot-info {
  flex-grow: 1;
}
.vplus-column--lot-info > div {
  flex-wrap: wrap;
}
.chlength-1 {
  max-width: 1.5rem;
}
.chlength-2 {
  max-width: 3rem;
}
.chlength-3 {
  max-width: 2.5rem;
}
.chlength-4 {
  max-width: 3rem;
}
.vplus-column--final-bid {
  min-width: 50%;
  text-align: right;
  font-weight: bold;
}
.vplus-column--lot-status {
  flex-basis: 90px;
  font-size: 0.825rem;
  text-align: right;
  margin-left: auto;
}
.vplus-column--lot-status > span {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  background-color: rgba(0, 0, 0, 0.05);
  font-weight: 500;
  line-height: 1;
}
.vplus-column--lot-status > span .fa-circle {
  margin-right: 0.35rem;
  font-size: 0.6rem;
}
.vplus-column--reserve {
  flex-basis: 120px;
  font-size: 0.825rem;
  text-align: right;
}
.vplus-column--reserve-not-met {
  color: var(--bs-danger);
  font-weight: bold;
}
.vplus-column--reserve-met {
  color: var(--bs-success);
  font-weight: bold;
}
.vplus-column--bids {
  flex-basis: 60px;
  display: flex;
  justify-content: flex-end;
}
.vplus-column--bids > * {
  font-size: 0.825rem;
}
.vplus-bidder-username {
  max-width: 160px;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.vplus-btn-badge {
  border-radius: 10rem;
  padding: 0.125rem 0.5rem;
}
@media (min-width: 576px) {
  .vplus-column--lot-status {
    text-align: left;
  }
  .vplus-column--bids {
    min-width: 60px;
  }
  .vplus-column--reserve {
    min-width: 7rem;
  }
  .vplus-column--final-bid {
    min-width: 9rem;
  }
}
@media (min-width: 992px) {
  .vplus-column--lot-name {
    flex-basis: 100%;
  }
  .vplus-column--lot-status {
    margin-left: auto;
  }
}
@media (min-width: 1200px) {
  .vplus-column--lot-name {
    margin-bottom: 0;
    flex-basis: 40%;
    max-width: 40%;
  }
}

.vplus-btn-badge.btn-light {
  color: var(--bs-primary);
}
.vplus-btn-badge.btn-light:hover {
  background-color: rgba(var(--bs-primary-rgb), 0.125);
}

.vplus-report-card .card-header {
  --bs-card-cap-bg: #fafafa;
  --bs-card-cap-color: #000;
  border-bottom: 1px solid var(--bs-border-color);
}
.vplus-report-card .card-header h2 {
  font-size: 1.5rem;
  font-weight: 500;
}

/* Lot Filters */
.vplus-lot-filters .form-label {
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.25rem;
}
.vplus-lot-filters .btn-group [data-sort] {
  font-size: 0.875rem;
  transition: all 0.2s ease;
}
.vplus-lot-filters .btn-group [data-sort].active {
  background-color: var(--bs-primary);
  color: white;
  border-color: var(--bs-primary);
}
.vplus-lot-filters .btn-group [data-sort]:not(.active):hover {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.vplus-lot-filters .btn-group [data-sort].active:hover {
  background-color: var(--bs-primary);
  color: white;
  opacity: 0.85;
}
.vplus-filter-results {
  padding-top: 0.5rem;
  border-top: 1px solid var(--bs-border-color);
  font-size: 0.875rem;
  font-weight: 500;
}

/*----------------- SNAPSHOT REPORT -----------------*/

.vplus-snapshot-header-info {
  align-content: space-between;
  height: 100%;
}
.vplus-snapshot-header-auction-info {
  font-size: 0.75rem;
}
.vplus-client-brand {
  display: flex;
  gap: 0.5rem;
  flex-direction: column;
}

.vplus-client-logo {
  width: 150px;
}
.vplus-powered-by-logo {
  width: 150px;
}
.vplus-snapshot-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.vplus-snapshot-body > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

@media (min-width: 768px) {
  /* .vplus-client-brand {
    flex-direction: column;
  } */
  .vplus-snapshot-body {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
}
.vplus-snapshot-body-total {
  width: 100%;
  margin-bottom: 1rem;
}
.vplus-snapshot-body-total .vplus-icon-xl {
  flex-basis: 30%;
}

.font-xs {
  font-size: 0.75rem !important;
  line-height: 1.2;
}
.font-sm {
  font-size: 1.25rem !important;
  line-height: 1;
}
.font-md {
  font-size: 1.75rem !important;
  line-height: 1;
}
.font-lg {
  font-size: 2.5rem !important;
  line-height: 1;
}
.font-xl {
  font-size: 3rem !important;
  line-height: 1;
}
.vplus-icon-xl {
  font-size: 4rem;
}

.vplus-snapshot-label {
  font-size: 0.875rem;
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}
.vplus-snaptshot-blocks {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.vplus-snaptshot-blocks-item {
  display: grid;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  grid-template-columns: 1fr 2fr;
  padding: 0.5rem;
  overflow: hidden;
}
.vplus-snaptshot-blocks-item-content {
  padding: 0.5rem;
  padding-left: 0;
}
@media (min-width: 576px) {
  .vplus-snaptshot-blocks-item-image {
    height: 100%;
    object-fit: cover;
  }
}
.vplus-placeholder-image {
  opacity: 0.25;
  padding: 1rem;
}
.vplus-bidders-by-country .vplus-snaptshot-blocks-item,
.vplus-bidder-by-state .vplus-snaptshot-blocks-item,
.vplus-top-lots-with-most-bids .vplus-snaptshot-blocks-item {
  grid-template-columns: 1fr 5fr;
}
#vplus_bids_per_chart {
  max-width: 100%;
}
#vplus_report_charts .nav-tabs .nav-item button {
  width: 100%;
}
@media (max-width: 420px) {
  #vplus_report_charts .nav-tabs {
    display: flex;
    flex-direction: column;
  }
  #vplus_report_charts .nav-tabs .nav-link {
    border-bottom: 0;
    border-left-color: #eee;
    border-right-color: #eee;
  }
}

#vplus-copy-from-last {
  margin-bottom: 1rem;
  border-style: dashed;
  transition: all 0.2s ease;
}

#vplus-copy-from-last:hover {
  border-style: solid;
  background-color: #f8f9fa;
  color: #212529 !important;
}

#vplus-copy-from-last .fal {
  margin-right: 0.5rem;
}

/* Increment suggestion dropdown */
.vp-increment-suggestions {
  width: 100%;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.3s ease-out, opacity 0.3s ease-out, margin 0.3s ease-out;
  margin-top: 0;
}

.vp-increment-suggestions:not([style*="display: none"]) {
  max-height: 100px;
  opacity: 1;
  margin-top: 0.5rem;
}

.vp-increment-select,
.vp-reserve-select {
  cursor: pointer;
  transition: all 0.2s ease;
}

.vp-increment-select:hover,
.vp-reserve-select:hover {
  border-color: #0dcaf0;
  box-shadow: 0 0 0 0.2rem rgba(13, 202, 240, 0.25);
}

.vp-increment-select:focus,
.vp-reserve-select:focus {
  border-color: #0dcaf0;
  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
}

/* Reserve calculator dropdown */
.vp-reserve-calculator {
  width: 100%;
  margin-top: 0.5rem;
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .vp-increment-select,
  .vp-reserve-select {
    font-size: 0.875rem;
  }
}

.vplus-dev-info-tooltip {
  position: relative;
  display: inline-block;
}

.vplus-dev-info-tooltip .vplus-dev-tooltip-text {
  visibility: hidden;
  width: 280px;
  background-color: #333;
  color: #fff;
  text-align: left;
  border-radius: 6px;
  padding: 10px;
  position: absolute;
  z-index: 1000;
  bottom: 125%;
  left: 50%;
  margin-left: -140px;
  opacity: 0;
  transition: opacity 0.3s;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.4;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  text-transform: none;
}

.vplus-dev-info-tooltip .vplus-dev-tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
}

.vplus-dev-info-tooltip:hover .vplus-dev-tooltip-text {
  visibility: visible;
  opacity: 1;
}

.dev-notice-badge {
  background-color: var(--bs-warning-bg);
  color: var(--bs-warning-text);
  border: 1px solid var(--bs-warning-border-subtle);
  font-weight: var(--vplus-font-weight-normal);
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
}

.vplus-info-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 5px;
}

.vplus-info-tooltip .fal,
.vplus-info-tooltip .fa-regular {
  cursor: help;
  font-size: 0.9rem;
  color: #6c757d;
}

.vplus-info-tooltip .vplus-tooltip-text {
  visibility: hidden;
  width: 280px;
  max-width: 280px;
  background-color: #333;
  color: #fff;
  text-align: left;
  border-radius: 6px;
  padding: 10px 12px;
  position: absolute;
  z-index: 9999;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
  font-size: 13px;
  font-weight: normal;
  line-height: 1.4;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  pointer-events: none;
  text-transform: none;
  white-space: normal;
  word-wrap: break-word;
}

.vplus-info-tooltip .vplus-tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
}

.vplus-info-tooltip:hover .vplus-tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* Input-group tooltip positioning fix */
.input-group .input-group-text .vplus-info-tooltip {
  margin-left: 0;
}
.input-group .input-group-text .vplus-info-tooltip .vplus-tooltip-text {
  left: 0;
  transform: translateX(0);
}
.input-group .input-group-text .vplus-info-tooltip .vplus-tooltip-text::after {
  left: 15px;
  margin-left: 0;
}

/* Auction Description field - appropriate height for desktop/tablet */
/* Using ID selector to override .form-floating>.form-control specificity */
#vplus-sale-description {
  min-height: 200px !important;
  height: 200px !important;
}

.vplus-lot-editor-shell.form-control,
.vplus-submission-editor-shell.form-control {
  height: auto !important;
  min-height: 8rem;
}

.form-floating > .vplus-lot-editor-shell.form-control,
.form-floating > .vplus-submission-editor-shell.form-control {
  height: auto !important;
  min-height: 8rem;
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}

.form-floating > .vplus-lot-editor-shell.form-control .ql-container,
.form-floating > .vplus-submission-editor-shell.form-control .ql-container {
  min-height: 5.5rem;
}

@media (max-width: 767.98px) {
  #vplus-sale-description {
    min-height: 150px !important;
    height: 150px !important;
  }

  .vplus-lot-editor-shell.form-control,
  .form-floating > .vplus-lot-editor-shell.form-control,
  .vplus-submission-editor-shell.form-control,
  .form-floating > .vplus-submission-editor-shell.form-control {
    min-height: 10rem;
  }
}

/* Form card with styled header */
.vplus-form-card {
  overflow: hidden;
}
.vplus-card-header {
  color: #fff;
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: opacity 0.2s ease;
}
.vplus-card-header[data-bs-toggle="collapse"] {
  cursor: pointer;
}
.vplus-card-header i {
  font-size: 1rem;
  opacity: 0.9;
}
.vplus-card-header .vplus-collapse-icon {
  margin-left: auto;
  transition: transform 0.3s ease, background-color 0.2s ease;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background-color: rgba(255, 255, 255, 0.1);
  /* Webfont icon sizing - normalize for consistent rendering vs SVG */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: 1.5rem;
  line-height: 1;
  font-size: 0.875rem; /* Slightly smaller for webfont icons to match SVG visual scale */
}
.vplus-card-header .vplus-collapse-icon:hover {
  background-color: rgba(255, 255, 255, 0.25);
}
.vplus-card-header .vplus-collapse-icon:focus {
  outline: 2px solid rgba(255, 255, 255, 0.5);
  outline-offset: 2px;
}
.vplus-card-header.collapsed .vplus-collapse-icon {
  transform: rotate(-90deg);
}

/* Card header color variations - Sale/Auction Form */
.vplus-card-header-1 { background: linear-gradient(135deg, #1e3a5f 0%, #0d1b2a 100%); } /* Navy - Title & Description */
.vplus-card-header-2 { background: linear-gradient(135deg, #4a6fa5 0%, #2c4a7c 100%); } /* Neutral Blue - Type & Dates */
.vplus-card-header-3 { background: linear-gradient(135deg, #2d6a4f 0%, #1b4332 100%); } /* Green - Bidding Options */
.vplus-card-header-4 { background: linear-gradient(135deg, #a83232 0%, #6b1d1d 100%); } /* Dark Red - Buyers Premium */
.vplus-card-header-5 { background: linear-gradient(135deg, #457b9d 0%, #1d3557 100%); } /* Teal - Location */
.vplus-card-header-6 { background: linear-gradient(135deg, #4a4a4a 0%, #1a1a1a 100%); } /* Charcoal - Inspection */
.vplus-card-header-7 { background: linear-gradient(135deg, #4a5568 0%, #1a202c 100%); } /* Slate - Blank Lots */

/* Card header color variations - Lot Form (Full Mode) */
.vplus-card-header-lot-1 { background: linear-gradient(135deg, #2c5282 0%, #1a365d 100%); } /* Blue - Lot Details */
.vplus-card-header-lot-2 { background: linear-gradient(135deg, #38a169 0%, #276749 100%); } /* Green - Bidding & Pricing */
.vplus-card-header-lot-3 { background: linear-gradient(135deg, #805ad5 0%, #553c9a 100%); } /* Purple - Photos */
.vplus-card-header-lot-4 { background: linear-gradient(135deg, #d69e2e 0%, #975a16 100%); } /* Amber - Tax & Fees */
.vplus-card-header-lot-5 { background: linear-gradient(135deg, #e53e3e 0%, #9b2c2c 100%); } /* Red - Videos */
.vplus-card-header-lot-6 { background: linear-gradient(135deg, #319795 0%, #234e52 100%); } /* Teal - Location & Contact */
.vplus-card-header-lot-7 { background: linear-gradient(135deg, #4a5568 0%, #1a202c 100%); } /* Gray - More Options */
.vplus-card-header-lot-condition-report { background: linear-gradient(135deg, #667eea 0%, #4c51bf 100%); } /* Indigo - Condition Report */
.vplus-card-header-ai { background: linear-gradient(135deg, #d69e2e 0%, #975a16 100%); } /* Amber/Gold - AI */

/* AI card header layout */
#vplus-card--ai .vplus-card-header {
  flex-wrap: wrap;
}
#vplus-card--ai .vplus-card-header .form-check {
  padding-left: 0;
  margin-bottom: 0;
  gap: 0.5rem;
}
#vplus-card--ai .vplus-card-header .form-check-input {
  width: 2.75em;
  height: 1.4em;
  margin: 0;
  float: none;
  cursor: pointer;
  background-color: #dc3545;
  border-color: rgba(255, 255, 255, 0.6);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
#vplus-card--ai .vplus-card-header .vplus-badge {
  flex: 0 0 auto;
}
#vplus-card--ai .vplus-card-header .form-check-input:checked {
  background-color: #198754;
  border-color: rgba(255, 255, 255, 0.6);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
#vplus-card--ai .vplus-card-header .form-check-label {
  color: #fff;
  font-weight: 600;
}
#vplus-card--ai .vplus-card-header .vplus-ai-header-desc {
  flex-basis: 100%;
  font-size: 0.8rem;
  opacity: 0.85;
  font-weight: 400;
  margin-top: 0.25rem;
  color: #fff;
}

/* AI badge - inverted warning with glow */
@keyframes vplus-badge-glow {
  0%, 100% { box-shadow: 0 0 4px rgba(102, 77, 3, 0.4); }
  50%      { box-shadow: 0 0 12px rgba(102, 77, 3, 0.7), 0 0 20px rgba(102, 77, 3, 0.3); }
}
.vplus-badge-ai {
  background: #664d03;
  color: #fff;
  animation: vplus-badge-glow 2s ease-in-out infinite;
}
.vplus-badge-ai .fa {
  color: #fff;
}

/* Compact Full Mode Blue Flag to match Express */
#blueflag-lookup-row .card-body {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
#blueflag-lookup-row h6,
#blueflag-lookup-row .fw-medium {
  font-size: 0.875rem;
  margin-bottom: 0;
}
#blueflag-lookup-row p.text-muted {
  display: none;
}

/* Condition Report Section Styling - Dark Wine Background */
#express-condition-report-row,
#full-condition-report-row,
#submission-condition-report-row {
  background: linear-gradient(135deg, rgba(127, 29, 29, 0.08) 0%, rgba(153, 27, 27, 0.12) 100%);
  border: 1px solid rgba(127, 29, 29, 0.15);
  border-radius: 0.5rem;
  padding: 1rem;
}
#express-condition-report-row .fa-clipboard-check,
#full-condition-report-row .fa-clipboard-check,
#submission-condition-report-row .fa-clipboard-check {
  color: #7f1d1d !important;
}
#express-condition-report-row .badge.bg-danger,
#full-condition-report-row .badge.bg-danger,
#submission-condition-report-row .badge.bg-danger {
  background-color: #991b1b !important;
}
#express-condition-report-row .badge.bg-secondary,
#full-condition-report-row .badge.bg-secondary,
#submission-condition-report-row .badge.bg-secondary {
  background-color: rgba(127, 29, 29, 0.6) !important;
}
/* CR field grid vertical alignment */
#submission-condition-report-row > .row.g-2 {
  align-items: start;
}

/* Lot form mode toggle styling */
.vplus-form-mode-toggle {
  margin-bottom: 1rem;
}

/* Express/Full Mode Display - controlled by JavaScript inline styles */
.vplus-express-form {
  display: block;
}

/* Card and section heading styles */
.vplus-card-heading,
.vplus-section-heading {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.vplus-card-heading sup,
.vplus-section-heading sup,
label sup {
  font-size: 0.8em;
  color: #dc3545;
}

/* Card navigation buttons */
.vplus-card-nav {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #dee2e6;
}
.vplus-card-nav .btn {
  flex: 1 1 0;
}
.vplus-card-nav .vplus-card-next {
  background-color: #17a2b8;
  border-color: #17a2b8;
  color: #fff;
}
.vplus-card-nav .vplus-card-next:hover {
  background-color: #138496;
  border-color: #117a8b;
}

/* Create New Auction button - Auction Manager Green */
.btn-auction-submit {
  background-color: #28a745;
  border-color: #28a745;
  color: #fff;
}
.btn-auction-submit:hover {
  background-color: #218838;
  border-color: #1e7e34;
  color: #fff;
}

/* Toggle heading row with switch */
.vplus-toggle-heading-row .vplus-toggle-heading {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}
.vplus-toggle-switch.form-switch {
  margin-bottom: 0;
  padding-left: 2.5em;
}

/* Section spacing for separation between groups */
.vplus-section-spacing {
  margin-top: 1rem;
}

/* Info callout box */
.vplus-info-callout {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
  background-color: #e8f4fd;
  border-left: 3px solid #0d6efd;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  color: #495057;
}
.vplus-info-callout i {
  color: #0d6efd;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

/* Comment field textarea min-height */
.vplus-comment-field {
  min-height: 100px;
}

:root {
  --vplus-primary: #1c3f85;
  --vplus-accent: #4fabff;
  --bs-link-color: var(--vplus-primary);
  --bs-link-color-rgb: 28, 63, 133;
  --vplus-font-family-base: Roboto, Arial, sans-serif;
  --vplus-font-weight-normal: 400;
  --vplus-font-weight-light: 300;
  --bs-primary-rgb: 28, 63, 133;
}
body {
  --bs-primary: var(--vplus-primary);
  --bs-body-font-weight: var(--vplus-font-weight-normal);
  background: var(--bs-gray-100);
  font-family: var(--vplus-font-family-base);
}

/* BOOTSTRAP OVERRIDES */
:root {
  --bs-success-rgb: 147, 201, 134;
  --bs-warning-rgb: 255, 247, 227;
  --bs-danger-rgb: 248, 215, 218;
}
.btn-link {
  --bs-btn-color: var(--vplus-primary);
  text-decoration: none;
}
.btn {
  --bs-btn-font-weight: 300;
}
.btn.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--vplus-primary);
  --bs-btn-border-color: var(--vplus-primary);
}
.badge {
  --bs-badge-font-size: 0.875em;
  --bs-badge-border-radius: 1rem;
  --bs-badge-font-weight: 300;
}

/* Status badge colors matching vplus-filter-badge styles */
.bg-success {
  background-color: #2fa358 !important;
  color: #fff !important;
}
.bg-success .fa-circle {
  color: #fff;
}
.bg-warning {
  background-color: #c99212 !important;
  color: #fff !important;
}
.bg-warning .fa-circle {
  color: #fff;
}
.bg-danger {
  background-color: #a03f32 !important;
  color: #fff !important;
}
.bg-danger .fa-circle {
  color: #fff;
}
.bg-info {
  background-color: #17a2b8 !important;
  color: #fff !important;
}
.bg-info .fa-circle {
  color: #fff;
}
.bg-secondary {
  background-color: #666 !important;
  color: #fff !important;
}
.bg-secondary .fa-circle {
  color: #fff;
}

.bg-disclaimer {
  --bs-badge-color: #ffffff;
  background-color: rgb(81, 56, 99);
}

.form-control {
  font-weight: 400;
}

.page-title {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

/* Hide the theme's page title on VendorPlus surfaces (body.vplus-hide-page-title,
   set in front-end.php) so it doesn't double up with the heading each of these
   screens renders inside its own template.

   The active theme prints the page heading as `.entry-header > .page-title`
   (templates/loop/content-page.php) and archive titles as
   `.page-header > .page-title` (archive.php). Both are the page-CHROME heading,
   OUTSIDE `.entry-content`, so the in-content VendorPlus headings (which also use
   .page-title in some templates, but live inside .entry-content) are NOT hit.
   The extra page-builder selectors are harmless no-ops if the theme changes. */
body.vplus-hide-page-title .entry-header > .page-title,
body.vplus-hide-page-title .page-header > .page-title,
body.vplus-hide-page-title .entry-header > .entry-title,
body.vplus-hide-page-title .page-header > .entry-title,
body.vplus-hide-page-title .page-header .wp-block-post-title,
body.vplus-hide-page-title .elementor-page-title {
  display: none !important;
}

/* HEADER */
/* .header {
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .header {
    margin-bottom: 2rem;
  }
} */
.vplus-logo {
  width: 120px;
  height: auto;
}
@media (min-width: 768px) {
  .vplus-logo {
    width: 180px;
  }
}

.dropdown-ellipsis .dropdown-toggle:after {
  content: none;
}

/* MENU */
.auction-nav .dropdown-toggle:not(.nav-link) {
  --bs-btn-color: var(--vplus-accent);
  text-decoration: none;
  font-size: 1.25rem;
}
.auction-nav .dropdown-toggle:not(.nav-link):after {
  content: none;
}
.auction-nav .dropdown-item {
  --bs-dropdown-link-color: var(--vplus-primary);
  /* Brand-consistent active item — Bootstrap's default active bg is raw blue
     (#0d6efd), which clashes with the suite palette. Drive it off the brand
     primary via Bootstrap's own var so .dropdown-item.active / :active follow.
     The matching active TEXT colour must be set too: .dropdown-item.active uses
     color:var(--bs-dropdown-link-active-color), which on this surface resolves
     to a dark value (the theme's BS4 SCSS $dropdown-link-active-color wins over
     the BS5 bundle's #fff default), rendering unreadable dark text on the
     #1c3f85 active bg — worst on the mobile/tablet offcanvas drawer (same
     class). Pin it white here. */
  --bs-dropdown-link-active-bg: var(--vplus-primary);
  --bs-dropdown-link-active-color: #fff;
  --bs-dropdown-item-padding-y: 0.75rem;
  --bs-dropdown-item-padding-x: 1.5rem;
}

/* Header-nav Phase 1 — caret breathing room + top-level item separation.
   Horizontal-nav range only (>=xl, where the desktop nav shows; below xl the
   hamburger offcanvas takes over). The submenu caret previously sat flush
   against the item's right edge, butting into the next item's leading icon —
   the #1 reported complaint AND the source of the "ambiguous grouping" read.
   The .nav-link is display:flex; gap:.5rem, so the caret ::after is a flex
   child already separated from the label by the gap — the fix is right-side
   padding on the toggle (breathing room), plus a small inter-item margin so
   groups read clearly. */
@media (min-width: 1200px) {
  .auction-nav .nav-link.dropdown-toggle {
    padding-right: 0.9rem;
  }
  .auction-nav .nav > .nav-item + .nav-item {
    margin-left: 0.25rem;
  }
}
.auction-nav .nav-link {
  --bs-nav-link-color: var(--vplus-primary);
}

/* Navigation Active/Hover Colored Borders */
.header .row.align-items-center {
  align-items: stretch !important;
}
.header .row > .col-auto {
  display: flex;
  align-items: stretch;
}
.auction-nav {
  display: flex;
  align-items: stretch;
}
.auction-nav .nav {
  align-items: stretch;
}
.auction-nav .nav-item {
  position: relative;
  display: flex;
  align-items: stretch;
}
.auction-nav .nav-item .nav-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-bottom: 6px solid transparent;
  margin-bottom: -1px; /* Align with header bottom border */
  transition: border-color 0.2s ease, color 0.2s ease;
}
.auction-nav .nav-item .nav-link .fa-regular,
.auction-nav .nav-item .nav-link .fa-solid {
  font-size: 1rem;
  width: 1.25rem;
  text-align: center;
  line-height: 1;
  transition: color 0.2s ease;
}

/* Auction Manager - Green */
.auction-nav .nav-item.vplus-nav-auction-manager .nav-link:hover,
.auction-nav .nav-item.vplus-nav-auction-manager.active .nav-link {
  border-bottom-color: #28a745;
  color: #28a745;
}
.auction-nav .nav-item.vplus-nav-auction-manager .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-auction-manager.active .nav-link .fa-regular {
  color: #28a745;
}

/* Photo App - Neutral Blue */
.auction-nav .nav-item.vplus-nav-photo-app .nav-link:hover,
.auction-nav .nav-item.vplus-nav-photo-app.active .nav-link {
  border-bottom-color: #5B9BD5;
  color: #5B9BD5;
}
.auction-nav .nav-item.vplus-nav-photo-app .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-photo-app.active .nav-link .fa-regular {
  color: #5B9BD5;
}

/* Invoice Generator (legacy) & Invoicing (vp-invoicing) - Xero Blue */
.auction-nav .nav-item.vplus-nav-invoice-generator .nav-link:hover,
.auction-nav .nav-item.vplus-nav-invoice-generator.active .nav-link,
.auction-nav .nav-item.vplus-nav-invoicing .nav-link:hover,
.auction-nav .nav-item.vplus-nav-invoicing.active .nav-link {
  border-bottom-color: #13B5EA;
  color: #13B5EA;
}
.auction-nav .nav-item.vplus-nav-invoice-generator .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-invoice-generator.active .nav-link .fa-regular,
.auction-nav .nav-item.vplus-nav-invoicing .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-invoicing.active .nav-link .fa-regular {
  color: #13B5EA;
}

/* Reports - Red */
.auction-nav .nav-item.vplus-nav-reports .nav-link:hover,
.auction-nav .nav-item.vplus-nav-reports.active .nav-link {
  border-bottom-color: #dc3545;
  color: #dc3545;
}
.auction-nav .nav-item.vplus-nav-reports .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-reports.active .nav-link .fa-regular {
  color: #dc3545;
}

/* Integrations & Settings - Charcoal */
.auction-nav .nav-item.vplus-nav-integrations-settings .nav-link:hover,
.auction-nav .nav-item.vplus-nav-integrations-settings.active .nav-link {
  border-bottom-color: #333333;
  color: #333333;
}
.auction-nav .nav-item.vplus-nav-integrations-settings .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-integrations-settings.active .nav-link .fa-regular {
  color: #333333;
}

/* Consignments - Amber/Orange */
.auction-nav .nav-item.vplus-nav-consignments .nav-link:hover,
.auction-nav .nav-item.vplus-nav-consignments.active .nav-link {
  border-bottom-color: #e67e22;
  color: #e67e22;
}
.auction-nav .nav-item.vplus-nav-consignments .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-consignments.active .nav-link .fa-regular {
  color: #e67e22;
}

/* Consignment Manager - Royal Blue (differentiates the siloed manager
   surface from the vendor-facing amber Consignments menu) */
.auction-nav .nav-item.vplus-nav-consignment-manager .nav-link:hover,
.auction-nav .nav-item.vplus-nav-consignment-manager.active .nav-link {
  border-bottom-color: #4169e1;
  color: #4169e1;
}
.auction-nav .nav-item.vplus-nav-consignment-manager .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-consignment-manager.active .nav-link .fa-regular {
  color: #4169e1;
}

/* My Account - Slate Purple */
.auction-nav .nav-item.vplus-nav-my-account .nav-link:hover,
.auction-nav .nav-item.vplus-nav-my-account.active .nav-link {
  border-bottom-color: #6c5ce7;
  color: #6c5ce7;
}
.auction-nav .nav-item.vplus-nav-my-account .nav-link:hover .fa-regular,
.auction-nav .nav-item.vplus-nav-my-account.active .nav-link .fa-regular {
  color: #6c5ce7;
}

/* Dropdown hover-open and caret for desktop nav */
.auction-nav .nav-item.dropdown .nav-link.dropdown-toggle {
  cursor: pointer;
}
.auction-nav .nav-item.dropdown .nav-link.dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.35em;
  vertical-align: 0.15em;
  content: '';
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
  opacity: 0.4;
  transition: opacity 0.2s ease;
}
.auction-nav .nav-item.dropdown:hover .nav-link.dropdown-toggle::after {
  opacity: 1;
}
.auction-nav .nav-item.dropdown .nav-link.dropdown-toggle {
  padding: inherit;
  font-size: inherit;
  line-height: inherit;
}
@media (min-width: 1200px) {
  /* Open nav dropdowns on hover — but NOT the notification bell. The bell's
     panel relies on Bootstrap/Popper to position it (anchored to the toggle's
     right edge); hover-opening it with raw CSS skips Popper, so the panel
     renders right-aligned at top:100% and bleeds off the screen edge. Excluding
     .vplus-notif-item makes the bell click-only, letting Popper place it.

     Breakpoint is 1200px (xl) to match the horizontal-nav visibility window
     (the nav is d-xl-flex; below xl the hamburger offcanvas owns navigation).

     The menu is kept RENDERED (display:block) but hidden via opacity/visibility
     so the open/close can transition (display itself can't animate). It stays
     position:absolute / top:100% so the always-rendered box never reserves flow
     space; pointer-events:none + visibility:hidden keep the hidden menu from
     intercepting clicks. */
  .auction-nav .nav-item.dropdown:not(.vplus-notif-item) > .dropdown-menu {
    display: block;
    position: absolute;
    top: 100%;
    margin-top: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .auction-nav .nav-item.dropdown:not(.vplus-notif-item):hover > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Motion flourish — subtle fade + rise, gated by reduced-motion. The rise +
     transition only apply when the user hasn't asked to reduce motion; the
     show/hide above still works regardless. */
  @media (prefers-reduced-motion: no-preference) {
    .auction-nav .nav-item.dropdown:not(.vplus-notif-item) > .dropdown-menu {
      transform: translateY(-6px);
      transition: opacity 0.15s ease-out, transform 0.15s ease-out, visibility 0s linear 0.15s;
    }
    .auction-nav .nav-item.dropdown:not(.vplus-notif-item):hover > .dropdown-menu {
      transform: translateY(0);
      transition: opacity 0.15s ease-out, transform 0.15s ease-out;
    }
    /* Caret gentle rotate on hover (NOT [aria-expanded] — that's click-only;
       these dropdowns open on hover). */
    .auction-nav .nav-link.dropdown-toggle::after {
      transition: transform 0.15s ease-out, opacity 0.2s ease-out;
    }
    .auction-nav .nav-item.dropdown:not(.vplus-notif-item):hover > .nav-link.dropdown-toggle::after {
      transform: rotate(180deg);
    }
    /* Dropdown item: tiny lead-in nudge on hover (the item-x padding is 1.5rem;
       nudge to ~1.7rem). Decorative only. */
    .auction-nav .dropdown-item {
      transition: background-color 0.12s ease, color 0.12s ease, padding-left 0.12s ease;
    }
    .auction-nav .dropdown-menu .dropdown-item:hover {
      padding-left: 1.7rem;
    }
  }
}

@media (min-width: 768px) {
  li.nav-item.welcome-text {
    display: flex;
    align-items: center;
  }
  li.nav-item.welcome-text:before {
    content: "|";
    margin: 0 1rem;
    opacity: 0.2;
  }
}

/* User-menu dropdown button (in .auction-nav, replaces the old plain
   "Hi {name}" label — now a Bootstrap dropdown toggle bundling Integrations
   & Settings, Webtron Dashboard, and Log Out). */
.auction-nav .nav-item.dropdown:has(.vp-user-menu-btn) {
  display: flex;
  align-items: center;
}
.vp-user-menu-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.25rem 0.5rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 2rem;
  font-size: 0.8125rem !important;
  font-weight: 500;
  line-height: 1;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
  max-width: 14rem;
  white-space: nowrap;
}
.vp-user-menu-btn:hover {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.16);
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.08);
}
.vp-user-menu-btn.show,
.vp-user-menu-btn[aria-expanded="true"] {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.18);
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.1);
}
.vp-user-menu-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  color: #6c757d;
  flex-shrink: 0;
}
.vp-user-menu-name {
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.vp-user-menu-caret {
  font-size: 0.5625rem;
  color: #6c757d;
  flex-shrink: 0;
  transition: transform 0.2s;
}
.vp-user-menu-btn[aria-expanded="true"] .vp-user-menu-caret {
  transform: rotate(180deg);
}
.vp-user-menu-btn + .dropdown-menu {
  padding: 0;
}
.vp-user-menu-btn + .dropdown-menu .dropdown-divider {
  margin: 0;
}
.vp-user-menu-btn + .dropdown-menu .dropdown-item {
  padding: 0.5rem 1rem;
  font-size: 0.8125rem;
  color: #2c3338;
}

/* BREADCRUMBS */
.vplus-breadcrumbs {
  font-size: 0.825rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 1rem;
}
.vplus-breadcrumbs > * {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: calc(100% / 3);
  overflow: hidden;
}
.vplus-breadcrumbs a {
  text-decoration: none;
  color: var(--vplus-primary);
}
.vplus-breadcrumbs .fa {
  font-size: 0.5rem;
}

/* LOT NAV */
.vplus-lot-nav {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
  gap: 0.5rem;
}
.vplus-lot-nav > * {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: calc(100% / 2);
  overflow: hidden;
}
.vplus-lot-nav .me-auto {
  text-align: left;
}

.vplus-lot-nav .btn {
  padding: 0.375rem 0.5rem;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
}

.vplus-lot-nav .vplus-bulk-actions {
  margin-right: 0;
}

/* Lot List Action Buttons - Consistent Styling */
.vplus-action-row .btn {
  height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  white-space: nowrap;
}

/* Sync to Dashboard - Green like Sync & Next */
.vplus-btn-sync-to {
  background-color: #1c8575;
  border-color: #1c8575;
  color: #fff;
}
.vplus-btn-sync-to:hover,
.vplus-btn-sync-to:focus {
  background-color: #25b19c;
  border-color: #25b19c;
  color: #fff;
}
.vplus-btn-sync-to:disabled {
  background-color: #1c8575;
  border-color: #1c8575;
  color: #fff;
  opacity: 0.5;
}

/* Pull from Dashboard - Blue */
.vplus-btn-pull-from {
  background-color: #4a90d9;
  border-color: #4a90d9;
  color: #fff;
}
.vplus-btn-pull-from:hover,
.vplus-btn-pull-from:focus {
  background-color: #3a7fc8;
  border-color: #3a7fc8;
  color: #fff;
}

/* Sync Statuses - Green like Sync to Dashboard */
.vplus-btn-sync-statuses {
  background-color: #1c8575;
  border-color: #1c8575;
  color: #fff;
}
.vplus-btn-sync-statuses:hover,
.vplus-btn-sync-statuses:focus {
  background-color: #25b19c;
  border-color: #25b19c;
  color: #fff;
}

/* Bulk AI Analysis - Warning/Orange like AI Description buttons */
.vplus-btn-bulk-ai {
  background-color: #ffc107;
  border-color: #ffc107;
  color: #212529;
}
.vplus-btn-bulk-ai:hover,
.vplus-btn-bulk-ai:focus {
  background-color: #ffca2c;
  border-color: #ffc720;
  color: #212529;
}
.vplus-btn-bulk-ai:disabled {
  background-color: #ffc107;
  border-color: #ffc107;
  color: #212529;
  opacity: 0.5;
}

/* Re-Stagger - Warning/Orange like AI Description buttons */
.vplus-action-restagger {
  background-color: #ffa407;
  border-color: #ffc107;
  color: #212529;
}
.vplus-action-restagger:hover,
.vplus-action-restagger:focus {
  background-color: #ffa42c;
  border-color: #ffc720;
  color: #212529;
}
.vplus-action-restagger:disabled {
  background-color: #fedb6f;
  border-color: #ffc107;
  color: #212529;
  opacity: 0.5;
}

/* Validate - Warning/Orange like AI Description buttons */
.vplus-action-validate {
  background-color: #13df00;
  border-color: #66ff07;
  color: #212529;
}
.vplus-action-validate:hover,
.vplus-action-validate:focus {
  background-color: #0fb400;
  border-color: #474747;
  color: #ffffff;
}
.vplus-action-validate:disabled {
  background-color: #0fb400;
  border-color: #474747;
  color: #ffffff;
  opacity: 0.5;
}

/* Lot List Header */
.vplus-lot-list-header {
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
}
.vplus-lot-list-header .row {
  align-items: center;
}

/* Select All Checkbox */
#vplus-select-all {
  width: 18px;
  height: 18px;
  cursor: pointer;
}

/* Lot Item Checkbox */
.vplus-lot-checkbox {
  width: 18px;
  height: 18px;
  cursor: pointer;
}

.vplus-sale-archive #content .btn-primary {
  --vplus-primary: #1c8575;
  --bs-btn-border-color: #1c8575;
  --bs-btn-hover-bg: #25b19c;
  --bs-btn-hover-border-color: #25b19c;
  --bs-btn-active-bg: #25b19c;
  --bs-btn-active-border-color: #25b19c;
}

.vplus-sale-archive #content a:not(.btn) {
  --bs-link-color-rgb: 28, 133, 117;
}
.vplus-sale-archive #content a:not(.btn):hover {
  --bs-link-color-rgb: 37, 177, 156;
}

/* FOOTER */
.footer {
  margin-bottom: 2rem;
}
.powered-by {
  text-align: center;
  margin-top: 2rem;
}
.powered-by-text {
  font-size: 0.7em;
  display: inline-block;
  vertical-align: sub;
}
.powered-by a {
  opacity: 0.4;
  transition: opacity 0.2s ease;
  text-decoration: none;
}
.powered-by a:hover,
.powered-by a:active {
  opacity: 1;
}
.powered-by img {
  width: 120px;
  vertical-align: bottom;
}
.wt-logo a:hover {
  opacity: 1;
}
.wt-logo img {
  width: 150px;
}

@keyframes pulsate {
  0% {
    box-shadow: none;
  }
  50% {
    box-shadow: 0 0 10px var(--vplus-accent);
  }
  100% {
    box-shadow: none;
  }
}

.element {
  animation: pulsate 1s infinite;
}

.vplus-link--main {
  text-decoration: none;
  font-weight: bold;
  line-height: 1.25;
  display: block;
}

#vplus-photo-filter label:has(input:checked) {
  background: #e9eef6;
}

.vplus-lot-summary > .row {
  gap: 0.5rem;
}

.vplus-lot-summary .vplus-link--main {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.vplus-lot-number {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.25rem 0.5rem;
  white-space: nowrap;
}

.vplus-lot-summary-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.35rem;
  max-width: 100%;
}

.vplus-lot-meta-link {
  text-decoration: none;
}

.vplus-lot-meta-link:hover .vplus-lot-meta-badge {
  border-color: rgba(0, 0, 0, 0.25);
  color: var(--vplus-accent);
}

.vplus-lot-meta-badge-label {
  font-weight: 600;
}

/* The .vplus-lot-summary-badges row already wraps badge-to-badge, so the only
   residual overflow risk is a SINGLE badge whose value is longer than the
   content column. Below lg this caps each lot-meta badge to the container width
   and lets its text wrap, so a long value (e.g. "End Date and Time: 30 July
   2026 6:00 pm" in the narrow tablet-portrait content column, or a long
   Purchase Option on mobile) wraps instead of clipping with a dangling
   separator / pushing the row past the edge. The connected single-line look
   returns at lg+ where the column is wide enough. */
@media (max-width: 991.98px) {
  .vplus-lot-summary-badges .vplus-lot-meta-badge {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

.vplus-list-item .vplus-lot-summary > .row {
  --bs-gutter-y: 0.35rem;
  flex-wrap: nowrap;
}

.vplus-list-item .vplus-lot-summary > .row > .col {
  min-width: 0;
}

.vplus-list-item-actions {
  margin-top: 0 !important;
  white-space: nowrap;
}

.vplus-list-item-select,
.vplus-list-item > .row > .vplus-list-item-select,
.vplus-list-item > .row > .vplus-list-item-actions {
  margin-top: 0 !important;
}

.vplus-list-item > .row > .vplus-list-item-select > input[type="checkbox"] {
  display: block;
  margin: 0;
}

.vplus-status-filter-option:hover {
  border-color: #b6c6dc;
  background: #f8fbff;
}

.vplus-status-filter-option:hover .vplus-status-filter-label {
  color: #1f3f66;
}

.vplus-status-filter-input:focus-visible + .vplus-status-filter-label {
  outline: 2px solid rgba(13, 110, 253, 0.35);
  outline-offset: 3px;
  border-radius: 6px;
}

.vplus-auction-status-tabs .nav-link:hover,
.vplus-lot-status-tabs .nav-link:hover {
  border-color: #b6c6dc;
  background: #f8fbff;
  color: #1f3f66;
}

.vplus-auction-status-tabs,
.vplus-lot-status-tabs {
  justify-content: center;
}

@media (max-width: 767.98px) {
  .vplus-list-item > .row {
    align-items: flex-start !important;
  }

  .vplus-list-item .vplus-lot-summary > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    column-gap: 0.5rem;
  }

  .vplus-list-item .vplus-lot-summary > .row > .col {
    grid-column: 1;
    grid-row: 1;
  }

  .vplus-list-item .vplus-lot-summary > .row > .col-12 {
    grid-column: 1 / -1;
    grid-row: 2;
    width: auto;
  }

  .vplus-list-item .vplus-list-item-actions {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    text-align: right;
  }

  .vplus-list-item .vplus-lot-summary-badges .vplus-badge {
    max-width: 100%;
    white-space: normal;
    text-align: left;
  }
}

/* Lot List Quick Edit Styles */
.vplus-lot-summary {
  transition: background-color 0.2s ease;
}

.vplus-lot-summary:has(.vplus-lot-details-panel:visible) {
  background-color: #f8f9fa;
  border-radius: 0.5rem;
  padding: 0.5rem;
  margin: -0.5rem;
  margin-bottom: 0.5rem;
}

.vplus-lot-toggle-details {
  border-radius: var(--bs-border-radius);
  padding: 0.25rem 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-size: 0.8125rem;
  gap: 0.25rem;
  background-color: #5c7cfa;
  border-color: #5c7cfa;
  color: white;
}

.vplus-lot-toggle-details .fa-regular {
  margin-right: 0 !important;
}

.vplus-lot-toggle-details:hover {
  background-color: #4263eb;
  border-color: #4263eb;
  color: white;
}

.vplus-lot-details-panel {
  background: white;
  border-radius: 0.5rem;
  padding: 1rem;
  margin-top: 0.5rem;
}

.vplus-lot-gallery-thumbs {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.vplus-lot-thumb {
  width: 60px;
  height: 60px;
  border-radius: 0.25rem;
  overflow: hidden;
  background: #f0f0f0;
}

.vplus-lot-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vplus-lot-thumb-more {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e0e0e0;
  color: #666;
  font-weight: 600;
  font-size: 0.875rem;
}

.vplus-lot-dropzone {
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.vplus-lot-dropzone:hover {
  background-color: #e9ecef;
}

/* Lot List Checkbox Styles */
.vplus-sales-list [type="checkbox"] {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  cursor: pointer;
  accent-color: var(--bs-primary);
  margin-top: 0.5rem;
}

/* Syncing Badge Styles */
.vplus-status-syncing {
  color: #0dcaf0;
  animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

/* Revision Pending Pulse Animation */
.vplus-revision-pulse {
  animation: vplus-revision-glow 2s ease-in-out infinite;
}
@keyframes vplus-revision-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5); }
  50% { box-shadow: 0 0 8px 3px rgba(255, 193, 7, 0.35); }
}

.vplus-lot-quick-edit .vplus-sync-status {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: 0.5rem;
  font-size: 0.75rem;
}

/* Quick Edit Rich Text Editor Styles */
.vplus-lot-quick-edit .ql-container {
  min-height: 150px;
  font-size: 0.875rem;
}

.vplus-lot-quick-edit .ql-editor {
  min-height: 150px;
}

/* Quick Edit Section Styles */
.vplus-lot-section-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bs-secondary);
  margin-bottom: 1rem;
}

.vplus-lot-edit-section {
  background: #fafbfc;
  padding: 1rem;
  border-radius: var(--bs-border-radius);
  margin-bottom: 1rem;
}

.vplus-lot-edit-section:last-child {
  margin-bottom: 0;
}

/* Lot Gallery Area (Photo App style) */
.vplus-lot-gallery-area {
  background: #f8f9fa;
  padding: 1rem;
  border-radius: var(--bs-border-radius);
  height: 100%;
}

.vplus-lot-photo-upload-field .file-upload {
  cursor: pointer;
  display: flex;
  align-items: center;
  font-size: 0.875rem;
}

.vplus-lot-photo-upload-field .file-upload--hidden {
  display: none;
}

.vplus-lot-file-wrapper {
  margin-top: 0.5rem;
}

/* ==========================================================================
   LOT LIST GALLERY AREA - Inherits from .vplus-media-files
   Uses same base styles as content-lot.php photo uploader
   ========================================================================== */

.vplus-lot-gallery-area {
  position: relative;
  z-index: 1;
}

/* Lot list photo files - override grid for panel context */
.vplus-lot-photo-files {
  overflow: visible; /* Allow media options to overflow */
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .vplus-lot-photo-files {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  }
}

@media (min-width: 992px) {
  .vplus-lot-photo-files {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  }
}

/* Ensure file containers allow overflow for badges */
.vplus-lot-photo-files .vplus-file-container {
  position: relative;
  overflow: visible;
  aspect-ratio: 1;
}

/* Override image-box for lot list */
.vplus-lot-photo-files .image-box {
  overflow: hidden; /* Keep image contained */
  width: 100%;
  height: 100%;
  cursor: pointer;
  border-radius: var(--bs-border-radius-sm);
}

.vplus-lot-photo-files .image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Move handle positioning */
.vplus-lot-photo-files .vplus-file-move-handle {
  position: absolute;
  bottom: 4px;
  right: 4px;
  padding: 0.25rem;
  font-size: 0.65rem;
  background: rgba(255, 255, 255, 0.9);
  border-radius: var(--bs-border-radius-sm);
  cursor: grab;
  line-height: 1;
  z-index: 10;
}

.vplus-lot-photo-files .vplus-file-move-handle:active {
  cursor: grabbing;
}

/* Featured/Lead photo crown indicator */
.vplus-lot-photo-files .vplus-featured-image-icon {
  position: absolute;
  z-index: 200;
  color: #ffa500;
  font-size: 1rem;
  bottom: calc(100% - 0.5rem);
  line-height: 1rem;
  left: -0.125rem;
  transform: rotate(-15deg);
  text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

/* AI badge indicator */
.vplus-lot-photo-files .vplus-ai-file-icon {
  display: block; /* Override base display: none */
  position: absolute;
  color: var(--bs-primary);
  z-index: 200;
  font-size: 0.875rem;
  bottom: calc(100% - 0.75rem);
  line-height: 1rem;
  right: -0.25rem;
  border: 1px solid #eee;
  padding: 0.125rem;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
  border-radius: 1rem;
  background: #fff;
  pointer-events: none;
}

/* Media options tray - speech bubble popup */
.vplus-lot-photo-files .vplus-media-option {
  display: flex;
  pointer-events: none;
  opacity: 0;
  position: absolute;
  bottom: calc(100% - 0.5rem);
  z-index: -1;
  transition: bottom 0.3s ease-in, opacity 0.3s ease-in;
  left: 50%;
  transform: translateX(-50%);
}

.vplus-lot-photo-files .vplus-media-option.show {
  border: 1px solid #eee;
  opacity: 1;
  pointer-events: auto;
  border-radius: 5px;
  z-index: 300;
  background: #fff;
  bottom: calc(100% + 0.75rem);
}

.vplus-lot-photo-files .vplus-media-option:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 8px;
  border-style: solid;
  border-color: #eee transparent transparent transparent;
}

.vplus-lot-photo-files .vplus-media-option:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}

.vplus-lot-photo-files .vplus-file-container.selected .image-box {
  box-shadow: 0px 0px 0 3px rgba(var(--bs-primary-rgb), 0.25);
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}

.vplus-lot-photo-files .vplus-media-option .btn {
  color: #333;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

/* Show AI link in lot list context (hidden by default in base styles) */
.vplus-lot-photo-files .vplus-media-option .ai-link {
  display: block;
}

/* Photo dropzone styling */
.vplus-lot-photo-dropzone {
  margin-top: 0.5rem;
}

.vplus-lot-photo-files .vplus-file-container .vplus-media-option .btn:hover {
  color: var(--bs-primary);
}

.vplus-lot-photo-files .vplus-file-container .vplus-media-option .delete-link:hover {
  color: var(--bs-danger);
}

.vplus-lot-photo-dropzone {
  display: none;
}

.vplus-lot-photo-files:empty + .vplus-lot-photo-dropzone {
  display: block;
}

/* Always show dropzone when there are photos too */
.vplus-lot-photo-files:not(:empty) + .vplus-lot-photo-dropzone {
  display: block;
  margin-top: 0.5rem;
}

/* Photo trigger styling */
.vplus-lot-photo-trigger {
  cursor: pointer;
  background-color: #fff;
}

.vplus-lot-photo-trigger:hover {
  background-color: #f8f9fa;
}

.vplus-lot-photo-input.file-upload--hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.vplus-lot-photo-dropzone .dropzone-inner {
  border: 2px dashed #dee2e6;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.vplus-lot-photo-dropzone .dropzone-inner:hover,
.vplus-lot-photo-dropzone.dragover .dropzone-inner {
  border-color: var(--bs-primary);
  background-color: rgba(var(--bs-primary-rgb), 0.05);
}

.vplus-lot-upload-status {
  background: var(--bs-info);
  color: #fff;
  padding: 0.25rem 0.5rem;
  border-radius: var(--bs-border-radius-sm);
  font-size: 0.75rem;
  margin-bottom: 0.5rem;
}

/* Bulk AI Modal Styles */
.vplus-bulk-ai-log {
  background: #f8f9fa;
  font-family: monospace;
  font-size: 0.8rem;
}

/* Gallery Modal Styles (mirrors vplus-file-upload-field and vplus-media-files) */
#vplus-gallery-modal .vplus-file-upload-field {
  margin-bottom: 1rem;
}

#vplus-gallery-modal .vplus-media-files {
  margin-top: 1rem;
}

#vplus-gallery-modal .vplus-file-container .image-box {
  position: relative;
}

#vplus-gallery-modal .vplus-file-container .image-box .photo img {
  width: 100%;
  height: auto;
  display: block;
}

#vplus-gallery-modal .vplus-file-container .vplus-file-move-handle,
#vplus-gallery-modal .vplus-file-container .vplus-file-delete {
  position: absolute;
  width: 28px;
  height: 28px;
  padding: 0;
  font-size: 0.75rem;
  opacity: 0;
  transition: opacity 0.2s ease;
  z-index: 10;
}

#vplus-gallery-modal .vplus-file-container .vplus-file-move-handle {
  top: 4px;
  left: 4px;
  cursor: grab;
}

#vplus-gallery-modal .vplus-file-container .vplus-file-delete {
  top: 4px;
  right: 4px;
}

#vplus-gallery-modal .vplus-file-container:hover .vplus-file-move-handle,
#vplus-gallery-modal .vplus-file-container:hover .vplus-file-delete {
  opacity: 1;
}

#vplus-gallery-modal .vplus-file-container .vplus-file-delete:hover {
  color: var(--bs-danger);
}

/* CSV Import Styles */
.vplus-csv-preview {
  overflow-x: auto;
}

.vplus-csv-preview .table-responsive {
  overflow-x: auto;
  max-width: 100%;
}

.vplus-csv-preview-table {
  min-width: max-content;
}

.vplus-csv-preview-table th,
.vplus-csv-preview-table td {
  font-size: 0.75rem;
  white-space: nowrap;
  padding: 0.5rem;
  max-width: none;
}

.card {
  --bs-card-border-color: transparent;
  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.05);
}

.dropdown-menu.dropdown-menu {
  --bs-dropdown-border-color: var(--bs-gray-100);
  box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1);
}

.pagination {
  --bs-pagination-active-bg: var(--vplus-primary);
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-border-color: var(--vplus-primary);
}

/* Video Upload with Compression */
#vplus-card--videos .nav-tabs {
  border-bottom: 2px solid #dee2e6;
}

#vplus-card--videos .nav-tabs .nav-link {
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  color: #6c757d;
  font-weight: 500;
}

#vplus-card--videos .nav-tabs .nav-link:hover {
  border-color: transparent;
  color: #495057;
}

#vplus-card--videos .nav-tabs .nav-link.active {
  color: var(--bs-primary);
  border-bottom-color: var(--bs-primary);
  background: transparent;
}

#vplus-video-droparea {
  cursor: pointer;
  transition: all 0.2s ease;
}

#vplus-video-droparea:hover {
  border-color: var(--bs-primary) !important;
  background-color: rgba(var(--bs-primary-rgb), 0.05);
}

#vplus-video-droparea.border-primary {
  border-color: var(--bs-primary) !important;
}

.vplus-file-item--video {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem;
  background: #f8f9fa;
  border-radius: 0.375rem;
  margin-bottom: 0.5rem;
}

.vplus-file-item--video .vplus-file-icon {
  font-size: 1.25rem;
  color: #6c757d;
}

.vplus-file-item--video .vplus-file-name {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vplus-file-item--video .vplus-file-link,
.vplus-file-item--video .vplus-file-delete {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
}

.vplus-file-item--video .vplus-file-delete {
  color: #dc3545;
}

.vplus-file-item--video .vplus-file-delete:hover {
  color: #fff;
  background-color: #dc3545;
}

/* YouTube field width constraint */
@media (min-width: 768px) {
  #vplus-panel-youtube .vplus-file-upload-field {
    max-width: 500px;
  }
}

/* YouTube preview cards */
.vplus-yt-preview-list {
  display: none;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.vplus-yt-preview-list.show {
  display: flex;
}
.vplus-yt-preview-card {
  position: relative;
  width: 140px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
  transition: box-shadow 0.15s;
}
.vplus-yt-preview-card:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}
.vplus-yt-preview-thumb {
  display: block;
  line-height: 0;
  position: relative;
}
.vplus-yt-preview-thumb img {
  width: 100%;
  height: auto;
  display: block;
}
.vplus-yt-preview-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.3);
  color: #fff;
  font-size: 1.1rem;
  opacity: 0;
  transition: opacity 0.15s;
}
.vplus-yt-preview-thumb:hover .vplus-yt-preview-play {
  opacity: 1;
}
.vplus-yt-preview-delete {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.55);
  color: #fff;
  font-size: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.15s, background 0.15s;
  z-index: 2;
}
.vplus-yt-preview-card:hover .vplus-yt-preview-delete {
  opacity: 1;
}
.vplus-yt-preview-delete:hover {
  background: #dc3545;
}

#vplus-video-compression-panel .progress {
  background-color: #e9ecef;
  position: relative;
  overflow: hidden;
}

#vplus-video-compression-panel .progress-bar {
  background-color: var(--bs-primary);
  font-weight: 500;
  position: relative;
  z-index: 1;
}

#vplus-video-compression-panel .card-body {
  position: relative;
}

#vplus-video-compression-panel .card-body > .progress {
  margin-top: 0.5rem;
}

/* ================================
   AI Generation Progress Feedback
   ================================ */

/* AI Generate Button Processing Spin Animation */
.vplus-ai-btn-spin {
  display: inline-block;
  animation: vplus-btn-spin 1s linear infinite;
}

@keyframes vplus-btn-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.vplus-btn-spinner {
  display: inline-block;
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: vplus-btn-spin 0.75s linear infinite;
  vertical-align: -0.125em;
  margin-right: 0.375rem;
}

.vplus-ai-progress-panel {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  border-radius: 12px;
  padding: 1.25rem;
  color: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.vplus-ai-progress-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.vplus-ai-progress-header .vplus-ai-header-icon {
  font-size: 1.5rem;
  color: #00d4ff;
  filter: drop-shadow(0 0 8px rgba(0, 212, 255, 0.5));
}

.vplus-ai-progress-header .vplus-ai-progress-title {
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
}

.vplus-ai-progress-content {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.vplus-ai-stage-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: rgba(0, 212, 255, 0.1);
  border-radius: 8px;
  border-left: 3px solid #00d4ff;
}

.vplus-ai-stage-wrapper .vplus-ai-stage-spinner {
  font-size: 1rem;
  color: #00d4ff;
}

.vplus-ai-stage-wrapper .vplus-ai-stage-text {
  font-size: 0.9rem;
  color: #e0e0e0;
}

.vplus-ai-progress-bar-wrapper {
  padding: 0;
}

.vplus-ai-progress-bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  overflow: hidden;
}

.vplus-ai-progress-fill {
  height: 100%;
  background: #f97316;
  border-radius: 3px;
  width: 0%;
  transition: width 0.5s ease;
}

.vplus-ai-thinking-text {
  font-size: 0.85rem;
  font-style: italic;
  color: #a0a0b0;
  padding-left: 0.25rem;
}

.vplus-ai-token-counter {
  font-size: 0.75rem;
  color: #7c3aed;
  margin-top: 0.25rem;
  padding-left: 0.25rem;
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
}

.vplus-ai-tokens-generated {
  font-weight: 600;
  color: #f97316;
}

/* Compact AI Progress Panel (submission form variant) */
.vplus-ai-progress-compact {
  padding: 0.85rem 1rem;
}
.vplus-ai-progress-compact .vplus-ai-progress-header {
  margin-bottom: 0.6rem;
  padding-bottom: 0.5rem;
}
.vplus-ai-progress-compact .vplus-ai-header-icon {
  font-size: 1.15rem;
}
.vplus-ai-progress-compact .vplus-ai-progress-title {
  font-size: 0.9rem;
}
.vplus-ai-progress-compact .vplus-ai-stage-text {
  font-size: 0.8rem;
}
.vplus-ai-progress-compact .vplus-ai-thinking-text {
  font-size: 0.78rem;
}

/* Consignment Submission AI Progress Panel */
.vplus-consignment-ai-progress-panel {
  background: linear-gradient(135deg, #111827 0%, #1f2937 52%, #27364d 100%);
  border: 1px solid rgba(249, 115, 22, 0.28);
  border-radius: 10px;
  padding: 0.95rem 1rem;
  color: #fff;
  box-shadow: 0 3px 14px rgba(15, 23, 42, 0.22);
}

.vplus-consignment-ai-progress-panel .vplus-ai-progress-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.65rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.vplus-consignment-ai-progress-panel .vplus-ai-header-icon {
  font-size: 1.1rem;
  color: #f97316;
  filter: drop-shadow(0 0 7px rgba(249, 115, 22, 0.35));
}

.vplus-consignment-ai-progress-panel .vplus-ai-progress-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.01em;
}

.vplus-consignment-ai-progress-panel .vplus-ai-progress-content {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.vplus-consignment-ai-progress-panel .vplus-ai-stage-wrapper {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0.65rem;
  background: rgba(249, 115, 22, 0.1);
  border-left: 3px solid #f97316;
  border-radius: 7px;
}

.vplus-consignment-ai-progress-panel .vplus-ai-stage-spinner {
  font-size: 0.95rem;
  color: #fb923c;
}

.vplus-consignment-ai-progress-panel .vplus-ai-stage-text {
  font-size: 0.82rem;
  color: #f3f4f6;
}

.vplus-consignment-ai-progress-panel .vplus-ai-progress-bar {
  height: 10px;
  background: rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  overflow: hidden;
}

.vplus-consignment-ai-progress-panel .vplus-ai-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #f97316 0%, #facc15 100%);
  border-radius: 999px;
  width: 0%;
  transition: width 0.45s ease;
}

.vplus-consignment-ai-progress-panel .vplus-ai-thinking-text {
  font-size: 0.8rem;
  font-style: normal;
  color: #d1d5db;
  padding-left: 0.1rem;
}

/* Blue Flag Progress Panel */
.vplus-bf-progress-panel .vplus-ai-header-icon {
  color: #3b82f6;
  filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.5));
}
.vplus-bf-progress-panel .vplus-ai-stage-wrapper {
  background: rgba(59, 130, 246, 0.1);
  border-left-color: #3b82f6;
}
.vplus-bf-progress-panel .vplus-bf-stage-spinner {
  font-size: 1rem;
  color: #3b82f6;
}
.vplus-bf-progress-panel .vplus-bf-stage-text {
  font-size: 0.8rem;
  color: #e0e0e0;
}
.vplus-bf-progress-panel .vplus-bf-progress-fill {
  height: 100%;
  background: #3b82f6;
  border-radius: 3px;
  width: 0%;
  transition: width 0.5s ease;
}

/* AI-Filled Field Highlight */
.vplus-ai-filled {
  border-color: #d4a017 !important;
  box-shadow: 0 0 0 2px rgba(212, 160, 23, 0.25) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.vplus-ai-filled-label {
  color: #b8860b;
  font-size: 0.7rem;
  font-weight: 600;
  margin-top: 2px;
}

/* ============================================
   AI Debug Panel Styles (Super Admin Only)
   ============================================ */

.vplus-ai-debug-panel {
  background: #1a1a2e;
  border-radius: 8px;
  border: 1px solid #2d2d44;
  overflow: hidden;
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
  font-size: 0.8rem;
}

.vplus-ai-debug-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  background: #252540;
  border-bottom: 1px solid #2d2d44;
  color: #f97316;
}

.vplus-ai-debug-title {
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.vplus-ai-debug-controls {
  display: flex;
  gap: 0.5rem;
}

.vplus-ai-debug-controls .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.7rem;
  color: #a0a0b0;
  border-color: #3d3d54;
  background: transparent;
}

.vplus-ai-debug-controls .btn:hover {
  color: #ffffff;
  border-color: #5d5d74;
  background: #2d2d44;
}

.vplus-ai-debug-content {
  padding: 1rem;
}

.vplus-ai-debug-content.collapsed {
  display: none;
}

.vplus-ai-debug-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #2d2d44;
}

.vplus-ai-debug-stat {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.debug-stat-label {
  font-size: 0.65rem;
  color: #6b6b8a;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.debug-stat-value {
  font-size: 0.85rem;
  color: #00d4ff;
  font-weight: 500;
}

.vplus-ai-debug-log {
  max-height: 200px;
  overflow-y: auto;
  background: #12121f;
  border-radius: 4px;
  padding: 0.5rem;
}

.debug-log-entry {
  display: flex;
  gap: 0.75rem;
  padding: 0.35rem 0.5rem;
  border-radius: 3px;
  margin-bottom: 0.25rem;
  line-height: 1.4;
}

.debug-log-entry:last-child {
  margin-bottom: 0;
}

.debug-timestamp {
  color: #6b6b8a;
  font-size: 0.7rem;
  white-space: nowrap;
}

.debug-message {
  color: #c0c0d0;
  word-break: break-word;
}

.debug-log-info {
  background: rgba(0, 212, 255, 0.05);
}

.debug-log-info .debug-message {
  color: #00d4ff;
}

.debug-log-success {
  background: rgba(34, 197, 94, 0.1);
}

.debug-log-success .debug-message {
  color: #22c55e;
}

.debug-log-warning {
  background: rgba(249, 115, 22, 0.1);
}

.debug-log-warning .debug-message {
  color: #f97316;
}

.debug-log-error {
  background: rgba(239, 68, 68, 0.1);
}

.debug-log-error .debug-message {
  color: #ef4444;
}

.debug-log-request {
  background: rgba(124, 58, 237, 0.1);
}

.debug-log-request .debug-message {
  color: #a78bfa;
}

.debug-log-response {
  background: rgba(34, 197, 94, 0.05);
}

.debug-log-response .debug-message {
  color: #86efac;
}

/* Deprecated classes kept for backwards compatibility */

/* ============================================
   AI Provider/Model Quick Switch Panel
   ============================================ */

.vplus-ai-model-selector {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid #334155;
  width: 100%;
}

.vplus-ai-model-selector .text-muted {
  color: #94a3b8 !important;
}

.vplus-ai-model-selector .form-select {
  background-color: #1e293b;
  border-color: #475569;
  color: #e2e8f0;
  font-size: 0.875rem;
}

.vplus-ai-model-selector .form-select:hover {
  border-color: #64748b;
  background-color: #334155;
}

.vplus-ai-model-selector .form-select:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
  background-color: #334155;
}

.vplus-ai-model-selector .form-select option {
  background-color: #1e293b;
  color: #e2e8f0;
}

.vplus-ai-provider-model-row {
  display: flex;
  gap: 1rem;
  align-items: center;
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid #334155;
  margin-bottom: 0.75rem;
}

.vplus-ai-provider-model-row label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0;
  white-space: nowrap;
}

.vplus-ai-provider-model-row select {
  flex: 1;
  min-width: 140px;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #e2e8f0;
  background-color: #1e293b;
  border: 1px solid #475569;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.15s ease;
}

.vplus-ai-provider-model-row select:hover {
  border-color: #64748b;
  background-color: #334155;
}

.vplus-ai-provider-model-row select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}

.vplus-ai-provider-model-row select option {
  background-color: #1e293b;
  color: #e2e8f0;
  padding: 0.5rem;
}

/* AI Timer Display Styles */

.vplus-ai-timer {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
  font-size: 0.8rem;
  font-weight: 600;
  color: #000000;
  background: transparent;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  margin-left: 0.5rem;
  letter-spacing: 0.025em;
  animation: none;
}

@keyframes timerPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.vplus-ai-timer-complete {
  color: #000000;
  background: transparent;
  animation: none;
}

.vplus-ai-timer-complete::before {
  content: "✓ ";
  font-size: 0.7rem;
  color: #000000;
}

/* Timer icon */
.vplus-ai-timer i {
  font-size: 0.7rem;
  opacity: 0.8;
}

/* ============================================
   Advanced Prompt Options Section
   ============================================ */

/* Collapse button styling */
.vplus-ai-advanced-options .btn-link {
  text-decoration: none;
  font-size: 0.85rem;
}

.vplus-ai-advanced-options .btn-link:hover {
  text-decoration: none;
  color: var(--bs-primary) !important;
}

/* Chevron icon rotation on collapse toggle */
.vplus-ai-advanced-options .vplus-collapse-icon {
  transition: transform 0.2s ease;
  font-size: 0.7rem;
}

.vplus-ai-advanced-options [aria-expanded="true"] .vplus-collapse-icon {
  transform: rotate(90deg);
}

/* Card styling for collapsed content */
.vplus-ai-advanced-options .card-body {
  padding: 0.75rem;
  font-size: 0.875rem;
}

/* Description Format Buttons */
#vplus-ai-desc-format-buttons .vplus-desc-format-btn {
  padding: 0.35rem 0.5rem;
  font-size: 0.875rem;
}

#vplus-ai-desc-format-buttons .vplus-desc-format-btn.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* Title Element Tags */
.vplus-title-element-btn {
  transition: all 0.15s ease;
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
}

.vplus-title-element-btn.selected {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.vplus-title-element-btn.selected:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

/* Selected title elements (sortable area) */
#vplus-ai-selected-title-elements {
  min-height: 32px;
  background: #f8f9fa;
  border-radius: 0.25rem;
  padding: 0.25rem;
}

#vplus-ai-selected-title-elements .vplus-title-element-tag {
  background: var(--bs-primary);
  color: #fff;
  padding: 0.2rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  cursor: grab;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

#vplus-ai-selected-title-elements .vplus-title-element-tag .remove-tag {
  cursor: pointer;
  opacity: 0.7;
  font-size: 0.7rem;
}

#vplus-ai-selected-title-elements .vplus-title-element-tag .remove-tag:hover {
  opacity: 1;
}

#vplus-ai-selected-title-elements .vplus-title-element-tag.sortable-ghost {
  opacity: 0.5;
}

/* Add New Prompt option in select */
#vplus-ai-prompts option[value="__add_new__"] {
  font-weight: 600;
  color: var(--bs-primary);
}

/* Web Source Highlighting - AI Content */
.vplus-web-sourced {
  background-color: rgba(255, 235, 59, 0.25);
  border-bottom: 2px dotted rgba(255, 193, 7, 0.7);
  padding: 0 2px;
  border-radius: 2px;
  cursor: help;
  position: relative;
}

.vplus-web-sourced:hover {
  background-color: rgba(255, 235, 59, 0.4);
  border-bottom-color: rgba(255, 193, 7, 1);
}

/* Quill editor integration for web-sourced content */
.ql-editor .vplus-web-sourced {
  background-color: rgba(255, 235, 59, 0.25);
  border-bottom: 2px dotted rgba(255, 193, 7, 0.7);
}

.ql-editor .vplus-web-sourced:hover {
  background-color: rgba(255, 235, 59, 0.4);
}

/* Print styles - show as subtle underline */
@media print {
  .vplus-web-sourced {
    background-color: transparent;
    border-bottom: 1px solid #ccc;
  }
}

/* Web Citation Superscripts */
.vplus-web-citation {
  font-size: 0.75em;
  vertical-align: super;
  line-height: 0;
  margin-left: 1px;
}

.vplus-web-citation a {
  color: var(--bs-primary);
  text-decoration: none;
  font-weight: 600;
}

.vplus-web-citation a:hover {
  text-decoration: underline;
}

/* Sources list at end of description */
.vplus-web-sources {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-gray-300);
  font-size: 0.875rem;
  color: var(--bs-gray-600);
}

.vplus-web-sources sup {
  margin-right: 0.25rem;
}

.vplus-web-sources sup a {
  color: var(--bs-primary);
  text-decoration: none;
}

.vplus-web-sources sup a:hover {
  text-decoration: underline;
}

/* Quill editor integration for citations */
.ql-editor .vplus-web-citation a {
  color: var(--bs-primary);
}

.ql-editor .vplus-web-sources {
  border-top: 1px solid #e0e0e0;
}

/* ==========================================================================
   BULK AI ANALYSIS - Sticky Button
   ========================================================================== */

.vplus-bulk-ai-wrapper {
  position: relative;
}

.vplus-bulk-ai-wrapper.is-sticky {
  position: fixed;
  top: 100px;
  right: 30px;
  z-index: 1000;
}

.vplus-bulk-ai-wrapper.is-sticky #vplus-bulk-ai-btn {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  animation: vplusStickySlideIn 0.3s ease-out;
}

@keyframes vplusStickySlideIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Only apply sticky on Desktop and Tablet */
@media (max-width: 767.98px) {
  .vplus-bulk-ai-wrapper.is-sticky {
    position: relative;
    top: auto;
    right: auto;
  }
  
  .vplus-bulk-ai-wrapper.is-sticky #vplus-bulk-ai-btn {
    box-shadow: none;
    animation: none;
  }
}

/* ==========================================================================
   SIDEBAR NAVIGATION - Flex Layout Approach
   ========================================================================== */

:root {
  --vplus-sidebar-width: 260px;
  --vplus-sidebar-collapsed-width: 70px;
  --vplus-sidebar-bg: #1a1d21;
  --vplus-sidebar-text: #a0a6b1;
  --vplus-sidebar-text-hover: #ffffff;
  --vplus-sidebar-active-bg: rgba(255, 255, 255, 0.1);
  --vplus-sidebar-divider: rgba(255, 255, 255, 0.1);
}

/* Hide old header when sidebar is active */
body.vplus-sidebar-nav-active .header {
  display: none;
}

/* Layout Wrapper - Flex container for sidebar + content */
.vplus-layout-wrapper {
  display: flex;
  min-height: 100vh;
  width: 100%;
}

/* Content Area - Takes remaining space */
.vplus-content-area {
  flex: 1;
  min-width: 0; /* Prevent flex item overflow */
  display: flex;
  flex-direction: column;
  transition: margin-left 0.3s ease;
}

/* When sidebar is visible (desktop), content gets margin */
@media (min-width: 992px) {
  .vplus-content-area {
    margin-left: var(--vplus-sidebar-width);
  }
  
  body.sidebar-collapsed .vplus-content-area {
    margin-left: var(--vplus-sidebar-collapsed-width);
  }
}

/* Container adjustments within content area */
.vplus-content-area .container {
  max-width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (min-width: 1400px) {
  .vplus-content-area .container {
    max-width: 1320px;
  }
}

/* Main content padding */
.vplus-content-area #main,
.vplus-content-area main {
  padding-top: 1rem;
  flex: 1;
}

/* Sidebar Toggle Button */
.vplus-sidebar-toggle {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 1050;
  width: 40px;
  height: 40px;
  padding: 0;
  background: var(--vplus-sidebar-bg);
  color: #fff;
  border-radius: var(--bs-border-radius);
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  border: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.vplus-sidebar-toggle:hover {
  background: #2a2f36;
  color: #fff;
}

/* Main Sidebar Container */
.vplus-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--vplus-sidebar-width);
  height: 100vh;
  background: var(--vplus-sidebar-bg);
  display: flex;
  flex-direction: column;
  z-index: 1040;
  transition: width 0.3s ease;
}

/* Prevent transition flash on page load */
.vplus-sidebar.no-transition,
body.sidebar-collapsed .vplus-sidebar.no-transition {
  transition: none !important;
}

/* Sidebar Header */
.vplus-sidebar-header {
  padding: 1.25rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--vplus-sidebar-divider);
}

.vplus-sidebar-logo {
  max-width: 160px;
}

.vplus-sidebar-logo img {
  max-width: 100%;
  height: auto;
  max-height: 40px;
  filter: brightness(0) invert(1);
}

.vplus-sidebar-close {
  color: var(--vplus-sidebar-text);
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
}

.vplus-sidebar-close:hover {
  color: var(--vplus-sidebar-text-hover);
}

/* Sidebar Navigation */
.vplus-sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 0;
}

.vplus-sidebar-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.vplus-sidebar-item {
  margin: 0;
}

.vplus-sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  color: var(--vplus-sidebar-text);
  text-decoration: none;
  transition: all 0.2s ease;
  font-size: 0.9375rem;
}

.vplus-sidebar-link:hover {
  background: var(--vplus-sidebar-active-bg);
  color: var(--vplus-sidebar-text-hover);
}

.vplus-sidebar-item.active .vplus-sidebar-link {
  background: var(--vplus-sidebar-active-bg);
  color: var(--vplus-sidebar-text-hover);
  border-left: 3px solid var(--bs-primary);
  padding-left: calc(1.25rem - 3px);
}

.vplus-sidebar-icon {
  width: 20px;
  text-align: center;
  font-size: 1.125rem;
  flex-shrink: 0;
}

/* Collapsed state icon styling - white background for visibility */
.vplus-sidebar.collapsed .vplus-sidebar-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.15);
  border-radius: var(--bs-border-radius);
  color: #fff;
}

.vplus-sidebar.collapsed .vplus-sidebar-link:hover .vplus-sidebar-icon {
  background: rgba(255, 255, 255, 0.25);
}

.vplus-sidebar-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Sidebar Divider */
.vplus-sidebar-divider {
  padding: 1rem 1.25rem 0.5rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--vplus-sidebar-divider);
}

.vplus-sidebar-divider-text {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.4);
  font-weight: 600;
}

/* Sidebar Footer */
.vplus-sidebar-footer {
  padding: 0.75rem 0;
  border-top: 1px solid var(--vplus-sidebar-divider);
}

.vplus-sidebar-admin {
  padding: 0.75rem 1.25rem;
}

.vplus-sidebar-admin.active {
  background: var(--vplus-sidebar-active-bg);
}

/* User Profile */
.vplus-sidebar-user {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--vplus-sidebar-divider);
}

.vplus-sidebar-user-avatar {
  flex-shrink: 0;
}

.vplus-sidebar-user-avatar img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

.vplus-sidebar-user-info {
  flex: 1;
  min-width: 0;
}

.vplus-sidebar-user-name {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vplus-sidebar-text-hover);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vplus-sidebar-logout {
  font-size: 0.75rem;
  color: var(--vplus-sidebar-text);
  text-decoration: none;
}

.vplus-sidebar-logout:hover {
  color: var(--bs-danger);
}

/* Sidebar Overlay */
.vplus-sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1035;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.vplus-sidebar-overlay.show {
  opacity: 1;
  visibility: visible;
}

/* Mobile Responsive - Sidebar becomes off-canvas */
@media (max-width: 991.98px) {
  .vplus-content-area {
    margin-left: 0;
  }
  
  .vplus-sidebar-toggle {
    display: flex;
  }
  
  .vplus-sidebar {
    transform: translateX(-100%);
  }
  
  .vplus-sidebar.show {
    transform: translateX(0);
  }
}

/* Tablet - Start collapsed, can expand */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .vplus-content-area {
    margin-left: var(--vplus-sidebar-collapsed-width);
  }
  
  body:not(.sidebar-collapsed) .vplus-content-area {
    margin-left: var(--vplus-sidebar-width);
  }
  
  .vplus-sidebar {
    width: var(--vplus-sidebar-collapsed-width);
  }
  
  .vplus-sidebar:not(.collapsed) {
    width: var(--vplus-sidebar-width);
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-logo,
  .vplus-sidebar.collapsed .vplus-sidebar-text,
  .vplus-sidebar.collapsed .vplus-sidebar-divider-text,
  .vplus-sidebar.collapsed .vplus-sidebar-user-info {
    opacity: 0;
    visibility: hidden;
    width: 0;
    overflow: hidden;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-header {
    justify-content: center;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-link {
    justify-content: center;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-user {
    justify-content: center;
  }
}

/* Sidebar Collapse Toggle Button (Desktop/Tablet) */
.vplus-sidebar-collapse-toggle {
  position: absolute;
  top: 50%;
  right: -16px;
  transform: translateY(-50%);
  width: 32px;
  height: 48px;
  background: #2a46d1;
  border: none;
  border-radius: 0 6px 6px 0;
  color: #fff;
  cursor: pointer;
  z-index: 1045;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
}

.vplus-sidebar-collapse-toggle:hover {
  background: #2a46d1;
  filter: brightness(1.15);
  color: #fff;
}

.vplus-sidebar-collapse-toggle .collapse-icon-collapsed {
  display: none;
}

.vplus-sidebar.collapsed .vplus-sidebar-collapse-toggle .collapse-icon-expanded {
  display: none;
}

.vplus-sidebar.collapsed .vplus-sidebar-collapse-toggle .collapse-icon-collapsed {
  display: inline;
}

/* Collapsed sidebar state for desktop */
@media (min-width: 1200px) {
  .vplus-sidebar.collapsed {
    width: var(--vplus-sidebar-collapsed-width);
  }
  
  body.sidebar-collapsed .vplus-content-area {
    margin-left: var(--vplus-sidebar-collapsed-width);
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-logo,
  .vplus-sidebar.collapsed .vplus-sidebar-text,
  .vplus-sidebar.collapsed .vplus-sidebar-divider-text,
  .vplus-sidebar.collapsed .vplus-sidebar-user-info,
  .vplus-sidebar.collapsed .vplus-submenu-chevron {
    opacity: 0;
    visibility: hidden;
    width: 0;
    overflow: hidden;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-header {
    justify-content: center;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-link {
    justify-content: center;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-user {
    justify-content: center;
  }
  
  .vplus-sidebar.collapsed .vplus-sidebar-submenu {
    display: none;
  }
}

/* Sub-menu styles */
.vplus-sidebar-item.has-submenu .vplus-sidebar-link {
  cursor: pointer;
}

.vplus-submenu-chevron {
  margin-left: auto;
  font-size: 0.75rem;
  transition: transform 0.2s ease;
}

.vplus-sidebar-item.has-submenu.open .vplus-submenu-chevron {
  transform: rotate(180deg);
}

.vplus-sidebar-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  background: rgba(0, 0, 0, 0.15);
}

.vplus-sidebar-item.has-submenu.open .vplus-sidebar-submenu {
  max-height: 200px;
}

.vplus-sidebar-subitem {
  margin: 0;
}

.vplus-sidebar-sublink {
  display: flex;
  align-items: center;
  padding: 0.5rem 1.25rem 0.5rem 3rem;
  color: var(--vplus-sidebar-text);
  text-decoration: none;
  transition: all 0.2s ease;
  font-size: 0.875rem;
}

.vplus-sidebar-sublink:hover {
  background: var(--vplus-sidebar-active-bg);
  color: var(--vplus-sidebar-text-hover);
}

.vplus-sidebar-subitem.active .vplus-sidebar-sublink {
  color: var(--vplus-sidebar-text-hover);
  background: var(--vplus-sidebar-active-bg);
}

/* User actions row with dark mode toggle */
.vplus-sidebar-user-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.25rem;
}

/* Dark Mode Toggle Button */
.vplus-dark-mode-toggle {
  background: transparent;
  border: none;
  color: var(--vplus-sidebar-text);
  cursor: pointer;
  padding: 0.25rem;
  font-size: 1rem;
  line-height: 1;
  transition: all 0.2s ease;
  border-radius: 50%;
}

.vplus-dark-mode-toggle:hover {
  color: var(--vplus-sidebar-text-hover);
  background: var(--vplus-sidebar-active-bg);
}

.vplus-dark-mode-toggle .dark-mode-icon-sun {
  display: none;
}

body.vplus-dark-mode .vplus-dark-mode-toggle .dark-mode-icon-moon {
  display: none;
}

body.vplus-dark-mode .vplus-dark-mode-toggle .dark-mode-icon-sun {
  display: inline;
}

/* Dark Mode Styles */

/* ── FOUC prevention: applied on <html> before body renders ── */
html.vplus-dark-mode,
html[data-bs-theme="dark"] {
  background-color: #1a1d21;
  color-scheme: dark;
}

/* ── Body & root variables ── */
body.vplus-dark-mode,
body[data-bs-theme="dark"] {
  --vplus-surface-canvas: #1a1d21;
  --vplus-surface-panel: #242830;
  --vplus-surface-panel-alt: #2d323c;
  --vplus-surface-subtle: #293545;
  --vplus-border-default: #3a3f4a;
  --vplus-border-strong: #344255;
  --vplus-text-primary: #f4f6fb;
  --vplus-text-secondary: #a0a6b1;
  --vplus-text-muted: #aeb9c8;
  --vplus-heading-accent: #f4f6fb;
  --vplus-link-subtle: #8fb6ff;
  --vplus-accent-text: #6db3f2;
  --vplus-accent-soft: rgba(13, 110, 253, 0.18);
  --vplus-ring-color: rgba(143, 182, 255, 0.2);
  --vplus-info-soft: rgba(13, 110, 253, 0.14);
  --vplus-info-border: rgba(109, 179, 242, 0.45);
  --vplus-info-text: #d8eaff;
  --vplus-warning-soft: rgba(255, 193, 7, 0.14);
  --vplus-warning-border: rgba(255, 193, 7, 0.35);
  --vplus-warning-text: #f5d97d;
  --vplus-success-soft: rgba(40, 167, 69, 0.18);
  --vplus-success-text: #7bd88f;
  --vplus-danger-soft: rgba(220, 53, 69, 0.18);
  --vplus-danger-text: #ff8a96;
  --bs-body-bg: #1a1d21;
  --bs-body-color: #e4e6eb;
  --bs-body-color-rgb: 228, 230, 235;
  --bs-border-color: #3a3f4a;
  --bs-tertiary-bg: #2d323c;
  --bs-secondary-bg: #242830;
  --bs-emphasis-color: #e4e6eb;
  background-color: var(--vplus-surface-canvas);
  color: var(--vplus-text-primary);
}

/* ── Bootstrap utility class overrides ── */
body.vplus-dark-mode .bg-white {
  background-color: #242830 !important;
}

body.vplus-dark-mode .bg-light {
  background-color: #2d323c !important;
}

body.vplus-dark-mode .text-dark {
  color: #e4e6eb !important;
}

body.vplus-dark-mode .text-body {
  color: #e4e6eb !important;
}

body.vplus-dark-mode .text-muted {
  color: #a0a6b1 !important;
}

body.vplus-dark-mode .text-secondary {
  color: #a0a6b1 !important;
}

body.vplus-dark-mode .border,
body.vplus-dark-mode .border-top,
body.vplus-dark-mode .border-bottom,
body.vplus-dark-mode .border-start,
body.vplus-dark-mode .border-end {
  border-color: #3a3f4a !important;
}

body.vplus-dark-mode hr {
  border-color: #3a3f4a;
  opacity: 0.35;
}

body.vplus-dark-mode a:not(.btn):not(.nav-link):not(.dropdown-item):not(.vplus-sidebar-link):not(.vplus-sidebar-sublink) {
  color: #6db3f2;
}

body.vplus-dark-mode h1,
body.vplus-dark-mode h2,
body.vplus-dark-mode h3,
body.vplus-dark-mode h4,
body.vplus-dark-mode h5,
body.vplus-dark-mode h6,
body.vplus-dark-mode .page-title,
body.vplus-dark-mode .vplus-section-heading,
body.vplus-dark-mode .vplus-card-header {
  color: #f4f6fb;
}

body.vplus-dark-mode .vplus-logo,
body.vplus-dark-mode img.vplus-logo,
body.vplus-dark-mode .vplus-logo img,
body.vplus-dark-mode .vplus-sidebar-logo img {
  filter: brightness(0) invert(1);
}

/* ── Cards ── */
body.vplus-dark-mode .card {
  --bs-body-bg: #242830;
  background-color: #242830;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .card-header {
  background-color: #2d323c;
  border-bottom-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .card-footer {
  background-color: #2d323c;
  border-top-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-form-card,
body.vplus-dark-mode .vplus-vendor-submission-wrapper,
body.vplus-dark-mode .vplus-vendor-submission-form,
body.vplus-dark-mode #vplus-submission-main-card,
body.vplus-dark-mode #vplus-submission-ai-card {
  background-color: #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode #vplus-submission-splash {
  background: rgba(26, 29, 33, 0.97);
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-queue-panel {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}

body.vplus-dark-mode .vplus-queue-panel-body,
body.vplus-dark-mode .vplus-queue-panel-footer {
  background-color: #242830;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-queue-item {
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-queue-item-thumb {
  background-color: #2d323c;
  color: #a0a6b1;
}

body.vplus-dark-mode #submission-blueflag-specs-panel .card,
body.vplus-dark-mode #submission-blueflag-checks-panel,
body.vplus-dark-mode #submission-blueflag-ppsr-panel,
body.vplus-dark-mode #submission-blueflag-valuation-panel,
body.vplus-dark-mode #submission-blueflag-matches {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode #submission-blueflag-specs-panel .card-header,
body.vplus-dark-mode #submission-blueflag-matches .card-header {
  background-color: rgba(13, 110, 253, 0.18) !important;
  border-bottom-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-blueflag-status {
  color: #f5d97d;
}

body.vplus-dark-mode .vplus-blueflag-heading-icon {
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-blueflag-loading .form-control,
body.vplus-dark-mode .vplus-blueflag-loading .form-select {
  background-color: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.45);
}

/* ── My Account ── */
body.vplus-dark-mode .vplus-my-account,
body.vplus-dark-mode .vplus-account-grid {
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-account-grid .card {
  background-color: #242830 !important;
  border-color: #3a3f4a !important;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-account-grid .card .card-header {
  background: linear-gradient(135deg, #2d323c 0%, #242830 100%) !important;
  border-bottom-color: #3a3f4a !important;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-account-grid .card .card-header h5,
body.vplus-dark-mode .vplus-account-grid .card .card-header h5 i,
body.vplus-dark-mode .vplus-account-grid label,
body.vplus-dark-mode .vplus-account-grid .form-label {
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-account-address-row .card-header {
  background: #2d323c !important;
  border-color: #3a3f4a !important;
}

body.vplus-dark-mode .vplus-account-address-row .card-body,
body.vplus-dark-mode .vplus-account-addresses-card .card-body {
  background-color: #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-account-security-card.is-2fa-required {
  border-color: #6db3f2 !important;
  box-shadow: 0 0 0 3px rgba(109, 179, 242, 0.18), 0 12px 28px rgba(0, 0, 0, 0.35);
}

body.vplus-dark-mode .vplus-addr-toggle {
  color: #e4e6eb !important;
}

/* ── Core, Consignment, and Auction Manager specific panels ── */
body.vplus-dark-mode .icon-preview-box,
body.vplus-dark-mode #setup-logo-preview {
  background: #2d323c !important;
  border-color: #3a3f4a !important;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-vimeo-instructions {
  background: rgba(13, 110, 253, 0.14) !important;
  border-left-color: #6db3f2 !important;
  color: #d8eaff;
}

body.vplus-dark-mode .vplus-submissions-list .vplus-submission-card,
body.vplus-dark-mode .vplus-submission-card,
body.vplus-dark-mode .vplus-submissions-manager .card {
  background-color: #242830;
  border-color: #3a3f4a !important;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-submission-thumb {
  background: #2d323c !important;
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-submissions-tabs .nav-link {
  background: #2d323c;
  border-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-submissions-tabs .nav-link:hover {
  background: #343a46;
  border-color: #4b5563;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-submissions-tabs .nav-link.active {
  background: var(--bs-primary, #0d6efd);
  border-color: var(--bs-primary, #0d6efd);
  color: #fff;
}

body.vplus-dark-mode .vplus-submissions-manager .table th,
body.vplus-dark-mode .vplus-submissions-manager .table td {
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-submissions-manager .tab-pane .d-flex.flex-column,
body.vplus-dark-mode #bulk-actions-toolbar,
body.vplus-dark-mode #pending-bulk-toolbar {
  background: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode #vplus-photo-files .image-box,
body.vplus-dark-mode #vplus-photo-files-additional .image-box,
body.vplus-dark-mode .vplus-photo-section-slot {
  background: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode #vplus-photo-files .vplus-file-move-handle,
body.vplus-dark-mode #vplus-photo-files .vplus-ai-file-icon {
  background: rgba(36, 40, 48, 0.92);
  border-color: #3a3f4a;
}

body.vplus-dark-mode #vplus-photo-files .vplus-media-option.show {
  background: #2d323c;
  border-color: #3a3f4a;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}

body.vplus-dark-mode #vplus-photo-files .vplus-media-option:before {
  border-color: #3a3f4a transparent transparent transparent;
}

body.vplus-dark-mode #vplus-photo-files .vplus-media-option:after {
  border-color: #2d323c transparent transparent transparent;
}

body.vplus-dark-mode #vplus-photo-files .vplus-media-option .btn,
body.vplus-dark-mode .vplus-primary-photo-label,
body.vplus-dark-mode .vplus-section-group-label,
body.vplus-dark-mode .vplus-section-slot-label {
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-section-add-photo {
  background: transparent;
  border-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-section-add-photo:hover {
  background: rgba(13, 110, 253, 0.14);
  border-color: #6db3f2;
  color: #6db3f2;
}

body.vplus-dark-mode .vplus-photo-section-additional {
  border-top-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-prompt-btn {
  background: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-prompt-btn:hover {
  background: rgba(255, 193, 7, 0.14);
  color: #f5d97d;
}

body.vplus-dark-mode .vplus-prompt-btn.active {
  background: rgba(255, 193, 7, 0.25);
  color: #f5d97d;
}

body.vplus-dark-mode .vplus-prompt-btn-add:hover {
  background: rgba(13, 110, 253, 0.14);
  color: #6db3f2;
}

/* ── VendorPlus content panels ── */
body.vplus-dark-mode .vplus-lot-nav,
body.vplus-dark-mode .vplus-lot-summary,
body.vplus-dark-mode .vplus-lot-details-panel {
  background-color: #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-lot-filters {
  background-color: #242830;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-lot-item {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-card-heading {
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-card-nav {
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-content-area {
  background-color: #1a1d21;
}

/* ── Forms ── */
body.vplus-dark-mode .form-control,
body.vplus-dark-mode .form-select {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .form-control:focus,
body.vplus-dark-mode .form-select:focus {
  background-color: #343a46;
  border-color: var(--bs-primary);
  color: #e4e6eb;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}

body.vplus-dark-mode .form-control::placeholder {
  color: #aeb9c8;
  opacity: 1;
}

body.vplus-dark-mode .vplus-submission-description-field::placeholder,
body[data-bs-theme="dark"] .vplus-submission-description-field::placeholder {
  color: #aeb9c8;
  opacity: 1;
}

body.vplus-dark-mode .form-floating > .form-control::placeholder {
  color: transparent;
}

body.vplus-dark-mode .form-floating > .form-control:focus::placeholder {
  color: #6c757d;
}

body.vplus-dark-mode .form-control:disabled,
body.vplus-dark-mode .form-control[readonly],
body.vplus-dark-mode .form-select:disabled {
  background-color: #242830;
  color: #a0a6b1;
}

body.vplus-dark-mode .input-group-text {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .form-text {
  color: #6c757d;
}

body.vplus-dark-mode .form-check-input {
  background-color: #2d323c;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

body.vplus-dark-mode .form-floating > label {
  color: #a0a6b1;
}

body.vplus-dark-mode .form-range::-webkit-slider-runnable-track {
  background-color: #3a3f4a;
}

body.vplus-dark-mode .file-upload,
body.vplus-dark-mode .vplus-file-upload-field .file-upload,
body.vplus-dark-mode .vplus-lot-photo-upload-field .file-upload {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .file-upload:hover,
body.vplus-dark-mode .vplus-file-upload-field .file-upload:hover,
body.vplus-dark-mode .vplus-lot-photo-upload-field .file-upload:hover {
  background-color: #343a46;
  border-color: #4b5563;
}

body.vplus-dark-mode [data-vplus-photo-trigger] .fa,
body.vplus-dark-mode [data-vplus-photo-trigger] .fas,
body.vplus-dark-mode [data-vplus-photo-trigger] .far,
body.vplus-dark-mode [data-vplus-photo-trigger] .fal,
body.vplus-dark-mode [data-vplus-photo-trigger] .fa-solid,
body.vplus-dark-mode [data-vplus-photo-trigger] .fa-regular,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .fa,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .fas,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .far,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .fal,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .fa-solid,
body[data-bs-theme="dark"] [data-vplus-photo-trigger] .fa-regular {
  color: #f4f6fb;
  filter: brightness(0) invert(1);
}

body.vplus-dark-mode .ql-toolbar.ql-snow,
body.vplus-dark-mode .card-body .ql-toolbar.ql-snow {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .ql-container.ql-snow,
body.vplus-dark-mode .card-body .ql-container.ql-snow,
body.vplus-dark-mode .vplus-lot-quick-edit .ql-container {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .ql-editor,
body.vplus-dark-mode .card-body .ql-editor,
body.vplus-dark-mode .vplus-lot-quick-edit .ql-editor {
  background-color: #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode .ql-snow .ql-stroke {
  stroke: #a0a6b1;
}

body.vplus-dark-mode .ql-snow .ql-fill,
body.vplus-dark-mode .ql-snow .ql-stroke.ql-fill {
  fill: #a0a6b1;
}

body.vplus-dark-mode .ql-snow .ql-picker {
  color: #a0a6b1;
}

body.vplus-dark-mode .ql-snow .ql-picker.ql-expanded .ql-picker-options {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

/* ── Tables ── */
body.vplus-dark-mode .table {
  --bs-table-bg: #242830;
  --bs-table-color: #e4e6eb;
  --bs-table-border-color: #3a3f4a;
  --bs-table-striped-bg: #2d323c;
  --bs-table-striped-color: #e4e6eb;
  --bs-table-hover-bg: #343a46;
  --bs-table-hover-color: #e4e6eb;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .table > thead {
  background-color: #2d323c;
  color: #e4e6eb;
}

body.vplus-dark-mode .table > thead > tr > th {
  background-color: #2d323c;
  color: #e4e6eb;
  border-bottom-color: #3a3f4a;
}

body.vplus-dark-mode .table > tbody > tr > td {
  border-bottom-color: #3a3f4a;
}

body.vplus-dark-mode .table-heading {
  background-color: #2d323c;
  color: #e4e6eb;
}

/* ── Modals ── */
body.vplus-dark-mode .modal-content {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .modal-header {
  background-color: #2d323c;
  border-bottom-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .modal-footer {
  background-color: #2d323c;
  border-top-color: #3a3f4a;
}

body.vplus-dark-mode .modal-header .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* ── Dropdown Menus ── */
body.vplus-dark-mode .dropdown-menu {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .dropdown-item {
  color: #e4e6eb;
}

body.vplus-dark-mode .dropdown-item:hover,
body.vplus-dark-mode .dropdown-item:focus {
  background-color: #343a46;
  color: #ffffff;
}

body.vplus-dark-mode .dropdown-item.active,
body.vplus-dark-mode .dropdown-item:active {
  background-color: var(--bs-primary);
  color: #fff;
}

body.vplus-dark-mode .dropdown-divider {
  border-color: #3a3f4a;
}

body.vplus-dark-mode .dropdown-header {
  color: #a0a6b1;
}

/* ── Nav Tabs & Pills ── */
body.vplus-dark-mode .nav-tabs {
  border-bottom-color: #3a3f4a;
}

body.vplus-dark-mode .nav-tabs .nav-link {
  color: #a0a6b1;
}

body.vplus-dark-mode .nav-tabs .nav-link:hover {
  border-color: #3a3f4a #3a3f4a transparent;
  color: #e4e6eb;
}

body.vplus-dark-mode .nav-tabs .nav-link.active {
  background-color: #242830;
  border-color: #3a3f4a #3a3f4a #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode .nav-pills .nav-link {
  color: #a0a6b1;
}

body.vplus-dark-mode .nav-pills .nav-link.active {
  background-color: var(--bs-primary);
  color: #fff;
}

/* ── Alerts ── */
body.vplus-dark-mode .alert-primary {
  background-color: rgba(13, 110, 253, 0.15);
  border-color: rgba(13, 110, 253, 0.25);
  color: #6db3f2;
}

body.vplus-dark-mode .alert-secondary {
  background-color: rgba(108, 117, 125, 0.15);
  border-color: rgba(108, 117, 125, 0.25);
  color: #a0a6b1;
}

body.vplus-dark-mode .alert-success {
  background-color: rgba(25, 135, 84, 0.15);
  border-color: rgba(25, 135, 84, 0.25);
  color: #75d5a5;
}

body.vplus-dark-mode .alert-danger {
  background-color: rgba(220, 53, 69, 0.15);
  border-color: rgba(220, 53, 69, 0.25);
  color: #f0a0a8;
}

body.vplus-dark-mode .alert-warning {
  background-color: rgba(255, 193, 7, 0.15);
  border-color: rgba(255, 193, 7, 0.25);
  color: #f5d97d;
}

body.vplus-dark-mode .alert-info {
  background-color: rgba(13, 202, 240, 0.15);
  border-color: rgba(13, 202, 240, 0.25);
  color: #6edff6;
}

body.vplus-dark-mode .alert-light {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .alert-dark {
  background-color: rgba(33, 37, 41, 0.5);
  border-color: #3a3f4a;
  color: #e4e6eb;
}

/* ── List Groups ── */
body.vplus-dark-mode .list-group-item {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .list-group-item.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

body.vplus-dark-mode .list-group-item-action:hover,
body.vplus-dark-mode .list-group-item-action:focus {
  background-color: #2d323c;
  color: #e4e6eb;
}

/* ── Pagination ── */
body.vplus-dark-mode .page-link {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #6db3f2;
}

body.vplus-dark-mode .page-link:hover {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

body.vplus-dark-mode .page-item.disabled .page-link {
  background-color: #1a1d21;
  border-color: #3a3f4a;
  color: #6c757d;
}

body.vplus-dark-mode .pagination a {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #6db3f2;
}

/* ── Breadcrumbs ── */
body.vplus-dark-mode .breadcrumb {
  background-color: transparent;
}

body.vplus-dark-mode .breadcrumb-item + .breadcrumb-item::before {
  color: #6c757d;
}

body.vplus-dark-mode .breadcrumb-item.active {
  color: #a0a6b1;
}

/* ── Badges ── */
body.vplus-dark-mode .badge.bg-light {
  background-color: #3a3f4a !important;
  color: #e4e6eb !important;
}

body.vplus-dark-mode .badge-lighter {
  background-color: #3a3f4a;
  color: #e4e6eb;
}

/* VendorPlus badge variants — keep hues, reduce intensity for dark backgrounds */
body.vplus-dark-mode .vplus-badge-pending,
body.vplus-dark-mode .vplus-badge-warning {
  background-color: rgba(255, 193, 7, 0.2);
  color: #f5d97d;
}

body.vplus-dark-mode .vplus-badge-approved,
body.vplus-dark-mode .vplus-badge-sold,
body.vplus-dark-mode .vplus-badge-success {
  background-color: rgba(25, 135, 84, 0.2);
  color: #75d5a5;
}

body.vplus-dark-mode .vplus-badge-rejected,
body.vplus-dark-mode .vplus-badge-live,
body.vplus-dark-mode .vplus-badge-danger,
body.vplus-dark-mode .vplus-badge-required,
body.vplus-dark-mode .vplus-badge-webcast {
  background-color: rgba(220, 53, 69, 0.2);
  color: #f0a0a8;
}

body.vplus-dark-mode .vplus-badge-assigned,
body.vplus-dark-mode .vplus-badge-info {
  background-color: rgba(13, 202, 240, 0.2);
  color: #6edff6;
}

body.vplus-dark-mode .vplus-badge-unsold,
body.vplus-dark-mode .vplus-badge-withdrawn,
body.vplus-dark-mode .vplus-badge-optional,
body.vplus-dark-mode .vplus-badge-secondary {
  background-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-badge-primary,
body.vplus-dark-mode .vplus-badge-timed {
  background-color: rgba(13, 110, 253, 0.2);
  color: #6db3f2;
}

body.vplus-dark-mode .vplus-badge-dark,
body.vplus-dark-mode .vplus-badge-marketplace {
  background-color: #3a3f4a;
  color: #e4e6eb;
}

/* ── Status Boxes ── */
body.vplus-dark-mode .vplus-status-box.vplus-status-draft {
  background-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-status-box.vplus-status-review {
  background-color: rgba(255, 193, 7, 0.2);
  color: #f5d97d;
}

body.vplus-dark-mode .vplus-status-box.vplus-status-accepted {
  background-color: rgba(25, 135, 84, 0.2);
  color: #75d5a5;
}

body.vplus-dark-mode .vplus-status-box.vplus-status-rejected {
  background-color: rgba(220, 53, 69, 0.2);
  color: #f0a0a8;
}

/* ── Buttons ── */
body.vplus-dark-mode .btn-light {
  background-color: #3a3f4a;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .btn-light:hover {
  background-color: #474d59;
  border-color: #474d59;
  color: #fff;
}

body.vplus-dark-mode .btn-outline-secondary {
  border-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .btn-outline-secondary:hover {
  background-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .btn-outline-light {
  border-color: #3a3f4a;
  color: #a0a6b1;
}

body.vplus-dark-mode .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* ── Code & Pre ── */
body.vplus-dark-mode code {
  background-color: #2d323c;
  color: #f0a0a8;
}

body.vplus-dark-mode pre {
  background-color: #2d323c;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-token-display {
  background-color: #2d323c;
  color: #e4e6eb;
}

/* ── Tooltips & Popovers ── */
body.vplus-dark-mode .tooltip-inner {
  background-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .bs-tooltip-top .tooltip-arrow::before,
body.vplus-dark-mode .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
  border-top-color: #3a3f4a;
}

body.vplus-dark-mode .bs-tooltip-bottom .tooltip-arrow::before,
body.vplus-dark-mode .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
  border-bottom-color: #3a3f4a;
}

body.vplus-dark-mode .popover {
  background-color: #2d323c;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .popover-header {
  background-color: #343a46;
  border-bottom-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .popover-body {
  color: #e4e6eb;
}

/* ── Media & Gallery ── */
body.vplus-dark-mode .vplus-media-files {
  background-color: #242830;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-media-option {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-media-option:hover {
  background-color: #343a46;
}

body.vplus-dark-mode .vplus-image-container {
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-primary-image {
  border-color: #3a3f4a;
}

/* ── Multi-select Dropdown ── */
body.vplus-dark-mode .vplus-multi-select-dropdown .dropdown-menu {
  background-color: #2d323c;
  border-color: #3a3f4a;
}

/* ── Accordion ── */
body.vplus-dark-mode .accordion-item {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .accordion-button {
  background-color: #2d323c;
  color: #e4e6eb;
  box-shadow: none;
}

body.vplus-dark-mode .accordion-button:not(.collapsed) {
  background-color: #343a46;
  color: #e4e6eb;
}

body.vplus-dark-mode .accordion-button::after {
  filter: invert(0.8);
}

body.vplus-dark-mode .accordion-body {
  background-color: #242830;
}

/* ── Offcanvas ── */
body.vplus-dark-mode .offcanvas {
  background-color: #242830;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .offcanvas-header {
  border-bottom-color: #3a3f4a;
}

/* ── Progress Bars ── */
body.vplus-dark-mode .progress {
  background-color: #2d323c;
}

/* ── Dark mode switch (below logo) ── */
.vplus-header-brand-col {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.vplus-dark-mode-switch-wrap {
  margin-top: 0;
}

.vplus-dark-mode-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

.vplus-dark-mode-switch-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.vplus-dark-mode-switch-track {
  position: relative;
  width: 51px;
  height: 31px;
  background-color: #e9e9eb;
  border-radius: 31px;
  transition: background-color 0.3s ease;
  flex-shrink: 0;
}

.vplus-dark-mode-switch-track::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 27px;
  height: 27px;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  transition: transform 0.3s ease;
}

.vplus-dark-mode-switch-input:checked + .vplus-dark-mode-switch-track {
  background-color: #34c759;
}

.vplus-dark-mode-switch-input:checked + .vplus-dark-mode-switch-track::after {
  transform: translateX(20px);
}

.vplus-dark-mode-switch-label {
  font-size: 0.85rem;
  font-weight: 500;
  color: #6c757d;
}

body.vplus-dark-mode .vplus-dark-mode-switch-track {
  background-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-dark-mode-switch-input:checked + .vplus-dark-mode-switch-track {
  background-color: #34c759;
}

body.vplus-dark-mode .vplus-dark-mode-switch-label {
  color: #a0a6b1;
}

/* ── Traditional top nav bar ── */
body.vplus-dark-mode .navbar {
  background-color: #242830;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .navbar .nav-link {
  color: #a0a6b1;
}

body.vplus-dark-mode .navbar .nav-link:hover {
  color: #e4e6eb;
}

body.vplus-dark-mode .navbar .nav-link.active {
  color: #e4e6eb;
}

body.vplus-dark-mode .welcome-text {
  color: #a0a6b1;
}

body.vplus-dark-mode .vp-user-menu-btn {
  background: rgba(36, 40, 48, 0.92);
  border-color: rgba(255, 255, 255, 0.1);
  color: #e4e6eb;
}
body.vplus-dark-mode .vp-user-menu-btn:hover,
body.vplus-dark-mode .vp-user-menu-btn.show,
body.vplus-dark-mode .vp-user-menu-btn[aria-expanded="true"] {
  background: #242830;
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.25);
}
body.vplus-dark-mode .vp-user-menu-avatar,
body.vplus-dark-mode .vp-user-menu-caret {
  color: #a0a6b1;
}
body.vplus-dark-mode .vp-user-menu-btn + .dropdown-menu .dropdown-item {
  color: #e4e6eb;
}

/* ── Integrations & Settings tab nav ── */
body.vplus-dark-mode .vplus-tab-nav {
  background-color: #242830;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-tab-nav .nav-link {
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-tab-nav .nav-link:hover {
  color: #e4e6eb;
  background-color: #2d323c;
}

body.vplus-dark-mode .vplus-tab-nav .nav-link.active {
  color: #e4e6eb;
  background-color: #343a46;
}

/* ── Select2 ── */
body.vplus-dark-mode .select2-container--default .select2-selection--single,
body.vplus-dark-mode .select2-container--default .select2-selection--multiple {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #e4e6eb;
}

body.vplus-dark-mode .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #6c757d;
}

body.vplus-dark-mode .select2-dropdown {
  background-color: #2d323c;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--bs-primary);
}

body.vplus-dark-mode .select2-container--default .select2-search--dropdown .select2-search__field {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .select2-container--default .select2-results__option {
  color: #e4e6eb;
}

/* ── Shadows ── */
body.vplus-dark-mode .shadow,
body.vplus-dark-mode .shadow-sm,
body.vplus-dark-mode .shadow-lg {
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.4) !important;
}

/* ── Misc Components ── */
body.vplus-dark-mode .vplus-icon-btn {
  color: #a0a6b1;
}

body.vplus-dark-mode .vplus-icon-btn:hover {
  color: #e4e6eb;
}

body.vplus-dark-mode .grey-text {
  color: #6c757d;
}

body.vplus-dark-mode .strikethrough {
  color: #6c757d;
}

/* ── Scrollbar ── */
body.vplus-dark-mode ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

body.vplus-dark-mode ::-webkit-scrollbar-track {
  background: #1a1d21;
}

body.vplus-dark-mode ::-webkit-scrollbar-thumb {
  background: #3a3f4a;
  border-radius: 4px;
}

body.vplus-dark-mode ::-webkit-scrollbar-thumb:hover {
  background: #474d59;
}

/* ── Primary color & link override for dark mode ── */
body.vplus-dark-mode {
  --vplus-primary: #6db3f2;
  --bs-primary: #6db3f2;
  --bs-primary-rgb: 109, 179, 242;
  --bs-link-color: #6db3f2;
  --bs-link-color-rgb: 109, 179, 242;
  --bs-link-hover-color: #93c9f7;
  --bs-secondary-color: #a0a6b1;
}

/* ── Auction / top nav link colors ── */
body.vplus-dark-mode .auction-nav .nav-link {
  --bs-nav-link-color: #a0a6b1;
  color: #a0a6b1;
}

body.vplus-dark-mode .auction-nav .nav-link:hover {
  color: #e4e6eb;
}

body.vplus-dark-mode .auction-nav .nav-item.active .nav-link {
  color: #e4e6eb;
}

body.vplus-dark-mode .auction-nav .dropdown-item {
  --bs-dropdown-link-color: #e4e6eb;
}

/* ── Dictation buttons ── */
body.vplus-dark-mode .vp-dictation-btn {
  background-color: #2d323c;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vp-dictation-btn:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

body.vplus-dark-mode .vp-dictation-btn.active {
  color: #dc3545;
  background-color: #2d323c;
  border-color: #dc3545;
}

body.vplus-dark-mode .vp-dictation-card-btn {
  background-color: #2d323c;
  color: #e4e6eb;
  border-color: #3a3f4a;
}

body.vplus-dark-mode .vp-dictation-card-btn:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

/* ── Button groups (Item Type, Purchase Options) ── */
body.vplus-dark-mode .form-row .btn-group .btn {
  border-color: #3a3f4a;
  color: #a0a6b1;
  background-color: #242830;
}

body.vplus-dark-mode .form-row .btn-group .btn:hover {
  background-color: #2d323c;
  color: #e4e6eb;
}

body.vplus-dark-mode .form-row .btn-group .btn-check:checked + .btn {
  background-color: #343a46;
  border-color: #6db3f2;
  color: #e4e6eb;
}

body.vplus-dark-mode .btn-group .btn-outline-secondary {
  border-color: #3a3f4a;
  color: #a0a6b1;
  background-color: #242830;
}

body.vplus-dark-mode .btn-group .btn-outline-secondary:hover {
  background-color: #2d323c;
  color: #e4e6eb;
}

body.vplus-dark-mode .btn-group .btn-check:checked + .btn-outline-secondary {
  background-color: #343a46;
  border-color: #6db3f2;
  color: #e4e6eb;
}

/* ── Input group icon color inheritance ── */
body.vplus-dark-mode .input-group-text .fa-regular,
body.vplus-dark-mode .input-group-text .fa-solid,
body.vplus-dark-mode .input-group-text .fas,
body.vplus-dark-mode .input-group-text .far,
body.vplus-dark-mode .input-group-text i {
  color: inherit;
}

body.vplus-dark-mode .vplus-info-tooltip {
  color: #a0a6b1;
}

/* ── Searchable select (Category/Vendor) ── */
body.vplus-dark-mode .vplus-ss-trigger {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-ss-trigger:focus,
body.vplus-dark-mode .vplus-ss-trigger.vplus-ss-open {
  border-color: #6db3f2;
  box-shadow: 0 0 0 0.25rem rgba(109, 179, 242, 0.15);
}

body.vplus-dark-mode .vplus-ss-trigger.vplus-ss-placeholder .vplus-ss-display {
  color: #6c757d;
}

body.vplus-dark-mode .vplus-ss-dropdown {
  background: #2d323c;
  border-color: #3a3f4a;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4);
}

body.vplus-dark-mode .vplus-ss-search-wrap {
  border-bottom-color: #3a3f4a;
}

body.vplus-dark-mode .vplus-ss-search-wrap input {
  background-color: #242830;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-ss-item {
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-ss-item:hover,
body.vplus-dark-mode .vplus-ss-item.vplus-ss-focused {
  background-color: #343a46;
}

body.vplus-dark-mode .vplus-ss-group-label {
  color: #6c757d;
}

body.vplus-dark-mode .form-floating .vplus-ss-wrapper ~ label {
  color: #a0a6b1;
}

/* ── Nav tabs with card borders ── */
body.vplus-dark-mode .nav-tabs:has(+ .card) .nav-link {
  border-color: #3a3f4a;
  box-shadow: none;
}

body.vplus-dark-mode .nav-tabs:has(+ .card) .nav-link.active {
  background-color: #242830;
  border-color: #3a3f4a #3a3f4a #242830;
  border-bottom-color: #242830;
  color: #e4e6eb;
}

body.vplus-dark-mode .nav-tabs:has(+ .card) .nav-link:not(.active) {
  background: rgba(255, 255, 255, 0.05);
  color: #a0a6b1;
}

/* ── Photo trigger ── */
body.vplus-dark-mode .vplus-lot-photo-trigger {
  background-color: #2d323c;
  border-color: #3a3f4a;
  color: #e4e6eb;
}

body.vplus-dark-mode .vplus-lot-photo-trigger:hover {
  background-color: #343a46;
}

/* ── Number separator buttons ── */
body.vplus-dark-mode .btn-group > .btn.active {
  background-color: #343a46;
  color: #e4e6eb;
}

/* Transfer Modal Progress Bar */
#vplus-transfer-modal .vplus-transfer-progress {
  max-width: 100%;
  overflow: hidden;
}

#vplus-transfer-modal .progress {
  width: 100%;
  height: 12px;
  overflow: hidden;
  background-color: #e9ecef;
  border-radius: 2px;
}

#vplus-transfer-modal .progress-bar {
  max-width: 100%;
  height: 100%;
}

/* ==========================================================================
   MOBILE RESPONSIVE FIXES
   ========================================================================== */

/* Prevent all elements from breaking viewport */
.vplus-content-area,
.vplus-lot-nav,
.vplus-action-row,
.vplus-lot-filters,
.vplus-lot-list,
.vplus-lot-item,
.vplus-lot-summary,
.card,
.card-body {
  max-width: 100%;
  box-sizing: border-box;
}

/* Mobile Button Styles - Small Screens */
@media (max-width: 767px) {
  /* Navigation bar wrapping */
  .vplus-lot-nav {
    flex-wrap: wrap;
    gap: 0.375rem;
  }
  
  .vplus-lot-nav > * {
    max-width: 100%;
  }
  
  /* Action row wrapping for mobile */
  .vplus-action-row {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  
  .vplus-action-row .btn,
  .vplus-btn-sync-to,
  .vplus-btn-pull-from,
  .btn-new-lot,
  .btn-bulk-import {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8125rem;
    padding: 0.375rem 0.5rem;
  }
  
  /* Hide button labels on small screens, show icons */
  .vplus-action-row .btn .btn-link-label {
    display: none;
  }
  
  /* Show all lot-nav labels on mobile (buttons wrap at this width) */
  .vplus-lot-nav .btn .btn-link-label {
    display: inline;
  }
  
  /* Filter panel on mobile */
  .vplus-lot-filters {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  /* Cards should not exceed viewport (except those with dropdowns) */
  .card:not(.vplus-sales-list .card):not(.vplus-submission-card):not(.vplus-settings-card) {
    overflow: hidden;
  }
  #vplus-sale-filter {
    overflow: visible;
  }
  #vplus-sale-filter .card {
    overflow: visible !important;
  }
  
  /* Lot item responsive */
  .vplus-lot-item .lot-title {
    font-size: 0.9rem;
    word-break: break-word;
  }
  
  /* Form rows on mobile */
  .form-row .btn-group {
    flex-wrap: wrap;
  }
  
  .form-row .btn-group .btn {
    flex: 1 1 auto;
    min-width: 0;
  }
}

/* Very small screens (under 480px) */
@media (max-width: 480px) {
  /* Stack action buttons vertically */
  .vplus-action-row {
    flex-direction: column;
  }
  
  .vplus-action-row .btn {
    width: 100%;
    justify-content: center;
  }
  
  /* Lot nav goes full width */
  .vplus-lot-nav {
    flex-direction: column;
    align-items: stretch;
  }
  
  .vplus-lot-nav .me-auto {
    order: -1;
    margin-bottom: 0.5rem;
  }
  
  /* Show button labels on full-width buttons */
  .vplus-action-row .btn .btn-link-label {
    display: inline;
  }
  
  /* Badge pills wrapping */
  .vplus-lot-item .badges {
    flex-wrap: wrap;
    gap: 0.25rem;
  }
  
  .vplus-lot-item .badge {
    font-size: 0.7rem;
  }
}

/* Tablet adjustments (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .vplus-lot-nav .btn .btn-link-label {
    display: inline;
  }
  
  .vplus-action-row .btn {
    padding: 0.375rem 0.625rem;
  }
}

/* Lot form card responsive */
@media (max-width: 575px) {
  .vplus-lot-card .card-header {
    padding: 0.75rem 1rem;
  }
  
  .vplus-lot-card .card-body {
    padding: 1rem;
  }
  
  /* Express mode form rows */
  #express-lot-number-row,
  #express-auto-lot-numbering-row {
    flex: 1 1 100%;
  }
}

/* ==========================================
   DICTATION FEATURE STYLES
   ========================================== */

/* Dictation button styling */
.vp-dictation-btn {
  transition: all 0.2s ease;
  background-color: #fff;
  color: #212529;
  border-color: #dee2e6;
}

.vp-dictation-btn:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

/* Active state - white background with red icon and border (no red fill) */
.vp-dictation-btn.active {
  color: #dc3545; /* Red icon */
  background-color: #fff; /* White background to show progress */
  border-color: #dc3545;
  animation: vp-pulse-btn 1.5s infinite;
}

.vp-dictation-btn.active:hover {
  background-color: #fff;
  border-color: #b02a37;
  color: #b02a37;
}

/* Card-level dictation button */
.vp-dictation-card-btn {
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
  white-space: nowrap;
  background-color: #fff;
  color: #212529;
  border-color: #dee2e6;
}

.vp-dictation-card-btn:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.vp-dictation-card-btn .vp-dictation-btn-label {
  margin-left: 0.25rem;
}

@media (max-width: 576px) {
  .vp-dictation-card-btn .vp-dictation-btn-label {
    display: none;
  }
}

/* Field-level dictation button */
.vp-dictation-field-btn {
  flex-shrink: 0;
  padding: 0.375rem 0.75rem;
  border-top-right-radius: var(--bs-border-radius, 0.375rem) !important;
  border-bottom-right-radius: var(--bs-border-radius, 0.375rem) !important;
}

/* Ensure form-floating has flex inside input-group */
.input-group > .form-floating {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}

/* Input group with dictation button maintains proper borders */
.input-group > .form-floating > .form-control {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* Field recording state - pulsing red border */
.vp-dictation-active {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
  animation: vp-pulse-border 1.5s infinite;
}

/* Quill editor active state */
.ql-editor.vp-dictation-active {
  outline: 2px solid #dc3545 !important;
  outline-offset: -2px;
  animation: vp-pulse-border 1.5s infinite;
}

.ql-container:has(.ql-editor.vp-dictation-active) {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}

/* Field completion state - green border */
.vp-dictation-complete {
  border-color: #198754 !important;
  box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25) !important;
  animation: vp-border-fade 1.5s forwards;
}

/* Quill editor complete state */
.ql-editor.vp-dictation-complete {
  outline: 2px solid #198754 !important;
  outline-offset: -2px;
}

.ql-container:has(.ql-editor.vp-dictation-complete) {
  border-color: #198754 !important;
  box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25) !important;
}

/* Card active state during sequence dictation */
.vp-dictation-sequence-active {
  box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.3);
  border-radius: 0.375rem;
}

/* Pulsing button animation */
@keyframes vp-pulse-btn {
  0% {
    box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(220, 53, 69, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
  }
}

/* Pulsing border animation */
@keyframes vp-pulse-border {
  0% {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
  }
  50% {
    border-color: #ff6b7a;
    box-shadow: 0 0 0 0.35rem rgba(220, 53, 69, 0.15);
  }
  100% {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
  }
}

/* Border fade animation for completion */
@keyframes vp-border-fade {
  0% {
    border-color: #198754;
    box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25);
  }
  80% {
    border-color: #198754;
    box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25);
  }
  100% {
    border-color: var(--bs-border-color, #dee2e6);
    box-shadow: none;
  }
}

/* Hide dictation buttons when not supported (JS will handle this) */
.vp-dictation-unsupported .vp-dictation-btn {
  display: none !important;
}

/* Field processing state (waiting for Whisper API) */
.vp-dictation-processing {
  border-color: #6c757d !important;
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25) !important;
  animation: vp-pulse-processing 1s infinite;
}

@keyframes vp-pulse-processing {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* Audio Level Bar - visual feedback during dictation */
.vp-audio-level-bar {
  position: relative;
  height: 6px;
  background: #e9ecef;
  border-radius: 3px;
  margin-top: 4px;
  overflow: hidden;
}

.vp-audio-level-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #28a745, #28a745 70%, #ffc107 85%, #dc3545);
  border-radius: 3px;
  transition: width 0.05s ease-out;
}

.vp-audio-level-bar.peaking .vp-audio-level-fill {
  background: linear-gradient(90deg, #28a745, #ffc107 50%, #dc3545);
}

/* Timeout indicator on dictation button - fills from top to bottom */
.vp-dictation-btn {
  position: relative;
  overflow: hidden;
}

.vp-dictation-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(220, 53, 69, 0.8) 0%, rgba(220, 53, 69, 0.6) 100%);
  transform: scaleY(0);
  transform-origin: top;
  transition: none;
  pointer-events: none;
  z-index: 0;
}

.vp-dictation-btn.active.timeout-active::after {
  animation: vp-timeout-fill-down var(--timeout-duration, 2500ms) linear forwards;
}

/* When progress is filling, icon should stay visible (white on red) */
.vp-dictation-btn.active.timeout-active {
  color: #dc3545;
}

.vp-dictation-btn > * {
  position: relative;
  z-index: 1;
}

@keyframes vp-timeout-fill-down {
  from {
    transform: scaleY(0);
  }
  to {
    transform: scaleY(1);
  }
}

/* Interim (in-progress) transcription display */
.vp-interim-display {
  font-size: 0.8rem;
  color: #6c757d;
  font-style: italic;
  padding: 4px 8px;
  background: #f8f9fa;
  border-radius: 4px;
  margin-top: 4px;
  min-height: 24px;
  border-left: 3px solid #007bff;
  opacity: 0.8;
}

/* Whisper toggle wrapper styling */
.vp-whisper-toggle-wrapper {
  transition: all 0.3s ease;
}

.vp-whisper-toggle-wrapper:has(#vp-whisper-toggle:checked) {
  background: rgba(102, 126, 234, 0.12) !important;
  border-color: rgba(102, 126, 234, 0.5) !important;
}

/* Card header adjustments for dictate button */
.vplus-card-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.vplus-card-header[data-bs-toggle="collapse"] {
  cursor: pointer;
}

.vplus-card-header > i:first-child {
  flex-shrink: 0;
}

.vplus-card-header > span:not(.vplus-collapse-icon):not(.vp-dictation-btn-label) {
  flex-grow: 1;
}

.vplus-card-header .vplus-collapse-icon {
  flex-shrink: 0;
}

.vplus-card-header-blank-lots {
  background: linear-gradient(135deg, #4a5568 0%, #1a202c 100%);
  color: #fff;
}

/* Express Mode card header */
#vplus-card--express > .vplus-card-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

/* Express Mode distinct header styling - matches Express button */
.vplus-express-card-header {
  background: linear-gradient(45deg, #ff4500, #ffa500);
  color: #fff;
  border-color: rgba(172, 43, 11, 1);
  text-shadow: 1px 1px 2px rgba(172, 43, 11, 0.5);
  border-bottom: 1px solid rgba(172, 43, 11, 0.5);
  padding: 0.75rem 1rem;
  border-radius: 0.375rem 0.375rem 0 0;
}

.vplus-express-card-header i {
  color: #fff;
}

.vplus-express-card-header span {
  color: #fff;
}

/* Dictation button label override - prevent white-on-white */
.vplus-express-card-header .vp-dictation-btn-label {
  color: #333 !important;
}

/* Express Mode dictation button - white styling for orange header */
.vp-dictation-express-btn {
  background-color: rgba(255, 255, 255, 0.95);
  color: #ff4500;
  border-color: rgba(255, 255, 255, 0.8);
}

.vp-dictation-express-btn:hover {
  background-color: #dc3545;
  color: #fff;
  border-color: #dc3545;
}

/* ==========================================
   MOBILE & TABLET BUTTON FIXES
   ========================================== */

/* Ensure consistent button sizing on smaller screens */
@media (max-width: 767px) {
  /* Button consistency - prevent crushing */
  .btn {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  
  /* Input group buttons should not overflow */
  .input-group .btn {
    flex-shrink: 0;
    white-space: nowrap;
  }
  
  /* Card header buttons on mobile */
  .card-header .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.8rem;
  }
  
  /* Hide button labels on small screens */
  .card-header .btn .btn-label,
  .card-header .btn .btn-link-label {
    display: none;
  }
  
  /* Dictation field buttons on mobile */
  .vp-dictation-field-btn {
    padding: 0.375rem 0.5rem;
  }
  
  /* Action row buttons */
  .vplus-action-row .btn {
    width: auto;
    flex: 0 1 auto;
    min-width: 0;
  }
  
  /* Express mode form buttons */
  #vplus-express-form .btn-group .btn {
    flex: 1;
    min-width: 0;
  }
}

/* Tablet specific fixes */
@media (min-width: 768px) and (max-width: 991px) {
  /* Prevent button crushing on tablets */
  .btn {
    min-height: 38px;
  }
  
  /* Card-level buttons sizing */
  .vp-dictation-card-btn {
    padding: 0.375rem 0.625rem;
    font-size: 0.85rem;
  }
  
  /* Input groups with multiple buttons */
  .input-group .btn + .btn {
    margin-left: -1px;
  }
}

/* ==========================================
   AUCTIONEERS BADGE VISIBILITY FIX
   ========================================== */

/* Ensure Bootstrap badge colors are visible */
#vplus-auctioneers-card .badge,
.vplus-settings-content .badge {
  display: inline-block;
  padding: 0.35em 0.65em;
  font-size: 0.75em;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25rem;
}

/* Ensure Bootstrap bg-* classes work on badges */
#vplus-auctioneers-card .badge.bg-primary,
.vplus-settings-content .badge.bg-primary {
  background-color: var(--bs-primary, #0d6efd) !important;
  color: #fff !important;
}

#vplus-auctioneers-card .badge.bg-success,
.vplus-settings-content .badge.bg-success {
  background-color: #198754 !important;
  color: #fff !important;
}

#vplus-auctioneers-card .badge.bg-info,
.vplus-settings-content .badge.bg-info {
  background-color: #0dcaf0 !important;
  color: #000 !important;
}

#vplus-auctioneers-card .badge.bg-warning,
.vplus-settings-content .badge.bg-warning {
  background-color: #ffc107 !important;
  color: #000 !important;
}

#vplus-auctioneers-card .badge.bg-danger,
.vplus-settings-content .badge.bg-danger {
  background-color: #dc3545 !important;
  color: #fff !important;
}

#vplus-auctioneers-card .badge.bg-secondary,
.vplus-settings-content .badge.bg-secondary {
  background-color: #6c757d !important;
  color: #fff !important;
}

/* ==========================================
   MOBILE RESPONSIVE FIXES (≤768px)
   ========================================== */

/* Phase 2a — Touch-device tooltip safety.
   On touch / coarse-pointer devices, hover/focus-triggered Bootstrap tooltips
   commonly fail to auto-dismiss (no mouseleave), so they stick open and overlap
   content (e.g. the Auction Manager status-tab tooltips overlapping the first
   cards). pointer-events:none guarantees a lingering tooltip can never block a
   tap "through" it. Scoped to (hover:none)/(pointer:coarse) so desktop — even in
   a narrow window — keeps fully interactive tooltips. The deliberately rich,
   tap-to-open auto-increment tooltip is excluded so it still works. */
@media (hover: none), (pointer: coarse) {
  .tooltip:not(.vplus-auto-increment-tooltip) {
    pointer-events: none;
  }
}

@media (max-width: 768px) {


  /* Ensure tooltips stay within viewport */
  .tooltip {
    max-width: calc(100vw - 20px) !important;
  }
  
  .tooltip .tooltip-inner {
    max-width: calc(100vw - 30px);
    text-align: left;
    padding: 8px 12px;
  }
  
  /* Dictation button tooltip - prevent covering input field */
  .vp-dictation-btn[data-bs-toggle="tooltip"] + .tooltip {
    margin-bottom: 8px;
  }

  /* --------------------------------------
     Archive Lot Card Layout Fixes
     -------------------------------------- */
  .vplus-lot-summary .row {
    flex-wrap: wrap;
  }
  
  .vplus-lot-summary-main {
    gap: 0.5rem;
  }
  
  .vplus-lot-summary-main > .col {
    flex: 1 1 100%;
    order: 1;
    margin-bottom: 0.5rem;
  }
  
  .vplus-lot-summary-main > .col-auto:first-child {
    order: 0;
    flex: 0 0 auto;
  }
  
  .vplus-lot-summary-main > .col-12.order-3 {
    order: 3;
    margin-top: 0.5rem;
    flex-wrap: wrap;
    gap: 0.25rem !important;
  }
  
  /* Badge stacking on mobile */
  .vplus-lot-summary .badge {
    font-size: 0.7rem;
    padding: 0.25em 0.5em;
  }
  
  /* Expandable details row on mobile */
  .vplus-lot-summary-details .row {
    flex-direction: column;
  }
  
  .vplus-lot-summary-details .col-auto {
    width: 100%;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    padding: 0.5rem 0;
  }
  
  .vplus-lot-summary-details .col-auto:last-child {
    border-bottom: none;
  }
  
  /* --------------------------------------
     Archive Sale Button Grid Fixes
     -------------------------------------- */
  .vplus-action-row .btn {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    white-space: nowrap;
  }
  
  .vplus-action-row .col-12.col-md-auto {
    flex-wrap: wrap;
    gap: 0.5rem !important;
  }
  
  .vplus-action-row .btn .btn-link-label {
    display: none;
  }
  
  .vplus-action-row .btn .badge {
    margin-left: 0.25rem;
  }
  
  /* Sync buttons on mobile - stack vertically */
  #vplus-sync-to-dashboard-btn,
  #vplus-pull-from-dashboard-btn,
  #vplus-sync-statuses-btn,
  #vplus-bulk-ai-btn {
    flex: 1 1 45%;
    min-width: 120px;
  }
  
  /* --------------------------------------
     Pricing Row Fields - Full Width (col-12)
     -------------------------------------- */
  #purchase-price-row,
  #display-price-row,
  #opening-bid-row,
  #soft-minimum-offer-row,
  #minimum-offer-row,
  #bid-increment-row,
  #quantity-row {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
  
  /* Reserve row gets special handling to preserve conditional logic */
  /* Uses col-6 on mobile, respects JS show/hide */
  
  /* Ensure input groups don't get cut off */
  #purchase-price-row .input-group,
  #display-price-row .input-group,
  #opening-bid-row .input-group,
  #soft-minimum-offer-row .input-group,
  #minimum-offer-row .input-group,
  #bid-increment-row .input-group,
  #quantity-row .input-group {
    flex-wrap: nowrap;
  }
  
  /* Reserve row needs wrap to accommodate calculator dropdown */
  #reserve-row .input-group {
    flex-wrap: wrap;
  }
  
  #reserve-row .vp-reserve-calculator {
    flex: 0 0 100%;
    width: 100%;
  }
  
  #purchase-price-row .form-floating,
  #display-price-row .form-floating,
  #opening-bid-row .form-floating,
  #soft-minimum-offer-row .form-floating,
  #minimum-offer-row .form-floating,
  #bid-increment-row .form-floating,
  #quantity-row .form-floating {
    flex: 1 1 auto;
    min-width: 0;
  }
  
  /* --------------------------------------
     Lot Nav Mobile Improvements
     -------------------------------------- */
  .vplus-lot-nav {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  
  .vplus-lot-nav .btn {
    flex: 1 1 auto;
    min-width: 80px;
  }
  
  /* --------------------------------------
     Filter Card Mobile Improvements
     -------------------------------------- */
  .card-body .row > [class*="col-md-"] {
    margin-bottom: 0.75rem;
  }
  
  /* Photo filter button group - prevent squishing */
  #vplus-photo-filter {
    flex-wrap: wrap;
  }
  
  #vplus-photo-filter label.btn {
    flex: 1 1 30%;
    min-width: 70px;
    padding: 0.375rem 0.5rem;
    font-size: 0.8rem;
  }
  
  /* --------------------------------------
     Form Input Groups - Prevent Overflow
     -------------------------------------- */
  .input-group {
    flex-wrap: nowrap;
  }
  
  .input-group .form-floating {
    flex: 1 1 auto;
    min-width: 0;
  }
  
  .input-group .btn {
    flex-shrink: 0;
  }
  
  /* Reserve calculator dropdown - full width on mobile */
  .vp-reserve-calculator,
  .vp-increment-suggestions {
    margin-top: 0.5rem;
  }
  
  .vp-reserve-calculator .form-select,
  .vp-increment-suggestions .form-select {
    font-size: 0.85rem;
  }

}

/* ==========================================
   MOBILE TOOLTIP OVERRIDE (JavaScript Hook)
   ========================================== */

/* ==========================================
   LOT TITLE INPUT - EXPANDABLE HEIGHT
   ========================================== */

/* Allow lot title to expand and show full content */
.vplus-lot-title-input {
  min-height: 3.5rem; /* Match form-floating height */
  height: auto;
  resize: none;
  overflow: hidden; /* Hide scrollbar, JS will auto-expand */
  padding-right: 12px;
  white-space: pre-wrap;
  word-wrap: break-word;
}

/* Ensure form-floating works with auto-height textarea */
#lot-title-row .form-floating,
#express-lot-title-row .form-floating {
  height: auto;
}

/* Title variations wrapper styling */
.vplus-title-variations-wrapper {
  width: 100%;
}

/* ==========================================
   PHOTO PREVIEW MODAL
   ========================================== */

.vplus-preview-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vplus-preview-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.85);
  cursor: pointer;
}

.vplus-preview-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  z-index: 1;
}

.vplus-preview-close {
  position: absolute;
  top: -40px;
  right: 0;
  background: transparent;
  border: none;
  color: white;
  font-size: 2rem;
  cursor: pointer;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.vplus-preview-close:hover {
  opacity: 1;
}

.vplus-preview-image {
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
}

/* ==========================================
   AI BUTTON STYLES (Mark for AI / AI Badge)
   ========================================== */

.vplus-media-option .ai-badge-link.loading,
.vplus-media-option .ai-link.loading {
  opacity: 0.6;
  pointer-events: none;
}

.vplus-media-option .ai-badge-link,
.vplus-media-option .ai-link {
  color: #6f42c1;
}

.vplus-media-option .ai-badge-link:hover,
.vplus-media-option .ai-link:hover {
  color: #5a2d9e;
  background: rgba(111, 66, 193, 0.1);
}

/* ==========================================
   MANAGE CONSIGNMENTS - SUBMISSIONS TABS
   ========================================== */

.vplus-submissions-manager {
  padding: 1rem 0;
}

/* Tab Navigation */
.vplus-submissions-tabs {
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}

.vplus-submissions-tabs .nav-link {
  border-radius: 0.5rem;
  padding: 0.625rem 1rem;
  font-weight: 500;
  color: #495057;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
}

.vplus-submissions-tabs .nav-link:hover {
  background: #e9ecef;
  border-color: #ced4da;
}

.vplus-submissions-tabs .nav-link.active {
  background: var(--bs-primary, #0d6efd);
  color: #fff;
  border-color: var(--bs-primary, #0d6efd);
}

.vplus-submissions-tabs .nav-link .badge {
  font-size: 0.75rem;
  padding: 0.35em 0.65em;
  font-weight: 600;
}

.vplus-submissions-tabs .nav-link.active .badge {
  background: rgba(255,255,255,0.9) !important;
  color: var(--bs-primary, #0d6efd) !important;
}

/* Action Buttons */
.vplus-submissions-manager .btn-link {
  padding: 0.375rem 0.5rem;
  opacity: 1;
  transition: box-shadow 0.2s, transform 0.2s;
}

.vplus-submissions-manager .btn-link:hover {
  transform: scale(1.1);
  box-shadow: 0 0 8px rgba(var(--bs-primary-rgb, 13, 110, 253), 0.4);
  border-radius: 0.25rem;
}

.vplus-submissions-manager .btn-link.text-success:hover {
  color: #198754 !important;
}

.vplus-submissions-manager .btn-link.text-danger:hover {
  color: #dc3545 !important;
}

.vplus-submissions-manager .btn-link.text-muted:hover {
  color: #495057 !important;
}

/* Table Styling */
.vplus-submissions-manager .table {
  margin-bottom: 0;
}

.vplus-submissions-manager .table th {
  font-weight: 600;
  color: #495057;
  border-bottom-width: 2px;
}

.vplus-submissions-manager .table td {
  vertical-align: middle;
}

.vplus-submissions-manager .table td img {
  border-radius: 0.375rem;
}

/* Empty State */
.vplus-submissions-manager .tab-pane .d-flex.flex-column {
  padding: 2rem;
  background: #f8f9fa;
  border-radius: 0.5rem;
}

/* Bulk Actions Toolbar */
#bulk-actions-toolbar,
#pending-bulk-toolbar, #rejected-bulk-toolbar {
  border: 1px solid #dee2e6;
  position: sticky;
  top: 0;
  z-index: 100;
  background: #f8f9fa;
}

/* Submission Detail Modal — wider on desktop. Scoped to lg+ so it doesn't
   override the .modal-fullscreen-lg-down behaviour below 992px: the ID
   selector (specificity 1-1-0) was beating Bootstrap's fullscreen rule
   (0-1-0), pinning the modal to 80vw on mobile (e.g. 344px @ 430px) with
   margins instead of going edge-to-edge. */
@media (min-width: 992px) {
  #submissionDetailModal .modal-dialog {
    max-width: 80vw;
  }
}

/* Checkbox styling */
.vplus-submissions-manager .form-check-input {
  width: 1.125rem;
  height: 1.125rem;
  cursor: pointer;
}

/* ============================================
   Submission Form Photo Uploader
   ============================================ */

/* Container for submission photos - grid layout */
#vplus-photo-files {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));
  gap: 0.875rem;
  margin-top: 0.5rem;
}

/* Individual photo container */
#vplus-photo-files .vplus-file-container {
  position: relative;
  aspect-ratio: 1;
  overflow: visible;
}

/* Image box wrapper */
#vplus-photo-files .image-box {
  width: 100%;
  height: 100%;
  border-radius: var(--bs-border-radius);
  overflow: hidden;
  cursor: pointer;
  position: relative;
  background: #f8f9fa;
}

/* Photo span with background-image */
#vplus-photo-files .image-box .photo {
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#vplus-photo-files .image-box .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Move handle */
#vplus-photo-files .vplus-file-move-handle {
  position: absolute;
  background: rgba(255, 255, 255, 0.9);
  cursor: grab;
  z-index: 10;
  border: none;
}

#vplus-photo-files .vplus-file-move-handle:active {
  cursor: grabbing;
}

/* Selected state */
#vplus-photo-files .vplus-file-container.selected .image-box {
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.4);
  border-color: var(--bs-primary);
}

#vplus-photo-files .vplus-file-container.selected .image-box .photo {
  opacity: 0.85;
}

/* Additional photos (submission form) */
#vplus-photo-files-additional .vplus-file-container.photo-file {
  position: relative;
  aspect-ratio: 1;
}
#vplus-photo-files-additional .image-box {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: var(--bs-border-radius-sm);
}
#vplus-photo-files-additional .image-box .photo {
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Featured image icon - positioned on vplus-file-container (not image-box) */
#vplus-photo-files .vplus-featured-image-icon,
#vplus-photo-files-additional .vplus-featured-image-icon {
  position: absolute;
  z-index: 100;
  color: #ffa500;
  font-size: 1.25rem;
  bottom: calc(100% - 0.5rem);
  line-height: 1rem;
  left: -0.25rem;
  transform: rotate(-15deg);
  text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

#vplus-photo-files .vplus-primary-photo-label,
#vplus-photo-files-additional .vplus-primary-photo-label {
  margin-top: 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b7280;
  line-height: 1.2;
  pointer-events: none;
}

/* AI file marker icon */
#vplus-photo-files .vplus-ai-file-icon {
  display: flex;
  position: absolute;
  color: var(--bs-primary);
  z-index: 100;
  font-size: 0.875rem;
  bottom: calc(100% - 0.75rem);
  line-height: 1rem;
  right: -0.25rem;
  border: 1px solid var(--bs-primary);
  border-radius: 50%;
  background: #fff;
  width: 1.5rem;
  height: 1.5rem;
  align-items: center;
  justify-content: center;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
  pointer-events: none;
}

/* Progress bar */
#vplus-photo-files .progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  border-radius: 0 0 2px 2px;
  background: rgba(0, 0, 0, 0.15);
}

#vplus-photo-files .progress-bar {
  transition: width 0.3s ease;
}

/* Media options panel */
#vplus-photo-files .vplus-media-option {
  left: 50%;
  transform: translateX(-50%);
}

/* Media options panel for submission photo uploader */
#vplus-photo-files .vplus-media-option {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  flex-direction: row;
  bottom: calc(100% - 0.5rem);
}
#vplus-photo-files .vplus-media-option.show {
  display: flex;
  flex-direction: row;
  z-index: 200;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  bottom: calc(100% + 0.5rem);
  padding: 0.125rem;
}
#vplus-photo-files .vplus-media-option:before {
  border-color: #dee2e6 transparent transparent transparent;
}
#vplus-photo-files .vplus-media-option:after {
  border-color: #fff transparent transparent transparent;
}
#vplus-photo-files .vplus-media-option .btn {
  padding: 0.25rem 0.5rem;
  font-size: 1rem;
  color: #555;
  line-height: 1;
}
#vplus-photo-files .vplus-media-option .btn:hover {
  color: var(--bs-primary);
}
#vplus-photo-files .vplus-media-option .ai-link:hover {
  color: var(--bs-info);
}
#vplus-photo-files .vplus-media-option .delete-link {
  color: var(--bs-danger);
}
#vplus-photo-files .vplus-media-option .delete-link:hover {
  color: #a71d2a;
}
/* ================================================================
   Consignment Prompt Button Grid
   ================================================================ */
.vplus-consignment-prompt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 8px;
}
.vplus-prompt-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 8px;
  border: 2px solid #dee2e6;
  border-radius: 8px;
  background: #fff;
  color: #495057;
  cursor: pointer;
  transition: all 0.15s ease;
  font-size: 0.8rem;
  text-align: center;
  min-height: 56px;
}
.vplus-prompt-btn i {
  font-size: 1.3rem;
}
.vplus-prompt-btn:hover {
  border-color: var(--bs-warning);
  background: #fff9e6;
  color: #333;
}
.vplus-prompt-btn.active {
  border-color: var(--bs-warning);
  background: var(--bs-warning);
  color: #000;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(255, 193, 7, 0.35);
}
.vplus-prompt-btn-add {
  border-style: dashed;
  color: #6c757d;
}
.vplus-prompt-btn-add:hover {
  border-color: var(--bs-primary);
  background: rgba(13, 110, 253, 0.05);
  color: var(--bs-primary);
}

/* ================================================================
   Section-Based Photo Upload Slots (Multi-Photo)
   ================================================================ */
.vplus-photo-section-group {
  margin-bottom: 16px;
}
.vplus-section-group-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.vplus-photo-section-slots {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
}
.vplus-photo-section-slot {
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 8px;
  background: #fafbfc;
  transition: border-color 0.15s ease;
}
.vplus-photo-section-slot:hover {
  border-color: #adb5bd;
}
.vplus-section-slot-header {
  margin-bottom: 6px;
}
.vplus-section-slot-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #495057;
}
.vplus-section-slot-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 0;
}
.vplus-section-thumb {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}
.vplus-section-thumb .photo {
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}
.vplus-section-thumb.uploading {
  opacity: 1;
}
.vplus-section-thumb.uploading::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 1;
}
.vplus-section-thumb .vplus-upload-progress {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 2;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
}
.vplus-section-thumb .vplus-upload-progress .progress {
  width: 80%;
  height: 12px;
  background: rgba(255,255,255,0.25);
  border-radius: 2px;
  margin-top: 4px;
}
.vplus-section-thumb .vplus-upload-progress .progress-bar {
  background: #fff;
  border-radius: 2px;
  transition: width 0.3s ease;
}
.vplus-section-thumb-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  background: rgba(0,0,0,0.55);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.15s;
  padding: 0;
  line-height: 1;
}
.vplus-section-thumb:hover .vplus-section-thumb-remove {
  opacity: 1;
}
.vplus-section-thumb .vplus-ai-file-icon {
  position: absolute;
  bottom: 4px;
  right: 4px;
  background: rgba(0,0,0,0.5);
  color: var(--bs-warning);
  border-radius: 4px;
  padding: 2px 5px;
  font-size: 0.6rem;
}

.vplus-section-add-photo {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  border: 1px dashed #ced4da;
  border-radius: 4px;
  background: transparent;
  color: #6c757d;
  font-size: 0.7rem;
  padding: 4px 8px;
  cursor: pointer;
  transition: all 0.15s;
  width: 100%;
  justify-content: center;
}
.vplus-section-add-photo:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
  background: #f0f6ff;
}

/* Additional photos section */
.vplus-photo-section-additional {
  border-top: 1px solid #dee2e6;
  padding-top: 12px;
  margin-top: 4px;
}

/* ================================================================
   Condition Report Image Upload
   ================================================================ */
.vplus-cr-fields-grid {
  align-items: stretch;
}
.vplus-cr-field-cell > .form-floating,
.vplus-cr-field-cell > .small,
.vplus-cr-field-cell > .vplus-cr-address-field {
  min-width: 0;
}
.vplus-cr-field-cell .btn-group {
  flex-wrap: wrap;
}
.vplus-cr-field-cell .btn-group > .btn {
  border-radius: var(--bs-border-radius, 0.375rem) !important;
  margin: 0 0.25rem 0.25rem 0;
}
.vplus-cr-image-upload-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-wrap: wrap;
}
.vplus-cr-image-upload,
.vplus-cr-photo-select {
  white-space: nowrap;
}
.vplus-cr-image-upload.btn,
.vplus-cr-image-upload.btn-outline-secondary {
  color: #fff !important;
  background-color: #0d6efd !important;
  border-color: #0d6efd !important;
}
.vplus-cr-image-upload.btn:hover,
.vplus-cr-image-upload.btn-outline-secondary:hover,
.vplus-cr-image-upload.btn:focus,
.vplus-cr-image-upload.btn-outline-secondary:focus {
  color: #fff !important;
  background-color: #0b5ed7 !important;
  border-color: #0a58ca !important;
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25) !important;
}
.vplus-cr-image-upload.btn:active,
.vplus-cr-image-upload.btn-outline-secondary:active,
.vplus-cr-image-upload.btn.show,
.vplus-cr-image-upload.btn-outline-secondary.show {
  color: #fff !important;
  background-color: #0a58ca !important;
  border-color: #0a53be !important;
}
.vplus-cr-image-upload:hover,
.vplus-cr-photo-select:hover {
  border-color: var(--bs-primary);
}
.vplus-cr-image-previews {
  width: 100%;
}
.vplus-cr-image-thumb {
  position: relative;
  width: 88px;
  min-height: 112px;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: var(--bs-border-radius, 0.375rem);
  padding: 4px;
  background: var(--bs-body-bg, #fff);
}
.vplus-cr-image-thumb .photo {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: calc(var(--bs-border-radius, 0.375rem) - 2px);
  background-position: center;
  background-size: cover;
}
.vplus-cr-image-thumb .vplus-cr-image-remove {
  width: 100%;
  margin-top: 4px;
}
.vplus-cr-image-preview {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.vplus-cr-image-remove {
  padding: 0 4px;
  font-size: 0.8rem;
}

/* CR Field Tooltip — info card */
.vplus-cr-tooltip {
  background: var(--bs-info-bg-subtle, #cff4fc);
  border-left: 3px solid var(--bs-info, #0dcaf0);
  border-radius: 0 4px 4px 0;
  padding: 6px 10px;
  font-size: 0.8rem;
  color: #055160;
  display: flex;
  align-items: baseline;
  gap: 2px;
}

/* ================================================================
   Submission Form — Minimum font sizes & colour overrides
   ================================================================ */
.vplus-vendor-submission-form {
  font-size: 16px;
}
.vplus-vendor-submission-form .form-label,
.vplus-vendor-submission-form label {
  font-size: 16px;
}
.vplus-vendor-submission-form .form-control,
.vplus-vendor-submission-form .form-select,
.vplus-vendor-submission-form .form-control-sm {
  font-size: 16px;
}
.vplus-vendor-submission-form .form-text,
.vplus-vendor-submission-form .text-muted {
  font-size: 14px;
  color: #495057 !important;
}
.vplus-vendor-submission-form .badge {
  font-size: 12px;
}
.vplus-vendor-submission-form .small,
.vplus-vendor-submission-form small {
  font-size: 14px;
}
.vplus-vendor-submission-form .btn {
  font-size: 16px;
}
/* Stronger required asterisks */
.vplus-vendor-submission-form .text-danger,
.vplus-vendor-submission-form sup {
  color: #b91c1c !important;
}
/* Darker warning badges */
.vplus-vendor-submission-form .badge.bg-warning {
  background-color: #d4a017 !important;
}
/* text-indigo utility (used on CR icon) */
.vplus-vendor-submission-form .text-indigo {
  color: #6610f2 !important;
}
/* Hide AI generate button on submission form */
#submission-ai-generate-row {
  display: none;
}
/* Labels set to black for better visibility (placeholders use default grey for floating-label compat) */
.vplus-vendor-submission-form .form-floating > label {
  color: #000000;
}

/* ================================================================
   Submission Queue Panel & FAB
   ================================================================ */
.vplus-queue-panel {
  position: fixed;
  bottom: 80px;
  right: 20px;
  width: 340px;
  max-height: 480px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  z-index: 10000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.vplus-queue-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: var(--vplus-primary, #1c3f85);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
}
.vplus-queue-panel-body {
  flex: 1;
  overflow-y: auto;
  max-height: 320px;
}
.vplus-queue-panel-footer {
  padding: 10px 14px;
  border-top: 1px solid #eee;
}
.vplus-queue-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-bottom: 1px solid #f0f0f0;
}
.vplus-queue-item:last-child {
  border-bottom: none;
}
.vplus-queue-item-thumb {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vplus-queue-item-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vplus-queue-item-info {
  flex: 1;
  min-width: 0;
}
.vplus-queue-fab {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--vplus-primary, #1c3f85);
  color: #fff;
  border: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.18);
  font-size: 20px;
  cursor: pointer;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vplus-queue-fab:hover {
  transform: scale(1.08);
}
.vplus-queue-fab-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--bs-danger, #dc3545);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ================================================================
   BLUEFLAG – Gold glow animation during AI lookup
   ================================================================ */
@keyframes vplus-glow-pulse {
  0%   { box-shadow: 0 0 4px rgba(218, 165, 32, 0.4), 0 0 8px rgba(218, 165, 32, 0.2); }
  50%  { box-shadow: 0 0 10px rgba(218, 165, 32, 0.7), 0 0 20px rgba(218, 165, 32, 0.35); }
  100% { box-shadow: 0 0 4px rgba(218, 165, 32, 0.4), 0 0 8px rgba(218, 165, 32, 0.2); }
}
.vplus-blueflag-loading .form-control,
.vplus-blueflag-loading .form-select {
  border-color: goldenrod;
  animation: vplus-glow-pulse 1.6s ease-in-out infinite;
}
.vplus-blueflag-status {
  font-size: 0.82rem;
  color: goldenrod;
  font-weight: 600;
  margin-top: 4px;
}
.vplus-blueflag-status .fa-spinner {
  margin-right: 5px;
}

/* vendor-submission-form */
.vendor-submission-form .btn-group:has([type="radio"]) .btn {
  padding: .75rem 2rem;
  background: var(--bs-white);
  color: var(--bs-primary);
}
.vendor-submission-form .btn-group:has([type="radio"]) .btn-check:checked+.btn {
  background: var(--bs-primary);
  color: var(--bs-white);
}

/* ==========================================
   MOBILE & TABLET RESPONSIVENESS v2.1
   ========================================== */

@media (max-width: 767px) {

  /* --------------------------------------
     A4. Bulk Import button label visibility
     -------------------------------------- */
  .vplus-lot-nav .vplus-bulk-actions .btn .btn-link-label {
    display: inline !important;
  }

  /* --------------------------------------
     A3. Sale meta sizing & centering
     -------------------------------------- */
  .vplus-sale-meta {
    justify-content: center;
    flex-wrap: wrap;
    font-size: 0.95rem;
  }

  /* --------------------------------------
     A5. AI Descriptron toggle scale-up
     -------------------------------------- */
  #vplus-card--ai .vplus-ai-toggle-row {
    gap: 0.75rem;
  }
  #vplus-card--ai .vplus-ai-toggle-row h5 {
    font-size: 1.15rem;
  }
  #vplus-card--ai .vplus-ai-toggle-row .form-check-input {
    width: 3em;
    height: 1.5em;
  }

  /* --------------------------------------
     A6. Express btn-groups: stack vertically
     -------------------------------------- */
  #express-lot-type-row .btn-group,
  #express-purchase-option-row .btn-group,
  #lot-type-row .btn-group,
  #purchase-option-row .btn-group {
    flex-direction: column;
  }
  #express-lot-type-row .btn-group .btn,
  #express-purchase-option-row .btn-group .btn,
  #lot-type-row .btn-group .btn,
  #purchase-option-row .btn-group .btn {
    border-radius: var(--bs-border-radius) !important;
    border: 1px solid var(--bs-border-color) !important;
    margin-top: -1px;
  }
  #express-lot-type-row .btn-group .btn:first-of-type,
  #express-purchase-option-row .btn-group .btn:first-of-type,
  #lot-type-row .btn-group .btn:first-of-type,
  #purchase-option-row .btn-group .btn:first-of-type {
    margin-top: 0;
  }
  #express-lot-type-row .btn-group .btn-check:checked + .btn,
  #express-purchase-option-row .btn-group .btn-check:checked + .btn,
  #lot-type-row .btn-group .btn-check:checked + .btn,
  #purchase-option-row .btn-group .btn-check:checked + .btn {
    z-index: 1;
    border-color: var(--bs-dark) !important;
  }

  /* --------------------------------------
     A7. Express price fields: single column
     -------------------------------------- */
  #express-purchase-price-row,
  #express-opening-bid-row,
  #express-bid-increment-row,
  #express-reserve-row,
  #express-quantity-row,
  #express-auto-reject-offers-row,
  #express-soft-minimum-offer-row,
  #express-minimum-offer-row {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* --------------------------------------
     A8. Show form-row-separators on mobile
     -------------------------------------- */
  .vplus-express-mode .form-row-separator {
    display: block !important;
  }

  /* --------------------------------------
     A9. Format Numbers wrap on mobile
     -------------------------------------- */
  #vp-currency-format-row,
  #express-currency-format-row {
    flex-wrap: wrap;
  }
  #vp-currency-format-row > *,
  #express-currency-format-row > * {
    flex: 0 0 auto;
  }
  #vp-currency-format-row > .vr,
  #express-currency-format-row > .vr {
    display: none;
  }
  #vp-currency-format-row > small,
  #express-currency-format-row > small {
    flex: 0 0 100%;
    margin-top: 0.25rem;
  }

  /* --------------------------------------
     A10. Buyer's Premium fields: single column
     -------------------------------------- */
  #vplus-card--tax-details .row > .col-6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* --------------------------------------
     A12. Consignment tabs: center + wrap
     -------------------------------------- */
  .vplus-submissions-tabs {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.375rem;
  }
  .vplus-submissions-tabs .nav-link {
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
  }

  /* --------------------------------------
     A12b. Auction Manager top tabs: stack
     full-width on mobile so each option has
     a generous tap target instead of squeezing
     three labels into a horizontal btn-group.
     Mirrors the .btn-group.w-100 stack used by
     #express-purchase-option-row on content-lot.
     -------------------------------------- */
  #auctionManagerTabs.btn-group {
    flex-direction: column;
    width: 100%;
  }
  #auctionManagerTabs.btn-group > .btn {
    border-radius: 0;
    border-right-width: 1px;
  }
  #auctionManagerTabs.btn-group > .btn + .btn {
    margin-left: 0;
    margin-top: -1px; /* collapse double borders */
  }
  #auctionManagerTabs.btn-group > .btn:first-child {
    border-top-left-radius: var(--bs-border-radius);
    border-top-right-radius: var(--bs-border-radius);
  }
  #auctionManagerTabs.btn-group > .btn:last-child {
    border-bottom-left-radius: var(--bs-border-radius);
    border-bottom-right-radius: var(--bs-border-radius);
  }

  /* --------------------------------------
     A13. Button consistency: solid fills
     -------------------------------------- */
  .vplus-lot-nav .btn-auction-backup {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
  }
  .vplus-lot-nav .btn-auction-backup:hover {
    background-color: var(--bs-secondary);
    color: #fff;
  }

  /* --------------------------------------
     A14. Filter button row spacing
     -------------------------------------- */
  #vplus-sale-filter .col-12.col-md-auto {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  #vplus-sale-filter .col-12.col-md-auto .btn {
    flex: 1 1 auto;
  }
  #vplus-import-auction-btn {
    flex: 0 0 100%;
  }

  /* Archive-lot filter buttons */
  form[action=""] .col-12.col-md-auto {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  /* --------------------------------------
     A15. Consignment table responsive
     -------------------------------------- */
  .vplus-submissions-tabs ~ .tab-content .table-responsive {
    border: none;
  }
  .vplus-submissions-tabs ~ .tab-content table.table thead {
    display: none;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody tr {
    display: flex;
    flex-wrap: wrap;
    padding: 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.5rem;
    gap: 0.5rem;
    align-items: center;
    background: #fff;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td {
    border: none;
    padding: 0.125rem 0;
  }
  /* Checkbox */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:first-child {
    flex: 0 0 auto;
    order: -2;
  }
  /* Thumbnail */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(2) {
    flex: 0 0 auto;
    order: -1;
  }
  /* Title/Summary */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(3) {
    flex: 1 1 60%;
    min-width: 0;
  }
  /* Vendor */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(4) {
    flex: 0 0 100%;
    font-size: 0.85rem;
  }
  /* Reserve + Submitted */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(5),
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(6) {
    flex: 0 0 auto;
    font-size: 0.85rem;
  }
  /* Actions */
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:last-child {
    flex: 0 0 100%;
    text-align: left !important;
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
    padding-top: 0.375rem;
    border-top: 1px solid var(--bs-border-color-translucent);
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:last-child .btn {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
  }

  /* --------------------------------------
     Full Mode PO btn-group stacking
     -------------------------------------- */
  #purchase-option-row .btn-group {
    flex-direction: column;
  }

  /* --------------------------------------
     Btn-group: icon + label inline, sublabel below
     -------------------------------------- */
  #express-lot-type-row .btn-group .btn,
  #express-purchase-option-row .btn-group .btn,
  #lot-type-row .btn-group .btn,
  #purchase-option-row .btn-group .btn {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  #express-lot-type-row .btn-group .btn .vplus-type-sublabel,
  #express-purchase-option-row .btn-group .btn .vplus-po-sublabel,
  #lot-type-row .btn-group .btn .vplus-type-sublabel,
  #purchase-option-row .btn-group .btn .vplus-po-sublabel {
    flex-basis: 100%;
  }

  /* Lot form dividers - consistent spacing */
  .form-row-separator hr.dashed {
    margin: 0.5rem 0 !important;
  }
}

.vplus-express-customise-btn {
  background: #fff;
  color: #000;
  border: 1px solid rgba(0, 0, 0, 0.2);
}

/* The button lives inside .vplus-express-card-header, whose `color:#fff`
   cascades to the FontAwesome <i> and rendered it white-on-white (invisible).
   Force the icon (and any text node) to inherit the button's dark colour;
   the !important + descendant selector beats the header's white. */
.vplus-express-customise-btn,
.vplus-express-customise-btn i,
.vplus-express-customise-btn .fa-solid,
.vplus-express-customise-btn .fa-regular,
.vplus-express-customise-btn svg {
  color: #000 !important;
  text-shadow: none;
}

.vplus-express-customise-btn:hover,
.vplus-express-customise-btn:focus {
  background: rgba(255, 255, 255, 0.8);
  border-color: rgba(0, 0, 0, 0.35);
}
.vplus-express-customise-btn:hover,
.vplus-express-customise-btn:focus,
.vplus-express-customise-btn:hover i,
.vplus-express-customise-btn:focus i,
.vplus-express-customise-btn:hover svg,
.vplus-express-customise-btn:focus svg {
  color: #000 !important;
}

/* ---- AI Prompt Pre-Selection Glow ---- */
.vplus-prompt-btn.ai-recommended {
  box-shadow: 0 0 0 2px rgba(13,110,253,0.5), 0 0 12px rgba(13,110,253,0.3);
  border-color: #0d6efd !important;
  animation: vplus-preselect-pulse 2s ease-in-out 3;
  position: relative;
}

.vplus-prompt-btn.ai-recommended::after {
  content: '\2713';
  font-size: 11px;
  position: absolute;
  top: -6px;
  right: -6px;
  background: #0d6efd;
  color: #fff;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

body.vplus-dark-mode .card-header h1,
body.vplus-dark-mode .card-header h2,
body.vplus-dark-mode .card-header h3,
body.vplus-dark-mode .card-header h4,
body.vplus-dark-mode .card-header h5,
body.vplus-dark-mode .card-header h6,
body.vplus-dark-mode .card-header .h1,
body.vplus-dark-mode .card-header .h2,
body.vplus-dark-mode .card-header .h3,
body.vplus-dark-mode .card-header .h4,
body.vplus-dark-mode .card-header .h5,
body.vplus-dark-mode .card-header .h6 {
  color: var(--vplus-dark-text, #f4f7fb);
}

body.vplus-dark-mode .vplus-cr-field-row,
body.vplus-dark-mode .vplus-cr-field-card,
body.vplus-dark-mode .vplus-cr-section-row,
body.vplus-dark-mode #cr-fields-container,
body.vplus-dark-mode #vplus-cr-fields-container {
  background: var(--vplus-dark-card, #1f2937) !important;
  border-color: var(--vplus-dark-border, #374151) !important;
  color: var(--vplus-dark-text, #f4f7fb) !important;
}

.vplus-cr-image-previews {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
}

.vplus-cr-image-thumb {
  width: 132px !important;
  min-height: 158px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
}

.vplus-cr-image-thumb img,
.vplus-cr-image-thumb .photo {
  width: 132px !important;
  height: 132px !important;
  display: block !important;
  object-fit: cover;
  background-size: cover !important;
  background-position: center !important;
  border-radius: 6px !important;
  flex: 0 0 132px;
}

.vplus-cr-image-thumb .progress {
  width: 100%;
  height: 9px;
  background: #d9f2e3;
  border-radius: 999px;
  position: static !important;
  overflow: hidden;
}

.vplus-cr-image-thumb .progress-bar {
  background-color: #198754 !important;
}

.vplus-cr-image-thumb .vplus-cr-image-remove,
.vplus-cr-image-thumb .remove-photo {
  position: static !important;
  width: 100% !important;
  min-height: 30px;
  border-radius: 6px;
  padding: 0.3rem 0.45rem !important;
  font-size: 0.78rem !important;
  line-height: 1.2;
}

@keyframes vplus-preselect-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(13,110,253,0.5), 0 0 12px rgba(13,110,253,0.3); }
  50% { box-shadow: 0 0 0 4px rgba(13,110,253,0.4), 0 0 20px rgba(13,110,253,0.5); }
}

/* ============================================
   Swiper Photo Gallery (Submission Detail Modal)
   ============================================ */

.vplus-gallery-main {
  width: 100%;
  max-height: 500px;
  border-radius: 0.375rem;
  overflow: hidden;
  background: #f8f9fa;
}

.vplus-gallery-main .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.vplus-gallery-main .swiper-slide img {
  max-width: 100%;
  max-height: 500px;
  object-fit: contain;
}

.vplus-gallery-thumbs {
  margin-top: 8px;
  height: 60px;
}

.vplus-gallery-thumbs .swiper-slide {
  width: 60px !important;
  height: 60px;
  opacity: 0.5;
  cursor: pointer;
  border-radius: 0.25rem;
  overflow: hidden;
  transition: opacity 0.2s ease, border-color 0.2s ease;
  border: 2px solid transparent;
}

.vplus-gallery-thumbs .swiper-slide-thumb-active {
  opacity: 1;
  border-color: var(--bs-primary);
}

.vplus-gallery-thumbs .swiper-slide:hover {
  opacity: 0.85;
}

.vplus-gallery-thumbs .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vplus-gallery-sections .vplus-gallery-section-jump {
  border-color: #000;
  background: #000;
  color: #fff;
}

.vplus-gallery-sections .vplus-gallery-section-jump:hover,
.vplus-gallery-sections .vplus-gallery-section-jump:focus-visible {
  border-color: #212529;
  background: #212529;
  color: #fff;
}

.vplus-gallery-sections .vplus-gallery-section-jump:active,
.vplus-gallery-sections .vplus-gallery-section-jump.is-active {
  border-color: #ffc107;
  background: #ffc107;
  color: #000;
}

/* Swiper navigation arrow overrides for modal context */
.vplus-gallery-main .swiper-button-next,
.vplus-gallery-main .swiper-button-prev {
  color: #fff;
  background: rgba(0, 0, 0, 0.35);
  border-radius: 50%;
  width: 32px;
  height: 32px;
}

.vplus-gallery-main .swiper-button-next::after,
.vplus-gallery-main .swiper-button-prev::after {
  font-size: 14px;
}

/* Zoom toggle button */
.vplus-gallery-zoom-btn {
  position: absolute;
  bottom: 12px;
  right: 12px;
  z-index: 10;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease;
}

.vplus-gallery-zoom-btn:hover {
  background: rgba(0, 0, 0, 0.7);
}

/* CR photo thumbnails — click to jump in gallery */
.vplus-cr-gallery-thumb {
  transition: opacity 0.15s ease, box-shadow 0.15s ease;
}

.vplus-cr-gallery-thumb:hover {
  opacity: 0.8;
  box-shadow: 0 0 0 2px var(--bs-primary);
}

/* Google Places PlaceAutocompleteElement — match Bootstrap form-control */
gmp-place-autocomplete,
.vplus-address-autocomplete {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color, #212529);
  background-color: #fff;
  background-clip: padding-box;
  border: var(--bs-border-width, 1px) solid var(--bs-border-color, #dee2e6);
  border-radius: var(--bs-border-radius, 0.375rem);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}

gmp-place-autocomplete:focus-within,
.vplus-address-autocomplete:focus-within {
  border-color: #86b7fe;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.form-control-sm + gmp-place-autocomplete,
.small gmp-place-autocomplete {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  border-radius: var(--bs-border-radius-sm, 0.25rem);
}

.vplus-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
    margin-top: 1rem;
    justify-content: center;
}

.vplus-invoicing-sync-btn, #vplus-filter-clear, .vplus-pg-btn, .button {
    display: inline-block;
    padding: 0 0.625rem;
    font-size: 0.8125rem;
    line-height: 2.15384615;
    min-height: 1.875rem;
    color: #2c3338;
    background: #f6f7f7;
    border: 1px solid #c3c4c7;
    border-radius: 0.1875rem;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    box-sizing: border-box;
    vertical-align: middle;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-weight: 400;
    transition: background 0.1s, border-color 0.1s, color 0.1s;
    box-shadow: none;
    outline: none;
}

.button.button-primary.vplus-invoicing-sync-btn, .button.button-primary.vplus-pg-btn, .button.button-primary, a.button.button-primary {
    background: #2271b1;
    border-color: #2271b1;
    color: #fff;
}

.vplus-pagination .button {
    min-width: 2.125rem;
    padding: 0 0.5rem;
    text-align: center;
}

.vplus-search-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.vplus-search-filters input[type="text"], .vplus-search-filters input[type="date"], .vplus-search-filters select {
    height: 1.875rem !important;
    min-height: 0 !important;
    line-height: 1.5rem !important;
    font-size: 0.8125rem !important;
    border: 1px solid #c3c4c7 !important;
    border-radius: 0.25rem !important;
    padding: 0 0.5rem !important;
    background: #fff !important;
    box-sizing: border-box !important;
    color: #2c3338 !important;
}

.vplus-search-filters .ts-control {
    min-height: 1.875rem !important;
    height: auto !important;
    padding: 0.125rem 0.375rem !important;
    border: 1px solid #c3c4c7 !important;
    border-radius: 0.25rem !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 0.8125rem !important;
    gap: 0.1875rem !important;
    cursor: pointer !important;
}

.vplus-search-filters .ts-control input {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 0.8125rem !important;
    color: #2c3338 !important;
}

.vplus-search-filters .ts-wrapper {
    flex: 0 0 auto;
    min-width: 10rem;
}

.ts-wrapper.multi {
    height: auto;
    min-height: 1.875rem;
}

/* =============================================================================
   Vendor List & Profile
   Ported from vp-core/assets/css/vendorplus.css for the bridged Vendors page
   (front-end /vendors/ + linked Vendor Profiles). The bare `.column-id`,
   `.column-rules`, and `.column-actions` selectors from vp-core have been
   scoped under `.vplus-vendor-list` to avoid colliding with other tables in
   vendorplus-core that use those generic class names.
   ============================================================================= */

/* ---- Filter bar ---- */
.vplus-vendor-filter-wrap {
  background: #fff;
  border: 1px solid #e2e4e7;
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.05);
}
.vplus-vendor-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.vplus-vendor-search-input {
  height: 1.875rem;
  line-height: 1.75rem;
  font-size: 0.8125rem;
  border: 1px solid #c3c4c7;
  border-radius: 0.25rem;
  padding: 0 0.5rem;
  min-width: 13.75rem;
  flex: 1;
  box-sizing: border-box;
}
.vplus-vendor-search-input:focus {
  border-color: #2271b1;
  box-shadow: 0 0 0 1px #2271b1;
  outline: none;
}
.vplus-vendor-per-page {
  height: 1.875rem;
  line-height: 1.75rem;
  font-size: 0.8125rem;
  border: 1px solid #c3c4c7;
  border-radius: 0.25rem;
  padding: 0 0.375rem;
  width: 5.625rem;
  box-sizing: border-box;
}

/* ---- Vendor table ---- */
.vplus-vendor-table-wrap {
  background: #fff;
  border: 1px solid #dcdde0;
  border-radius: 0.375rem;
  overflow: hidden;
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.05);
  margin-bottom: 1rem;
}
.vplus-vendor-list {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  margin: 0;
}
.vplus-vendor-list thead th {
  background: #f6f7f7;
  border-bottom: 1px solid #dcdde0;
  padding: 0.625rem 0.875rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #50575e;
  white-space: nowrap;
}
.vplus-vendor-list tbody tr {
  border-bottom: 1px solid #f0f0f1;
}
.vplus-vendor-list tbody tr:last-child {
  border-bottom: none;
}
.vplus-vendor-list tbody tr.vplus-row-odd td {
  background: #f9f9f9;
}
.vplus-vendor-list tbody tr:hover td {
  background: #f0f6ff;
}
.vplus-vendor-list td {
  padding: 0.625rem 0.875rem;
  vertical-align: middle;
  color: #2c3338;
}
.vplus-vendor-id {
  font-size: 0.75rem;
  color: #8c8f94;
  font-family: monospace;
}
.vplus-vendor-list .column-id      { width: 3.75rem; }
.vplus-vendor-list .column-rules   { width: 5rem; text-align: center; }
.vplus-vendor-list .column-actions { width: 5rem; text-align: right; }
.vplus-vendor-empty {
  padding: 1.25rem 0.875rem;
  color: #8c8f94;
  font-style: italic;
}

/* Rules badge */
.vplus-rules-badge {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.vplus-rules-badge--set  { background: #d7f0c3; color: #1d6a27; }
.vplus-rules-badge--none { background: #f0f0f1; color: #8c8f94; }

/* =============================================================================
   Vendor Profile
   ============================================================================= */

/* Back button row */
.vplus-vendor-profile-actions {
  margin-bottom: 1rem;
}

/* Vendor identity card */
.vplus-vendor-info-card {
  background: #fff;
  border: 1px solid #dcdde0;
  border-radius: 0.375rem;
  box-shadow: 0 1px 0.1875rem rgba(0, 0, 0, 0.05);
  margin-bottom: 1.5rem;
  overflow: hidden;
}
.vplus-vendor-info-card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  background: #f6f7f7;
  border-bottom: 1px solid #dcdde0;
}
.vplus-vendor-info-card-name {
  font-size: 1rem;
  font-weight: 600;
  color: #1d2327;
  flex: 1;
  min-width: 0;
}
.vplus-vendor-id-chip {
  font-size: 0.75rem;
  font-weight: 400;
  color: #8c8f94;
  font-family: monospace;
  background: #f0f0f1;
  border-radius: 0.25rem;
  padding: 0.125rem 0.375rem;
  flex-shrink: 0;
}
.vplus-vendor-info-fields {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.vplus-vendor-info-field {
  padding: 0.75rem 1.25rem;
  border-right: 1px solid #f0f0f1;
  border-bottom: 1px solid #f0f0f1;
}
.vplus-vendor-info-field:last-child {
  border-right: none;
  border-bottom: none;
}
.vplus-vendor-info-field--address {
  grid-column: 1 / -1;
  border-right: none;
}
.vplus-vendor-info-field-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #8c8f94;
  margin-bottom: 0.25rem;
}
.vplus-vendor-info-field-value {
  display: block;
  font-size: 0.875rem;
  color: #1d2327;
  line-height: 1.4;
}
.vplus-vendor-info-empty {
  color: #b0b3b8;
}

/* Form sections (commission rules, xero settings) */
.per-sale-set-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: #fff;
  border-bottom: none;
}
.per-sale-set-header label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
}
.per-sale-rules-table,
.default-rules-table { margin-bottom: 0; }
.per-sale-rules-table .col-min,
.per-sale-rules-table .col-max,
.default-rules-table .col-min,
.default-rules-table .col-max { width: 7.5rem; }
.per-sale-rules-table .col-value,
.default-rules-table .col-value { width: 7.5rem; }
.per-sale-rules-table .col-type,
.default-rules-table .col-type { width: 5rem; }
.per-sale-rules-table .col-actions,
.default-rules-table .col-actions { width: 2.5rem; text-align: right; }
.per-sale-rules-table .col-condition,
.default-rules-table .col-condition {
  width: 1.25rem;
  vertical-align: middle;
  padding: 0;
  text-align: center;
}
.per-sale-rules-table td input,
.default-rules-table td input { width: 100%; }
.btn .fas,
.btn .fal { pointer-events: none; }
.default-rules-footer,
.per-sale-set-footer {
  display: flex;
  justify-content: flex-start;
}
.per-sale-set {
  margin-bottom: 1rem;
  background: #fff;
}
.vplus-invalid {
  border-color: #c00 !important;
  background: #fff0f0 !important;
  box-shadow: 0 0 0 0.125rem rgba(204, 0, 0, 0.06) !important;
}
.vplus-sale-input-wrap { width: 100%; }
#vplus-save-notice {
  position: fixed;
  top: 3rem;
  right: 2rem;
  z-index: 100;
  width: 18.75rem;
  box-shadow: 0.3125rem 0.3125rem 0.9375rem rgba(0, 0, 0, 0.1);
}

/* Form save footer */
.vplus-vendor-form-footer {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1.25rem 0 0.5rem;
  margin-top: 0.25rem;
}

/* Responsive: collapse info grid to single column on narrow screens */
@media (max-width: 600px) {
  .vplus-vendor-info-fields {
    grid-template-columns: 1fr;
  }
  .vplus-vendor-info-field {
    border-right: none;
  }
  .vplus-vendor-info-field--address {
    grid-column: auto;
  }
}

/* ============================================================
   TABLET PORTRAIT BREAKPOINT (768px–991.98px, portrait only).
   Auction Manager surfaces need the same row-collapse treatment
   the phone breakpoint already applies — the desktop grid is
   still too wide for iPad-portrait viewports, and the inline
   action columns wrap awkwardly. We scope to `orientation: portrait`
   so iPad-landscape (which has plenty of width) keeps the desktop
   layout untouched.
   ============================================================ */
@media (min-width: 768px) and (max-width: 991.98px) and (orientation: portrait) {

  /* --- A15-tablet. Pending submissions table —
     mirrors the (max-width: 767px) submissions
     pattern at vendor-plus.css ~9352. Actions move
     to a full-width row at the bottom of each <tr>
     so the table no longer overflows the viewport. */
  .vplus-submissions-tabs ~ .tab-content .table-responsive {
    border: none;
  }
  .vplus-submissions-tabs ~ .tab-content table.table thead {
    display: none;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody tr {
    display: flex;
    flex-wrap: wrap;
    padding: 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.5rem;
    gap: 0.5rem;
    align-items: center;
    background: #fff;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td {
    border: none;
    padding: 0.125rem 0;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:first-child {
    flex: 0 0 auto;
    order: -2;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(2) {
    flex: 0 0 auto;
    order: -1;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(3) {
    flex: 1 1 60%;
    min-width: 0;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(4) {
    flex: 0 0 100%;
    font-size: 0.85rem;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(5),
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:nth-child(6) {
    flex: 0 0 auto;
    font-size: 0.85rem;
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:last-child {
    flex: 0 0 100%;
    text-align: left !important;
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
    padding-top: 0.375rem;
    border-top: 1px solid var(--bs-border-color-translucent);
  }
  .vplus-submissions-tabs ~ .tab-content table.table tbody td:last-child .btn {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
  }

  /* --- Sales list (Item 6) — push the actions
     column (.col-auto.col-md inside .card-body.row)
     to a full-width bottom row. Flip from the mobile
     dropdown back to inline buttons here so the
     three-state cascade (mobile → tablet-portrait →
     desktop) lands buttons on tablet-portrait. */
  .vplus-sales-list .card-wrapper .card .card-body.row > .col-auto.col-md {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
    order: 99;
    padding-top: 0.5rem;
    margin-top: 0.5rem;
    border-top: 1px solid var(--bs-border-color-translucent);
    text-align: left !important;
  }
  /* Show the desktop button row on tablet-portrait, hide
     the dropdown the .d-block.d-md-none mobile-fallback
     uses. The buttons themselves stretch to fill the row. */
  .vplus-sales-list .card-wrapper .card .card-body.row > .col-auto.col-md .d-none.d-md-block {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.375rem;
  }
  .vplus-sales-list .card-wrapper .card .card-body.row > .col-auto.col-md .d-none.d-md-block .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
  .vplus-sales-list .card-wrapper .card .card-body.row > .col-auto.col-md .dropdown.d-block.d-md-none {
    display: none !important;
  }
}

/* =========================================================================
   VendorPlus motion utilities (Phase 0)
   Shared, dependency-free enter/exit/stagger primitives driven by class
   toggles. Used by vendor-plus-motion.js. Animate transform/opacity only.
   ========================================================================= */

/* Enter: fade in. Apply .vplus-fade-in, then .is-in on the next frame. */
.vplus-fade-in {
  opacity: 0;
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-out);
}
.vplus-fade-in.is-in {
  opacity: 1;
}

/* Enter: fade + rise. */
.vplus-fade-up {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-out),
    transform var(--vplus-motion-base) var(--vplus-ease-out);
}
.vplus-fade-up.is-in {
  opacity: 1;
  transform: none;
}

/* Exit: fade (+ slight sink). Apply .is-out to animate away before removal. */
.vplus-fade-out {
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-in),
    transform var(--vplus-motion-base) var(--vplus-ease-in);
}
.vplus-fade-out.is-out {
  opacity: 0;
  transform: translateY(6px);
}

/* Directional slide swaps (lot-to-lot, tab content). */
.vplus-slide-left.is-out {
  opacity: 0;
  transform: translateX(-18px);
}
.vplus-slide-right.is-out {
  opacity: 0;
  transform: translateX(18px);
}
.vplus-slide-left,
.vplus-slide-right {
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-soft),
    transform var(--vplus-motion-base) var(--vplus-ease-soft);
}

/* Stagger: children of a .vplus-stagger fade-up with incremental delay.
   The motion helper sets --vplus-i per child; the CSS reads it. */
.vplus-stagger > * {
  opacity: 0;
  transform: translateY(10px);
}
.vplus-stagger.is-in > * {
  opacity: 1;
  transform: none;
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-out),
    transform var(--vplus-motion-base) var(--vplus-ease-out);
  transition-delay: calc(var(--vplus-i, 0) * var(--vplus-stagger-step));
}

/* Table rows can't safely take a transform (they become containing blocks and
   can mis-render). When the stagger container is a tbody, fade rows only. */
tbody.vplus-stagger > tr {
  transform: none;
}
tbody.vplus-stagger.is-in > tr {
  transition: opacity var(--vplus-motion-base) var(--vplus-ease-out);
  transform: none;
}

/* Loading skeleton shimmer for AJAX in-flight windows. */
.vplus-skeleton {
  position: relative;
  overflow: hidden;
  background: var(--vplus-surface-panel-alt, #f1f3f5);
  border-radius: 6px;
}
.vplus-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  animation: vplusSkeletonShimmer 1.25s ease-in-out infinite;
}
@keyframes vplusSkeletonShimmer {
  to {
    transform: translateX(100%);
  }
}

/* Modal entrance polish — a subtle scale + rise on top of Bootstrap's fade,
   applied to every .modal.fade in the suite (VPlusModal + template modals).
   Scoped to the dialog so it never fights Bootstrap's backdrop fade. */
.modal.fade .modal-dialog {
  transform: translateY(12px) scale(0.98);
  transition: transform var(--vplus-motion-slow) var(--vplus-ease-out),
    opacity var(--vplus-motion-slow) var(--vplus-ease-out);
  opacity: 0;
}
.modal.show .modal-dialog {
  transform: none;
  opacity: 1;
}

/* Accessibility: honour reduced-motion globally. Neutralises the motion
   utilities above and dampens any transform/animation the suite applies. */
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog,
  .modal.show .modal-dialog {
    transition-duration: 0.01ms !important;
    transform: none !important;
  }
  .vplus-fade-in,
  .vplus-fade-up,
  .vplus-fade-out,
  .vplus-slide-left,
  .vplus-slide-right,
  .vplus-stagger > *,
  .vplus-stagger.is-in > * {
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    transform: none !important;
  }
  .vplus-skeleton::after {
    animation: none !important;
  }
}

/* --- Invalid Workflow guard modal (harsher warning treatment) --- */
.vplus-invalid-workflow .modal-content {
  border: 2px solid #842029;
  box-shadow: 0 0 0 0.25rem rgba(132, 32, 41, 0.15), 0 1rem 3rem rgba(0, 0, 0, 0.3);
}
.vplus-invalid-workflow .modal-header {
  background: #842029;
  border-bottom: 0;
}
.vplus-invalid-workflow .modal-title {
  color: #fff;
  font-weight: 600;
  display: flex;
  align-items: center;
}
.vplus-invalid-workflow .modal-title::before {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f071"; /* fa-triangle-exclamation */
  margin-right: 0.6rem;
}
.vplus-invalid-workflow .modal-header .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}
.vplus-invalid-workflow .modal-body {
  color: #58151c;
}
