.container-wide {
    max-width: 1300px !important;
}

/* Mobile scheduling */
.mobile-slot {
  border-radius: 5px;
  border-style: solid;
  border-color: transparent;
  border-width: 2px;
  transition: ease-in-out 0.3s;
}

.slot.mobile-slot.slot-open:hover {
  background-color: orange;
  opacity: 0.5;
  cursor: pointer;
}

.slot.mobile-slot.mobile-slot-appointment-footprint-labor {
  background-color: orange;
  opacity: 0.5;
  font-weight: bolder;
  color: black;
}

.slot.mobile-slot.mobile-slot-appointment-footprint-travel {
  background-color: dimgray;
  opacity: 0.5;
  font-weight: bolder;
  color: white;
}

.mobile-slot.slot-quality-good {
    border-color: #66BB66;
}

.mobile-slot.slot-quality-good.selected {
    background-color: #66BB66;
}

.mobile-slot.slot-quality-fair {
    border-color: #d8b755;
}

.mobile-slot.slot-quality-fair.selected {
    background-color: #d8b755;
}

.mobile-slot.slot-quality-poor {
    border-color: #db6161;
}

.mobile-slot.slot-quality-poor.selected {
    background-color: #db6161;
}

.mobile-slot.slot-quality-unknown {
    border-color: #8a8a8a;
    border-style: dashed;
    background-image: repeating-linear-gradient(45deg, rgba(138, 138, 138, 0.2) 0, rgba(138, 138, 138, 0.2) 4px, transparent 4px, transparent 8px);
}

.mobile-slot.slot-quality-unknown.selected {
    background-color: #8a8a8a;
}

.mobile-slot.slot-booked {
  background-color: #fca400;
  border-color: #004787;
  color:black;
}

.mobile-slot.slot-in_transit {
  background-color: dimgray;
  border-color: #004787;
  color: white;
}

.user-select-none {
    user-select: none;
}

.font-2x {
    font-size: 2rem;
}

.font-1_1 {
    font-size: 1.1rem;
}

.font-1 {
    font-size: 1rem;
}

.shrink-box {
    min-height: 0 !important;
}

.employee-role {
    align-items: flex-start;
    display: inline-flex;
    font-size: inherit;
}

.employee-role-icon {
    color: #EB0A1E;
    margin-left: 10px;
    margin-right: 3px;
    vertical-align: top;
}

.employee-role-text {
    color: #EB0A1E;
    display: inline-block;
    font-family: inherit;
    font-weight: 600;
    line-height: 1.2;
    vertical-align: top;
    white-space: normal;
    width: 60px;
}

/* if using 2 sticky-tops and one is below the other*/
.sticky-top-child {
    position: -webkit-sticky;
    position: sticky;
    top: 64px;
    z-index: 1029;
}

/* most of this stuff here is for vhr multipoint*/
 .wizard > .content > .body {
     padding: 0 !important;
 }
@media (max-width: 992px) {
    #accordion-ro-info,
    #accordion-ro-buttons {
        display: block;
    }
}
@media (min-width: 992px) {
    #roInfo {
        display: block !important;  /* force the RO panel to be visible */
    }
    #accordion-ro-info,
    #accordion-ro-buttons {
        display: none !important;
    }
    #buttonsRow {
        display: block !important;
        height: auto !important;
    }
}
.accordionCards .card .card-header .btn, #toggleRoDetailCardsBtn {
    color: #004787;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#toggleRoDetailCardsBtn {
    padding-right: 0;
    border: #004787;
}

.panel-heading {
    color: #0a0a23;
}
/* Keep the blue RO bar only as tall as the three headers */
#roInfo,
.accordionCards,
.accordionCards .card,
#multipoint-panel {
    overflow: visible;
}

/* Let an opened panel layer over the controls below it */
#roInfo {
    position: relative;
    z-index: 10;
}

.accordionCards .card {
    position: relative;
    align-self: flex-start;
}

