.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0;max-width:100%;resize:none;height:18px;vertical-align:bottom;font-family:sans-serif;overflow:hidden;word-break:keep-all}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px;position:relative}.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:25px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;position:absolute;right:0;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:inline-block;margin-left:5px;margin-top:5px;padding:0;padding-left:20px;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px;position:absolute;left:0;top:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}

/* Collapse the admin warning when the sidebar is collapsed */
.sidebar-enable #admin-warning {
    padding-right: 0;
    font-size: 0;
}

/* For Alpine JS so we can hide elements before the JS loads */
[x-cloak] {
    display: none !important;
}

/* Wizard stepper (sticky steps bar) */
.rfp-wizard-stepper { top: 70px; z-index: 100; }

/* Weight slider number input width (Step 3, behind ShowScoring flag) */
.rfp-weight-input { width: 110px; }

/* Admin Bid Portal health widget — AI section heading */
.bp-ai-heading { font-size: 0.7rem; letter-spacing: 0.08em; }

/* ==========================================================================
   RFP wizard — upload card
   Design direction: "confident precision with a magical moment". The card
   walks the user through upload → reading → ready → applied, using a left
   accent stripe, state-specific colour, and a subtle shimmer during the AI
   reading step. Everything else is restrained so the "reading" moment
   lands as the visual peak.
   ========================================================================== */

