/* ============================================================
   VLANTO DIALER — Custom UI Override v2.0
   Design System 2026 · Inter font · Indigo/Slate palette

   CRITICAL: This stylesheet ONLY overrides visual properties.
   Layout, positioning, and display modes are preserved from
   the original OMniLeads CSS to maintain functionality.

   Inspired by: Five9, Genesys Cloud, Aircall, CloudTalk
   ============================================================ */

/* ===================== 1. FONTS ===================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* ===================== 2. DESIGN TOKENS ===================== */
:root {
  /* Brand */
  --v-primary: #6366F1;
  --v-primary-hover: #4F46E5;
  --v-primary-light: #EEF2FF;
  --v-primary-lighter: #E0E7FF;
  --v-secondary: #8B5CF6;

  /* Semantic */
  --v-success: #10B981;
  --v-success-light: #D1FAE5;
  --v-warning: #F59E0B;
  --v-warning-light: #FEF3C7;
  --v-danger: #EF4444;
  --v-danger-light: #FEE2E2;
  --v-info: #3B82F6;
  --v-info-light: #DBEAFE;

  /* Neutrals */
  --v-bg: #F8FAFC;
  --v-surface: #FFFFFF;
  --v-border: #E2E8F0;
  --v-border-light: #F1F5F9;
  --v-txt: #0F172A;
  --v-txt-secondary: #64748B;
  --v-txt-muted: #94A3B8;

  /* Sidebar (dark) */
  --v-sidebar-bg: #0F172A;
  --v-sidebar-hover: rgba(255,255,255,0.06);
  --v-sidebar-active-bg: rgba(99,102,241,0.15);
  --v-sidebar-txt: rgba(255,255,255,0.6);
  --v-sidebar-txt-hover: rgba(255,255,255,0.85);
  --v-sidebar-txt-active: #A5B4FC;
  --v-sidebar-border: rgba(255,255,255,0.08);

  /* Phone panel */
  --v-phone-bg: #0F172A;
  --v-phone-surface: #1E293B;
  --v-phone-border: #334155;
  --v-phone-txt: #E2E8F0;
  --v-phone-txt-muted: #94A3B8;

  /* Shared */
  --v-radius-sm: 6px;
  --v-radius: 8px;
  --v-radius-lg: 12px;
  --v-radius-xl: 16px;
  --v-shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --v-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --v-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --v-shadow-lg: 0 10px 25px rgba(0,0,0,0.12);
  --v-transition: all 0.15s ease;

  /* Override OML brand variables */
  --primary-color: #6366F1 !important;
  --secondary-color: #8B5CF6 !important;
  --primary-light-color: #818CF8 !important;
}

/* ===================== 3. BASE ===================== */
html, body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--v-txt);
}

body {
  background: var(--v-bg) !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', sans-serif !important;
  color: var(--v-txt);
}

h1 {
  font-size: 1.4rem !important;
  font-weight: 700 !important;
}

a { color: var(--v-primary); }
a:hover, a:focus { color: var(--v-primary-hover); text-decoration: none; }


/* ============================================================
   4. ADMIN SIDEBAR (#sidebar)

   HTML structure:
     <nav id="sidebar">
       <div class="sidebar-header"><a><img id="nav-logo"></a></div>
       <ul id="nav-main-menu">
         <li class="main-menu-li">
           <span class="icon icon-xxx"></span>     ← position:absolute
           <a class="menu-link" href="">Label</a>  ← padding-left:34px
         </li>
       </ul>
     </nav>

   Icons use position:absolute with left:10px — DO NOT CHANGE THIS
   ============================================================ */

#sidebar {
  background: var(--v-sidebar-bg) !important;
  border-right: 1px solid var(--v-sidebar-border);
  box-shadow: 2px 0 8px rgba(0,0,0,0.15);
}

#sidebar .sidebar-header {
  background: transparent !important;
  border-bottom: 1px solid var(--v-sidebar-border) !important;
}

/* Logo on dark sidebar — invert to white */
#sidebar .sidebar-header #nav-logo {
  filter: brightness(0) invert(1);
  opacity: 0.9;
}

/* Menu links — keep original padding-left:34px for icon space */
#sidebar ul li a {
  color: var(--v-sidebar-txt) !important;
  font-size: 13px;
  font-weight: 500;
  transition: var(--v-transition);
}

/* Icons — only change color, keep position:absolute from original */
#sidebar .icon {
  color: var(--v-sidebar-txt) !important;
  transition: var(--v-transition);
}

#sidebar ul li a:hover {
  background: var(--v-sidebar-hover) !important;
  color: var(--v-sidebar-txt-hover) !important;
}

#sidebar > ul > li:hover > .icon {
  color: var(--v-sidebar-txt-hover) !important;
}

#sidebar ul a.active {
  background: var(--v-primary) !important;
  color: #fff !important;
}

#sidebar ul a.active:hover {
  background: var(--v-primary-hover) !important;
}

/* Expanded submenus */
#sidebar .submenu,
#sidebar .submenu-two,
#sidebar a[aria-expanded="true"] {
  background: rgba(255,255,255,0.03) !important;
}

