:root {
    --accent: #2563eb;
    --muted: #6b7280
}

.recorder-screen {
    font-size: 0.875rem;
}

.recorder-screen .recorder-run-meta {
    margin-bottom: 0.45rem;
    font-size: 0.75rem;
    line-height: 1.35;
}

.recorder-screen > .alert {
    margin-bottom: 0.5rem;
    padding: 0.4rem 0.65rem;
}

.recorder-status-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.recorder-status-summary h2 {
    font-size: 1rem;
}

.recorder-screen .recorder-status-grid {
    width: min(40%, 30rem);
    grid-template-columns: minmax(0, 1fr);
    justify-content: end;
}

.recorder-screen .recorder-status-grid > .recorder-progress-group {
    width: 100%;
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    padding: 6px;
    text-align: center;
    font-size: 0.95rem;
}

.recorder-progress {
    height: 8px;
}

.recorder-statistics {
    margin-bottom: 0.5rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
}

.recorder-statistics > summary {
    cursor: pointer;
    font-weight: 600;
}

.recorder-statistics-content {
    padding-top: 0.45rem;
}

.recorder-run-details {
    margin-bottom: 0.45rem;
    font-size: 0.75rem;
}

.recorder-statistics .card-body {
    font-size: 0.78rem;
    line-height: 1.2;
}

.recorder-statistics .fs-4 {
    font-size: 1.15rem !important;
}

.recorder-statistics .card.card-body {
    padding: 0.45rem 0.6rem;
}

.recorder-statistics .card.card-body small {
    display: block;
    margin-top: 0.15rem;
}

.recorder-filter-form .form-select,
.recorder-filter-form .form-control,
.recorder-screen .btn {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

.recorder-filter-form .form-select,
.recorder-filter-form .form-control,
.recorder-filter-button {
    min-height: 2rem;
    font-size: 0.78rem;
    line-height: 1.15;
}

.recorder-filter-form .recorder-filter-status {
    max-width: 12rem;
    padding-left: 0.5rem;
}

.recorder-filter-form .recorder-filter-query {
    max-width: 10rem;
    padding-left: 0.5rem;
}

.recorder-filter-form .recorder-filter-button {
    padding-right: 0.65rem;
    padding-left: 0.65rem;
}

.recorder-comparison-row {
    --bs-gutter-x: 0.4rem;
    --bs-gutter-y: 0.4rem;
}

.recorder-comparison-nav {
    display: flex;
    align-items: center;
}

.recorder-comparison-card .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.3rem 0.5rem;
    font-size: 0.78rem;
}

.recorder-comparison-card.recorder-comparison-invalid {
    border: 3px solid #dc3545 !important;
    background: #f1f1f1;
    opacity: 0.72;
}

.recorder-comparison-invalid .card-header,
.recorder-comparison-invalid .card-body {
    background: #f1f1f1;
}

.recorder-comparison-disabled .card-header,
.recorder-comparison-disabled .card-body {
    background: #f1f1f1;
    color: #595959;
}

.recorder-comparison-card.recorder-comparison-disabled {
    border-color: #adb5bd !important;
}

.recorder-caution {
    color: #e0a800;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
}

.recorder-comparison-card.recorder-comparison-selected {
    border: 3px solid #28a745 !important;
}

.recorder-selected-label {
    margin-left: 0.35rem;
    padding: 0.1rem 0.35rem;
    background: #28a745;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
}

.recorder-comparison-card .card-body {
    padding: 0.4rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.2;
}

.recorder-comparison-card .fs-3 {
    margin-bottom: 0.2rem;
    font-size: 1.2rem !important;
}

.recorder-comparison-card p {
    margin-bottom: 0.2rem;
}

.recorder-comparison-card dl {
    margin-bottom: 0.25rem;
}

.recorder-comparison-card dd {
    margin-bottom: 0.15rem;
}

.recorder-comparison-card pre {
    margin: 0;
    font-size: 0.7rem;
}

.recorder-comparison-card details > summary {
    font-size: 0.72rem;
}

.recorder-nav-button {
    padding: 0.25rem 0.35rem !important;
    font-size: 0.7rem;
    white-space: nowrap;
}

.recorder-lot-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.15rem 0 0.35rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid #c9dff7;
    border-left: 4px solid #0056b3;
    border-radius: 0.25rem;
    background: #eef6ff;
}

.recorder-lot-heading small,
.recorder-row-issue {
    font-size: 0.75rem;
}

.recorder-lot-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
}

.recorder-lot-number {
    flex: 0 0 auto;
    padding: 0.2rem 0.45rem;
    border-radius: 0.2rem;
    background: #0056b3;
    color: #fff;
    font-size: 0.78rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.recorder-missing-state {
    display: inline-block;
    border: 2px solid #dc3545;
    border-radius: 0.35rem;
    padding: 0.1rem 0.35rem;
}

.recorder-lot-name {
    overflow-wrap: anywhere;
}

.recorder-lot-title .badge {
    flex: 0 0 auto;
    font-size: 0.68rem;
}

.recorder-row-issue {
    margin-bottom: 0.35rem;
}

.recorder-decision-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.recorder-current-decision {
    flex: 0 1 42%;
    min-width: 0;
    margin-bottom: 0;
}

.recorder-neither-actions {
    display: flex;
    justify-content: center;
    margin-top: 0.4rem;
}

.recorder-screen .card.card-body.mb-2 {
    padding: 0.55rem 0.7rem;
}

.recorder-screen .btn,
.recorder-screen .btn:is(:hover, :focus, :active) {
    border-radius: 0 !important;
    color: #fff !important;
    transition: none !important;
}

.recorder-screen .btn-primary,
.recorder-screen .btn-primary:is(:hover, :focus, :active) {
    background: #0056b3 !important;
    border-color: #0056b3 !important;
}

.recorder-screen .btn-success,
.recorder-screen .btn-success:is(:hover, :focus, :active) {
    background: #28a745 !important;
    border-color: #28a745 !important;
}

.recorder-screen .btn-danger,
.recorder-screen .btn-danger:is(:hover, :focus, :active) {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
}

.recorder-screen .btn:focus-visible {
    outline: 3px solid #212529;
    outline-offset: 3px;
}

.recorder-screen .btn:is(:disabled, .disabled) {
    background: #ccc !important;
    border-color: #ccc !important;
    color: #495057 !important;
    opacity: 1;
    cursor: not-allowed;
}

.recorder-screen .recorder-comparison-card .btn:disabled {
    background: #ccc !important;
    border-color: #aaa !important;
    color: #495057 !important;
    cursor: not-allowed;
}

.recorder-history-table { font-size: 0.85rem; }
.recorder-history-table th,
.recorder-history-table td { padding: 0.35rem 0.5rem; }
.recorder-note { white-space: pre-wrap; }

@media (max-width: 575.98px) {
    .recorder-decision-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .recorder-current-decision {
        width: 100%;
    }

    .recorder-status-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.3rem;
    }

    .recorder-screen .recorder-status-grid {
        width: 100%;
    }

    .recorder-lot-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .recorder-lot-title {
        flex-wrap: wrap;
    }
}

