@media (max-width: 640px) {
  html,
  body,
  #root {
    min-width: 0;
    min-height: 100%;
  }

  /* Prevent bottom content from being hidden by the fixed console */
  body, #root, main, .flex-1 {
    padding-bottom: 120px !important;
  }

  /* ----------------------------------------------------- */
  /* FIX: Beautiful Native Mobile Dashboard Layout */
  /* ----------------------------------------------------- */
  
  /* 1. Force Dashboard Overview Cards to Stack Vertically (1 column) */
  .grid-cols-2, .grid-cols-3, .grid-cols-4, .grid-cols-5, .grid-cols-6,
  [class*="md:grid-cols-"], [class*="lg:grid-cols-"], [class*="xl:grid-cols-"] {
    grid-template-columns: 1fr !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  /* 2. Allow items to wrap normally instead of squishing */
  .flex {
    flex-wrap: wrap;
  }
  .flex-nowrap {
    flex-wrap: nowrap !important;
  }

  /* 3. Make data tables horizontally scrollable (Call Log, etc) */
  table, .table-container, [role="table"] {
    display: block !important;
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
  
  /* Ensure table wrappers don't overflow the screen */
  .card, .bg-bg2, .rounded-xl {
    max-width: 100vw;
    box-sizing: border-box;
  }

  /* 4. Fix specific tight grids that should stay side-by-side */
  .grid-cols-2.text-sm {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body {
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
  }

  .min-h-screen {
    min-height: 100dvh;
  }

  button,
  input,
  select,
  textarea {
    min-height: 44px;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }

  [class~="px-8"],
  [class~="px-6"] {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  [class~="pb-12"] {
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom)) !important;
  }

  [class~="min-w-[350px]"],
  [class~="min-w-[280px]"] {
    min-width: 100% !important;
  }

  [class~="w-[72px]"] {
    width: 4rem !important;
  }

  [class~="h-[72px]"] {
    height: 4rem !important;
  }
}

#campaign-route-manager {
  position: relative;
  width: 100%;
  flex-basis: 100%;
  box-sizing: border-box;
  margin-top: 1.25rem;
  margin-bottom: 2rem;
  padding: 1.25rem;
  color: #e2e8f0;
  background: #0b111a;
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 0.75rem;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  box-shadow: 0 0 10px rgba(212, 175, 55, 0.05);
  overflow: hidden;
  grid-column: 1 / -1;
  clear: both;
}

#campaign-route-manager .campaign-route-manager__title,
#campaign-route-manager .campaign-route-manager__row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

#campaign-route-manager .campaign-route-manager__title {
  justify-content: space-between;
  margin-bottom: 1rem;
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
  padding-bottom: 0.85rem;
}

#campaign-route-manager .campaign-route-manager__title span,
#campaign-route-manager .campaign-route-manager__title small {
  display: block;
}

#campaign-route-manager .campaign-route-manager__title span {
  color: #d4af37;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

#campaign-route-manager .campaign-route-manager__title small {
  max-width: 360px;
  margin-top: 0.3rem;
  color: #94a3b8;
  font-size: 0.75rem;
}

#campaign-route-manager button {
  min-height: 2.2rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: 0.55rem;
  color: #d4af37;
  background: rgba(212, 175, 55, 0.1);
  cursor: pointer;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  transition: all 0.2s ease;
}

#campaign-route-manager button:hover {
  background: rgba(212, 175, 55, 0.2);
  box-shadow: 0 0 10px rgba(212, 175, 55, 0.2);
}

#campaign-route-manager button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#campaign-route-manager .campaign-route-manager__list {
  display: grid;
  gap: 0.5rem;
}

#campaign-route-manager .campaign-route-manager__row {
  min-height: 3.1rem;
  padding: 0.5rem 0.75rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 0.65rem;
  transition: background 0.2s;
}

#campaign-route-manager .campaign-route-manager__row:hover {
  background: rgba(255, 255, 255, 0.06);
}

#campaign-route-manager .campaign-route-manager__enabled {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: #d4af37;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
}

#campaign-route-manager .campaign-route-manager__enabled input[type="checkbox"] {
  accent-color: #d4af37;
}

#campaign-route-manager .campaign-route-manager__order {
  width: 3.4rem;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 800;
}

#campaign-route-manager .campaign-route-manager__name {
  min-width: 0;
  flex: 1;
  padding: 0.45rem 0.55rem;
  color: #f8fafc;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.45rem;
  font: inherit;
  font-size: 0.8rem;
  transition: border-color 0.2s;
}

#campaign-route-manager .campaign-route-manager__name:focus {
  outline: none;
  border-color: rgba(212, 175, 55, 0.5);
}