#sidebar .submenu a,
#sidebar .submenu-two a {
  color: var(--v-sidebar-txt) !important;
  font-size: 12.5px;
}

#sidebar .submenu a:hover,
#sidebar .submenu-two a:hover {
  color: var(--v-sidebar-txt-hover) !important;
  background: var(--v-sidebar-hover) !important;
}

/* Chevron icons */
#sidebar a[aria-expanded="false"]::before,
#sidebar a[aria-expanded="true"]::before {
  color: var(--v-sidebar-txt);
}

/* Collapsed sidebar state */
#sidebar.active {
  background: var(--v-sidebar-bg) !important;
}

#sidebar.active .icon {
  color: var(--v-sidebar-txt) !important;
}

#sidebar.active .menu-link,
#sidebar.active .menu-header {
  background: rgba(255,255,255,0.04) !important;
  border-left: 1px solid var(--v-sidebar-border) !important;
}

#sidebar.active .menu-link:hover,
#sidebar.active .menu-header:hover {
  background: var(--v-sidebar-hover) !important;
}

#sidebar.active .menu-link.active {
  background: var(--v-primary) !important;
  color: #fff !important;
}

#sidebar.active ul.submenu,
#sidebar.active ul.submenu-two {
  background: var(--v-sidebar-bg) !important;
  border: 1px solid var(--v-sidebar-border) !important;
  box-shadow: var(--v-shadow-md);
}


/* ============================================================
   5. AGENT NAVBAR (#navBar)

   DESKTOP (≥768px): HORIZONTAL top navigation bar
     - Items are display:inline-block
     - Icons are inline (not absolute)
     - #navMainMenu is display:flex

   MOBILE (<768px): VERTICAL collapsible sidebar
     - Icons become position:absolute, left:10px
     - Links get padding-left:34px

   DO NOT change display/position properties
   ============================================================ */

/* === Desktop horizontal nav === */
@media (min-width: 768px) {
  #navBar {
    background: var(--v-surface) !important;
    border-bottom: 1px solid var(--v-border) !important;
    box-shadow: var(--v-shadow-sm);
    padding-top: 0 !important;
    padding-left: 0 !important;
  }

  #navMainMenu {
    padding: 0 12px;
    min-height: 56px;
  }

  /* Logo — keep natural colors on light bg */
  #navBar #nav-logo {
    max-height: 30px;
    max-width: 140px;
  }

  /* Icons — inline on desktop, just color change */
  #navBar .icon {
    color: var(--v-txt-secondary) !important;
    font-size: 14px;
  }

  /* Nav links */
  #navBar ul li a {
    color: var(--v-txt-secondary) !important;
    font-size: 13px;
    font-weight: 500;
    text-transform: none !important;
    transition: var(--v-transition);
  }

  #navBar ul li a:hover {
    color: var(--v-primary) !important;
  }

  #navBar > ul > li:hover {
    background: var(--v-primary-light) !important;
    border-radius: var(--v-radius);
  }

  #navBar > ul > li:hover > .icon {
    color: var(--v-primary) !important;
  }

  #navBar > ul > li:hover > a,
  #navBar > ul > li:hover > a.menu-link,
  #navBar > ul > li:hover > a.menu-header {
    color: var(--v-primary) !important;
  }

  /* Submenu dropdown */
  #navBar ul.submenu {
    background: var(--v-surface) !important;
    border: 1px solid var(--v-border) !important;
    border-radius: var(--v-radius-lg) !important;
    box-shadow: var(--v-shadow-md) !important;
    padding: 6px !important;
  }

  #navBar ul.submenu a {
    border-radius: var(--v-radius-sm) !important;
    padding: 8px 14px 8px 14px !important;
    font-size: 13px !important;
    text-transform: none !important;
    color: var(--v-txt) !important;
  }

  #navBar ul.submenu a:hover {
    background: var(--v-primary-light) !important;
    color: var(--v-primary) !important;
  }

  /* Chevron icons */
  #navBar a[aria-expanded="false"]::before,
  #navBar a[aria-expanded="true"]::before {
    color: var(--v-txt-muted);
  }
}

/* === Mobile vertical sidebar === */
@media (max-width: 768px) {
  #navBar {
    background: var(--v-sidebar-bg) !important;
    box-shadow: 2px 0 8px rgba(0,0,0,0.15);
  }

  /* Logo on dark bg — invert to white */
  #navBar #nav-logo {
    filter: brightness(0) invert(1);
    opacity: 0.9;
    max-height: 28px;
  }

  /* Icons at mobile — keep position:absolute from original */
  #navBar .icon {
    color: var(--v-sidebar-txt) !important;
  }

  /* Links */
  #navBar ul li a {
    color: var(--v-sidebar-txt) !important;
    font-size: 13px;
    font-weight: 500;
    text-transform: none !important;
    transition: var(--v-transition);
  }

  #navBar ul li a:hover {
    background: var(--v-sidebar-hover) !important;
    color: var(--v-sidebar-txt-hover) !important;
  }

  #navBar ul a.active {
    background: var(--v-primary) !important;
    color: #fff !important;
  }

  /* Submenus */
  #navBar .submenu,
  #navBar a[aria-expanded="true"] {
    background: rgba(255,255,255,0.03) !important;
  }

  #navBar .submenu a {
    color: var(--v-sidebar-txt) !important;
  }

  #navBar .submenu a:hover {
    color: var(--v-sidebar-txt-hover) !important;
    background: var(--v-sidebar-hover) !important;
  }

  /* Chevrons */
  #navBar a[aria-expanded="false"]::before,
  #navBar a[aria-expanded="true"]::before {
    color: var(--v-sidebar-txt);
  }
}


