/* ==========================================================================
   WorldMeetings Shared Utility Classes
   One-to-one replacements for common inline-style patterns.
   Load after Bootstrap and before project-specific CSS.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Button reset (icon-only / invisible button pattern)
   -------------------------------------------------------------------------- */
.btn-icon {
   background: none;
   border: none;
   padding: 0;
   cursor: pointer;
   color: inherit;
}

/* --------------------------------------------------------------------------
   Font-size utilities (rem-based, accessible)
   -------------------------------------------------------------------------- */
.fs-xs {
   font-size: 0.75rem !important;
}

/* 12px */
.fs-sm {
   font-size: 0.875rem !important;
}

/* 14px */
.fs-xxs {
   font-size: 0.6875rem !important;
}

/* 11px */
.fw-medium {
   font-weight: 500 !important;
}

/* --------------------------------------------------------------------------
   Form & input utilities
   -------------------------------------------------------------------------- */
.wm-input-lg {
   height: 4rem;
}

/* --------------------------------------------------------------------------
   Divider / separator utilities
   -------------------------------------------------------------------------- */
.wm-hr-dashed {
   border-top: 2px dashed #ffffff;
}

.wm-hr-faded {
   background-color: #21252930 !important;
}

/* --------------------------------------------------------------------------
   Card & table utilities
   -------------------------------------------------------------------------- */
.wm-summary-card {
   background-color: #e9f1e929;
}

.wm-table-header {
   color: var(--wm-primary);
}

.wm-table-header-color {
   color: var(--wm-color-header);
}

/* --------------------------------------------------------------------------
   Button & action utilities
   -------------------------------------------------------------------------- */
.wm-btn-clean {
   text-decoration: none;
   background: none;
   border: none;
   padding: 0;
   cursor: pointer;
}

/* --------------------------------------------------------------------------
   Empty-state utilities
   -------------------------------------------------------------------------- */
.wm-empty-icon {
   width: 50px;
   height: 50px;
}

.wm-empty-text {
   max-width: 400px;
}

/* --------------------------------------------------------------------------
   Scroll & overflow utilities
   -------------------------------------------------------------------------- */
.wm-scrollable {
   max-height: 70vh;
   overflow-y: auto;
}

/* --------------------------------------------------------------------------
   Textarea utilities
   -------------------------------------------------------------------------- */
.wm-textarea {
   min-height: 123px;
}

/* --------------------------------------------------------------------------
   Background utilities
   -------------------------------------------------------------------------- */
.bg-white {
   background-color: #fff !important;
}

/* --------------------------------------------------------------------------
   Search utilities
   -------------------------------------------------------------------------- */
.wm-search-input {
   min-width: 350px;
}

/* --------------------------------------------------------------------------
   Semantic badge utilities (token-driven)
   -------------------------------------------------------------------------- */
.badge-open {
   background-color: var(--wm-success-bg);
   color: var(--wm-success-text);
}

.badge-closed {
   background-color: var(--wm-surface);
   color: #4A4F54;
}

.badge-warning {
   background-color: var(--wm-warning-bg);
   color: var(--wm-warning-text);
}

.badge-danger {
   background-color: var(--wm-danger-bg);
   color: var(--wm-danger-text);
}

.badge-info {
   background-color: var(--wm-info-bg);
   color: var(--wm-info-text);
}

/* --------------------------------------------------------------------------
   Dropdown utilities
   -------------------------------------------------------------------------- */
.dropdown-min-w-8 {
   --cui-dropdown-min-width: 8rem;
}

/* --------------------------------------------------------------------------
   Height & z-index utilities
   -------------------------------------------------------------------------- */
.max-h-25rem {
   max-height: 25rem;
}

.max-h-400 {
   max-height: 400px;
}

.h-365px {
   min-height: 365px;
   max-height: 365px;
}

.z-1050 {
   z-index: 1050;
}

.min-h-60rem {
   min-height: 60rem;
}

.min-vh-75{
    min-height: 75.5rem;
}

.max-h-68rem {
   max-height: 68rem;
}

.max-h-main-chat {
    height: calc(100vh - 15.5rem);
}