#campaign-route-manager .campaign-route-manager__provider {
  max-width: 145px;
  overflow: hidden;
  color: #64748b;
  font-size: 0.7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 640px) {
  #campaign-route-manager {
    padding: 1rem;
    margin-top: 1rem;
    width: calc(100% - 2rem);
    margin-left: 1rem;
    margin-right: 1rem;
  }

  #campaign-route-manager .campaign-route-manager__row {
    flex-wrap: wrap;
  }

  #campaign-route-manager .campaign-route-manager__provider {
    display: none;
  }
}

#platform-launcher {
  position: fixed;
  right: 1.25rem;
  top: 1.25rem;
  z-index: 1200;
  display: grid;
  gap: 0.1rem;
  padding: 0.65rem 0.85rem;
  color: #e2e8f0;
  background: #0f766e;
  border: 1px solid #5eead4;
  border-radius: 0.75rem;
  box-shadow: 0 14px 30px rgba(2, 44, 34, 0.35);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  text-decoration: none;
}

#platform-launcher span {
  color: #99f6e4;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#platform-launcher strong {
  font-size: 0.8rem;
}

@media (max-width: 640px) {
  #platform-launcher {
    right: 0.75rem;
    top: max(0.75rem, env(safe-area-inset-top));
  }
}

/* The deployed Agent component fixes its phone UI at 393px plus borders. */
@media (max-width: 430px) {
  [style*="min-width: 393px"] {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 393px !important;
    touch-action: manipulation !important;
  }

  [class~="w-[393px]"] {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 393px !important;
  }
}

.agent-call-console {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1000;
  width: min(360px, calc(100vw - 2rem));
  padding: 1.125rem;
  color: #e2e8f0;
  background: linear-gradient(145deg, #111c33, #0b1220 72%);
  border: 1px solid #334155;
  border-radius: 1.25rem;
  box-shadow: 0 22px 50px rgba(2, 6, 23, 0.48);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.agent-call-console[data-status="ringing"] {
  border-color: #d4af37;
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.25), 0 22px 50px rgba(2, 6, 23, 0.48);
}



.agent-call-console[data-status="active"] {
  border-color: #10b981;
}

.agent-call-console__header,
.agent-call-console__actions,
.agent-call-console__toggle {
  display: flex;
  align-items: center;
}

.agent-call-console__header {
  gap: 0.5rem;
  color: #94a3b8;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.agent-call-console__signal {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: #10b981;
  box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.12);
}

.agent-call-console[data-status="ringing"] .agent-call-console__signal {
  background: #d4af37;
  animation: agent-call-pulse 1s infinite;
}

.agent-call-console__timer {
  margin-left: auto;
  color: #e2e8f0;
  font-variant-numeric: tabular-nums;
}

.agent-call-console__caller {
  margin-top: 0.75rem;
  overflow: hidden;
  color: #f8fafc;
  font-size: 1.25rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-call-console__mode,
.agent-call-console__warning {
  margin: 0.35rem 0 0;
  color: #94a3b8;
  font-size: 0.8rem;
}

.agent-call-console__mode + .agent-call-console__mode {
  color: #5eead4;
}

.agent-call-console__warning {
  color: #fbbf24;
}

.agent-call-console__actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
  align-items: center;
  width: 100%;
}

.agent-call-console__actions button {
  min-height: 2.2rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: 0.55rem;
  color: #d4af37;
  background: rgba(212, 175, 55, 0.1);
  cursor: pointer;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.agent-call-console__actions button:hover {
  background: rgba(212, 175, 55, 0.2);
  box-shadow: 0 0 10px rgba(212, 175, 55, 0.2);
}

.agent-call-console__actions button[hidden] {
  display: none !important;
}

.agent-call-console__answer {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #10b981 !important;
  border-color: rgba(16, 185, 129, 0.4) !important;
}

.agent-call-console__end {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #ef4444 !important;
  border-color: rgba(239, 68, 68, 0.4) !important;
}

/* Hide SVG icons and dummy buttons on desktop */



.agent-call-console__utility[data-more] {
  display: none !important;
}

.action-spacer {
  flex-grow: 1;
}

.agent-call-console__test {
  background: rgba(255, 255, 255, 0.1);
  color: #e2e8f0;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 2rem !important;
  width: 100% !important;
  height: 3rem !important;
  font-size: 0.9rem !important;
  margin-top: 1rem;
}

.agent-call-console__test:disabled {
  cursor: wait;
  opacity: 0.7;
}

.agent-call-console__toggle {
  gap: 0.65rem;
  margin-top: 0.9rem;
  color: #cbd5e1;
  font-size: 0.8rem;
  font-weight: 650;
  display: flex;
  align-items: center;
}

.agent-call-console__toggle input {
  width: 1rem;
  min-height: 1rem;
  height: 1rem;
  accent-color: #10b981;
}

@keyframes agent-call-pulse {
  50% {
    box-shadow: 0 0 0 8px rgba(212, 175, 55, 0.04);
  }
}

/* -------------------------------------------------------------------------- */
/* IPHONE STYLE BUTTONS FOR BOTH DESKTOP AND MOBILE (NO FULL SCREEN OVERLAY)  */
/* -------------------------------------------------------------------------- */

.agent-call-console {
  display: flex;
  flex-direction: column;
}

.agent-call-console__dialpad-container {
  margin-top: auto;
  margin-bottom: 2rem;
  width: 100%;
}

.agent-call-console__dialpad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  max-width: 280px;
  margin: 0 auto;
}