.admin-vendor-entry .entry-minimum-bid {
    max-width: 150px;
}

.admin-vendor-entry table {
    font-size: 0.85rem;
}

.admin-vendor-entry th,
.admin-vendor-entry td {
    padding: 0.35rem 0.5rem;
}

.admin-vendor-entry th:last-child,
.admin-vendor-entry td:last-child {
    white-space: nowrap;
    text-align: right;
}

.admin-vendor-entry .btn {
    padding: 0.2rem 0.4rem;
    font-size: 0.75rem;
    line-height: 1.2;
    border-radius: 6px !important;
}

.admin-vendor-entry .btn-primary,
.admin-vendor-entry .btn-primary:is(:hover, :focus, :active) {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    color: #fff !important;
}

.admin-vendor-entry .btn-success,
.admin-vendor-entry .btn-success:is(:hover, :focus, :active) {
    background-color: #28a745 !important;
    border-color: #28a745 !important;
    color: #fff !important;
}

.admin-vendor-entry .btn-danger,
.admin-vendor-entry .btn-danger:is(:hover, :focus, :active) {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

.admin-vendor-entry .btn-secondary,
.admin-vendor-entry .btn-secondary:is(:hover, :focus, :active) {
    background-color: #495057 !important;
    border-color: #495057 !important;
    color: #fff !important;
}

body {
    font-family: Arial,Helvetica,sans-serif;
    background: #f6f8fb;
    color: #1f2937;
    margin: 0px;
}

input[type="datetime-local"],
input[type="date"],
input[type="time"] {
    font-family: inherit;
    font-size: 1rem
}

.field-error {
    color: #721c24;
    font-size: .9rem;
    display: inline-block;
    background: #fff5f5;
    border: 1px solid #f5c6cb;
    padding: .35rem .5rem;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: .45rem;
    z-index: 60
}

.field-error .fe-icon {
    display: inline-block;
    width: 28px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    background: #ff8800;
    color: #fff;
    border-radius: 4px;
    margin-right: .5rem;
    font-weight: 700
}

.field-error .fe-message {
    vertical-align: middle
}

.input-error {
    border-color: #f5c6cb !important;
    background: #fff5f5 !important
}

.input-pos {
    position: relative
}

.field-error::before {
    content: "";
    position: absolute;
    left: 12px;
    top: -8px;
    border-width: 0 8px 8px 8px;
    border-style: solid;
    border-color: transparent transparent #f5c6cb transparent
}

.field-error::after {
    content: "";
    position: absolute;
    left: 13px;
    top: -7px;
    border-width: 0 7px 7px 7px;
    border-style: solid;
    border-color: transparent transparent #fff5f5 transparent
}

/* Override absolute positioning for inline field errors in setup/edit forms */
.setup-inline-field-error {
    position: static !important;
    left: auto !important;
    top: auto !important;
    margin-top: .5rem !important;
    display: block !important;
    box-shadow: none !important;
    border: none !important;
    background: none !important;
    color: #721c24 !important;
    padding: .25rem 0 !important;
    font-size: .85rem !important;
    font-weight: 500;
}

.setup-inline-field-error::before,
.setup-inline-field-error::after {
    display: none !important;
}

/* Field info note styling */
.field-note {
    background-color: #e7f3ff;
    border-left: 4px solid #0056b3;
    padding: 0.5rem 0.75rem;
    margin-top: 0.35rem;
    border-radius: 3px;
    font-size: 0.7rem !important;
    color: #004085;
    display: block;
}

/* lot suggestions dropdown */
.lot-suggestions {
    position: absolute;
    z-index: 1200;
    left: 0;
    top: calc(100% + 6px);
    min-width: 240px;
    max-width: 560px;
    background: #fff;
    border: 1px solid rgba(2,6,23,0.06);
    box-shadow: 0 6px 20px rgba(2,6,23,0.12);
    border-radius: 6px;
    overflow: auto;
    max-height: 360px
}

.lot-suggestions .ls-item {
    padding: .45rem .6rem;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer
}

.lot-suggestions .ls-item:hover,
.lot-suggestions .ls-item:focus {
    background: #f1f5f9;
    outline: none
}

/* wrapper for bidder user search autocomplete */
.bidder-user-search-wrap {
    position: relative;
}

/* small toggle button next to lot input */
.input-group .btn[title] {
    width: 38px;
    padding: 0 .5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center
}

/* Always-visible grey toggle with black arrow for lot suggestions */
#lotToggleBtn {
    background: #d1d5db !important;
    color: #000 !important;
    border-color: #c4c8cc !important;
    width: 38px;
    padding: 0 .5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    box-shadow: none !important
}

#lotToggleBtn:hover,
#lotToggleBtn:focus {
    background: #d1d5db !important;
    color: #000 !important;
    border-color: #c4c8cc !important;
    box-shadow: none !important;
    outline: none
}

/* Price input narrower to match design */
.price-input {
    max-width: 260px
}

/* bidder wrap: keep label above small input */
.bidder-wrap {
    display: flex;
    flex-direction: column;
    min-width: 160px;
    margin-left: .5rem
}

.bidder-wrap .form-label {
    font-size: 1rem;
    color: #111827;
    margin-bottom: .35rem
}

/* Ensure price and bidder inputs match the standard control height */
.price-input,
.bidder-wrap input {
    height: 38px !important;
    padding: .45rem .6rem !important;
    line-height: 1.2 !important;
    margin-top: 0 !important;
    box-sizing: border-box !important
}

/* Ensure the lookup row aligns its controls vertically */
.run-panel .row.g-2.align-items-end {
    align-items: flex-end !important;
}

/* Ensure each column in the lookup row stacks its label above the control
   and pushes the input to the bottom so all inputs line up along the same baseline. */
.run-panel .row.g-2.align-items-end > [class*="col-"] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Small safeguard: make label spacing consistent so baseline alignment is predictable */
.run-panel .row.g-2.align-items-end label.form-label {
    margin-bottom: .35rem;
}

.site-header {
    /* pinned bar that still occupies space in the page flow */
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 1030;
    background: transparent;
    padding: 0;
}

.site-header .header-inner {
    max-width: 1300px;
    margin: 0 auto;
    padding: .6rem 1rem; /* restore the white bar padding inside centered area */
    display: grid;
    grid-template-columns: minmax(72px, 1fr) minmax(0, 2fr) minmax(72px, 1fr);
    align-items: center;
    gap: 1rem;
    background: #ffffff; /* constrained white area */
    border-bottom: 1px solid #e6edf3;
}

.logo-box {
    width: 72px;
    height: 56px;
    border-radius: 8px;
    background: #eef2ff;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e6edf3
}

.logo-box img {
    display: block;
    width: 100%;
    height: auto;
}

.display-title {
    min-width: 0;
    text-align: center;
}

.user-info {
    justify-self: end;
}

.site-title h1 {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.1;
}