/* ============================================================
   6. TOP BAR (#topBar)

   Desktop: position:absolute, top:0, right:10px (overlays nav)
   Mobile: display:flex bar with border-bottom
   DO NOT change positioning
   ============================================================ */

#topBar .btn {
  color: var(--v-txt-secondary) !important;
  border: none !important;
  background: transparent !important;
}

#topBar .btn:hover {
  color: var(--v-primary) !important;
}

#topBar .user-name {
  font-weight: 600;
  font-size: 13px;
  color: var(--v-txt) !important;
}

#topBar .dropdown-menu {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow-md) !important;
  padding: 6px !important;
  min-width: 160px;
}

#topBar .dropdown-item {
  border-radius: var(--v-radius-sm) !important;
  padding: 8px 14px !important;
  font-size: 13px;
  color: var(--v-txt) !important;
  transition: var(--v-transition);
}

#topBar .dropdown-item:hover {
  background: var(--v-primary-light) !important;
  color: var(--v-primary) !important;
}

@media (max-width: 768px) {
  #topBar {
    background: var(--v-surface) !important;
    border-bottom: 1px solid var(--v-border) !important;
    box-shadow: var(--v-shadow-sm);
  }
}


/* ============================================================
   7. TIME BAR (#timeBar) — Agent status strip
   ============================================================ */

#timeBar {
  background: var(--v-surface) !important;
  border-bottom: 1px solid var(--v-border) !important;
  padding: 10px 20px !important;
}

#operationTime {
  background: var(--v-primary-light) !important;
  color: #4338CA !important;
  border: 1px solid #C7D2FE !important;
  border-radius: 20px !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

#pauseTime {
  background: var(--v-warning-light) !important;
  color: #92400E !important;
  border: 1px solid #FCD34D !important;
  border-radius: 20px !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

#timeToEndPause {
  background: var(--v-danger-light) !important;
  color: #991B1B !important;
  border: 1px solid #FCA5A5 !important;
  border-radius: 20px !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

#UserStatus {
  background: var(--v-success-light) !important;
  color: #065F46 !important;
  border: 1px solid #6EE7B7 !important;
  border-radius: 20px !important;
  padding: 5px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

#timersControls .icon {
  vertical-align: middle;
}


/* ============================================================
   8. PHONE PANEL (#wrapperWebphone)

   Original: 300px wide, hidden via margin-right:-300px,
   shown via .active class. DO NOT change widths or margins.
   ============================================================ */

#wrapperWebphone {
  background: var(--v-phone-bg) !important;
  box-shadow: inset 1px 0 0 var(--v-phone-border) !important;
}

#wrapperWebphone.active {
  background: var(--v-phone-bg) !important;
}

.webphone-header {
  background: rgba(255,255,255,0.03) !important;
  border-bottom: 1px solid var(--v-phone-border) !important;
}

#btnCloseWebphone {
  color: var(--v-phone-txt-muted) !important;
  opacity: 0.7;
}

#btnCloseWebphone:hover {
  opacity: 1;
  color: var(--v-phone-txt) !important;
}

/* Phone tabs */
#webphoneTabBar {
  border-bottom: 1px solid var(--v-phone-border) !important;
}

#webphoneTabBar .nav-link {
  color: var(--v-phone-txt-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 8px 14px !important;
  transition: var(--v-transition);
}

#webphoneTabBar .nav-link:hover {
  color: var(--v-phone-txt) !important;
  background: rgba(255,255,255,0.05) !important;
}

#webphoneTabBar .nav-link.active {
  color: var(--v-primary) !important;
  border-bottom: 2px solid var(--v-primary) !important;
  background: transparent !important;
}

.webphone-body {
  padding: 16px 12px;
  overflow-y: auto;
}

/* Phone status displays */
#CallStatus {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--v-phone-txt-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 8px 0 4px;
}

#SipStatus {
  text-align: center;
  font-size: 11px;
  color: var(--v-phone-txt-muted);
  padding-bottom: 8px;
}

/* Number input */
#numberToCall {
  background: var(--v-phone-surface) !important;
  border: 1px solid var(--v-phone-border) !important;
  border-radius: var(--v-radius) !important;
  color: var(--v-phone-txt) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  text-align: center !important;
  height: 46px !important;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

#numberToCall:focus {
  border-color: var(--v-primary) !important;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.2) !important;
  outline: none !important;
}

#numberToCall::placeholder {
  color: #475569 !important;
}