.agent-call-console__dialpad button {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: white;
  font-size: 2rem;
  font-weight: 400;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: background 0.2s;
  cursor: pointer;
  margin: 0 auto;
}

.agent-call-console__dialpad button:active {
  background: rgba(255, 255, 255, 0.3);
}

.agent-call-console__dialpad button span {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 2px;
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.6);
}

.agent-call-console__header {
  justify-content: center;
  font-size: 1rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.agent-call-console__caller {
  font-size: 2rem;
  text-align: center;
  margin-top: 0.5rem;
  margin-bottom: 2rem;
  white-space: normal;
  word-break: break-word;
  color: #f8fafc;
  font-weight: 300;
  line-height: 1.1;
}

.agent-call-console__mode,
.agent-call-console__warning {
  text-align: center;
  font-size: 1rem;
  font-weight: 500;
}

/* IPHONE GRID AND BUTTONS */
.agent-call-console__actions {
  margin-top: auto;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem 1rem !important;
  width: 100% !important;
  max-width: 320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 1rem !important;
}



.agent-call-console__actions button {
  min-height: 4.5rem !important;
  font-size: 1.1rem !important;
  border-radius: 50% !important;
  width: 5rem !important;
  height: 5rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 700 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.agent-call-console__actions button[hidden] {
  display: none !important;
}

.agent-call-console__footer {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}

.agent-call-console__footer button {
  min-height: 4.5rem !important;
  font-size: 1.1rem !important;
  border-radius: 50% !important;
  width: 5rem !important;
  height: 5rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 700 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.agent-call-console__footer button[hidden] {
  display: none !important;
}

.agent-call-console__actions .icon,
.agent-call-console__footer .icon {
  display: flex !important;
  width: 4.5rem !important;
  height: 4.5rem !important;
  background: rgba(255, 255, 255, 0.15) !important;
  border-radius: 50% !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s !important;
  margin-bottom: 0.5rem !important;
}

.agent-call-console__utility[data-mute] { order: 1; }
.agent-call-console__utility[data-keypad] { order: 2; }
.agent-call-console__utility[data-speaker] { order: 3; }
.agent-call-console__utility[data-transfer] { order: 4; grid-column: 1; }
.agent-call-console__utility[data-hold] { order: 5; grid-column: 2; }
.agent-call-console__end { order: 6; }
.agent-call-console__answer { order: 7; }

.agent-call-console__actions .icon svg,
.agent-call-console__footer .icon svg {
  width: 32px !important;
  height: 32px !important;
  color: #fff !important;
}

.agent-call-console__actions .label,
.agent-call-console__footer .label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
  text-transform: capitalize !important;
  color: #e2e8f0 !important;
}

/* Specific buttons */
.agent-call-console__answer,
.agent-call-console__end {
  width: auto !important;
  height: auto !important;
}

.agent-call-console__answer .icon,
.agent-call-console__end .icon {
  width: 5rem !important;
  height: 5rem !important;
}

.agent-call-console__answer .icon {
  background: #10b981 !important;
  box-shadow: 0 4px 20px rgba(16, 185, 129, 0.4) !important;
}

.agent-call-console__end .icon {
  background: #ef4444 !important;
  box-shadow: 0 4px 20px rgba(239, 68, 68, 0.4) !important;
}

.agent-call-console__answer .icon svg,
.agent-call-console__end .icon svg {
  width: 38px !important;
  height: 38px !important;
}

.agent-call-console__utility:disabled .icon {
  opacity: 0.4 !important;
}

.agent-call-console__test {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #e2e8f0 !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  grid-column: 1 / -1 !important;
}

.agent-call-console__toggle {
  grid-column: 1 / -1 !important;
  justify-content: center !important;
  margin-top: 1.5rem !important;
  font-size: 1rem !important;
}

.agent-call-console__toggle input {
  width: 1.5rem !important;
  height: 1.5rem !important;
}

/* ========================================================= */
/* VIRTUAL IPHONE MOCKUP FOR DESKTOP AGENT PAGE              */
/* ========================================================= */


/* Hide caller text when dialpad is visible */
.agent-call-console[data-status="idle"] .agent-call-console__caller {
  display: none !important;
}

/* Ensure the header text isn't too squished */
.agent-call-console[data-status="idle"] .agent-call-console__header {
  margin-bottom: 0.5rem;
}


/* Hide the entire console when there is no active or ringing call */
.agent-call-console[data-status="idle"] {
  display: none !important;
}
