/* ==========================================================================
   CHBS Bulk Import – My Account page styles  v2.1.0
   ========================================================================== */

/* ── Wrap ─────────────────────────────────────────────────────────────────── */
.chbs-bi-wrap { max-width: 960px; }

.chbs-bi-intro { color: #555; margin-bottom: 24px; line-height: 1.6; }
.chbs-bi-template-link {
    display: inline-block; margin-left: 8px;
    font-weight: 600; text-decoration: underline; color: #0073aa;
}

/* ── Stepper ──────────────────────────────────────────────────────────────── */
.chbs-bi-stepper {
    display: flex;
    align-items: center;
    gap: 0;
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 12px;
    padding: 18px 28px;
    margin-bottom: 32px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.chbs-bi-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px 20px;
    border-radius: 8px;
    transition: background .15s;
    min-width: 100px;
    opacity: .45;
    pointer-events: none;
}
.chbs-bi-step:not(:disabled) { opacity: 1; pointer-events: auto; }
.chbs-bi-step:not(:disabled):hover { background: #f0f7fb; }
.chbs-bi-step.active  { opacity: 1; pointer-events: auto; }
.chbs-bi-step.completed { opacity: 1; pointer-events: auto; }

.chbs-bi-step-icon {
    font-size: 26px;
    line-height: 1;
    display: block;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: #f0f0f1;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s, box-shadow .2s;
}
.chbs-bi-step.active .chbs-bi-step-icon {
    background: #0073aa;
    box-shadow: 0 0 0 4px rgba(0,115,170,.18);
    filter: brightness(10);   /* make emoji white-ish on dark bg */
}
.chbs-bi-step.completed .chbs-bi-step-icon {
    background: #00a32a;
    filter: brightness(10);
}
.chbs-bi-step-label {
    font-size: 13px;
    font-weight: 600;
    color: #1d2327;
    white-space: nowrap;
}
.chbs-bi-step.active .chbs-bi-step-label  { color: #0073aa; }
.chbs-bi-step.completed .chbs-bi-step-label { color: #00a32a; }

.chbs-bi-step-connector {
    flex: 1;
    height: 3px;
    background: #e0e0e0;
    border-radius: 99px;
    min-width: 40px;
}

/* ── Section ──────────────────────────────────────────────────────────────── */
.chbs-bi-section { animation: chbs-bi-fadeIn .25s ease; }
@keyframes chbs-bi-fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ── Dropzone ─────────────────────────────────────────────────────────────── */
.chbs-bi-dropzone {
    border: 2px dashed #c3c4c7; border-radius: 10px;
    padding: 48px 32px; text-align: center; cursor: pointer;
    transition: border-color .2s, background .2s;
    background: #fafafa; outline: none;
}
.chbs-bi-dropzone:hover,
.chbs-bi-dropzone:focus,
.chbs-bi-dropzone.is-dragover { border-color: #0073aa; background: #f0f7fb; }
.chbs-bi-dropzone.has-file    { border-color: #00a32a; background: #f0fff4; }
.chbs-bi-dropzone-icon { font-size: 40px; margin-bottom: 12px; }
.chbs-bi-dropzone-text strong { display: block; font-size: 16px; margin-bottom: 4px; color: #1d2327; }
.chbs-bi-dropzone-text span   { font-size: 13px; color: #888; }
.chbs-bi-file-input { position: absolute; left: -9999px; opacity: 0; width: 1px; height: 1px; }

/* ── Selected file ─────────────────────────────────────────────────────────── */
.chbs-bi-selected-file {
    display: flex; align-items: center; gap: 10px;
    margin-top: 12px; background: #f0fff4; border: 1px solid #00a32a;
    border-radius: 6px; padding: 10px 14px; font-size: 14px;
}
.chbs-bi-file-name { flex: 1; font-weight: 600; color: #1d2327; word-break: break-all; }
.chbs-bi-clear-file { background: none; border: none; cursor: pointer; font-size: 16px; color: #888; padding: 0 4px; }
.chbs-bi-clear-file:hover { color: #c00; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.chbs-bi-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 22px; border: none; border-radius: 6px;
    font-size: 14px; font-weight: 600; cursor: pointer;
    transition: background .15s, opacity .15s;
    text-decoration: none;
}
.chbs-bi-btn-primary  { background: #0073aa; color: #fff; margin-top: 20px; }
.chbs-bi-btn-primary:hover:not(:disabled) { background: #005a87; color: #fff; }
.chbs-bi-btn-primary:disabled { opacity: .45; cursor: not-allowed; }
.chbs-bi-btn-secondary { background: #f0f0f1; color: #1d2327; }
.chbs-bi-btn-secondary:hover { background: #dcdcde; }
.chbs-bi-btn-outline {
    background: #fff; color: #0073aa;
    border: 1.5px solid #0073aa;
}
.chbs-bi-btn-outline:hover { background: #0073aa; color: #fff; }
.chbs-bi-btn-ghost {
    background: transparent; color: #0073aa;
    border: 1.5px solid #0073aa;
}
.chbs-bi-btn-ghost:hover { background: #f0f7fb; }
.chbs-bi-results-actions .chbs-bi-btn { margin-top: 0; }

/* Continue bar */
.chbs-bi-continue-bar {
    display: flex;
    justify-content: flex-start;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #f0f0f1;
}
.chbs-bi-btn-continue { margin-top: 0 !important; font-size: 15px; padding: 12px 28px; }

/* ── Progress ─────────────────────────────────────────────────────────────── */
.chbs-bi-progress-section { margin: 24px 0; }
.chbs-bi-progress-label   { font-size: 14px; color: #555; margin-bottom: 10px; }
.chbs-bi-progress-bar-wrap { background: #e0e0e0; border-radius: 99px; height: 10px; overflow: hidden; }
.chbs-bi-progress-bar {
    height: 100%; background: linear-gradient(90deg,#0073aa,#00a0d2);
    border-radius: 99px; transition: width .35s ease;
}
.chbs-bi-progress-count { margin-top: 8px; font-size: 13px; color: #888; text-align: right; }

/* ── Notices ──────────────────────────────────────────────────────────────── */
.chbs-bi-notice { padding: 12px 16px; border-radius: 6px; margin-bottom: 20px; font-size: 14px; line-height: 1.5; }
.chbs-bi-notice-warning { background: #fff8e5; border-left: 4px solid #f0b849; color: #513b00; }
.chbs-bi-notice-error   { background: #fdecea; border-left: 4px solid #d63638; color: #690000; }
.chbs-bi-notice ul { margin: 6px 0 0 18px; padding: 0; }

/* ── Results header ───────────────────────────────────────────────────────── */
.chbs-bi-results-header {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; margin-bottom: 24px; flex-wrap: wrap;
}
.chbs-bi-results-title { margin: 0; font-size: 20px; font-weight: 700; color: #1d2327; }
.chbs-bi-results-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ── Shipment cards ───────────────────────────────────────────────────────── */
.chbs-bi-ride-card {
    background: #fff; border: 1px solid #dcdcde; border-radius: 10px;
    margin-bottom: 20px; overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.06); transition: box-shadow .2s;
}
.chbs-bi-ride-card:hover { box-shadow: 0 3px 12px rgba(0,0,0,.1); }
.chbs-bi-ride-card-header { background: #f6f7f7; border-bottom: 1px solid #dcdcde; padding: 14px 20px; }
.chbs-bi-ride-card-route {
    display: flex; align-items: center; gap: 10px;
    font-size: 15px; font-weight: 600; flex-wrap: wrap; margin-bottom: 8px;
}
.chbs-bi-route-arrow  { color: #0073aa; font-size: 18px; }
.chbs-bi-location     { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chbs-bi-ride-card-meta {
    display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
    font-size: 13px; color: #555;
}
.chbs-bi-meta-item { display: flex; align-items: center; gap: 4px; }
.chbs-bi-badge {
    display: inline-block; padding: 3px 10px; border-radius: 99px;
    font-size: 12px; font-weight: 700; letter-spacing: .3px;
    background: #e6f4ff; color: #0073aa;
}
.chbs-bi-ride-card-body { padding: 20px; }

/* Spinner */
.chbs-bi-loading-indicator { display: flex; align-items: center; gap: 10px; color: #666; font-size: 14px; }
.chbs-bi-spinner {
    display: inline-block; width: 18px; height: 18px;
    border: 3px solid #dcdcde; border-top-color: #0073aa;
    border-radius: 50%; animation: chbs-bi-spin .7s linear infinite;
}
@keyframes chbs-bi-spin { to { transform: rotate(360deg); } }

/* Route info */
.chbs-bi-route-info  { display: flex; gap: 24px; margin-bottom: 16px; font-size: 14px; color: #555; }
.chbs-bi-route-stat strong { color: #1d2327; }

/* Vehicle table */
.chbs-bi-vehicle-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.chbs-bi-vehicle-table th {
    background: #f6f7f7; padding: 9px 14px; text-align: left;
    font-weight: 600; border-bottom: 2px solid #dcdcde; white-space: nowrap;
}
.chbs-bi-vehicle-table td { padding: 10px 14px; border-bottom: 1px solid #f0f0f1; vertical-align: middle; }
.chbs-bi-vehicle-table tr:last-child td { border-bottom: none; }
.chbs-bi-vehicle-table tr:hover td { background: #f9f9f9; }
.chbs-bi-best-row td    { background: #f0fff4 !important; }
.chbs-bi-vehicle-name   { font-weight: 500; }
.chbs-bi-vehicle-price strong { font-size: 16px; color: #1d2327; }
.chbs-bi-vehicle-badge  { text-align: center; white-space: nowrap; }
.chbs-bi-vehicle-action { text-align: right; white-space: nowrap; }
.chbs-bi-best-badge {
    display: inline-flex; align-items: center; gap: 4px;
    background: #00a32a; color: #fff; padding: 4px 10px;
    border-radius: 99px; font-size: 12px; font-weight: 700;
}
.chbs-bi-no-vehicles { color: #888; font-style: italic; text-align: center; padding: 20px; }

/* Select button */
.chbs-bi-btn-select {
    padding: 5px 14px; border-radius: 5px; border: 1.5px solid #0073aa;
    background: #fff; color: #0073aa; font-size: 13px; font-weight: 600;
    cursor: pointer; white-space: nowrap; transition: background .15s, color .15s;
}
.chbs-bi-btn-select:hover       { background: #0073aa; color: #fff; }
.chbs-bi-btn-select.is-selected { background: #00a32a; border-color: #00a32a; color: #fff; }

/* Error */
.chbs-bi-ride-error {
    display: flex; align-items: flex-start; gap: 10px;
    color: #d63638; font-size: 14px; background: #fdecea;
    border-radius: 6px; padding: 12px 16px;
}
.chbs-bi-error-icon { font-size: 18px; flex-shrink: 0; }

/* Footer */
.chbs-bi-ride-card-footer { background: #fafafa; border-top: 1px solid #f0f0f1; padding: 10px 20px; }
.chbs-bi-notes { font-size: 13px; color: #666; font-style: italic; }

/* ── Summary ──────────────────────────────────────────────────────────────── */
.chbs-bi-summary-header {
    display: flex; align-items: center; gap: 20px; margin-bottom: 24px; flex-wrap: wrap;
}
.chbs-bi-btn-back {
    background: none; border: none; color: #0073aa; font-size: 14px;
    font-weight: 600; cursor: pointer; padding: 0; text-decoration: underline;
}
.chbs-bi-btn-back:hover { color: #005a87; }

.chbs-bi-summary-box {
    background: #fff; border: 1px solid #dcdcde; border-radius: 10px;
    overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.06); overflow-x: auto;
}
.chbs-bi-summary-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.chbs-bi-summary-table th {
    background: #f6f7f7; padding: 11px 16px; text-align: left;
    font-weight: 600; border-bottom: 2px solid #dcdcde; white-space: nowrap;
}
.chbs-bi-summary-table td { padding: 12px 16px; border-bottom: 1px solid #f0f0f1; vertical-align: middle; }
.chbs-bi-summary-table tr:hover td { background: #f9f9f9; }
.chbs-bi-sum-num    { font-weight: 700; color: #888; width: 36px; }
.chbs-bi-sum-route  { font-weight: 600; max-width: 320px; }
.chbs-bi-sum-info   { font-size: 13px; color: #555; white-space: nowrap; }
.chbs-bi-sum-dist   { margin-left: 6px; }
.chbs-bi-sum-courier{ font-weight: 500; }
.chbs-bi-sum-price  { font-weight: 700; font-size: 15px; color: #1d2327; white-space: nowrap; text-align: right; }

.chbs-bi-sum-total-row td { background: #f6f7f7; border-top: 2px solid #dcdcde; border-bottom: none; }
.chbs-bi-sum-total-label  { text-align: right; padding-right: 16px; font-size: 15px; }
.chbs-bi-sum-total-value  { font-size: 18px; color: #0073aa; text-align: right; white-space: nowrap; }

/* Checkout bar */
.chbs-bi-checkout-bar {
    display: flex; justify-content: flex-start;
    margin-top: 28px; padding-top: 20px;
    border-top: 1px solid #f0f0f1;
}
.chbs-bi-btn-payment {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 14px 32px; border: none; border-radius: 8px;
    background: #2271b1; color: #fff;
    font-size: 16px; font-weight: 700; cursor: pointer;
    box-shadow: 0 2px 8px rgba(34,113,177,.3);
    transition: background .15s, box-shadow .15s;
}
.chbs-bi-btn-payment:hover { background: #135e96; box-shadow: 0 4px 16px rgba(34,113,177,.4); }

/* ── Print ────────────────────────────────────────────────────────────────── */
@media print {
    .chbs-bi-stepper,
    .chbs-bi-upload-section,
    .chbs-bi-progress-section,
    .chbs-bi-results-actions,
    .chbs-bi-continue-bar,
    .chbs-bi-checkout-bar,
    .chbs-bi-btn-back,
    .chbs-bi-btn-select,
    .chbs-bi-vehicle-action,
    .chbs-bi-notices { display: none !important; }
    .chbs-bi-ride-card { page-break-inside: avoid; box-shadow: none; border: 1px solid #ccc; }
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .chbs-bi-stepper      { padding: 14px 12px; gap: 0; }
    .chbs-bi-step         { min-width: 64px; padding: 6px 8px; }
    .chbs-bi-step-icon    { width: 38px; height: 38px; font-size: 20px; }
    .chbs-bi-step-label   { font-size: 11px; }
    .chbs-bi-step-connector { min-width: 16px; }
    .chbs-bi-ride-card-route { font-size: 13px; }
    .chbs-bi-results-header { flex-direction: column; align-items: flex-start; }
    .chbs-bi-route-info   { flex-direction: column; gap: 6px; }
    .chbs-bi-sum-route    { max-width: 180px; }
}

/* ── Current cost display ─────────────────────────────────────────────────── */
.chbs-bi-current-cost {
    margin-top: 8px;
    font-size: 13px;
    color: #555;
    padding: 5px 10px;
    background: #fff8e5;
    border-radius: 5px;
    border-left: 3px solid #f0b849;
    display: inline-block;
}
.chbs-bi-shipping-co { color: #888; }
.chbs-bi-order-id    { font-weight: 700; color: #1d2327; }
.chbs-bi-recipient   { color: #444; }

/* ── No-saving notice ─────────────────────────────────────────────────────── */
.chbs-bi-ride-no-saving {
    display: flex; align-items: flex-start; gap: 10px;
    color: #2271b1; font-size: 14px;
    background: #e8f0fe;
    border-radius: 6px; padding: 12px 16px;
    border-left: 4px solid #2271b1;
}
.chbs-bi-info-icon { font-size: 18px; flex-shrink: 0; }

/* ── Savings hint row ─────────────────────────────────────────────────────── */
.chbs-bi-savings-note td {
    font-size: 12px; color: #0073aa; font-style: italic;
    padding: 6px 14px; background: #f0f7fb;
    border-bottom: 1px solid #dcdcde;
}

/* ── Extras badges ────────────────────────────────────────────────────────── */
.chbs-bi-extras-row {
    display: flex; gap: 8px; flex-wrap: wrap;
    margin-top: 6px;
}
.chbs-bi-extra-badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 99px; font-size: 12px; font-weight: 600;
    background: #fff3cd; color: #856404; border: 1px solid #ffc107;
}

/* ── Extras price note ────────────────────────────────────────────────────── */
.chbs-bi-extras-note {
    display: block; color: #888; font-size: 11px; margin-top: 2px;
}

/* ── Booking Extras admin section ─────────────────────────────────────────── */

/* ── Pre-selected courier row ─────────────────────────────────────────────── */
.chbs-bi-presel-row td { background: #f0f7fb !important; }
.chbs-bi-presel-badge {
    display: inline-flex; align-items: center; gap: 4px;
    background: #0073aa; color: #fff; padding: 4px 10px;
    border-radius: 99px; font-size: 12px; font-weight: 700;
}

/* ── Points info ──────────────────────────────────────────────────────────── */
.chbs-bi-points-info {
    display: flex; gap: 20px; align-items: center; flex-wrap: wrap;
    margin-top: 18px; padding: 14px 18px;
    background: #f6f7f7; border-radius: 8px;
    border: 1px solid #dcdcde; font-size: 14px;
}
.chbs-bi-points-total  { color: #1d2327; }
.chbs-bi-pts-ok  { color: #00a32a; font-weight: 600; }
.chbs-bi-pts-low { color: #d63638; font-weight: 600; }
.chbs-bi-pts-warning {
    margin-top: 10px; padding: 10px 14px;
    background: #fdecea; border-left: 4px solid #d63638;
    border-radius: 6px; color: #690000; font-size: 14px;
}

/* ── Payment button states ────────────────────────────────────────────────── */
.chbs-bi-btn-payment:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.chbs-bi-btn-paid { background: #00a32a !important; box-shadow: none !important; }

/* ── Booking confirmation ──────────────────────────────────────────────────── */
.chbs-bi-booking-confirm {
    margin-top: 16px; padding: 12px 16px;
    background: #f0fff4; border: 1px solid #00a32a; border-radius: 6px;
    color: #00a32a; font-size: 14px; font-weight: 600;
}


.chbs-bi-route-time {
    display: none!important;
}