.accordionCards .card .collapse.show,
.accordionCards .card .collapsing {
    position: relative;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: #fff;
    border: 1px solid #00000020;
    border-top: none;
    border-radius: 0 0 0.25rem 0.25rem;
    box-shadow: 0 8px 16px 0px #00000040;
}

/* static display fields inside RO info cards */
.ro-top-field {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
    font-size: 14px;
    line-height: 1.3;
    color: #0a0a23;
    font-weight: 600;
}

.ro-top-field span {
    display: inline-flex;
    align-items: center;
    width: 100%;
    padding: 2px 0;
}

.ro-top-field .input-icon-right {
    width: 18px;
    font-size: 14px;
    margin-right: 8px;
    color: #004787;
    text-align: center;
    flex-shrink: 0;
}

.card-body .ro-top-field:last-child {
    margin-bottom: 0;
}

.dropdown-menu {
    height: 150px;
    overflow-y: auto;
}

.card-deck.has-selection .vehicle-type-card:not(.selected) {
    opacity: 0.3;
}

.swal-dl {
    dt:before {
        content: "";
        display: block;
    }
    dt, dd {
        display: inline;
    }   
    dd {
        padding-inline-start: 5px;
    }
}


.vehicle-type-card.selected {
    opacity: 1;
    border: 3px solid #007bff;
    background-color: #e9f4ff;
}

.vehicle-type-card.selected .card-title {
    font-weight: 700;
}

.service-check-in-form {
    background-color: #add8e64d;
}

.account[data-account-type="I"] {
    background-color: #add8e64d;
    border-color: #007bff !important;
}

.account[data-account-type="C"] {
    background-color: #90ee904d;
    border-color: #28a745 !important;
}

.account-label {
    text-decoration: underline;
}

.detail-customer-modal,.detail-vehicle-modal {
    .modal-header {
        background-color: #004787;
        border-color: #004787;
        color: #fff;
    }
}

.detail-customer-modal,.detail-vehicle-modal {
    .modal-body {
        background-color: #add8e64d;
        border-color: #004787;
        color: #0a0a23;
    }
}
#repairOrderDetailsForm .modal-header {
    background-color: #004787;
    color: #fff;
}

/* Dashboard widgets: the card footer carries its own top padding, so the card body's bottom
   padding is a dead band above it. Scoped to .dashboard-widgets (set on the dashboard's
   indexTemplates wrapper) rather than applied to .card-body globally - that class appears 66
   times across 48 views and only the 9 dashboard widgets want this.

   :not(:last-child) means "only when a footer follows". Dropping the padding is only safe
   because the footer replaces it; on a footerless card the content would sit flush against the
   bottom edge. widgets/bdc-agent-appt-count.volt is exactly that card. */
.dashboard-widgets .card-body:not(:last-child) {
    padding-bottom: 0;
}

/* Stage + Parts modals */
#stageModal .stage-row,
#partsModal .stage-row {
    display: flex;
    align-items: flex-start;
}

#stageModal #stageFlagId,
#partsModal #partsFlagId {
    flex: 1 1 auto;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px 16px;
    font-size: 16px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    padding: 5px;
}

#stageModal .modal-content,
#partsModal .modal-content {
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}

#stageModalBody,
#partsModalBody {
    padding: 2px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

#stageModal .flag-item,
#partsModal .flag-item {
    padding: 6px 10px;
    cursor: pointer;
    border-radius: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border: 1px solid transparent;
}

#stageModal .flag-item:hover,
#partsModal .flag-item:hover {
    background-color: #f0f0f0;
}

#stageModal .flag-item-selected,
#partsModal .flag-item-selected {
    background-color: #e7f1ff;
    font-weight: bold;
    border-color: #007bff;
}

#stageModalHeader,
#partsModalHeader {
    background-color: #004787;
    color: #ffff;
}

.flag-check-icon {
    float: right;
    margin-left: 8px;
}

.pushedWarning {
    background-color: #e84c3d;
    font-weight: bold;
    color: white;
}

.wide-alert{
    width: 650px;
    max-width: 80%;
}