:root{
  --bg:#F7F5FF; --card:#fff; --ink:#171a21; --muted:#6f7783;
  --green:#2EA26E; --amber:#F59E0B; --busy:#D81E62; --star:#F59E0B;
  --radius:14px; --shadow:0 6px 16px rgba(17,24,39,.08), 0 2px 6px rgba(17,24,39,.06);
}

#online img{max-width:100%;height:auto;display:block}
#online *{box-sizing:border-box}

.online-wrapper{display:grid;gap:10px;width:100%;overflow:hidden}

.card{
  width:100%;background:var(--card);border-radius:12px;box-shadow:var(--shadow);
  padding:10px;display:grid;grid-template-columns:auto 1fr;gap:8px;
  border:1px solid rgba(0,0,0,.05);align-items:flex-start;position:relative;
}

.card__media{
  width:72px;height:72px;border-radius:50%;overflow:hidden;flex-shrink:0;
  box-shadow:0 0 0 2px rgba(0,0,0,.04)
}
.card__media img{width:100%;height:100%;object-fit:cover;display:block}

.card__body{display:grid;gap:5px}

.title-row{display:flex;align-items:center;gap:6px;padding-right:34px}
.name{font-weight:800;font-size:16px;font-family:"Playfair Display",serif}
.code{color:var(--muted);font-weight:600;font-size:12px}

.profile-icon{
  position:absolute;right:10px;top:10px;width:22px;height:22px;display:grid;place-items:center;border-radius:999px;
  background:#ECE7FF;color:#4338CA;text-decoration:none;border:1px solid #DDD5FF
}
.profile-icon svg{width:14px;height:14px}

.card__desc{
  margin:0;color:var(--muted);font-size:13px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}

.meta{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13px}
.price{white-space:nowrap}
.rating{display:inline-flex;align-items:center;gap:4px;color:var(--star)}
.rating svg{width:12px;height:12px;fill:var(--star)}

.actions{display:flex;gap:6px;flex-wrap:wrap}
.btn{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 10px;border-radius:8px;border:0;color:#fff;font-weight:800;cursor:pointer;text-align:center;
  font-size:13px
}
.btn svg{width:14px;height:14px;stroke:#fff}
.btn--call{background:var(--green)}
.btn--topup{background:var(--amber)}
.btn--busy{background:var(--busy);cursor:not-allowed;opacity:.9}

@media (max-width:600px){
  .online-wrapper{gap:8px}
  .card{padding:8px;gap:6px}
  .card__media{width:56px;height:56px}
  .name{font-size:15px}
  .code{font-size:11.5px}
  .card__desc{display:none}
  .btn{padding:8px 6px;font-size:12.5px}
}