
:root{
  --cm-bg0:#f6f8fb;
  --cm-bg1:#eef2f7;
  --cm-card:#ffffff;
  --cm-ink:#0f172a;
  --cm-muted:#64748b;
  --cm-line:rgba(15,23,42,.10);

  --cm-blue:#1f4e79;   /* steel blue */
  --cm-blue2:#2b6cb0;
  --cm-gold:#c89b2a;
  --cm-green:#16a34a;
  --cm-green-soft:rgba(22,163,74,.10);
  --cm-warning:#f59e0b;
}

body{
  background: radial-gradient(900px 500px at 10% -10%, rgba(31,78,121,.16), transparent 55%),
              radial-gradient(700px 450px at 100% 0%, rgba(200,155,42,.14), transparent 55%),
              linear-gradient(180deg, var(--cm-bg0), var(--cm-bg1));
  color: var(--cm-ink);
}

.small-muted { font-size: .85rem; color: var(--cm-muted); }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.table td, .table th { vertical-align: middle; }

.cm-navbar{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}
.cm-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 32px; height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(31,78,121,.14), rgba(200,155,42,.18));
  border: 1px solid var(--cm-line);
  margin-right: 8px;
  font-weight: 800;
  color: var(--cm-blue);
}
.cm-userpill{
  font-size:.85rem;
  color: var(--cm-muted);
  background: rgba(255,255,255,.7);
  border:1px solid var(--cm-line);
  border-radius: 999px;
  padding: 4px 10px;
}

.cm-panel{
  border: 1px solid var(--cm-line);
  border-radius: 16px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.cm-metrics{
  display:flex;
  gap:10px;
}
.cm-metric{
  border:1px solid var(--cm-line);
  background: rgba(255,255,255,.7);
  border-radius: 14px;
  padding: 8px 12px;
  min-width: 110px;
  text-align:center;
}
.cm-metric-num{
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
}
.cm-metric-label{
  font-size:.78rem;
  color: var(--cm-muted);
}

.map-box{
  height: 280px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--cm-line);
  background: #fff;
}

/* Call Queue cards */
.cm-card-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 992px){
  .cm-card-grid{ grid-template-columns: 1fr; }
}
.cm-lead-card{
  border-radius: 18px;
  border: 1px solid var(--cm-line);
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 38px rgba(15,23,42,.06);
  overflow: hidden;
}
.cm-lead-card--done{
  border-color: rgba(22,163,74,.35);
  box-shadow: 0 18px 50px rgba(22,163,74,.08);
  background: linear-gradient(180deg, var(--cm-green-soft), rgba(255,255,255,.86));
}
.cm-lead-card--dnc{
  border-color: rgba(0,0,0,.18);
  opacity: .85;
}

.cm-lead-head{
  display:flex;
  justify-content: space-between;
  align-items:flex-start;
  padding: 14px 14px 10px 14px;
  border-bottom: 1px solid rgba(15,23,42,.06);
}
.cm-lead-sub{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top: 6px;
}
.cm-lead-body{
  padding: 12px 14px 14px 14px;
}
.cm-lead-row{
  display:flex;
  flex-wrap:wrap;
  gap: 12px 18px;
  margin-bottom: 8px;
}
.cm-lead-kv{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width: 160px;
}
.cm-k{
  font-size: .72rem;
  color: var(--cm-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.cm-v{
  font-size: .95rem;
}
.cm-lead-contacts{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin: 10px 0 4px 0;
}
.cm-contact-pill{
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.7);
  border-radius: 14px;
  padding: 10px;
  min-width: 240px;
  flex: 1;
}
.cm-contact-pill-head{
  font-size: .78rem;
  color: var(--cm-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 6px;
}
.cm-contact-pill-body{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}

.cm-subcard{
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.72);
  border-radius: 14px;
}

.cm-contact{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 14px;
  overflow:hidden;
  background: rgba(255,255,255,.75);
}
.cm-contact-head{
  padding: 8px 10px;
  background: rgba(31,78,121,.08);
  color: var(--cm-blue);
  font-weight: 700;
  font-size: .9rem;
}
.cm-contact-body{
  padding: 8px 10px;
}

.cm-quote{
  font-size: 1.05rem;
  line-height: 1.35;
  font-weight: 700;
}
.cm-quote-author{
  margin-top: 6px;
  color: var(--cm-muted);
  font-size: .9rem;
}

.bg-purple{ background:#6f42c1 !important; color:#fff !important; }

/* ---- Caller Dashboard ---- */
.cm-kpi{
  border: 1px solid var(--cm-line);
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 38px rgba(15,23,42,.06);
  padding: 14px;
  position: relative;
  overflow: hidden;
}
.cm-kpi::before{
  content:"";
  position:absolute;
  width: 220px;
  height: 220px;
  right: -110px;
  top: -110px;
  background: radial-gradient(circle at 30% 30%, rgba(31,78,121,.18), transparent 62%);
}
.cm-kpi-num{
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.cm-kpi-label{
  font-size: .78rem;
  color: var(--cm-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.cm-kpi-sub{ color: var(--cm-muted); font-size: .86rem; margin-top: 6px; }

.cm-chart-card{
  border: 1px solid var(--cm-line);
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 38px rgba(15,23,42,.06);
  padding: 14px;
}
.cm-chart-title{ font-weight: 800; }
.cm-chart-sub{ color: var(--cm-muted); font-size: .86rem; }
.cm-canvas-wrap{ position: relative; height: 280px; }
@media (max-width: 576px){
  .cm-canvas-wrap{ height: 240px; }
}

.cm-filter .form-control,
.cm-filter .form-select{
  border-radius: 12px;
}
.cm-filter .btn{
  border-radius: 12px;
}