/* Numpad grid */
#phoneKeysNumbers {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 6px !important;
  margin-bottom: 12px;
}

#phoneKeysNumbers > div {
  display: contents !important;
}

.key {
  background: var(--v-phone-surface) !important;
  color: var(--v-phone-txt) !important;
  border: 1px solid var(--v-phone-border) !important;
  border-radius: var(--v-radius) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  height: 44px !important;
  width: 100% !important;
  transition: var(--v-transition) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
}

.key:hover {
  background: rgba(99,102,241,0.12) !important;
  border-color: var(--v-primary) !important;
  color: #A5B4FC !important;
}

.key:active {
  background: rgba(99,102,241,0.25) !important;
  transform: scale(0.96);
}

/* Call button — green circle */
#call {
  background: var(--v-success) !important;
  border-color: var(--v-success) !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  font-size: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 3px 10px rgba(16,185,129,0.3) !important;
  padding: 0 !important;
  transition: var(--v-transition) !important;
}

#call:hover {
  background: #059669 !important;
  box-shadow: 0 4px 14px rgba(16,185,129,0.5) !important;
  transform: scale(1.05);
}

/* End call button — red circle */
#endCall {
  background: var(--v-danger) !important;
  border-color: var(--v-danger) !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  font-size: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 3px 10px rgba(239,68,68,0.3) !important;
  padding: 0 !important;
  transition: var(--v-transition) !important;
}

#endCall:hover {
  background: #DC2626 !important;
  box-shadow: 0 4px 14px rgba(239,68,68,0.5) !important;
  transform: scale(1.05);
}

/* Secondary phone buttons */
#redial, #SignCall, #recordCall {
  background: var(--v-phone-surface) !important;
  border: 1px solid var(--v-phone-border) !important;
  color: var(--v-phone-txt-muted) !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  padding: 0 !important;
  transition: var(--v-transition) !important;
}

#redial:hover, #SignCall:hover, #recordCall:hover {
  background: rgba(255,255,255,0.08) !important;
  color: var(--v-phone-txt) !important;
  border-color: #475569 !important;
}

/* Call timer display */
#phoneOptions {
  padding: 8px 0;
  border-top: 1px solid var(--v-phone-border);
}

#sumTime {
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  color: var(--v-phone-txt);
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  padding: 8px 0;
}

/* Phone options buttons (Transfer, Confer, etc.) */
#phoneOptions .btn-group {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  padding: 4px 0;
}

#Transfer, #Confer, #dtmf, #EndTransfer, #onHold,
#onHoldClient, #onHoldConsultant,
#changeCampAssocManualCall, #call_off_campaign_menu, #call_another_agent_menu {
  background: var(--v-phone-surface) !important;
  border: 1px solid var(--v-phone-border) !important;
  color: var(--v-phone-txt-muted) !important;
  border-radius: var(--v-radius-sm) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  padding: 5px 10px !important;
  transition: var(--v-transition) !important;
}

#Transfer:not([disabled]):hover, #Confer:not([disabled]):hover,
#dtmf:not([disabled]):hover, #EndTransfer:not([disabled]):hover,
#onHold:not([disabled]):hover,
#onHoldClient:not([disabled]):hover, #onHoldConsultant:not([disabled]):hover {
  background: rgba(99,102,241,0.12) !important;
  color: #A5B4FC !important;
  border-color: var(--v-primary) !important;
}

/* Phone background */
.backgroundWebPhone {
  background: var(--v-phone-bg) !important;
  box-shadow: none !important;
}

/* Call registry in phone panel */
#phoneRegistryContent .row[style*="background:lightgrey"],
#phoneRegistryContent .row[style*="background: lightgrey"] {
  background: var(--v-phone-surface) !important;
  border-radius: var(--v-radius-sm);
  margin-bottom: 8px !important;
}

#phoneRegistryContent .col-lg-2, #phoneRegistryContent .col-md-2,
#phoneRegistryContent .col-xs-2 {
  font-size: 11px;
  color: var(--v-phone-txt-muted);
}

#phoneRegistryContent .col-lg-4, #phoneRegistryContent .col-md-4,
#phoneRegistryContent .col-xs-4 {
  font-size: 12px;
  font-weight: 500;
  color: var(--v-phone-txt);
}

#phoneRegistryContent .col-lg-6, #phoneRegistryContent .col-md-6,
#phoneRegistryContent .col-xs-6 {
  font-size: 11px;
  color: var(--v-phone-txt-muted);
}

#call_list .col-lg-2 { font-size: 11px; color: var(--v-phone-txt-muted); padding: 6px 4px; }
#call_list .col-lg-4 { font-size: 12px; font-weight: 500; color: var(--v-phone-txt); padding: 6px 4px; }
#call_list .col-lg-6 { font-size: 11px; color: var(--v-phone-txt-muted); padding: 6px 4px; }


/* ============================================================
   9. CONTENT & IFRAME
   ============================================================ */

.wrapper-main {
  background: var(--v-bg);
}

.wrapper-content {
  background: var(--v-bg) !important;
}