.w-36 {
    width: 36%;
}

.w-65rem {
    width: 65rem;
}

.h-34px{
    height: 34px;
}

.ps-2-4 {
    padding-left: 2.4rem;
}

.rounded-16px {
    border-radius: 16px;
}

.w-320px {
    width: 320px;
}

.top-minus-4 {
    top: -4px !important;
}

.map-height-86 {
    height: 86.6vh;
}

.offcanvas.offcanvas-bottom.map-view-offcanvas {
    height: 93vh;
}

/* --------------------------------------------------------------------------
   Animation utilities
   -------------------------------------------------------------------------- */
.shake {
   animation: shake 0.2s;
}

@keyframes shake {
   0% {
      transform: translateX(0);
   }

   25% {
      transform: translateX(-2px);
   }

   50% {
      transform: translateX(2px);
   }

   75% {
      transform: translateX(-2px);
   }

   100% {
      transform: translateX(0);
   }
}

/* --------------------------------------------------------------------------
   NexSys / LocationManagement inline-style replacements
   -------------------------------------------------------------------------- */

/* Dashboard icon positioning */
.dash-icon-pos {
   position: absolute;
   top: -.5rem;
   right: 1rem;
}

.dash-icon-pos-sm {
   position: absolute;
   top: -.3rem;
   right: .5rem;
}

.dash-icon-pos-xs {
   position: absolute;
   top: -.5rem;
   right: .2rem;
}

/* Tree-view indent */
.tree-indent {
   padding-left: 2rem;
}

/* Chat bubble */
.chat-bubble {
   width: 45%;
}

/* Chat messages container */
.chat-messages {
   height: 300px;
   max-height: 350px;
}

/* Photo list actions overlay */
.photo-actions {
   position: absolute;
   top: 10px;
   right: 10px;
}

/* Min-height utilities */
.min-h-300 {
   min-height: 300px;
}

.min-h-screen-2 {
   min-height: calc(100vh - 2rem);
}

.min-h-50vh {
   min-height: 50vh;
}

/* Progress bar thin variant */
.progress-thin {
   height: 6px;
}

/* Width utilities */
.w-5rem {
   width: 5rem;
}

.w-60px {
   width: 60px;
}

.w-92 {
   width: 92%;
}

.w-86 {
   width: 86%;
}

.w-80 {
   width: 80%;
}

.w-45 {
   width: 45%;
}

/* Max-height & overflow */
.max-h-300 {
   max-height: 300px;
}

/* Cursor */
.cursor-pointer {
   cursor: pointer;
}

/* --------------------------------------------------------------------------
   Modal utilities
   -------------------------------------------------------------------------- */
.modal-height-90vh {
   height: 90vh;
   margin: 5vh auto;
}

/* --------------------------------------------------------------------------
   Inline-style replacement utilities (audit-driven additions)
   -------------------------------------------------------------------------- */

/* Font size 0.85em — used for price multiplier annotations */
.fs-085 {
   font-size: 0.85em !important;
}

.fs-10 {
    font-size: 10px !important;
}
/* Height: fit-content — used for city name badges */
.h-fit {
   height: fit-content !important;
}

/* Rounded bottom corners (tabs/nav) */
.wm-rounded-bottom-11 {
   border-bottom-left-radius: 11px !important;
   border-bottom-right-radius: 11px !important;
}

/* Tab nav padding */
.wm-nav-padded {
   padding: 0.5rem 1rem;
}

/* Large decorative icon (FAQ section) */
.wm-deco-icon-lg {
   font-size: 9rem;
   right: 5px;
   bottom: -23px;
   z-index: 0;
   color: #d3d3d336;
}

/* Z-index level 1 */
.z-1 {
   z-index: 1;
}

/* List item header padding override */
.wm-list-item-padded {
   padding: 1rem !important;
}

/* Dropdown scrollable */
.wm-dropdown-scroll {
   max-height: 300px;
   overflow: auto;
}

/* Spinner alignment */
.wm-spinner-align {
   margin-top: 2px;
}

/* Font weight semi-medium (410) */
.fw-semi-medium {
   font-weight: 410 !important;
}