/*
* demo.css
* File include item demo only specific css only
******************************************************************************/

.menu .app-brand.demo {
  height: 64px;
}

.app-brand-logo.demo svg {
  width: 34px;
  height: 24px;
}

.app-brand-text.demo {
  font-size: 1.375rem;
}

/* ! For .layout-navbar-fixed added fix padding top to .layout-page */
/* Default navbar */
.layout-navbar-fixed .layout-wrapper:not(.layout-without-menu) .layout-page {
  padding-top: 64px !important;
}
.layout-navbar-fixed .layout-wrapper:not(.layout-horizontal):not(.layout-without-menu) .layout-page {
  padding-top: 72px !important;
}
/* Navbar page z-index issue solution */
.content-wrapper .navbar {
  z-index: auto;
}

/*
* Content
******************************************************************************/

.demo-blocks > * {
  display: block !important;
}

.demo-inline-spacing > * {
  margin: 1rem 0.375rem 0 0 !important;
}

/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
.demo-vertical-spacing > * {
  margin-top: 1rem !important;
  margin-bottom: 0 !important;
}
.demo-vertical-spacing.demo-only-element > :first-child {
  margin-top: 0 !important;
}

.demo-vertical-spacing-lg > * {
  margin-top: 1.875rem !important;
  margin-bottom: 0 !important;
}
.demo-vertical-spacing-lg.demo-only-element > :first-child {
  margin-top: 0 !important;
}

.demo-vertical-spacing-xl > * {
  margin-top: 5rem !important;
  margin-bottom: 0 !important;
}
.demo-vertical-spacing-xl.demo-only-element > :first-child {
  margin-top: 0 !important;
}

/* Dropdown buttons going out of small screens */
@media (max-width: 576px) {
  #dropdown-variation-demo .btn-group .text-truncate {
    width: 254px;
    position: relative;
  }
  #dropdown-variation-demo .btn-group .text-truncate::after {
    position: absolute;
    top: 45%;
    right: 0.65rem;
  }
}

/*
* Layout demo
******************************************************************************/

.layout-demo-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  margin-top: 1rem;
}
.layout-demo-placeholder img {
  width: 900px;
}
.layout-demo-info {
  text-align: center;
  margin-top: 1rem;
}


/* custom styling */

.authentication-cover{background: url(../img/login-auth.png); background-size: cover;}
.input-group.shadow-none:focus-within::before, .input-group.shadow-none:focus::before{box-shadow: none;}
.upload-btn{ background: rgba(0, 47, 242, 0.10); color: #012FF2; border-color:  rgba(0, 47, 242, 0.02); box-shadow: none;}
.table-responsive.rounded-box{ border-radius: 6px; border: 1px solid rgba(47, 43, 61, 0.12);}
.table-responsive.rounded-box table tr:first-child th{ border-top: 0;}
.table-responsive.rounded-box table tr:last-child td{ border-bottom: 0;}
.dropzone{ text-align: center;}
.action-box i{ font-size: 24px; color: #6d6b77;}
a.under-lined { text-decoration: underline; color: #6d6b77;}
.bg-purple {background-color: rgba(115, 103, 240, 0.16) !important; color: rgba(115, 103, 240, 1) !important;}
/* input[type=text].form-control:read-only,
input[type=date].form-control:read-only,
.form-control.read-only{ color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg));opacity: 1;} */
read-only{ color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg));opacity: 1;}
.disbled{ color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg));opacity: 1;}

.nav-pills ~ .tab-content.bg-trans{ box-shadow: none; background-color: transparent; border: transparent;}