.wrapper-info {
  background: var(--v-bg);
}

#content {
  background: var(--v-bg);
}

.agent-console-iframe {
  border: none !important;
  background: var(--v-bg);
}

/* Bottom icon apps bar */
.iconApp {
  transition: var(--v-transition);
}

.iconApp:hover {
  opacity: 0.8;
}


/* ============================================================
   10. BUTTONS
   ============================================================ */

.btn {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  border-radius: var(--v-radius) !important;
  transition: var(--v-transition) !important;
}

.btn-primary {
  background: var(--v-primary) !important;
  border-color: var(--v-primary) !important;
  color: #fff !important;
  box-shadow: 0 1px 3px rgba(99,102,241,0.25) !important;
}

.btn-primary:hover {
  background: var(--v-primary-hover) !important;
  border-color: var(--v-primary-hover) !important;
  box-shadow: 0 3px 8px rgba(99,102,241,0.35) !important;
}

.btn-primary:disabled, .btn-primary.disabled {
  background: #C7D2FE !important;
  border-color: #C7D2FE !important;
  box-shadow: none !important;
  color: #fff !important;
}

.btn-outline-primary {
  color: var(--v-primary) !important;
  border-color: var(--v-primary) !important;
  background: transparent !important;
}

.btn-outline-primary:hover {
  background: var(--v-primary-light) !important;
  color: var(--v-primary-hover) !important;
}

.btn-success {
  background: var(--v-success) !important;
  border-color: var(--v-success) !important;
  color: #fff !important;
}

.btn-success:hover {
  background: #059669 !important;
  border-color: #059669 !important;
}

.btn-outline-success {
  color: var(--v-success) !important;
  border-color: var(--v-success) !important;
}

.btn-outline-success:hover {
  background: var(--v-success-light) !important;
}

.btn-danger {
  background: var(--v-danger) !important;
  border-color: var(--v-danger) !important;
  color: #fff !important;
}

.btn-danger:hover {
  background: #DC2626 !important;
  border-color: #DC2626 !important;
}

.btn-outline-danger {
  color: var(--v-danger) !important;
  border-color: var(--v-danger) !important;
}

.btn-outline-danger:hover {
  background: var(--v-danger-light) !important;
}

.btn-warning {
  background: var(--v-warning) !important;
  border-color: var(--v-warning) !important;
  color: #fff !important;
}

.btn-warning:hover {
  background: #D97706 !important;
  border-color: #D97706 !important;
}

.btn-secondary, .btn-default {
  background: var(--v-surface) !important;
  border-color: var(--v-border) !important;
  color: var(--v-txt) !important;
}

.btn-secondary:hover, .btn-default:hover {
  background: var(--v-primary-light) !important;
  border-color: #C7D2FE !important;
  color: var(--v-primary) !important;
}

.btn-outline-secondary {
  color: var(--v-txt-secondary) !important;
  border-color: var(--v-border) !important;
}

.btn-outline-secondary:hover {
  background: var(--v-bg) !important;
  color: var(--v-txt) !important;
  border-color: #CBD5E1 !important;
}

/* Pause & Resume agent buttons */
#Pause {
  background: var(--v-warning) !important;
  border-color: var(--v-warning) !important;
  color: #fff !important;
  font-weight: 600 !important;
  padding: 6px 16px !important;
}

#Resume {
  background: var(--v-success) !important;
  border-color: var(--v-success) !important;
  color: #fff !important;
  font-weight: 600 !important;
  padding: 6px 16px !important;
}


/* ============================================================
   11. FORMS
   ============================================================ */

.form-control {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: var(--v-txt) !important;
  background: var(--v-surface) !important;
  height: 38px !important;
  padding: 0 12px !important;
  transition: var(--v-transition) !important;
  box-shadow: none !important;
}

.form-control:focus {
  border-color: var(--v-primary) !important;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.15) !important;
  outline: none !important;
}

.form-control::placeholder {
  color: var(--v-txt-muted) !important;
}

textarea.form-control {
  height: auto !important;
  padding: 10px 12px !important;
  resize: vertical;
}

select.form-control {
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748B' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 12px !important;
  padding-right: 32px !important;
}

label {
  font-weight: 500 !important;
  font-size: 13px !important;
  color: var(--v-txt-secondary) !important;
}

.form-group {
  margin-bottom: 16px !important;
}


/* ============================================================
   12. TABLES
   ============================================================ */

.table {
  font-size: 13px !important;
  color: var(--v-txt) !important;
}

.table thead th {
  background: #F8FAFC !important;
  color: var(--v-txt-secondary) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border-bottom: 1px solid var(--v-border) !important;
  border-top: none !important;
  padding: 12px 16px !important;
  white-space: nowrap;
}

.table tbody tr {
  border-bottom: 1px solid var(--v-border-light) !important;
  transition: background 0.1s ease !important;
}

.table tbody tr:hover {
  background: #FAFBFF !important;
}

.table td {
  padding: 11px 16px !important;
  vertical-align: middle !important;
  border-top: none !important;
  color: var(--v-txt) !important;
}