/* --- Idle state: dropzone ------------------------------------------------ */
.rfp-dropzone {
    position: relative;
    border: 2px dashed #c7d2e4;
    border-radius: 12px;
    background: linear-gradient(180deg, #fafbff 0%, #f3f6fc 100%);
    padding: 1.75rem 1.25rem;
    text-align: center;
    transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
    cursor: pointer;
}
.rfp-dropzone:hover { border-color: #9fb4dc; background: linear-gradient(180deg, #f6f9ff 0%, #ecf1fa 100%); }
.rfp-dropzone.is-dragging {
    border-color: #0d6efd;
    background: #eaf3ff;
    transform: scale(1.005);
}
.rfp-dropzone-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.rfp-dropzone-inner { pointer-events: none; }
.rfp-dropzone-icon {
    position: relative;
    display: inline-block;
    font-size: 1.75rem;
    color: #5b7fbe;
    margin-bottom: 0.5rem;
}
.rfp-dropzone-sparkle {
    position: absolute;
    top: -6px;
    right: -14px;
    font-size: 0.8rem;
    color: #0d6efd;
    filter: drop-shadow(0 1px 2px rgba(13,110,253,0.35));
}
.rfp-dropzone-title {
    font-weight: 600;
    color: #1f2a44;
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
}
.rfp-dropzone-sub {
    color: #6b7280;
    font-size: 0.8rem;
}
.rfp-dropzone-emph { color: #0d6efd; font-weight: 500; }

/* --- Active state: processing card --------------------------------------- */
.rfp-card {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    padding: 0.9rem 1rem 0.9rem 0;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 1px 3px rgba(15,23,42,0.06);
    border: 1px solid #e4e9f2;
    position: relative;
    overflow: hidden;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
/* Left accent stripe — the strongest piece of visual state signal. */
.rfp-card::before {
    content: "";
    flex: 0 0 4px;
    background: #c7d2e4;
    transition: background 180ms ease;
}
.rfp-card.state-uploading::before { background: #9aa5b8; }
.rfp-card.state-reading::before   { background: linear-gradient(180deg, #0d6efd 0%, #6ea8fe 100%); }
.rfp-card.state-ready::before     { background: #198754; }
.rfp-card.state-applied::before   { background: #c7d2e4; }
.rfp-card.state-failed::before    { background: #dc3545; }

/* Reading state shimmer — subtle horizontal sweep across the card body. */
.rfp-card.state-reading {
    background:
        linear-gradient(110deg,
            transparent 30%,
            rgba(13,110,253,0.08) 45%,
            rgba(13,110,253,0.15) 50%,
            rgba(13,110,253,0.08) 55%,
            transparent 70%) #ffffff;
    background-size: 200% 100%;
    animation: rfp-shimmer 2.2s ease-in-out infinite;
}
@keyframes rfp-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -100% 0; }
}

.rfp-card-icon {
    flex: 0 0 48px;
    height: 48px;
    margin: 0.15rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #dc3545;
    background: #fff5f5;
    border-radius: 10px;
}
.rfp-card.state-ready .rfp-card-icon { color: #198754; background: #eaf6ef; }
.rfp-card.state-reading .rfp-card-icon { color: #0d6efd; background: #eef5ff; }

.rfp-card-body { flex: 1; min-width: 0; }
.rfp-card-filename {
    font-weight: 600;
    color: #1f2a44;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.25rem;
}

.rfp-card-status {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.825rem;
    color: #4b5563;
}
.rfp-card-status i { width: 1rem; text-align: center; font-size: 0.85rem; }
.rfp-card-status strong { color: #1f2a44; font-weight: 600; }

.rfp-card.state-reading .rfp-card-status i { color: #0d6efd; }
.rfp-card.state-ready   .rfp-card-status i { color: #198754; }
.rfp-card.state-applied .rfp-card-status i { color: #198754; }
.rfp-card.state-failed  .rfp-card-status   { color: #842029; }
.rfp-card.state-failed  .rfp-card-status i { color: #dc3545; }

.rfp-card-hint {
    margin-left: auto;
    font-size: 0.725rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8a95a8;
    padding-left: 0.5rem;
}

.rfp-card-ready,
.rfp-card-failed { display: flex; flex-direction: column; gap: 0.35rem; }
.rfp-card-actions { display: flex; align-items: center; gap: 0.35rem; }

.rfp-card-match {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.82rem;
    color: #1f2a44;
    background: #eef5ff;
    border: 1px solid #cfe0fb;
    padding: 0.4rem 0.6rem;
    border-radius: 6px;
}
.rfp-card-match i { color: #0d6efd; padding-top: 2px; }
.rfp-card-match-reason { color: #4b5563; font-weight: normal; }
.rfp-card-actions .btn-primary {
    box-shadow: 0 1px 2px rgba(13,110,253,0.25), 0 2px 8px -2px rgba(13,110,253,0.4);
}

.rfp-card-close {
    align-self: flex-start;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid transparent;
    background: transparent;
    color: #8a95a8;
    border-radius: 6px;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.rfp-card-close:hover {
    background: #fef2f2;
    color: #dc3545;
    border-color: #fecaca;
}
.rfp-card-close:disabled { opacity: 0.4; cursor: not-allowed; }

/* --- AI-filled field treatment (unchanged below) ------------------------ */
/* Applied by rfpUpload.applyAll when the wizard fills a field from an
   extracted RFP; cleared on the first user edit. Pseudo-elements don't
   work on <input>, so the visible "AI" badge is a JS-injected sibling
   positioned via `.ai-field-wrapper`. */
.ai-suggested {
    border-left-width: 3px !important;
    background-color: #f7fbff !important;
}
.ai-suggested.ai-high { border-left-color: #0d6efd !important; }
.ai-suggested.ai-mid  { border-left-color: #ffc107 !important; }
.ai-suggested.ai-low  { border-left-color: #ffc107 !important; }

.ai-field-wrapper { position: relative; }
.ai-field-badge {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 2px 8px;
    border-radius: 8px;
    cursor: help;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    pointer-events: auto;
}
.ai-field-badge.ai-high {
    color: #0b5ed7;
    background: #e7f1ff;
    border: 1px solid #b6d4fe;
}
.ai-field-badge.ai-mid,
.ai-field-badge.ai-low {
    color: #664d03;
    background: #fff3cd;
    border: 1px solid #ffecb5;
}
.ai-field-badge i { margin-right: 3px; }

.google-maps {
    position: relative;
    padding-bottom: 75%;
    /* This is the aspect ratio height: 0; */
    overflow: hidden;
}

.google-maps iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}

/* Map containers */
#map,
#locationMap {
    height: 500px;
    width: 100%;
}

@media (max-width: 767.98px) {
    #map,
    #locationMap {
        height: 300px !important;
    }
}

/* Location map filter bar - hidden until JS builds it */
#locationMapFilter {
    display: none !important;
}

#locationMapFilter.active {
    display: flex !important;
}

/* Location map no-results overlay */
#locationMapNoResults {
    display: none !important;
    background: rgba(255, 255, 255, 0.85);
    z-index: 1;
    pointer-events: none;
}

#locationMapNoResults.active {
    display: flex !important;
}

/* Map legend (injected into Google Maps controls) */
.map-legend {
    background: white;
    padding: 10px;
    margin: 10px;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
    font-family: Arial, sans-serif;
}

.map-legend-item {
    display: flex;
    align-items: center;
}

.map-legend-item + .map-legend-item {
    margin-top: 5px;
}

.map-legend-icon {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 8px;
    border: 2px solid white;
    flex-shrink: 0;
}

.map-legend-icon-sm {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 8px;
    margin-left: 2px;
    border: 2px solid white;
    flex-shrink: 0;
}

.map-legend-label {
    font-size: 12px;
}

/* Location map search input */
.location-map-search {
    width: 220px;
}

/* Location map type filter select */
.location-map-type-select {
    width: auto;
}

/* Map info window content */
.map-info-window {
    max-width: 280px;
}

.map-info-window-sm {
    max-width: 250px;
}

/* Google Places autocomplete dropdown above Bootstrap modals */
.pac-container {
    z-index: 1055;
}

.apexcharts-tooltip.apexcharts-theme-light {
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-series-group {
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {
    background-color: transparent !important;
    border: none !important;
    margin: 0 !important;
    padding-bottom: 4px !important;
}

/* Bid Portal */
.bp-modal-backdrop {
    background: rgba(0, 0, 0, 0.5);
}

.bp-clickable {
    cursor: pointer;
}

.bp-message-scroll {
    max-height: 500px;
    overflow-y: auto;
}

.bp-chat-bubble {
    max-width: 75%;
}

.msg-bubble {
    max-width: 75%;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 10px;
}

.msg-bubble.sent {
    background: rgba(10, 132, 255, .1);
    color: #313a46;
    margin-left: auto;
    border-bottom-right-radius: 4px;
}

.msg-bubble.received {
    background: #f6f7fb;
    border-bottom-left-radius: 4px;
}

.msg-bubble.unread {
    box-shadow: 0 0 0 2px rgba(10, 132, 255, .3);
    background: #eef6ff;
}

.msg-bubble .msg-meta {
    font-size: 11px;
    color: #a1a9b1;
    margin-top: 4px;
}

/* Bid Portal badge styles (pill-shaped with soft backgrounds) */
.badge-status {
    font-size: 11px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.badge-accepting { background: #e8f5e9; color: #2e7d32; }
.badge-reviewing { background: #fff3e0; color: #e65100; }
.badge-awarded { background: #e3f2fd; color: #1565c0; }
.badge-closed { background: #fce4ec; color: #c62828; }
.badge-draft { background: #eef2f7; color: #6c757d; }
.badge-public { background: #e8f5e9; color: #2e7d32; }
.badge-private { background: #fce4ec; color: #880e4f; }

/* Tab pill count */
.bp-tab-count { margin-left: 2px; opacity: .7; }

.rfp-name { font-weight: 500; color: #313a46; }
.rfp-event { font-size: 11px; color: #a1a9b1; }

/* Bid Portal stat card icon (tilebox pattern) */
.bp-stat-icon { font-size: 24px; opacity: .3; }

/* Status filter dropdown */
.bp-status-filter { width: auto; max-width: 220px; font-size: 13px; flex-shrink: 0; }

/* Inline response count */
.bp-response-new { font-size: 11px; }

/* DMO match/invite banners */
.bp-banner-match { background: #e8f5e9; }
.bp-banner-invite { background: #e3f2fd; }
.bp-banner-revision { background: #fff3e0; }

/* Revision requested banner (DMO response pages) */
.bp-revision-banner {
    background: #fff3e0;
    border: 1px solid #ffe0b2;
    border-radius: 6px;
    padding: 16px 20px;
}

.bp-revision-icon { color: #e65100; }

.bp-revision-title {
    font-size: 14px;
    font-weight: 600;
    color: #e65100;
}

.bp-revision-notes {
    font-size: 13px;
    color: #313a46;
    line-height: 1.5;
    background: #fff;
    border-radius: 4px;
    padding: 10px 14px;
    margin-top: 8px;
    border: 1px solid #ffe0b2;
}

.bp-revision-label {
    font-size: 12px;
    color: #a1a9b1;
    text-transform: uppercase;
    letter-spacing: .3px;
}

/* STI score card */
.bp-sti-score-box { background: #e8f5e9; }
.bp-sti-score-num { font-size: 36px; color: #1b5e20; }

/* Messages inbox */
.bp-unread-dot { font-size: 8px; }
.bp-read-dot { font-size: 8px; opacity: .3; }
.bp-inbox-meta { font-size: 11px; }
.bp-inbox-rfp { font-size: 12px; font-weight: 500; }
.bp-inbox-preview { font-size: 12px; color: #b0b7c3; }

/* Messages thread */
.bp-thread-header { font-size: 13px; }
.bp-thread-subheader { font-size: 11px; }
.bp-thread-pad { padding: 20px; }
.bp-thread-active { background: rgba(10, 132, 255, .04); padding: 8px 10px; }
.bp-thread-dot { font-size: 6px; }
.bp-thread-dot-read { font-size: 6px; opacity: .3; }
.bp-thread-count { font-size: 11px; }

/* Drag handle cursor */
.bp-draggable { cursor: grab; }

/* STI score banner (review detail) */
.bp-sti-banner {
    border-radius: 6px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.bp-sti-banner .bp-sti-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3px;
    display: block;
    margin-bottom: 2px;
}

.bp-sti-banner .bp-sti-detail { font-size: 12px; }
.bp-sti-banner .bp-sti-value { font-size: 24px; font-weight: 700; }
.bp-sti-banner .bp-sti-suffix { font-size: 14px; font-weight: 400; }

/* Score-contextual colors */
.bp-sti-banner-high { background: #e8f5e9; }
.bp-sti-banner-high .bp-sti-label, .bp-sti-banner-high .bp-sti-detail { color: #2e7d32; }
.bp-sti-banner-high .bp-sti-value { color: #1b5e20; }
.bp-sti-banner-high .bp-sti-suffix { color: #2e7d32; }

.bp-sti-banner-mid { background: #fff3e0; }
.bp-sti-banner-mid .bp-sti-label, .bp-sti-banner-mid .bp-sti-detail { color: #e65100; }
.bp-sti-banner-mid .bp-sti-value { color: #bf360c; }
.bp-sti-banner-mid .bp-sti-suffix { color: #e65100; }

.bp-sti-banner-low { background: #fce4ec; }
.bp-sti-banner-low .bp-sti-label, .bp-sti-banner-low .bp-sti-detail { color: #c62828; }
.bp-sti-banner-low .bp-sti-value { color: #b71c1c; }
.bp-sti-banner-low .bp-sti-suffix { color: #c62828; }

.bp-sti-banner-none { background: #f6f7fb; }
.bp-sti-banner-none .bp-sti-label, .bp-sti-banner-none .bp-sti-detail { color: #6c757d; }
.bp-sti-banner-none .bp-sti-value { color: #313a46; }
.bp-sti-banner-none .bp-sti-suffix { color: #6c757d; }

/* Review sidebar cards */
.bp-response-card {
    padding: 14px;
    border: 1px solid #eef2f7;
    border-radius: 6px;
    margin-bottom: 8px;
    cursor: pointer;
    background: #fff;
    transition: all .15s;
}

.bp-response-card:hover { border-color: #adb5bd; }
.bp-response-card.active { border-color: #0a84ff; background: rgba(10, 132, 255, .04); }
.bp-response-card .bp-dest-name { font-weight: 500; font-size: 13px; }
.bp-response-card .bp-dest-loc { font-size: 12px; color: #a1a9b1; }

/* Q&A styling */
.bp-qa-item { padding: 10px 0; border-bottom: 1px solid #eef2f7; }
.bp-qa-item:last-child { border-bottom: none; }
.bp-qa-q { font-size: 12px; color: #a1a9b1; margin-bottom: 3px; }
.bp-qa-a { font-size: 13px; font-weight: 500; color: #313a46; }

/* Venue item */
.bp-venue-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid #eef2f7;
    border-radius: 6px;
    margin-bottom: 6px;
}

.bp-venue-item.selected { border-color: #2e7d32; background: #f1f8f3; }

.bp-venue-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #e8f5e9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2e7d32;
}

/* Review notes */
.bp-review-notes {
    background: #f6f7fb;
    border-radius: 6px;
    padding: 14px;
    margin-top: 16px;
}

.bp-review-notes label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #a1a9b1;
    margin-bottom: 6px;
    display: block;
}

/* Section title divider */
.bp-section-title {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #a1a9b1;
    margin: 20px 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid #eef2f7;
}

.bp-section-title:first-child { margin-top: 0; }

/* Bid response form sections */
.bp-resp-section {
    background: #fff;
    border: 1px solid #eef2f7;
    border-radius: 6px;
    margin-bottom: 12px;
    overflow: hidden;
}

.bp-resp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    border-bottom: 1px solid #eef2f7;
    background: #f6f7fb;
}

.bp-resp-title { font-size: 13px; font-weight: 600; color: #313a46; }
.bp-resp-status { font-size: 11px; }
.bp-resp-body { padding: 20px; }

/* RFP requirement context shown inline on the DMO response form so the
   responder can see what the rights holder asked for without navigating away. */
.bp-rfp-context {
    font-size: 13px;
    color: #374151;
    background: #f8f9fc;
    border-left: 3px solid #9ca3af;
    padding: 10px 14px;
    border-radius: 4px;
}
.bp-rfp-context-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 4px;
}

.bp-prepop-note {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: #1565c0;
    background: #e3f2fd;
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 14px;
}

/* Analytics funnel row */
.bp-funnel-bar { height: 6px; }

@media (max-width: 767.98px) {
    .bp-funnel-row .bp-funnel-arrow { display: none; }
}

/* Facility search cards */
.fac-card {
    transition: box-shadow .15s ease, transform .15s ease;
    border: 1px solid #e7e9ef;
    overflow: hidden;
}
.fac-card:hover {
    box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
    transform: translateY(-2px);
}
.fac-card-img-wrap {
    position: relative;
    display: block;
    overflow: hidden;
    background: #f4f6fa;
}
.fac-card-img {
    width: 100%;
    height: 150px;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
}
.fac-card-img-contain {
    -o-object-fit: contain;
       object-fit: contain;
    padding: 12px;
    background: #fff;
}

/* Facility / Facility-space detail page hero image */
.fac-hero {
    width: 100%;
    background: linear-gradient(135deg, #eef1f6 0%, #f6f8fb 100%);
    aspect-ratio: 16 / 9;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fac-hero-img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
}
.fac-card-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b7bcc6;
    font-size: 42px;
    background: linear-gradient(135deg, #eef1f6 0%, #f6f8fb 100%);
}
.fac-card-type-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(10, 132, 255, .9);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    padding: 3px 8px;
    border-radius: 4px;
}
.fac-card-portal-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(40, 167, 69, .92);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    padding: 3px 8px;
    border-radius: 4px;
}
.fac-card-title a {
    color: #313a46;
    font-weight: 600;
    text-decoration: none;
}
.fac-card-title a:hover { color: #0a84ff; }
.fac-card-sports {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}
.fac-card-sports .badge { font-weight: 500; font-size: 10px; }
.fac-card-score {
    font-size: 12px;
    font-weight: 600;
    color: #28a745;
    white-space: nowrap;
}
.fac-card-metrics {
    display: flex;
    gap: 16px;
    padding: 8px 0;
    border-top: 1px solid #eef0f4;
}
.fac-card-metrics > div {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}
.fac-card-metrics strong {
    font-size: 16px;
    font-weight: 600;
    color: #313a46;
}
.fac-card-metrics small {
    font-size: 10px;
    color: #8a94a3;
    text-transform: uppercase;
    letter-spacing: .3px;
}