[data-bs-theme=dark] .menu-item.active > .menu-link:not(.menu-toggle){background: #7367f0;}

.nav-align-left .nav-tabs .nav-link,
.nav-align-left .nav-tabs .nav-link:not(.active):hover{ border-bottom-color: transparent !important;}

.vertical-tab .nav-link{}
.vertical-tab .nav.nav-tabs { border-bottom:0 ;}

.rltv-blue-lbl{ position: relative;}
.abs-blue-lbl{ position: absolute; color: #007AFF; margin: 0; right: 12px;top: 2px;}
.blue-lbl{ color: #007AFF; margin: 0;}

.stepper-outr{font-weight: 500; gap: 16px; align-items: flex-start;}
.bs-circle{display: flex ; align-items: center; justify-content: center; border-radius: .375rem; block-size: 2.375rem; font-size: 1.125rem; font-weight: 500; inline-size: 2.375rem; width: 2em; height: 2em; padding: .5em 0; margin: .25rem; line-height: 1em; flex-shrink: 0; background: rgba(2, 40, 66, 0.10);}
.bs-circle-label{line-height: 1.375rem; flex: 1; min-width: 0;}
.bs-circle-title{font-size: 18px; font-weight: 500; line-height: 2rem;  }
.bs-circle-subtitle{ font-weight: 400; font-size: 13px;}

/* Full-height sale cards: keep icon + label at the top of the body */
.card.h-100 > .card-body:has(> .stepper-outr:first-child:last-child) {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.text-blue{color: #022842;}
[data-bs-theme=dark] .text-blue{color: #cfcde4;}


/* .input-group.disabled{color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg)); opacity: 1;} */

.min-w-80{ min-width: 80px;}

.pay-status-bor-rht{ border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);}

.modal-400{max-width:400px}
.modal-500{max-width:500px}

.dropdown-item:hover, .dropdown-item:focus{ background-color: rgba(2, 40, 66, 0.1);}

.flash-input:focus{ box-shadow: none; border-width: 0 !important; border-color: transparent !important ;}

.swal2-popup{padding: 1.5em; width: 400px; box-shadow: 0 0.25rem 1.125rem 0 rgba(47, 43, 61, 0.16); border-radius:8px;}
.swal2-container{ z-index: 1080 !important;}
.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation{background: rgba(151, 149, 158, .5);}
.flatpickr-calendar {
    z-index: 2000 !important; /* higher than Bootstrap's offcanvas (z-index: 1045) */
}

/* Force larger icons inside DataTable pagination */
.dataTables_wrapper .dataTables_paginate .paginate_button i {
  font-size: 1.4rem !important; /* Bigger icon */
  line-height: 1 !important;
  vertical-align: middle !important;
}

/* Make the buttons square & centered like in second screenshot */
.dataTables_wrapper .dataTables_paginate .paginate_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
}

/* Optional: hover color like Vuexy */
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background-color: var(--bs-primary-bg-subtle) !important;
  color: var(--bs-primary) !important;
}

.swal2-title{ font-size: 1.5rem; line-height: 2.375rem; text-align: left; padding: 0; }
.swal2-actions{ margin: 0; justify-content: end; padding-top: 1.5em; gap: 4px;}


.app-chat .app-chat-history{border-radius: 6px; box-shadow: 0 3px 12px 0 rgba(47, 43, 61, 0.14); overflow: hidden;}

.app-chat .app-chat-history .chat-history-body .chat-history .chat-message .chat-message-sender small{
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.app-chat .app-chat-history .chat-history-body .chat-history .chat-message .user-avatar .avatar{
  block-size: 2rem;
  inline-size: 2rem;
}

/* Price chat — light mode */
.light-layout .app-chat .app-chat-history .chat-history-wrapper{background-color: #fff !important;}

.light-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message.chat-message-right .chat-message-text{
  background: rgba(2, 40, 66, 0.10) !important;
  color: var(--bs-primary) !important;
}

.light-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message:not(.chat-message-right) .chat-message-text{
  background: rgba(47, 43, 61, 0.08) !important;
  color: var(--bs-body-color) !important;
}

/* Price chat — dark mode */
.dark-layout .app-chat .app-chat-history,
.dark-layout .app-chat .app-chat-history .chat-history-wrapper{
  background-color: #2F3349 !important;
}

.dark-layout .app-chat .app-chat-history .chat-history-footer{
  background-color: #383c56 !important;
}

.dark-layout .app-chat .app-chat-history .chat-history-footer .message-input{
  color: rgba(255, 255, 255, 0.9);
}

.dark-layout .app-chat .app-chat-history .chat-history-footer .message-input::placeholder{
  color: rgba(255, 255, 255, 0.45);
}

.dark-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message .chat-message-sender small{
  color: rgba(255, 255, 255, 0.65);
}

.dark-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message.chat-message-right .chat-message-text{
  background: rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.92) !important;
  box-shadow: none;
}

.dark-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message:not(.chat-message-right) .chat-message-text{
  background: rgba(255, 255, 255, 0.08) !important;
  color: rgba(255, 255, 255, 0.92) !important;
  box-shadow: none;
}

.dark-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message .text-body-secondary,
.dark-layout .app-chat .app-chat-history .chat-history-body .chat-history .chat-message .chat-time{
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Price chat: allow message list to scroll (min-height: 0 for flex child) */
.app-chat .app-chat-history .chat-history-body{ overflow-y: auto; overflow-x: hidden; min-height: 0; }

.date-time{color: var(--bs-timeline-event-time-color); font-size: 0.85rem;}

/* Activity modal: metadata on white timeline cards must stay readable on dark layout */
#Activity .timeline-event.card .activity-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  margin-top: 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(47, 43, 61, 0.08);
}

#Activity .timeline-event.card .activity-meta-user,
#Activity .timeline-event.card .activity-meta-time {
  color: #5e5873;
  font-size: 0.8125rem;
  line-height: 1.4;
}

#Activity .timeline-event.card .activity-meta-user {
  width: 100%;
}

#Activity .timeline-event.card .activity-meta-time {
  align-self: flex-end;
  font-weight: 500;
  white-space: nowrap;
}


.timeline.timeline-center.dashed-line .timeline-item.timeline-item-left, .timeline.timeline-center.dashed-line .timeline-item:nth-of-type(odd):not(.timeline-item-left, .timeline-item-right){border-inline-end: 2px dashed var(--bs-border-color);}
.timeline.timeline-center.dashed-line .timeline-item.timeline-item-right, .timeline.timeline-center.dashed-line .timeline-item:nth-of-type(even):not(.timeline-item-left, .timeline-item-right){ border-inline-start:2px dashed var(--bs-border-color);}

.timeline.dashed-line .timeline-item .timeline-point{block-size: 1rem; inline-size: 1rem;}

.timeline.timeline-center.dashed-line .timeline-item.timeline-item-left .timeline-point, .timeline.timeline-center.dashed-line .timeline-item:nth-of-type(odd):not(.timeline-item-left, .timeline-item-right) .timeline-point{margin-inline-start: -0.4rem;}

.btn{ font-weight: 400;}

.modal-footer .btn,
.text-end .btn, .mw-100,
.offcanvas-body .btn { min-width: 100px;}

/* .table > :not(caption) > * > *,
.table .simple-link{ color: rgba(47, 43, 61, 0.9);} */

.kanban-board {
    margin-left: 0 !important;
}

.modal-outer{ padding:10px 6px;}
.modal .modal-footer{ padding-top: 4px;}

.font-14{ font-size: 14px;}

.fav-logo{ display: none;}

.layout-menu-collapsed .fav-logo{ display: block;}

.layout-menu-collapsed.layout-menu-hover .fav-logo{ display: none;}
.layout-menu-collapsed.layout-menu-hover .main-logo{ display: block;}

.layout-menu-collapsed .main-logo{ display: none;}

.layout-menu-collapsed .layout-menu-toggle{ display: none;}
.layout-menu-collapsed.layout-menu-hover .layout-menu-toggle{ display: block;}

.cst-calendar .kanban-container{gap: 15px;}
.cst-calendar.app-kanban .kanban-wrapper{overflow-x: unset;}
.cst-calendar .kanban-board { flex: 0 0 calc(14.285% - 12.85px);}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container{inline-size: auto !important;}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item{inline-size: auto;}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-drag{min-inline-size: 100%;}
.cst-calendar .kanban-item:hover { cursor: pointer; }

.cst-calendar .kanban-board *{white-space: normal; word-break: break-word;}

/* Schedule grid: date + weekday header on every column */
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-title-board {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  inline-size: 100%;
  max-inline-size: none !important;
  overflow: visible;
  white-space: normal !important;
  text-align: center;
  padding: 10px 8px;
  border-radius: 6px;
  background: color-mix(in sRGB, var(--bs-base-color) 8%, var(--bs-paper-bg));
  line-height: 1.3;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-date-text {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-heading-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-day-text {
  display: block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bs-body-color) !important;
  opacity: 0.85;
  text-transform: capitalize;
}
/* Empty day placeholder */
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-empty {
  color: var(--bs-secondary-color) !important;
  background-color: var(--bs-paper-bg) !important;
  border: 1px solid color-mix(in sRGB, var(--bs-base-color) 14%, var(--bs-paper-bg)) !important;
  box-shadow: none !important;
}
[data-bs-theme=dark] .cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-title-board:not(.kanban-title-board-today) {
  background: color-mix(in sRGB, var(--bs-base-color) 10%, var(--bs-paper-bg));
}
[data-bs-theme=dark] .cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-day-text {
  color: var(--bs-body-color) !important;
  opacity: 0.9;
}
[data-bs-theme=dark] .cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-empty {
  color: var(--bs-body-color) !important;
  background-color: color-mix(in sRGB, var(--bs-base-color) 8%, var(--bs-paper-bg)) !important;
  border-color: color-mix(in sRGB, var(--bs-base-color) 18%, var(--bs-paper-bg)) !important;
}

/* Today column — accent header + soft content tint (no box border) */
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board.kanban-board-today .kanban-board-header {
  padding-block-end: 0.75rem;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board.kanban-board-today .kanban-title-board.kanban-title-board-today {
  background: var(--bs-primary);
  box-shadow: 0 4px 14px color-mix(in sRGB, var(--bs-primary) 45%, transparent);
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board.kanban-board-today .kanban-date-text {
  font-weight: 700;
  color: var(--bs-primary-contrast) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board.kanban-board-today .kanban-day-text {
  font-weight: 600;
  color: var(--bs-primary-contrast) !important;
  opacity: 0.92;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board.kanban-board-today .kanban-drag {
  margin-block-start: 2px;
  padding: 6px 4px;
  border-radius: 8px;
  background: color-mix(in sRGB, var(--bs-primary) 6%, var(--bs-paper-bg));
}

/* Schedule cards — colors from ScheduleCardHelper via :root CSS variables */
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card,
.card.schedule-card {
  border-color: color-mix(in sRGB, var(--bs-base-color) 12%, var(--bs-paper-bg)) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--installation-booked,
.card.schedule-card--installation-booked {
  background-color: var(--schedule-card-installation-booked-bg) !important;
  color: var(--schedule-card-installation-booked-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--installation-completed,
.card.schedule-card--installation-completed {
  background-color: var(--schedule-card-installation-completed-bg) !important;
  color: var(--schedule-card-installation-completed-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--maintenance-open,
.card.schedule-card--maintenance-open {
  background-color: var(--schedule-card-maintenance-open-bg) !important;
  color: var(--schedule-card-maintenance-open-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--maintenance-closed,
.card.schedule-card--maintenance-closed {
  background-color: var(--schedule-card-maintenance-closed-bg) !important;
  color: var(--schedule-card-maintenance-closed-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--task-created,
.card.schedule-card--task-created {
  background-color: var(--schedule-card-task-created-bg) !important;
  color: var(--schedule-card-task-created-color) !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card--task-closed,
.card.schedule-card--task-closed {
  background-color: var(--schedule-card-task-closed-bg) !important;
  color: var(--schedule-card-task-closed-color) !important;
}
/* Override Bootstrap text utilities so card tint color is readable (not white/contrast) */
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .fw-bold,
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .kanban-text,
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .font-14,
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .text-body,
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .text-body-secondary,
.card.schedule-card .card-body,
.card.schedule-card .card-body .form-label,
.card.schedule-card .card-body h6 {
  color: inherit !important;
}
.cst-calendar.app-kanban .kanban-wrapper .kanban-container .kanban-board .kanban-item.schedule-card .calender-box-icon {
  color: inherit;
  opacity: 0.85;
}

.iconed-box{ position: relative; padding-right: 24px;}
.iconed-box .calender-box-icon{ position: absolute; right: 0;}

.tooltip-inner{ padding: 12px; font-size: 11px; font-weight: 500;}

.lbl-strip{ display: flex; padding: 15px 0; margin: 0; list-style: none; border-top: 1px solid rgba(47, 43, 61, 0.12); border-bottom: 1px solid rgba(47, 43, 61, 0.12); flex-wrap: wrap; gap: 14px;}
.lbl-strip li{ font-size: 13px; padding-right: 14px; border-right: 1px solid rgba(47, 43, 61, 0.24); display: flex; align-items: center; gap:5px; color: rgba(47, 43, 61, 0.9); flex-wrap: wrap;}
.lbl-strip li:last-child{ border-right: 0; padding-right: 0; margin-right: 0;}


[data-bs-theme=dark] .lbl-strip li{ color:#cfcde4; border-color: #e1def5;}


.cst-row-spacer{ }
.cst-row-spacer .col-auto{ flex: 0 0 12.5%;}

/*.form-control:focus, .form-select:focus{box-shadow: 0 0.125rem 0.375rem 0 rgba(115, 103, 240, 0.3); border-color: #7367f0;}
.input-group:focus-within, .input-group:focus { box-shadow: 0 0 0 1px #7367f0; }
.input-group:focus-within::before, .input-group:focus::before { box-shadow: 0 0.125rem 0.375rem 0 rgba(115, 103, 240, 0.3); }
.bootstrap-select .dropdown-toggle.show, .bootstrap-select .dropdown-toggle:focus, .bootstrap-select .dropdown-toggle:active {border-color: #7367f0 !important;}
.select2-container--open{--bs-select-active-border-color:#7367f0 !important;}*/


.sales-tracker-stats .col{ flex: 0 0 20%;}

.cst-tagify-tag{border-radius: 4px; background: rgba(47, 43, 61, 0.08); padding: 3px 10px; display: inline-flex; color: rgba(47, 43, 61, 0.9); font-size: 13px; font-weight: 500; gap: 4px; align-items: center; transition: .13s ease-out;}
.cst-tagify-tag:hover{ background:#E0DFE2;}

/* Post-installation serial numbers: Tagify hides .tagify__input when [disabled], so empty fields collapse; keep one-line height like other Tagify rows */
.serial-number-tagify-wrap tags.tagify[disabled],
.serial-number-tagify-wrap .tagify[disabled] {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  min-height: 2rem;
}
.tg-close{ opacity: .7;}

.attachment-blue-text{ color: rgba(0, 122, 255, 1); font-size: 14px; display: block; line-height: 24px;}

.sepr1{ background-color: rgba(47, 43, 61, 0.12); width: 1px; height: 100%;}
.col-50{ flex: 0 0 calc(50% - 16.5px); border-radius: 6px;}

.yellow-badge{background: rgba(247, 182, 0, 1); color: #fff;}

.center-nav{inset-inline-start: 0 !important;}

.grey-boxed{ background: rgba(47, 43, 61, 0.06); border: 1px solid rgba(47, 43, 61, 0.12); border-radius: 6px;}
.bor-right{}
.bor-top{border-top:1px solid rgba(47, 43, 61, 0.12);}

.grey-boxed .col-lg-4:nth-child(1), .grey-boxed .col-lg-4:nth-child(2){border-right:1px solid rgba(47, 43, 61, 0.12);}

.company-logo{ width: 80px; height: 40px;}
.company-logo img{ width: 100%; height: 100%; object-fit: contain; object-position: left;}

p{/*color: rgba(47, 43, 61, 0.9);*/ font-size: 16px; font-weight: 500; line-height: 28px;}
p:last-child{ margin-bottom: 0;}

.list-unstyled li .icon-base {flex: 0 0 24px;}
[data-bs-theme=dark] .cst-tagify-tag{ color: #acabc1; background: rgb(181 160 255 / 8%);}
[data-bs-theme=dark] .cst-tagify-tag svg path{ fill: #acabc1;}

.dropzone{ height: 100%;}

.tb-border *{ vertical-align: top;}
.tb-border td{border-left: 1px solid #e6e6e8;}
.tb-border td:first-child{border-left:0;}

.dashboard-ranger .flatpickr-calendar{right: 0;}

.dashcard .card{ height: 100%;}

@media (max-width: 1660px) {

.cst-calendar.app-kanban .kanban-wrapper{overflow-x: auto; overflow-y: auto;}
.rltv-blue-lbl{padding-bottom: 22px;}
.abs-blue-lbl{ bottom: 0; top: auto; left: 12px;}
.dashcard.row-cols-xl-5 > *{width: 25%;}
}

@media (max-width: 1500px) {
.sales-tracker-stats .col { flex: 0 0 33.3334%; }
}

@media (max-width: 1400px) {
.cst-row-spacer .col-auto{ flex: 0 0 25%;}
.dashcard.row-cols-xl-5 > *{width: 33.3334%;}
}

@media (max-width: 1024px) {
.cst-row-spacer .col-auto{ flex: 0 0 33.334%;}
}

@media (max-width: 991px) {
.sales-tracker-stats .col { flex: 0 0 100%; }
.grey-boxed .col-lg-4:nth-child(1), .grey-boxed .col-lg-4:nth-child(2) {border-right: 0;}
.bor-top{ border: 0;}
.grey-boxed .col-lg-4>div{border-bottom: 1px solid rgba(47, 43, 61, 0.12);}
.dashcard.row-cols-xl-5 > *{width: 50%;}
}

@media (max-width: 767px) {
  .cst-row-spacer .col-auto{flex: 0 0 100%;}
  .dashcard.row-cols-xl-5 > *{width: 100%; flex: 100%;}

}

.locked-select + .dropdown-toggle,
.bootstrap-select:has(select.locked-select) .dropdown-toggle {
    pointer-events: none;      /* disable user interactions */
    opacity: 1 !important;     /* keep normal look */
    background-color: var(--bs-gray-50) !important;
}

.locked-select + .select2-container .select2-selection {
    background-color: #f5f5f5 !important;
    pointer-events: none !important;
    opacity: 0.8;
}

.swal2-container {
    z-index: 200000 !important;
}
.uploaded-file-row {
    margin-top: 5px;
    background: #f5f5f5;
    border: 1px solid #e1e1e1;
    border-radius: 4px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.uploaded-file-row .file-info {
    display: flex;
    align-items: center;
    gap: 8px;
}

.uploaded-file-row a {
    color: #192b3b;
    text-decoration: none;
    font-weight: 500;
}

.uploaded-file-row a:hover {
    text-decoration: underline;
}

.uploaded-file-row .delete-icon {
    cursor: pointer;
    font-size: 16px;
}


.status-label {
    display: inline-block;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 12px;
    color: #fff;
    white-space: nowrap;
}

.status-planned { background-color: #FFC107; color:#000; }
.status-quoted { background-color: #FF8A65; }
.status-deposit-received { background-color: #C5D9FF; color:#000; }
.status-active { background-color: #76FF03; color:#000; }
.status-ins-booked { background-color: #FF006E; }
.status-ins-complete { background-color: #9C27B0; }
.status-rebate-applied { background-color: #2979FF; }
.status-stc-applied { background-color: #E040FB; }
.status-grid-applied { background-color: #C6FF00; color:#000; }
.status-complete { background-color: #009688; }
.status-on-hold { background-color: #757575; }
.status-cancelled { background-color: #E53935; }
.status-post-installation-initiated { background-color: #E040FB; }
.status-post-installation-completed { background-color: #C6FF00; color:#000; }
.status-post-install-initiated { background-color: #E040FB; }
.status-post-install-completed { background-color: #C6FF00; color:#000; }

/* input[type=text].form-control:read-only,
input[type=date].form-control:read-only, */
.form-control.only-read-only{ color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg));opacity: 1;}
.form-select.only-read-only { color: var(--bs-secondary-color); background-color: var(--bs-gray-50); border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg)); opacity: 1; }
.select2-container:has(select.only-read-only) .select2-selection {
    background-color: var(--bs-gray-50) !important;
    cursor: default !important;
}

/* Expired installer rows only — not the "Select Installer" placeholder */
.select2-container--default .select2-results__option:has(.installer-expired-option) {
    background-color: var(--bs-gray-50) !important;
    color: var(--bs-secondary-color) !important;
    cursor: default !important;
    pointer-events: none;
}

/* Keep default Select2 hover for non-expired options (e.g. "Select Installer", valid installers) */
.select2-container--default .select2-results__option.select2-results__option--highlighted:not(:has(.installer-expired-option)) {
    background-color: var(--bs-select-dropdown-link-hover-bg) !important;
    color: var(--bs-select-color) !important;
    cursor: pointer;
}

.select2-container--default .select2-results__option:not(:has(.installer-expired-option)):not(.select2-results__option--highlighted) {
    background-color: var(--bs-paper-bg, #fff) !important;
    color: var(--bs-select-color) !important;
}


/* Disable Vuexy merged border when invalid */
.input-group-merge .form-control.is-invalid {
    background-image: none !important;
}

.input-group-merge .form-control.is-invalid,
.input-group-merge .input-group-text.is-invalid {
    border-color: #dc3545 !important;
}

/* Prevent Vuexy merged outline */
.input-group-merge:has(.form-control.is-invalid)::before,
.input-group-merge:has(.form-control.is-invalid)::after {
    border-color: transparent !important;
}
/* .select2-container {
  z-index: 1056 !important;
}

.select2-dropdown {
  z-index: 1056 !important;
} */
.tbl td {
    word-wrap: break-word;
    word-break: break-word;
}
#project-index-table.table td {  padding: 5px; padding-left: 21px;}

/* Price tab: merged "disabled" groups are visual-only (readonly); Vuexy uses pointer-events:none which blocks copy */
#navs-top-price .input-group.disabled .form-control,
#navs-top-price .input-group.disabled .input-group-text {
    pointer-events: auto;
}
.ck-editor__editable {
    white-space: pre-wrap;
}