.table-striped tbody tr:nth-of-type(odd) {
  background: #FAFBFF !important;
}


/* ============================================================
   13. CARDS & PANELS
   ============================================================ */

.card, .panel, .jumbotron {
  background: var(--v-surface) !important;
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow) !important;
  margin-bottom: 20px !important;
}

.jumbotron {
  padding: 1.5rem 2rem !important;
}

.card-header, .panel-heading {
  background: transparent !important;
  border-bottom: 1px solid var(--v-border) !important;
  padding: 14px 20px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}


/* ============================================================
   14. MODALS
   ============================================================ */

.modal-content {
  border: none !important;
  border-radius: var(--v-radius-xl) !important;
  box-shadow: var(--v-shadow-lg) !important;
  overflow: hidden;
}

.modal-header {
  background: var(--v-surface) !important;
  border-bottom: 1px solid var(--v-border) !important;
  padding: 18px 22px !important;
}

.modal-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--v-txt) !important;
}

.modal-body {
  padding: 20px 22px !important;
  background: var(--v-surface);
}

.modal-footer {
  padding: 14px 22px !important;
  border-top: 1px solid var(--v-border) !important;
  background: #FAFBFF;
  gap: 8px;
}

.close {
  color: var(--v-txt-muted) !important;
  opacity: 0.6;
  font-size: 20px !important;
}

.close:hover {
  opacity: 1;
  color: var(--v-txt) !important;
}

/* Incoming call modal — green accent */
#modalReceiveCalls .modal-content {
  border: 2px solid var(--v-success) !important;
  box-shadow: 0 0 0 4px rgba(16,185,129,0.15), var(--v-shadow-lg) !important;
}

#modalReceiveCalls .modal-header {
  background: linear-gradient(135deg, #064E3B, #065F46) !important;
  border-bottom: none !important;
}

.tituloLlamEntrante {
  color: #6EE7B7 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

.cuerpoLlamEntrante {
  font-size: 14px !important;
  color: var(--v-txt) !important;
  line-height: 1.8;
}

/* Pause modal — amber accent */
#modalPause .modal-content {
  border: 2px solid var(--v-warning) !important;
}

#modalPause .modal-header {
  background: linear-gradient(135deg, #78350F, #92400E) !important;
  border-bottom: none !important;
}

#modalPause .modal-title {
  color: #FDE68A !important;
}


/* ============================================================
   15. BADGES & STATUS
   ============================================================ */

.badge, span.label {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-radius: 20px !important;
  padding: 3px 10px !important;
}