.active-auction-name {
    overflow: hidden;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.active-auction-date {
    font-weight: 400;
}

.site-banner {
    display: block;
    max-width: 90%;
    max-height: 18px;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

@media (max-width: 575.98px) {
    .site-header .header-inner {
        grid-template-columns: 56px minmax(0, 1fr) 56px;
        gap: .5rem;
    }

    .logo-box {
        grid-column: 1;
        grid-row: 1;
        width: 56px;
    }

    .display-title {
        grid-column: 2;
        grid-row: 1;
    }

    .site-title h1 {
        font-size: .95rem;
    }

    .user-info {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

.breadcrumb-section {
    background: #ffffff;
    border-bottom: 1px solid #e6edf3;
    padding: 0.75rem 1rem;
    max-width: 1300px;
    margin: 0 auto;
}

.site-footer {
    padding: 1rem;
    text-align: center;
    color: #6b7280;
    border-top: 1px solid #e6edf3;
    margin-top: 1rem;
    background: #fff;
}

.breadcrumb {
    font-size: .92rem;
    color: var(--muted);
    margin: 0;
    padding: 0;
}

    .breadcrumb a {
        color: var(--muted);
        text-decoration: none
    }

    .breadcrumb .sep {
        margin: 0 .5rem;
        color: #c7cbd1
    }

.user-info {
    font-size: .9rem;
    color: #111;
    display: flex;
    align-items: center;
    gap: .5rem
}

    .user-info a {
        color: var(--accent);
        text-decoration: none
    }

.container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 1rem;
}

.flash-success {
    color: #155724;
    background: #d4edda;
    border: 1px solid #c3e6cb;
    border-radius: 6px;
    padding: .6rem;
    margin: 1rem auto 0 auto;
    max-width: 1300px;
}

.flash-warning {
    color: #856404;
    background: #fff3cd;
    border: 1px solid #ffeeba;
    border-radius: 6px;
    padding: .6rem;
    margin: 1rem auto 0 auto;
    max-width: 1300px;
}

.flash-danger {
    color: #721c24;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 6px;
    padding: .6rem;
    margin: 1rem auto 0 auto;
    max-width: 1300px;
}

/* Auction State Panel - Yellow informational panel same as flash-warning */
.auction-state-panel {
    display: inline-block !important;
    border: 1px solid #ffeeba !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    margin-bottom: 1rem !important;
    box-shadow: 0 1px 2px rgba(16,24,40,0.04) !important;
}

/* Header strip (blue) */
.auction-state-label {
    background-color: #0056b3 !important;
    color: #ffffff !important;
    padding: 0.25rem 0.6rem !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.4px !important;
    display: block !important;
}

/* Body (yellow) */
.auction-state-value {
    background: #fff3cd !important;
    color: #856404 !important;
    padding: 0.35rem 0.6rem !important;
    font-size: 0.96rem !important;
    font-weight: 600 !important;
    display: block !important;
}

.header-body {
    font-family: Arial,Helvetica,sans-serif;
    max-width: 1300px;
    margin: 0 auto; /* remove extra top margin so content sits closer under header */
    padding: 1rem;
}
.manage-auctions-button {
    padding: .6rem 1rem;
    background: #0366d6;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.manage-vendors-button {
    padding: .6rem 1rem;
    background: #6f42c1;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.vendor-auction-history-button {
    padding: .6rem 1rem;
    background: #ba3845;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.manage-bidders-button {
    padding: .6rem 1rem;
    background: indianred;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.manage-bids-button {
    padding: .6rem 1rem;
    background: #e74c3c;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.register-bids-button {
    padding: .6rem 1rem;
    background: #28a745;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.view-bids-button {
    padding: .6rem 1rem;
    background: #17a2b8;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.ts-wrapper.single,
.ts-wrapper.single .ts-control {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
}

label[for="vendor_id"] {
    display: block;
    width: 100%;
}

.vendor-field {
    max-width: 300px;
    margin-bottom: 1rem;
}

.vendor-field .ts-wrapper,
.vendor-field select {
    width: 100%;
}

.reports-button {
    padding: .6rem 1rem;
    background: #c64ad7;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.logs-button {
    padding: .6rem 1rem;
    background: #000;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}

.manage-lots {
    padding: .6rem 1rem;
    background: #d63384;
    color: #fff;
    border-radius: 6px;
    text-decoration: none
}


/* Standard admin table sizing (see copilot-instructions Table Standards) */
.admin-table {
    font-size: 0.85rem;
}

#items-grid-container th,
#items-grid-container td {
    padding: 0.35rem 0.5rem;
}

.admin-table th,
.admin-table td {
    padding: 0.35rem 0.5rem;
}

/* Standardized button styles */
.btn-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #28a745;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 18px;
    line-height: 1;
    border: 0;
}

.btn-add:disabled {
    background: #6c757d;
    opacity: 0.65;
    cursor: not-allowed;
}

.pagination-bar {
    margin-top: 8px;
    border-top: 1px solid #e0e0e0;
    padding-top: 8px;
    text-align: center;
}

.page-size-row {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.page-size-label {
    margin: 0;
    font-weight: 500;
    font-size: 0.95rem;
}

.page-size-select {
    padding: 0.375rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95rem;
}

.pagination-nav {
    margin-top: 6px;
}

.btn-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #2563eb !important;
    text-decoration: none;
    /**font-weight: 200;*/
    font-size: 11px !important;
    color: white;
    line-height: 1;
    border: 0;
}

/* Full-width variant for form layouts */
.btn-add.w-100 {
    width: 100%;
    height: auto;
    border-radius: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 14px;
}

.btn {
    display: inline-block;
    padding: .6rem 1rem;
    border-radius: 6px;
    color: #fff;
    text-decoration: none
}

.btn-primary {
    background: var(--accent) !important
}

.btn-secondary {
    background: #6c757d !important
}

.btn-success {
    background: #28a745 !important
}

.btn-success:hover {
    background: #28a745 !important
}

.btn-primary:hover {
    background: var(--accent) !important
}

a.btn[href^="/vendors/edit"],
a.btn[href^="/vendors/edit"]:hover,
a.btn[href^="/vendors/edit"]:focus {
    background: #b39ddb !important;
    border-color: #b39ddb !important;
    color: #2d1b4e !important;
}

.btn-danger {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
}

.btn-danger:hover {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
}

.btn-info {
    background: #17a2b8 !important
}

.btn-dark {
    background: #343a40 !important
}

.btn-muted {
    background: #94d3a2;
    opacity: .6;
    cursor: not-allowed
}

.btn-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #dc3545;
    color: #fff;
    border: 0;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    min-width: 28px;
    min-height: 28px;
    flex-shrink: 0;
}

.btn-delete:hover {
    background: #c82333;
    opacity: 1;
}

/* Vendors search view specific styles */
.vendor-delete-form {
    display: inline-block;
}

/* Form control max widths: make input widths appropriate to expected content length
   Keep full-width on small screens via width:100% but constrain max width for readability */
.card .form-control {
    width: 100%;
    box-sizing: border-box;
}

/* Semantic input size helpers used by forms to choose appropriate widths */
.card .form-control.input-short { max-width: 320px; }   /* names, short tokens */
.card .form-control.input-medium { max-width: 480px; }  /* emails, aliases */
.card .form-control.input-long { max-width: 720px; }    /* long descriptions */

/* Passwords shouldn't be visually huge; use short */
.card .form-control[type="password"] { max-width: 320px; }

/* Small screens: inputs remain full width */
@media (max-width: 640px) {
    .card .form-control { max-width: 100%; }
}

/* Run Auction screen styles */
/*html, body { height: 100%; }*/

.run-root {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: calc(100vh - 140px);
}

.run-panel {
    width: 100% !important;
    box-sizing: border-box;
    border: 1px solid rgba(2, 6, 23, 0.06);
    border-radius: 0.5rem;
    background: #fff;
    padding: 10px;
    box-shadow: 0 6px 18px rgba(2, 6, 23, 0.04);
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}

.stat {
    background: #f8f9fa;
    border-radius: 0.375rem;
    padding: 6px;
    text-align: center;
    font-size: 0.95rem;
}

.recent-wrap {
    max-height: none;
    overflow: visible;
}

.details-table th { width: 34%; }

.details-table th,
.details-table td {
    padding: 0.45rem 0.6rem;
    border: 1px solid #e9ecef;
}

.panel-title {
    margin: 0 0 0.25rem 0;
    font-size: 1rem;
}

.lookup-col,
.details-col {
    width: 100%;
    max-width: 100%;
}

.details-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px;
    align-items: start;
}

.detail-item {
    background: #f8f9fa;
    padding: 0.45rem 0.6rem;
    border-radius: 0.375rem;
    min-width: 0;
}

.detail-item .label {
    font-size: 0.78rem;
    color: var(--muted, #6b7280);
    white-space: nowrap;
}

.detail-item .value {
    font-weight: 700;
    font-size: 0.9rem;
    white-space: normal;
    overflow-wrap: break-word;
}

@media (max-width: 991px) {
    /* stack details into two columns on smaller screens to remain readable */
    .details-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Admin Items (Lot Management) page styles */
.admin-filter {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.admin-filter-search {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 300px;
}

.admin-filter-search input {
    padding: 0.375rem 0.75rem;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    font-size: 0.95rem;
    flex: 1;
    max-width: 300px;
}

.admin-filter-search button {
    padding: 0.375rem 0.5rem;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 600;
}

.admin-filter-search button.btn-secondary {
    background: #6c757d !important;
    color: #fff !important;
}

.admin-filter-search button.btn-secondary:hover {
    background: #5a6268 !important;
}

.admin-filter-search button[type="button"] {
    padding: 0.375rem 0.75rem;
}

.admin-filter-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-filter-actions .btn {
    white-space: nowrap;
}

.admin-filter-total {
    font-size: 0.9rem;
    color: #6b7280;
}

/* Bootstrap table overrides for admin items grid */
.table {
    font-size: 0.875rem;
    margin-bottom: 0;
}

.table thead.table-light th {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    padding: 0.5rem;
    font-weight: 600;
    color: #111827;
}

.table thead.table-light th a {
    color: #2563eb;
    text-decoration: none;
    cursor: pointer;
}

.table thead.table-light th a:hover {
    text-decoration: underline;
}

.table td {
    padding: 0.5rem;
    border-color: #dee2e6;
    vertical-align: middle;
}

.table tbody tr:hover {
    background-color: #f8f9fa;
}

/* Column-specific widths for admin items table */
.col-id {
    width: 4%;
    text-align: left;
}

.col-title {
    width: 12%;
}

.col-description {
    width: 15%;
}

.table .text-wrap {
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
}

.col-title .text-wrap {
    max-width: 150px;
}

.col-description .text-wrap {
    max-width: 180px;
}

.table .text-truncate {
    max-width: 120px;
}

.table .text-nowrap {
    white-space: nowrap;
}

/* Action buttons container */
.action-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    flex-wrap: wrap;
}

.action-column {
    min-width: 150px;
    max-width: 200px;
}

.action-buttons .btn,
.action-buttons .btn-link {
    padding: 0.25rem 0.35rem;
    font-size: 0.75rem;
    line-height: 1;
    white-space: nowrap;
}

.action-buttons .btn-link {
    border: none;
    background: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.action-buttons .btn-link img,
.action-buttons .btn-link svg {
    width: 16px;
    height: 16px;
}

.action-buttons .btn-link.text-primary {
    color: #2563eb;
}

.action-buttons .btn-link.text-primary:hover {
    color: #1d4ed8;
}

.action-buttons .btn-link.text-danger {
    color: #dc3545;
}

.action-buttons .btn-link.text-danger:hover {
    color: #c82333;
}

/* Delete form inline styling */
.delete-form {
    display: inline;
    margin: 0;
    padding: 0;
}

.delete-form button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}

/* Responsive table scrolling */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Form frame and alert styles for vendor registration */
.frame {
    padding: 0.6rem;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 6px;
    margin-bottom: 0.5rem;
}

.frame h2 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-size: 1.3rem;
    color: #1f2937;
}

.frame h3 {
    margin-top: 0;
    margin-bottom: 0.3rem;
    font-size: 1rem;
    color: #1f2937;
}

/* Subtitle/helper text in heading */
.frame h2 small,
.frame h3 small {
    color: #666;
    font-weight: normal;
    font-size: 0.875rem;
    margin-left: 1rem;
}

/* Alert styling for registration closed, auction closed messages */
.alert-warning {
    padding: 0.6rem;
    border: 1px solid #ffeeba;
    background: #fff3cd;
    color: #856404;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.alert-danger {
    padding: 0.6rem;
    border: 1px solid #f5c6cb;
    background: #f8d7da;
    color: #721c24;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.alert-info {
    padding: 0.6rem;
    border: 1px solid #e6edf3;
    background: #fff8e1;
    margin-bottom: 1rem;
    color: #333;
}

/* Form error banner */
.form-error-banner {
    display: none;
    padding: 0.6rem;
    border-radius: 6px;
    margin-bottom: 1rem;
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.form-error-banner.show {
    display: block;
}

/* Form grid and field grouping */
.form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
    align-items: start;
}

.form-group {
    margin-bottom: 0.5rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.1rem;
    font-weight: 500;
    color: #1f2937;
}

.form-group input[type="text"],
.form-group input[type="number"],
.form-group input[type="email"],
.form-group select,
.form-group textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 0.35rem 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.95rem;
    line-height: 1.4;
}

/* Narrow input for bid amounts */
.form-group .narrow-input {
    width: 120px !important;
}

.form-group input[type="text"]:focus,
.form-group input[type="number"]:focus,
.form-group input[type="email"]:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-group textarea {
    font-family: monospace;
    resize: none;
    height: 45px;
}

.form-group small {
    display: block;
    margin-top: 0.25rem;
    color: #666;
    font-size: 0.875rem;
}

.form-group small.help-text {
    margin-bottom: 0.5rem;
    color: #666;
}

.form-group small.char-count {
    margin-top: 0.25rem;
}

.form-checkbox {
    margin-bottom: 0.3rem;
}

.form-checkbox input[type="checkbox"] {
    margin-right: 0.5rem;
}

.form-checkbox label {
    display: inline;
    font-weight: normal;
}

/* Donation checkbox locked for Donation-role vendors; tooltip is on the wrapper because disabled inputs ignore hover */
.donation-locked,
.donation-locked .form-check-label {
    cursor: not-allowed;
}

.donation-locked .form-check-input:disabled {
    pointer-events: none;
}

/* Form actions */
.form-actions {
    margin-top: 0.8rem;
}

.form-actions button {
    padding: 0.6rem 1.2rem;
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 500;
}

.form-actions button:hover {
    background: #1d4ed8;
}

.form-actions a {
    display: inline-block;
    margin-left: 1rem;
    text-decoration: none;
    color: #2563eb;
}

.form-actions a:hover {
    text-decoration: underline;
}

/* Responsive adjustments for smaller screens */
@media (max-width: 768px) {
    .admin-filter {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-filter-search {
        min-width: unset;
        flex-direction: column;
    }

    .admin-filter-search input {
        max-width: 100%;
    }

    .admin-filter-actions {
        width: 100%;
    }

    .admin-items-table {
        font-size: 0.8rem;
    }

    .admin-items-table th,
    .admin-items-table td {
        padding: 0.3rem 0.2rem;
    }
}

/* Admin label printing and the selected-label modal */
.admin-labels .label-info-box {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    padding: 1rem;
    margin-bottom: 1.5rem;
}
.admin-labels .vendor-summary {
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    padding: 1rem;
    background-color: #fff;
}
.admin-labels .vendor-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #e9ecef;
}
.admin-labels .vendor-row:last-child { border-bottom: none; }
.admin-labels .vendor-name { font-weight: 500; flex-grow: 1; }
.admin-labels .vendor-count { text-align: right; min-width: 50px; font-weight: 600; color: #0d6efd; }
.admin-labels .mode-option {
    padding: 1rem;
    border: 2px solid #dee2e6;
    border-radius: 0.25rem;
    margin-bottom: 1rem;
    cursor: pointer;
}
.admin-labels .mode-option:hover { border-color: #0d6efd; background-color: #f8f9fa; }
.admin-labels .mode-option.selected { border-color: #0d6efd; background-color: #e7f1ff; }
.admin-labels .mode-option input[type="radio"] { margin-right: 0.75rem; cursor: pointer; }
.admin-labels .mode-title { font-weight: 600; margin-bottom: 0.5rem; display: flex; align-items: center; }
.admin-labels .mode-title label { cursor: pointer; }
.admin-labels .mode-option.disabled .mode-title,
.admin-labels .mode-option.disabled .mode-description { opacity: 0.5; cursor: not-allowed; }
.admin-labels .mode-option.disabled label { cursor: not-allowed; }
.admin-labels .mode-description { font-size: 0.875rem; color: #6c757d; margin-left: 1.75rem; margin-bottom: 0.5rem; }
.admin-labels .label-mode-warning { margin: 0.5rem 0 0.5rem 2rem; }
.admin-labels .summary-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.admin-labels .stat-card { background-color: #fff; border: 1px solid #dee2e6; border-radius: 0.25rem; padding: 1rem; text-align: center; }
.admin-labels .stat-value { font-size: 1.75rem; font-weight: 700; color: #0d6efd; }
.admin-labels .stat-label { font-size: 0.875rem; color: #6c757d; margin-top: 0.25rem; }
.admin-labels .form-actions { display: flex; gap: 0.5rem; justify-content: flex-end; margin-top: 2rem; }
.admin-labels .form-actions button { min-width: 120px; }
.admin-labels #betweenRows { width: 100px; }
.admin-labels .label-spacing-help { display: block; margin-top: 0.5rem; color: #666; }
.admin-labels .label-entry-list { max-height: 220px; overflow-y: auto; padding-left: 2rem; }
.admin-labels .label-entry-list li { padding: 0.35rem; border-bottom: 1px solid #dee2e6; }
.admin-labels .label-entry-list li span { display: inline-block; width: calc(100% - 95px); overflow-wrap: anywhere; vertical-align: middle; }
.admin-labels .label-entry-list li button { margin-left: 0.5rem; }
.admin-labels .btn { border-radius: 0 !important; }
.admin-labels .btn-primary,
.admin-labels .btn-primary:hover,
.admin-labels .btn-primary:focus,
.admin-labels .btn-primary:active { background-color: #0056b3 !important; border-color: #0056b3 !important; color: #fff !important; }
.admin-labels .btn-success,
.admin-labels .btn-success:hover,
.admin-labels .btn-success:focus,
.admin-labels .btn-success:active { background-color: #28a745 !important; border-color: #28a745 !important; color: #fff !important; }
.admin-labels .btn-danger,
.admin-labels .btn-danger:hover,
.admin-labels .btn-danger:focus,
.admin-labels .btn-danger:active { background-color: #dc3545 !important; border-color: #dc3545 !important; color: #fff !important; }
#labelGridContainer {
    max-width: 520px !important;
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    grid-auto-rows: 44px !important;
    gap: 8px !important;
    padding: 15px !important;
    background-color: #f9fafb !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 0.5rem !important;
    width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.admin-labels .btn.label-grid-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #ffffff !important;
    border: 2px solid #d1d5db !important;
    border-radius: 0 !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    cursor: pointer !important;
    color: #374151 !important;
    user-select: none !important;
    min-height: 44px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.admin-labels .btn.label-grid-cell:hover,
.admin-labels .btn.label-grid-cell:focus,
.admin-labels .btn.label-grid-cell:active {
    border-color: #d1d5db !important;
    background-color: #ffffff !important;
    color: #374151 !important;
}

.admin-labels .btn.label-grid-cell.selected {
    background-color: #0056b3 !important;
    color: #ffffff !important;
    border-color: #0056b3 !important;
    box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.2) !important;
    font-weight: bold !important;
}
.mode-individual-row { display: flex; justify-content: space-between; align-items: center; }
.mode-individual-text { flex-grow: 1; }
#openSelectorBtn { margin-left: 1rem; white-space: nowrap; }
.selector-summary { padding: 0.5rem; background-color: #e7f1ff; border-radius: 0.25rem; font-size: 0.9rem; }
.admin-labels .selector-summary ol { margin-bottom: 0; }
@media (max-width: 575px) {
    .admin-labels .mode-individual-row { flex-direction: column; align-items: stretch; }
    .admin-labels #openSelectorBtn { margin-left: 0; white-space: normal; }
}

/* Auction actions - keep buttons side by side */
.auction-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.25rem !important;
    align-items: center !important;
}

.auction-actions .btn {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

.auction-actions .d-inline-block {
    display: inline-block !important;
}

/* Dashboard buttons container - vendor and admin dashboards */
.dashboard-buttons-container {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 1rem !important;
    flex-wrap: wrap !important;
}

/* Dashboard button base styles - solid colors, no hover changes */
.dashboard-buttons-container .btn {
    padding: 0.5rem 1.5rem !important;
    font-weight: 500 !important;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: none !important;
}

/* Primary buttons - blue for edit/view actions */
.dashboard-buttons-container .btn-primary {
    background-color: #0056b3 !important;
    color: white !important;
}

.dashboard-buttons-container .btn-primary:hover,
.dashboard-buttons-container .btn-primary:focus {
    background-color: #0056b3 !important;
    color: white !important;
    box-shadow: none !important;
}

.dashboard-buttons-container .btn-primary:disabled {
    background-color: #ccc !important;
    color: #666 !important;
    cursor: not-allowed !important;
}

/* Success buttons - green for register/create actions */
.dashboard-buttons-container .btn-success {
    background-color: #28a745 !important;
    color: white !important;
}

.dashboard-buttons-container .btn-success:hover,
.dashboard-buttons-container .btn-success:focus {
    background-color: #28a745 !important;
    color: white !important;
    box-shadow: none !important;
}

.dashboard-buttons-container .btn-success:disabled {
    background-color: #ccc !important;
    color: #666 !important;
    cursor: not-allowed !important;
}

/* Info buttons - cyan for view/explore actions */
.dashboard-buttons-container .btn-info {
    background-color: #17a2b8 !important;
    color: white !important;
}

.dashboard-buttons-container .btn-info:hover,
.dashboard-buttons-container .btn-info:focus {
    background-color: #17a2b8 !important;
    color: white !important;
    box-shadow: none !important;
}

.dashboard-buttons-container .btn-info:disabled {
    background-color: #ccc !important;
    color: #666 !important;
    cursor: not-allowed !important;
}

/* Secondary buttons - gray for history/support actions */
.dashboard-buttons-container .btn-secondary {
    background-color: #6c757d !important;
    color: white !important;
}

.dashboard-buttons-container .btn-secondary:hover,
.dashboard-buttons-container .btn-secondary:focus {
    background-color: #6c757d !important;
    color: white !important;
    box-shadow: none !important;
}

.dashboard-buttons-container .btn-secondary:disabled {
    background-color: #ccc !important;
    color: #666 !important;
    cursor: not-allowed !important;
}

/* My Registered Lots (/items/list) page */
.items-list-actions-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1.5rem;
    margin-bottom: 0.5rem;
}

.lot-count-display {
    font-size: 1rem;
    color: #333;
}

.items-list-empty {
    padding: 20px;
    text-align: center;
    color: #666;
}

.items-list-table {
    font-size: 0.85rem;
}

.items-list-table th,
.items-list-table td {
    padding: 0.35rem 0.5rem;
    white-space: nowrap;
    overflow-wrap: normal;
}

.items-list-table .col-title,
.items-list-table .col-desc {
    width: 16%;
    white-space: normal;
    overflow-wrap: anywhere;
}

.items-list-table .col-category {
    width: 10%;
    white-space: normal;
    word-break: normal;
}

.items-list-table .col-minbid,
.items-list-table .col-priority,
.items-list-table .col-donation,
.items-list-table .col-state,
.items-list-table .col-created,
.items-list-table .col-actions {
    width: 1%;
}

.items-list-table .btn {
    border-radius: 6px !important;
}

.items-list-table .btn-primary,
.items-list-table .btn-primary:is(:hover, :focus, :active) {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    color: #fff !important;
}

.items-list-table .btn-danger,
.items-list-table .btn-danger:is(:hover, :focus, :active) {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

.items-list-table .col-actions .btn-sm {
    padding: 0.2rem 0.4rem;
    font-size: 0.75rem;
    line-height: 1.2;
    white-space: nowrap;
}

.items-list-table th[title] {
    cursor: pointer;
}

.items-list-locked-text {
    color: #999;
    font-size: 0.85rem;
}

.items-list-button-group {
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.items-list-button-group .delete-form {
    flex: 0 0 auto;
    margin: 0;
}

.items-state-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #fff;
}

.items-state-registered {
    background-color: #0d6efd;
}

.items-state-printed {
    background-color: #6610f2;
}

.items-state-sold {
    background-color: #28a745;
}

.items-state-not-sold {
    background-color: #dc3545;
}

.items-state-locked {
    background-color: #6c757d;
}

/* Pagination Styles */
.pagination-nav {
    margin-top: 6px;
    width: 100%;
    overflow-x: auto;
}

.pagination {
    margin: 0 !important;
    flex-wrap: wrap;
    justify-content: center;
}

.pagination-bar {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.page-size-row {
    margin-top: 8px;
    border-top: 1px solid #e0e0e0;
    padding-top: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
}

.page-size-label {
    margin: 0;
    font-weight: 500;
    font-size: 0.95rem;
}

.page-size-select {
    padding: 0.375rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95rem;
}


.role-picker-row { display: flex; gap: 0.5rem; align-items: center; }
.role-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.role-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.5rem; background: #e9ecef; border: 1px solid #ced4da; }
.role-chip-remove { padding: 0 0.4rem; line-height: 1.2; }
.roles-label-row { display: flex; align-items: center; gap: 0.5rem; }
.role-badges { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.25rem; }
.role-badge { background: #0056b3; color: #fff; font-weight: 500; }
.btn-manage-roles { 
  padding: 0 0.4rem; 
  font-size: 0.75rem; 
  line-height: 1.4;
  background-color: #6f42c1 !important;
  border-color: #6f42c1 !important;
}

.btn-manage-roles:hover,
.btn-manage-roles:focus,
.btn-manage-roles:active {
  background-color: #6f42c1 !important;
  border-color: #6f42c1 !important;
}


/* Dashboard Header - positions switch button at top right */
.dashboard-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	width: 100%;
	margin-bottom: 2rem;
	gap: 1rem;
}

.admin-item-create .form-label,
.admin-item-edit .form-label {
    font-weight: 600;
}

.admin-item-create textarea.form-control,
.admin-item-edit textarea.form-control {
    resize: vertical;
}

.admin-item-create .btn,
.admin-item-edit .btn {
    border: 0 !important;
    border-radius: 0 !important;
}

.admin-item-create .btn-success,
.admin-item-create .btn-success:hover,
.admin-item-create .btn-success:focus,
.admin-item-create .btn-success:active,
.admin-item-edit .btn-success,
.admin-item-edit .btn-success:hover,
.admin-item-edit .btn-success:focus,
.admin-item-edit .btn-success:active {
    background-color: #28a745 !important;
    color: #fff !important;
}

.admin-item-create .btn-danger,
.admin-item-create .btn-danger:hover,
.admin-item-create .btn-danger:focus,
.admin-item-create .btn-danger:active,
.admin-item-edit .btn-danger,
.admin-item-edit .btn-danger:hover,
.admin-item-edit .btn-danger:focus,
.admin-item-edit .btn-danger:active {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.bids-table { font-size: 0.85rem; }
.bids-table th, .bids-table td { padding: 0.35rem 0.5rem; }
.bids-table th:first-child { min-width: 4rem; }
.bids-table td { overflow-wrap: anywhere; }
.bids-table .bid-lot-number { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.bids-table .current-bid-badge { background-color: #0056b3; color: #fff; border-radius: 0.375rem; white-space: nowrap; }
.bids-table .current-bid-row > td {
    background-color: #d1e7dd;
    --bs-table-bg: #d1e7dd;
    --bs-table-accent-bg: transparent;
    --bs-table-striped-bg: #d1e7dd;
    --bs-table-hover-bg: #d1e7dd;
    --bs-table-bg-type: transparent;
    --bs-table-bg-state: transparent;
    color: #0f5132;
}
.bids-screen .pagination-bar { margin-top: 12px; }
.bids-screen .pagination-nav { margin-bottom: 12px; }
.bids-screen .page-size-row { display: flex; justify-content: center; align-items: center; gap: 8px; }
.bids-screen .page-size-label { margin: 0; font-weight: 500; font-size: 0.95rem; }
.bids-screen .page-size-select { padding: 0.375rem 0.75rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.95rem; }

.admin-lot-table table { font-size: 0.85rem; }
.admin-lot-table th, .admin-lot-table td { padding: 0.35rem 0.5rem; }
.admin-lot-table .action-buttons { display: flex; justify-content: flex-end; gap: 0.25rem; }
.admin-lot-table .btn[data-bs-toggle="popover"] {
    padding: 0 0.15rem !important;
    font-size: 0.6rem !important;
    line-height: 1.2 !important;
    vertical-align: middle;
}
.admin-lot-table .btn-primary,
.admin-lot-table .btn-primary:is(:hover, :focus, :active) {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    color: #fff !important;
}
.admin-lot-table .btn-success,
.admin-lot-table .btn-success:is(:hover, :focus, :active),
#delete-lot-modal .btn-success,
#delete-lot-modal .btn-success:is(:hover, :focus, :active) {
    background-color: #28a745 !important;
    border-color: #28a745 !important;
    color: #fff !important;
}
.admin-lot-table .btn-danger,
.admin-lot-table .btn-danger:is(:hover, :focus, :active),
#delete-lot-modal .btn-danger,
#delete-lot-modal .btn-danger:is(:hover, :focus, :active) {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

.admin-lot-table .badge[data-state="Registered"],
.admin-lot-table .btn[data-target-state="Registered"] { --state-action-color: #28a745; }
.admin-lot-table .badge[data-state="Printed"],
.admin-lot-table .btn[data-target-state="Printed"] { --state-action-color: #17a2b8; }
.admin-lot-table .badge[data-state="Removed"],
.admin-lot-table .btn[data-target-state="Removed"] { --state-action-color: #fd7e14; }
.admin-lot-table .badge[data-state="Missing"],
.admin-lot-table .btn[data-target-state="Missing"] { --state-action-color: #6f42c1; }
.admin-lot-table .badge[data-state="Deleted"],
.admin-lot-table .btn[data-target-state="Deleted"] { --state-action-color: #dc3545; }
.admin-lot-table .badge[data-state]:is([data-state="Registered"], [data-state="Printed"], [data-state="Removed"], [data-state="Missing"], [data-state="Deleted"]),
.admin-lot-table .btn[data-target-state],
.admin-lot-table .btn[data-target-state]:is(:hover, :focus, :active) {
    background-color: var(--state-action-color) !important;
    border-color: var(--state-action-color) !important;
    color: #000 !important;
}
.admin-lot-table .badge[data-state="Missing"],
.admin-lot-table .btn[data-target-state="Missing"],
.admin-lot-table .btn[data-target-state="Missing"]:is(:hover, :focus, :active) {
    color: #fff !important;
}

.switch-view-btn {
	margin-left: auto;
	background-color: #FFA500 !important;
	border-color: #FFA500 !important;
	color: white !important;
	white-space: nowrap;
}

.switch-view-btn:hover,
.switch-view-btn:focus {
	background-color: #FFA500 !important;
	border-color: #FFA500 !important;
	color: white !important;
}

/* Dashboard Buttons Container - centered main action buttons */
.dashboard-buttons-container {
	display: flex;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
	width: 100%;
	margin-top: 2rem;
}

/* REPORT HEADER START */
.report-header { width: 100%; border-collapse: collapse; border-bottom: 3px solid #000; margin-bottom: 12px; }
.report-header td { padding: 0 0 8px 0; vertical-align: middle; }
.report-header-logo { width: 130px; }
.report-header-info { padding-left: 10px; }
.report-header-org { font-size: 17px; font-weight: bold; color: #000; }
.report-header-auction { font-size: 13px; color: #333; margin-top: 3px; }
.report-header-generated { font-size: 10px; color: #666; margin-top: 3px; }
.report-header-name { text-align: right; font-size: 20px; font-weight: bold; color: #000; }
/* Vendor Sales uses the same embedded report stylesheet for its handwritten payment box. */
.amount-paid-writing-area { height: 1in; }
/* REPORT HEADER END */

/* REPORT MENU AND FILTER MODALS */
.report-menu-table { font-size: 0.85rem; }
.report-menu-table th, .report-menu-table td { padding: 0.35rem 0.5rem; }
.vendor-picker-scope { margin-bottom: 0.75rem; }
.vendor-picker-message { margin-top: 0.5rem; font-size: 0.85rem; }
.vendor-picker-results { max-height: 14rem; overflow-y: auto; margin-top: 0.5rem; margin-bottom: 0.75rem; }
.vendor-picker-result-detail { font-size: 0.8rem; color: #6c757d; }
.vendor-picker-selected { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.4rem 0.6rem; margin-bottom: 0.75rem; border: 1px solid #ced4da; background: #f1f3f5; }
/* DUPLICATE ANALYSIS (admin/items/duplicates) */
.dup-table { font-size: 0.85rem; }
.dup-table th, .dup-table td { padding: 0.35rem 0.5rem; vertical-align: middle; }
.dup-table tr.dup-donated-row > td { background-color: #fff3cd !important; box-shadow: none !important; }
.dup-table tr.dup-reverted-row > td { background-color: #e2e3e5 !important; box-shadow: none !important; color: #495057; }
.dup-table tr.dup-group-row > td { background-color: #f1f3f5 !important; box-shadow: none !important; font-weight: 600; }
.dup-badge { display: inline-block; padding: 0.15rem 0.45rem; font-size: 0.75rem; font-weight: 600; color: #fff; }
.dup-badge-donated { background-color: #dc3545; }
.dup-badge-kept { background-color: #28a745; }
.dup-badge-reverted { background-color: #6c757d; }
.dup-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1rem; }
.dup-actions .btn, .dup-table .btn, .dup-run-select .btn { border-radius: 0 !important; }
.dup-summary-list { margin-bottom: 0; }
.dup-summary-list dt { font-weight: 600; }
.dup-block-reason { margin-top: 0.75rem; margin-bottom: 0; color: #dc3545; font-size: 0.85rem; }
.dup-run-select { display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; }
.dup-run-select select { max-width: 32rem; }
.dup-legend { display: flex; gap: 1rem; align-items: center; font-size: 0.8rem; margin-bottom: 0.75rem; flex-wrap: wrap; }
.dup-vendor-card { margin-bottom: 1rem; }
/* DUPLICATE ANALYSIS END */
.vendor-registered-items-header {
    background-color: #6f42c1;
}

/* Vendor details page (vendors/view.php) */
.vendor-negative-alert {
    background-color: #fff3cd;
    border-color: #ffeeba;
    color: #856404;
}
.vendor-inline-form {
    display: inline;
}
.vendor-stat-tile {
    font-size: 0.875rem;
}
.vendor-stat-tile-total {
    text-align: center;
}
.vendor-stat-value {
    font-size: 0.95rem;
}
.vendor-stat-value-lg {
    font-size: 1rem;
}
.vendor-stat-value-xl {
    font-size: 1.25rem;
}
.vendor-stat-note {
    font-size: 0.75rem;
}
.vendor-commission-divider {
    border: none;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.vendor-commission-breakdown {
    font-size: 0.75rem;
    color: #666;
}
.vendor-items-table {
    font-size: 0.85rem;
}
.vendor-items-table th,
.vendor-items-table td {
    padding: 0.35rem 0.5rem;
}
.vendor-items-table .removal-info-btn {
    font-size: 0.6rem;
    line-height: 1;
    padding: 0.1rem 0.25rem;
    margin-left: 0.25rem;
}
.vendor-payouts-table {
    font-size: 0.8rem;
}
.vendor-payouts-table th,
.vendor-payouts-table td {
    padding: 0.25rem 0.5rem;
}
.vendor-payout-label {
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
}
.vendor-payout-control {
    font-size: 0.875rem;
}
.vendor-payout-submit {
    font-size: 0.875rem;
    padding: 0.375rem 0.75rem;
}

.door-prize-panel {
    border-left: 5px solid #28a745;
}

.door-prize-panel-body {
    padding: 0.5rem 0.75rem;
    background: linear-gradient(135deg, #f0fff4 0%, #e8f5e9 100%);
}

.door-prize-panel-label {
    font-size: 0.8rem;
}

.door-prize-panel-count {
    font-size: 1.25rem;
    color: #28a745;
}

.door-prize-panel-icon {
    margin-left: 1.5rem;
    font-size: 1.75rem;
    color: #28a745;
    opacity: 0.3;
}

.table tbody tr.payout-refund-row > * {
    background-color: #f8d7da !important;
    color: #842029;
}

.auction-form .btn-success,
.auction-form .btn-success:hover,
.auction-form .btn-success:focus,
.auction-form .btn-success:active {
    background-color: #28a745 !important;
    border-color: #28a745 !important;
    color: #fff !important;
}

.auction-form .btn-danger,
.auction-form .btn-danger:hover,
.auction-form .btn-danger:focus,
.auction-form .btn-danger:active {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

.auction-panel-header {
    color: #fff;
}

.auction-panel-header--auction {
    background-color: #0056b3;
}

.auction-panel-header--settings {
    background-color: #6f42c1;
}

.auction-panel-header--registration {
    background-color: #138496;
}

.auction-panel-header--commissions {
    background-color: #495057;
}
/* The active row remains green under Bootstrap striping and hover. */
.auction-selection-table > tbody > tr.auction-active-row > td {
  background-color: #d1e7dd !important;
  color: #0f5132 !important;
  --bs-table-accent-bg: transparent;
  --bs-table-bg-type: transparent;
  --bs-table-bg-state: transparent;
  box-shadow: none !important;
}
.auction-selection-table {
  font-size: 0.85rem;
}
.auction-selection-table th,
.auction-selection-table td {
  padding: 0.35rem 0.5rem;
}
.auction-selection-table th:last-child,
.auction-selection-table td:last-child {
  white-space: nowrap;
}
.auction-selection-table .btn-sm {
  padding: 0.2rem 0.4rem;
  font-size: 0.75rem;
  line-height: 1.2;
}
.auction-selection-table .btn,
.auction-workspace .btn {
  border-radius: 6px !important;
}
.auction-selection-table .btn-primary,
.auction-selection-table .btn-primary:hover,
.auction-workspace .btn-primary,
.auction-workspace .btn-primary:hover {
  background-color: #0056b3 !important;
  border-color: #0056b3 !important;
  color: #fff !important;
}
.auction-selection-table .btn-danger,
.auction-selection-table .btn-danger:hover {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
  color: #fff !important;
}
.auction-selection-table .btn-secondary,
.auction-selection-table .btn-secondary:is(:hover, :focus, :active) {
  background: #495057 !important;
  border-color: #495057 !important;
  color: #fff !important;
}
.auction-workspace a.btn[href="/auction"] {
  background: #0366d6 !important;
  border-color: #0366d6 !important;
}
.auction-workspace a.btn[href="/vendors/search"] {
  background: #6f42c1 !important;
  border-color: #6f42c1 !important;
}
.auction-workspace a.btn[href="/admin/items"] {
  background: #d63384 !important;
  border-color: #d63384 !important;
}
.auction-workspace a.btn[href="/admin/bidders"] {
  background: indianred !important;
  border-color: indianred !important;
}
.auction-workspace a.btn[href="/run"] {
  background: #28a745 !important;
  border-color: #28a745 !important;
}
.auction-workspace a.btn[href="/reports"] {
  background: #c64ad7 !important;
  border-color: #c64ad7 !important;
}
.auction-workspace a.btn[href="/admin/logs"] {
  background: #000 !important;
  border-color: #000 !important;
}

/* Master Lot List (public) */
.master-lot-table { font-size: 0.85rem; }
.master-lot-table th, .master-lot-table td { padding: 0.35rem 0.5rem; }
.master-lot-table td { overflow-wrap: anywhere; }
.master-lot-table .sortable-header { color: inherit; text-decoration: none; white-space: nowrap; }
.master-lot-table .sort-indicator { font-size: 0.7rem; }
.master-lot-list-screen .pagination-bar { margin-top: 12px; }
.master-lot-list-screen .pagination-nav { margin-bottom: 12px; }
.master-lot-list-screen .btn-sm {
    padding: 0.2rem 0.4rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    border-radius: 6px !important;
    display: inline-flex;
    align-items: center;
}
.master-lot-list-link .btn-sm {
    padding: 0.5rem 1rem !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
    border-radius: 6px !important;
    display: inline-flex;
    align-items: center;
}
.master-lot-list-screen .btn-primary,
.master-lot-list-screen .btn-primary:is(:hover, :focus, :active) {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    color: #fff !important;
}
.master-lot-list-screen .btn-danger,
.master-lot-list-screen .btn-danger:is(:hover, :focus, :active) {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}
.master-lot-list-link { margin-top: 1rem; text-align: center; }
.master-lot-list-link .btn-secondary,
.master-lot-list-link .btn-secondary:is(:hover, :focus, :active) {
    background-color: #495057 !important;
    border-color: #495057 !important;
    color: #fff !important;
}