.badge-success, .label-success { background: var(--v-success-light) !important; color: #065F46 !important; }
.badge-danger, .label-danger   { background: var(--v-danger-light) !important; color: #991B1B !important; }
.badge-warning, .label-warning { background: var(--v-warning-light) !important; color: #92400E !important; }
.badge-info, .label-info       { background: var(--v-info-light) !important; color: #1E40AF !important; }
.badge-default, .label-default { background: var(--v-bg) !important; color: var(--v-txt-secondary) !important; border: 1px solid var(--v-border); }
.badge-primary, .label-primary { background: var(--v-primary-light) !important; color: #3730A3 !important; }


/* ============================================================
   16. TABS
   ============================================================ */

.nav-tabs {
  border-bottom: 2px solid var(--v-border) !important;
}

.nav-tabs .nav-link {
  color: var(--v-txt-secondary) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 10px 16px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  margin-bottom: -2px;
  transition: var(--v-transition) !important;
}

.nav-tabs .nav-link:hover {
  color: var(--v-primary) !important;
  background: transparent !important;
}

.nav-tabs .nav-link.active {
  color: var(--v-primary) !important;
  border-bottom-color: var(--v-primary) !important;
  background: transparent !important;
  font-weight: 600 !important;
}


/* ============================================================
   17. LOGIN PAGE
   ============================================================ */

.wrapper-content.login {
  background: linear-gradient(135deg, #0F172A 0%, #1E1B4B 50%, #0F172A 100%) !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 0 !important;
  text-align: center;
}

.wrapper-content.login form {
  background: rgba(255,255,255,0.97) !important;
  border-radius: var(--v-radius-xl) !important;
  padding: 40px !important;
  box-shadow: 0 25px 50px rgba(0,0,0,0.4) !important;
  min-width: 360px;
  max-width: 400px;
  text-align: left !important;
}

.wrapper-content.login form > div:first-of-type {
  border-bottom: none !important;
  margin-bottom: 16px !important;
}

.wrapper-content.login img {
  display: block !important;
  margin: 0 auto 28px !important;
  max-height: 44px !important;
  width: auto !important;
  max-width: 200px !important;
}

.wrapper-content.login .form-group label {
  color: var(--v-txt-secondary) !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  display: block !important;
  text-align: left !important;
}

.wrapper-content.login .form-control {
  background: #F8FAFC !important;
  height: 44px !important;
  font-size: 14px !important;
  width: 100% !important;
  text-align: left !important;
}

.wrapper-content.login input {
  width: 100% !important;
  text-align: left !important;
}

.wrapper-content.login .btn-outline-primary,
.wrapper-content.login button[type="submit"] {
  width: 100% !important;
  height: 44px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border-radius: var(--v-radius-lg) !important;
  margin-top: 8px !important;
  background: var(--v-primary) !important;
  color: #fff !important;
  border-color: var(--v-primary) !important;
  box-shadow: 0 4px 12px rgba(99,102,241,0.3) !important;
}

.wrapper-content.login .btn-outline-primary:hover,
.wrapper-content.login button[type="submit"]:hover {
  background: var(--v-primary-hover) !important;
  box-shadow: 0 6px 16px rgba(99,102,241,0.45) !important;
}


/* ============================================================
   18. DASHBOARD (Vuetify 2 in iframe)

   The agent dashboard loads in an iframe with its own HTML.
   It uses Vuetify 2 components: v-list-item, v-simple-table.
   These styles only apply when this CSS is loaded in that page.
   ============================================================ */

/* Vuetify app base */
.v-application {
  font-family: 'Inter', -apple-system, sans-serif !important;
  background: var(--v-bg) !important;
}

.v-application .v-main {
  padding: 16px !important;
}

/* ---- Stat cards (InfoNumerica → v-list-item) ---- */
/* These are top-level v-list-items, NOT inside tables or dense lists */
.v-application .v-main .v-list-item {
  background: var(--v-surface) !important;
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow) !important;
  margin-bottom: 16px !important;
  padding: 20px 20px 16px !important;
  transition: box-shadow 0.15s ease !important;
}

.v-application .v-main .v-list-item:hover {
  box-shadow: var(--v-shadow-md) !important;
}

/* Stat card title — small uppercase label */
.v-application .v-list-item__content > .v-list-item__title {
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--v-txt-secondary) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 6px !important;
}

/* Stat card number — first subtitle (big KPI number) */
.v-application .v-list-item__title + .v-list-item__subtitle {
  font-family: 'Inter', sans-serif !important;
  font-size: 36px !important;
  font-weight: 800 !important;
  color: var(--v-txt) !important;
  line-height: 1.1 !important;
  overflow: visible !important;
  text-overflow: unset !important;
  white-space: normal !important;
  -webkit-line-clamp: unset !important;
  margin-top: 4px !important;
  margin-bottom: 12px !important;
}

/* Stat card chart — second subtitle */
.v-application .v-list-item__subtitle + .v-list-item__subtitle {
  font-size: 14px !important;
  font-weight: 400 !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
}

/* ---- Table (LogsLlamadas → v-simple-table) ---- */
.v-application .v-data-table,
.v-application .theme--light.v-data-table,
.v-application .v-simple-table {
  background: var(--v-surface) !important;
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow) !important;
  overflow: hidden;
}

.v-application .v-data-table thead th,
.v-application .v-simple-table thead th {
  background: #F8FAFC !important;
  color: var(--v-txt-secondary) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border-bottom: 1px solid var(--v-border) !important;
  padding: 12px 16px !important;
  height: auto !important;
}

.v-application .v-data-table tbody td,
.v-application .v-simple-table tbody td {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: var(--v-txt) !important;
  padding: 10px 16px !important;
  border-bottom: 1px solid var(--v-border-light) !important;
  height: auto !important;
}

.v-application .v-data-table tbody tr:hover,
.v-application .v-simple-table tbody tr:hover {
  background: #FAFBFF !important;
}

/* ---- Override for v-list-items INSIDE tables (actions dropdown) ---- */
.v-simple-table .v-list-item,
.v-data-table .v-list-item {
  border: none !important;
  box-shadow: none !important;
  padding: 4px 8px !important;
  margin-bottom: 0 !important;
  min-height: auto !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.v-simple-table .v-list,
.v-data-table .v-list {
  background: transparent !important;
  padding: 0 !important;
}

/* ---- Pause info list (InfoPausas → v-list dense) ---- */
.v-application .v-list--dense .v-list-item {
  border: 1px solid var(--v-border-light) !important;
  box-shadow: none !important;
  padding: 8px 12px !important;
  margin-bottom: 4px !important;
  min-height: auto !important;
  background: var(--v-bg) !important;
  border-radius: var(--v-radius-sm) !important;
}

.v-application .v-list--dense .v-list-item .v-list-item__title {
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  color: var(--v-txt) !important;
}

/* ---- Vuetify list-group in table actions ---- */
.v-application .v-list-group {
  background: transparent !important;
}

.v-application .v-list-group .v-list-group__header {
  min-height: 32px !important;
}

/* Loading state */
.v-application .v-progress-circular {
  color: var(--v-primary) !important;
}

/* Click2call buttons in table */
.v-application .btn-outline-primary {
  color: var(--v-primary) !important;
  border-color: var(--v-primary) !important;
  font-size: 12px !important;
  padding: 4px 10px !important;
  border-radius: var(--v-radius-sm) !important;
}

.v-application .btn-outline-primary:hover {
  background: var(--v-primary-light) !important;
}

/* Icons in dashboard */
.v-application .icon-check {
  color: var(--v-success) !important;
}

.v-application .icon-cancel {
  color: var(--v-danger) !important;
}


/* ============================================================
   19. ALERTS & NOTIFICATIONS
   ============================================================ */

.alert {
  border-radius: var(--v-radius-lg) !important;
  border: none !important;
  padding: 14px 18px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  box-shadow: var(--v-shadow-sm) !important;
}

.alert-success { background: var(--v-success-light) !important; color: #065F46 !important; }
.alert-danger, .alert-error { background: var(--v-danger-light) !important; color: #991B1B !important; }
.alert-warning { background: var(--v-warning-light) !important; color: #92400E !important; }
.alert-info { background: var(--v-info-light) !important; color: #1E40AF !important; }

/* Growl toast notifications */
.jquery-growl {
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow-lg) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  border: none !important;
}

.jquery-growl-success { background: #064E3B !important; color: #A7F3D0 !important; }
.jquery-growl-error   { background: #7F1D1D !important; color: #FEE2E2 !important; }
.jquery-growl-warning { background: #78350F !important; color: #FDE68A !important; }


/* ============================================================
   20. PAGINATION & DROPDOWN MENUS
   ============================================================ */

.pagination .page-item .page-link {
  border-radius: var(--v-radius) !important;
  border: 1px solid var(--v-border) !important;
  color: var(--v-txt-secondary) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  margin: 0 2px !important;
  padding: 6px 12px !important;
  transition: var(--v-transition) !important;
}

.pagination .page-item.active .page-link {
  background: var(--v-primary) !important;
  border-color: var(--v-primary) !important;
  color: #fff !important;
}

.pagination .page-item .page-link:hover {
  background: var(--v-primary-light) !important;
  color: var(--v-primary) !important;
  border-color: var(--v-primary) !important;
}

.dropdown-menu {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius-lg) !important;
  box-shadow: var(--v-shadow-md) !important;
  padding: 6px !important;
  font-size: 13px !important;
}

.dropdown-item {
  border-radius: var(--v-radius-sm) !important;
  padding: 8px 12px !important;
  color: var(--v-txt) !important;
  font-weight: 500;
  transition: var(--v-transition) !important;
}

.dropdown-item:hover {
  background: var(--v-primary-light) !important;
  color: var(--v-primary) !important;
}

/* Dropdown icon inside item */
.dropdown-item .icon {
  color: var(--v-txt-secondary) !important;
}

.dropdown-item:hover .icon {
  color: var(--v-primary) !important;
}


/* ============================================================
   21. SCROLLBARS
   ============================================================ */

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #94A3B8; }

.webphone-body::-webkit-scrollbar { width: 4px; }
.webphone-body::-webkit-scrollbar-thumb { background: #334155; }


/* ============================================================
   22. UTILITY OVERRIDES
   ============================================================ */

hr { border-color: var(--v-border) !important; }
.text-primary { color: var(--v-primary) !important; }
.text-muted { color: var(--v-txt-secondary) !important; }
.bg-primary { background: var(--v-primary) !important; }

/* Admin top navbar */
.navbar, .navbar-default {
  background: var(--v-surface) !important;
  border: none !important;
  border-bottom: 1px solid var(--v-border) !important;
  box-shadow: var(--v-shadow-sm) !important;
}

/* DataTables styling */
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius) !important;
  padding: 4px 8px !important;
  font-size: 13px !important;
}

.dataTables_wrapper .dataTables_info {
  font-size: 12px !important;
  color: var(--v-txt-secondary) !important;
}

/* Select2 dropdowns (used in some forms) */
.select2-container--default .select2-selection--single {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius) !important;
  height: 38px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 36px !important;
  color: var(--v-txt) !important;
  font-size: 13px !important;
}

.select2-dropdown {
  border: 1px solid var(--v-border) !important;
  border-radius: var(--v-radius) !important;
  box-shadow: var(--v-shadow-md) !important;
}

.select2-results__option--highlighted {
  background: var(--v-primary) !important;
}

/* SweetAlert2 overrides */
.swal2-popup {
  border-radius: var(--v-radius-xl) !important;
  font-family: 'Inter', sans-serif !important;
}

.swal2-confirm {
  background: var(--v-primary) !important;
  border-radius: var(--v-radius) !important;
}

.swal2-cancel {
  border-radius: var(--v-radius) !important;
}

/* Navigation pills */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background: var(--v-primary-light) !important;
  color: var(--v-primary) !important;
}

/* Navigation indicators */
ul.nav-indicators {
  background: var(--v-bg) !important;
  border-radius: var(--v-radius) !important;
}

ul.nav-indicators li.active a {
  color: var(--v-primary) !important;
  border-bottom: 4px solid var(--v-primary) !important;
}

/* Error list styling */
ul.errorlist {
  color: var(--v-danger) !important;
}

/* Search wrapper */
#wrapperSearchForm {
  border-bottom: 2px solid var(--v-border) !important;
}

/* Fix for the inline style on registry header */
#phoneRegistryContent div[style*="background:lightgrey"] {
  background: var(--v-phone-surface) !important;
}
